diff --git a/package.json b/package.json index 5a45f11..cdf045b 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,11 @@ "@dcloudio/uni-mp-toutiao": "3.0.0-3071120230427001", "@dcloudio/uni-mp-weixin": "3.0.0-3071120230427001", "@dcloudio/uni-quickapp-webview": "3.0.0-3071120230427001", + "clipboard": "^2.0.11", + "dayjs": "^1.11.7", + "pinia": "2.0.22", + "pinia-plugin-unistorage": "^0.0.17", + "uview-plus": "^3.1.30", "vue": "^3.2.45", "vue-i18n": "^9.1.9" }, @@ -60,7 +65,8 @@ "@dcloudio/uni-cli-shared": "3.0.0-3071120230427001", "@dcloudio/uni-stacktracey": "3.0.0-3071120230427001", "@dcloudio/vite-plugin-uni": "3.0.0-3071120230427001", - "vite": "4.1.4", - "sass": "^1.59.3" + "sass": "^1.59.3", + "sass-loader": "10", + "vite": "4.1.4" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 85d9959..2069c33 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,7 +19,13 @@ specifiers: '@dcloudio/uni-quickapp-webview': 3.0.0-3071120230427001 '@dcloudio/uni-stacktracey': 3.0.0-3071120230427001 '@dcloudio/vite-plugin-uni': 3.0.0-3071120230427001 - sass: 1.59.3 + clipboard: ^2.0.11 + dayjs: ^1.11.7 + pinia: 2.0.22 + pinia-plugin-unistorage: ^0.0.17 + sass: ^1.59.3 + sass-loader: '10' + uview-plus: ^3.1.30 vite: 4.1.4 vue: ^3.2.45 vue-i18n: ^9.1.9 @@ -38,6 +44,11 @@ dependencies: '@dcloudio/uni-mp-toutiao': registry.npmmirror.com/@dcloudio/uni-mp-toutiao/3.0.0-3071120230427001_vue@3.3.2 '@dcloudio/uni-mp-weixin': registry.npmmirror.com/@dcloudio/uni-mp-weixin/3.0.0-3071120230427001_vue@3.3.2 '@dcloudio/uni-quickapp-webview': registry.npmmirror.com/@dcloudio/uni-quickapp-webview/3.0.0-3071120230427001_vue@3.3.2 + clipboard: registry.npmmirror.com/clipboard/2.0.11 + dayjs: registry.npmmirror.com/dayjs/1.11.7 + pinia: registry.npmmirror.com/pinia/2.0.22_vue@3.3.2 + pinia-plugin-unistorage: registry.npmmirror.com/pinia-plugin-unistorage/0.0.17_vue@3.3.2 + uview-plus: registry.npmmirror.com/uview-plus/3.1.30 vue: registry.npmmirror.com/vue/3.3.2 vue-i18n: registry.npmmirror.com/vue-i18n/9.2.2_vue@3.3.2 @@ -48,6 +59,7 @@ devDependencies: '@dcloudio/uni-stacktracey': registry.npmmirror.com/@dcloudio/uni-stacktracey/3.0.0-3071120230427001 '@dcloudio/vite-plugin-uni': registry.npmmirror.com/@dcloudio/vite-plugin-uni/3.0.0-3071120230427001_vite@4.1.4+vue@3.3.2 sass: registry.npmmirror.com/sass/1.59.3 + sass-loader: registry.npmmirror.com/sass-loader/10.4.1_sass@1.59.3 vite: registry.npmmirror.com/vite/4.1.4_sass@1.59.3 packages: @@ -3002,6 +3014,12 @@ packages: estree-walker: registry.npmmirror.com/estree-walker/2.0.2 picomatch: registry.npmmirror.com/picomatch/2.3.1 + registry.npmmirror.com/@types/json-schema/7.0.11: + resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz} + name: '@types/json-schema' + version: 7.0.11 + dev: true + registry.npmmirror.com/@vitejs/plugin-legacy/4.0.3_terser@5.17.3+vite@4.1.4: resolution: {integrity: sha512-RqDQOSEmFSNL42vITkNp8HE8Ak1yjGgaav4B6BGcZ8/URK0wikzwSyhNRirHDkp+snflEEk7iPZXTXUYA9exbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-4.0.3.tgz} id: registry.npmmirror.com/@vitejs/plugin-legacy/4.0.3 @@ -3278,6 +3296,28 @@ packages: engines: {node: '>= 10.0.0'} dev: true + registry.npmmirror.com/ajv-keywords/3.5.2_ajv@6.12.6: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz} + id: registry.npmmirror.com/ajv-keywords/3.5.2 + name: ajv-keywords + version: 3.5.2 + peerDependencies: + ajv: ^6.9.1 + dependencies: + ajv: registry.npmmirror.com/ajv/6.12.6 + dev: true + + registry.npmmirror.com/ajv/6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz} + name: ajv + version: 6.12.6 + dependencies: + fast-deep-equal: registry.npmmirror.com/fast-deep-equal/3.1.3 + fast-json-stable-stringify: registry.npmmirror.com/fast-json-stable-stringify/2.1.0 + json-schema-traverse: registry.npmmirror.com/json-schema-traverse/0.4.1 + uri-js: registry.npmmirror.com/uri-js/4.4.1 + dev: true + registry.npmmirror.com/ansi-styles/3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz} name: ansi-styles @@ -3380,6 +3420,12 @@ packages: version: 3.0.1 engines: {node: '>=6.0.0'} + registry.npmmirror.com/big.js/5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz} + name: big.js + version: 5.2.2 + dev: true + registry.npmmirror.com/binary-extensions/2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz} name: binary-extensions @@ -3517,6 +3563,16 @@ packages: optionalDependencies: fsevents: registry.npmmirror.com/fsevents/2.3.2 + registry.npmmirror.com/clipboard/2.0.11: + resolution: {integrity: sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/clipboard/-/clipboard-2.0.11.tgz} + name: clipboard + version: 2.0.11 + dependencies: + good-listener: registry.npmmirror.com/good-listener/1.2.2 + select: registry.npmmirror.com/select/1.1.2 + tiny-emitter: registry.npmmirror.com/tiny-emitter/2.1.0 + dev: false + registry.npmmirror.com/color-convert/1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz} name: color-convert @@ -3657,6 +3713,12 @@ packages: name: csstype version: 3.1.2 + registry.npmmirror.com/dayjs/1.11.7: + resolution: {integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dayjs/-/dayjs-1.11.7.tgz} + name: dayjs + version: 1.11.7 + 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 @@ -3692,6 +3754,12 @@ packages: execa: registry.npmmirror.com/execa/5.1.1 dev: true + registry.npmmirror.com/delegate/3.2.0: + resolution: {integrity: sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/delegate/-/delegate-3.2.0.tgz} + name: delegate + version: 3.2.0 + dev: false + registry.npmmirror.com/depd/2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz} name: depd @@ -3723,6 +3791,13 @@ packages: name: electron-to-chromium version: 1.4.396 + registry.npmmirror.com/emojis-list/3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz} + name: emojis-list + version: 3.0.0 + engines: {node: '>= 4'} + dev: true + registry.npmmirror.com/encodeurl/1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz} name: encodeurl @@ -3867,6 +3942,12 @@ packages: - supports-color dev: true + registry.npmmirror.com/fast-deep-equal/3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz} + name: fast-deep-equal + version: 3.1.3 + dev: true + registry.npmmirror.com/fast-glob/3.2.12: resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz} name: fast-glob @@ -3879,6 +3960,12 @@ packages: merge2: registry.npmmirror.com/merge2/1.4.1 micromatch: registry.npmmirror.com/micromatch/4.0.5 + registry.npmmirror.com/fast-json-stable-stringify/2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz} + name: fast-json-stable-stringify + version: 2.1.0 + dev: true + registry.npmmirror.com/fastq/1.15.0: resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fastq/-/fastq-1.15.0.tgz} name: fastq @@ -4015,6 +4102,14 @@ packages: version: 11.12.0 engines: {node: '>=4'} + registry.npmmirror.com/good-listener/1.2.2: + resolution: {integrity: sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/good-listener/-/good-listener-1.2.2.tgz} + name: good-listener + version: 1.2.2 + dependencies: + delegate: registry.npmmirror.com/delegate/3.2.0 + dev: false + registry.npmmirror.com/graceful-fs/4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz} name: graceful-fs @@ -4224,6 +4319,12 @@ packages: engines: {node: '>=4'} hasBin: true + registry.npmmirror.com/json-schema-traverse/0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz} + name: json-schema-traverse + version: 0.4.1 + dev: true + registry.npmmirror.com/json5/2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz} name: json5 @@ -4245,6 +4346,13 @@ packages: optionalDependencies: graceful-fs: registry.npmmirror.com/graceful-fs/4.2.11 + registry.npmmirror.com/klona/2.0.6: + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/klona/-/klona-2.0.6.tgz} + name: klona + version: 2.0.6 + engines: {node: '>= 8'} + dev: true + registry.npmmirror.com/lcid/3.1.1: resolution: {integrity: sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lcid/-/lcid-3.1.1.tgz} name: lcid @@ -4279,6 +4387,17 @@ packages: xtend: registry.npmmirror.com/xtend/4.0.2 dev: false + registry.npmmirror.com/loader-utils/2.0.4: + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz} + name: loader-utils + version: 2.0.4 + engines: {node: '>=8.9.0'} + dependencies: + big.js: registry.npmmirror.com/big.js/5.2.2 + emojis-list: registry.npmmirror.com/emojis-list/3.0.0 + json5: registry.npmmirror.com/json5/2.2.3 + dev: true + registry.npmmirror.com/loader-utils/3.2.1: resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/loader-utils/-/loader-utils-3.2.1.tgz} name: loader-utils @@ -4310,6 +4429,15 @@ packages: dependencies: yallist: registry.npmmirror.com/yallist/3.1.1 + registry.npmmirror.com/lru-cache/6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz} + name: lru-cache + version: 6.0.0 + engines: {node: '>=10'} + dependencies: + yallist: registry.npmmirror.com/yallist/4.0.0 + dev: true + registry.npmmirror.com/magic-string/0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz} name: magic-string @@ -4475,6 +4603,12 @@ packages: engines: {node: '>= 0.6'} dev: true + registry.npmmirror.com/neo-async/2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz} + name: neo-async + version: 2.6.2 + dev: true + registry.npmmirror.com/node-releases/2.0.10: resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-releases/-/node-releases-2.0.10.tgz} name: node-releases @@ -4634,6 +4768,59 @@ packages: version: 2.3.0 engines: {node: '>=0.10.0'} + registry.npmmirror.com/pinia-plugin-unistorage/0.0.17_vue@3.3.2: + resolution: {integrity: sha512-Oo4KTWyZP+7/fRRGG5ACoFIBZznEgFt8SPSOcg99t5NHzFP1wSTAfgl25eRr7Tv11pkWyzgZSa3oMGVIBBs1MA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pinia-plugin-unistorage/-/pinia-plugin-unistorage-0.0.17.tgz} + id: registry.npmmirror.com/pinia-plugin-unistorage/0.0.17 + name: pinia-plugin-unistorage + version: 0.0.17 + dependencies: + pinia: registry.npmmirror.com/pinia/2.1.3_vue@3.3.2 + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + - vue + dev: false + + registry.npmmirror.com/pinia/2.0.22_vue@3.3.2: + resolution: {integrity: sha512-u+b8/BC+tmvo3ACbYO2w5NfxHWFOjvvw9DQnyT0dW8aUMCPRQT5QnfZ5R5W2MzZBMTeZRMQI7V/QFbafmM9QHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pinia/-/pinia-2.0.22.tgz} + id: registry.npmmirror.com/pinia/2.0.22 + name: pinia + version: 2.0.22 + peerDependencies: + '@vue/composition-api': ^1.4.0 + typescript: '>=4.4.4' + vue: ^2.6.14 || ^3.2.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + typescript: + optional: true + dependencies: + '@vue/devtools-api': registry.npmmirror.com/@vue/devtools-api/6.5.0 + vue: registry.npmmirror.com/vue/3.3.2 + vue-demi: registry.npmmirror.com/vue-demi/0.14.5_vue@3.3.2 + dev: false + + registry.npmmirror.com/pinia/2.1.3_vue@3.3.2: + resolution: {integrity: sha512-XNA/z/ye4P5rU1pieVmh0g/hSuDO98/a5UC8oSP0DNdvt6YtetJNHTrXwpwsQuflkGT34qKxAEcp7lSxXNjf/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pinia/-/pinia-2.1.3.tgz} + id: registry.npmmirror.com/pinia/2.1.3 + name: pinia + version: 2.1.3 + peerDependencies: + '@vue/composition-api': ^1.4.0 + typescript: '>=4.4.4' + vue: ^2.6.14 || ^3.3.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + typescript: + optional: true + dependencies: + '@vue/devtools-api': registry.npmmirror.com/@vue/devtools-api/6.5.0 + vue: registry.npmmirror.com/vue/3.3.2 + vue-demi: registry.npmmirror.com/vue-demi/0.14.5_vue@3.3.2 + dev: false + registry.npmmirror.com/pixelmatch/4.0.2: resolution: {integrity: sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pixelmatch/-/pixelmatch-4.0.2.tgz} name: pixelmatch @@ -4776,6 +4963,13 @@ packages: ipaddr.js: registry.npmmirror.com/ipaddr.js/1.9.1 dev: true + registry.npmmirror.com/punycode/2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/punycode/-/punycode-2.3.0.tgz} + name: punycode + version: 2.3.0 + engines: {node: '>=6'} + dev: true + registry.npmmirror.com/qrcode-reader/1.0.4: resolution: {integrity: sha512-rRjALGNh9zVqvweg1j5OKIQKNsw3bLC+7qwlnead5K/9cb1cEIAGkwikt/09U0K+2IDWGD9CC6SP7tHAjUeqvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/qrcode-reader/-/qrcode-reader-1.0.4.tgz} name: qrcode-reader @@ -4936,6 +5130,33 @@ packages: version: 2.1.2 dev: true + registry.npmmirror.com/sass-loader/10.4.1_sass@1.59.3: + resolution: {integrity: sha512-aX/iJZTTpNUNx/OSYzo2KsjIUQHqvWsAhhUijFjAPdZTEhstjZI9zTNvkTTwsx+uNUJqUwOw5gacxQMx4hJxGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sass-loader/-/sass-loader-10.4.1.tgz} + id: registry.npmmirror.com/sass-loader/10.4.1 + name: sass-loader + version: 10.4.1 + engines: {node: '>= 10.13.0'} + peerDependencies: + fibers: '>= 3.1.0' + node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + sass: ^1.3.0 + webpack: ^4.36.0 || ^5.0.0 + peerDependenciesMeta: + fibers: + optional: true + node-sass: + optional: true + sass: + optional: true + dependencies: + klona: registry.npmmirror.com/klona/2.0.6 + loader-utils: registry.npmmirror.com/loader-utils/2.0.4 + neo-async: registry.npmmirror.com/neo-async/2.6.2 + sass: registry.npmmirror.com/sass/1.59.3 + schema-utils: registry.npmmirror.com/schema-utils/3.1.2 + semver: registry.npmmirror.com/semver/7.5.1 + dev: true + registry.npmmirror.com/sass/1.59.3: resolution: {integrity: sha512-QCq98N3hX1jfTCoUAsF3eyGuXLsY7BCnCEg9qAact94Yc21npG2/mVOqoDvE0fCbWDqiM4WlcJQla0gWG2YlxQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sass/-/sass-1.59.3.tgz} name: sass @@ -4953,12 +5174,39 @@ packages: version: 1.2.4 dev: false + registry.npmmirror.com/schema-utils/3.1.2: + resolution: {integrity: sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.2.tgz} + name: schema-utils + version: 3.1.2 + engines: {node: '>= 10.13.0'} + dependencies: + '@types/json-schema': registry.npmmirror.com/@types/json-schema/7.0.11 + ajv: registry.npmmirror.com/ajv/6.12.6 + ajv-keywords: registry.npmmirror.com/ajv-keywords/3.5.2_ajv@6.12.6 + dev: true + + registry.npmmirror.com/select/1.1.2: + resolution: {integrity: sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/select/-/select-1.1.2.tgz} + name: select + version: 1.1.2 + dev: false + registry.npmmirror.com/semver/6.3.0: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz} name: semver version: 6.3.0 hasBin: true + registry.npmmirror.com/semver/7.5.1: + resolution: {integrity: sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/semver/-/semver-7.5.1.tgz} + name: semver + version: 7.5.1 + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: registry.npmmirror.com/lru-cache/6.0.0 + dev: true + registry.npmmirror.com/send/0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/send/-/send-0.18.0.tgz} name: send @@ -5131,6 +5379,12 @@ packages: version: 1.7.1 dev: false + registry.npmmirror.com/tiny-emitter/2.1.0: + resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz} + name: tiny-emitter + version: 2.1.0 + dev: false + registry.npmmirror.com/tinycolor2/1.6.0: resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tinycolor2/-/tinycolor2-1.6.0.tgz} name: tinycolor2 @@ -5231,6 +5485,14 @@ packages: escalade: registry.npmmirror.com/escalade/3.1.1 picocolors: registry.npmmirror.com/picocolors/1.0.0 + registry.npmmirror.com/uri-js/4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz} + name: uri-js + version: 4.4.1 + dependencies: + punycode: registry.npmmirror.com/punycode/2.3.0 + dev: true + registry.npmmirror.com/utif/2.0.1: resolution: {integrity: sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/utif/-/utif-2.0.1.tgz} name: utif @@ -5251,6 +5513,16 @@ packages: engines: {node: '>= 0.4.0'} dev: true + registry.npmmirror.com/uview-plus/3.1.30: + resolution: {integrity: sha512-Q/00hopGZH/l6AFMzRdIrrQJtYK56F0PLWSMYUZhdm2nM9ZWRGMLeKQo3dhQ9Qo69YQagEsRFrD4OmMqfCe54Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/uview-plus/-/uview-plus-3.1.30.tgz} + name: uview-plus + version: 3.1.30 + engines: {HBuilderX: ^3.1.0} + dependencies: + clipboard: registry.npmmirror.com/clipboard/2.0.11 + dayjs: registry.npmmirror.com/dayjs/1.11.7 + dev: false + registry.npmmirror.com/vary/1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz} name: vary @@ -5294,6 +5566,24 @@ packages: optionalDependencies: fsevents: registry.npmmirror.com/fsevents/2.3.2 + registry.npmmirror.com/vue-demi/0.14.5_vue@3.3.2: + resolution: {integrity: sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.5.tgz} + id: registry.npmmirror.com/vue-demi/0.14.5 + name: vue-demi + version: 0.14.5 + 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.3.2 + dev: false + registry.npmmirror.com/vue-i18n/9.2.2_vue@3.3.2: resolution: {integrity: sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.2.2.tgz} id: registry.npmmirror.com/vue-i18n/9.2.2 @@ -5415,6 +5705,12 @@ packages: name: yallist version: 3.1.1 + registry.npmmirror.com/yallist/4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz} + name: yallist + version: 4.0.0 + dev: true + registry.npmmirror.com/yaml/1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz} name: yaml diff --git a/src/App.vue b/src/App.vue index 52dd89d..d70d466 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,17 +1,21 @@ + - + \ No newline at end of file diff --git a/src/main.js b/src/main.js index 96432c8..90c296e 100644 --- a/src/main.js +++ b/src/main.js @@ -3,14 +3,20 @@ import { } from "vue"; import App from "./App.vue"; import {useEnv} from "./env.js" - +import uviewPlus from 'uview-plus' +import {wPlugin} from './w-components' +import {store} from './store' export function createApp() { const app = createSSRApp(App); - app.use(useEnv) + app + .use(store) + .use(useEnv) + .use(uviewPlus) + .use(wPlugin) return { - app, + app }; } diff --git a/src/pages.json b/src/pages.json index 5ed1cb7..07b9de7 100644 --- a/src/pages.json +++ b/src/pages.json @@ -1,20 +1,25 @@ { "easycom": { "custom": { - "^w-(.*)": "@/w-components/w-$1/w-$1.vue" + "^w-(.*)": "@/w-components/components/w-$1/w-$1.vue", + "^u-(.*)": "uview-plus/components/u-$1/u-$1.vue" } }, - "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages - { - "path": "pages/index/index" - } - ], + "pages": [{ + "path": "pages/index/index" + }], "subPackages": [{ "root": "pages/demo", "pages": [{ + "path": "index" + }, { + "path": "demo0" + }, { "path": "demo1" + }, { + "path": "demo2" }] }], "preloadRule": { @@ -25,9 +30,6 @@ }, "globalStyle": { "navigationStyle": "custom", - "navigationBarTextStyle": "black", - "navigationBarTitleText": "", - "navigationBarBackgroundColor": "#F8F8F8", "backgroundColor": "#F8F8F8" }, "condition": { @@ -37,6 +39,8 @@ "name": "", //模式名称 "path": "pages/demo/demo1", //启动页面,必选 "query": "" //启动参数,在页面的onLoad函数里面得到 + },{ + "path": "pages/demo/index" }] } diff --git a/src/pages/demo/demo0.vue b/src/pages/demo/demo0.vue new file mode 100644 index 0000000..8dd937d --- /dev/null +++ b/src/pages/demo/demo0.vue @@ -0,0 +1,97 @@ + + + + + \ No newline at end of file diff --git a/src/pages/demo/demo1.vue b/src/pages/demo/demo1.vue index 98a24c3..160f3e2 100644 --- a/src/pages/demo/demo1.vue +++ b/src/pages/demo/demo1.vue @@ -1,20 +1,25 @@ diff --git a/src/pages/demo/demo2.vue b/src/pages/demo/demo2.vue new file mode 100644 index 0000000..a4c2878 --- /dev/null +++ b/src/pages/demo/demo2.vue @@ -0,0 +1,84 @@ + + + + + \ No newline at end of file diff --git a/src/pages/demo/index.vue b/src/pages/demo/index.vue new file mode 100644 index 0000000..ccb511a --- /dev/null +++ b/src/pages/demo/index.vue @@ -0,0 +1,29 @@ + + + + + \ No newline at end of file diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue index 30fb0ad..eaf00fb 100644 --- a/src/pages/index/index.vue +++ b/src/pages/index/index.vue @@ -2,15 +2,16 @@ {{$env.title}} - demo + demo - + \ No newline at end of file diff --git a/src/w-components/w-loader/w-loader.vue b/src/w-components/components/w-loader/w-loader.vue similarity index 88% rename from src/w-components/w-loader/w-loader.vue rename to src/w-components/components/w-loader/w-loader.vue index 9838b15..f26d803 100644 --- a/src/w-components/w-loader/w-loader.vue +++ b/src/w-components/components/w-loader/w-loader.vue @@ -13,7 +13,7 @@ + + \ No newline at end of file diff --git a/src/w-components/components/w-safe-area/README.md b/src/w-components/components/w-safe-area/README.md new file mode 100644 index 0000000..993ba3e --- /dev/null +++ b/src/w-components/components/w-safe-area/README.md @@ -0,0 +1,10 @@ +# w-safe-var 安全区域 +> 提供--w-top,--w-right,--w-bottom,--w-left四个CSS变量,方便子孙元素使用 + +可以传入的css变量: +- `--position`:定位方式,默认:flex; +- `--top`: 安全区域内的top偏移值,默认:0; +- `--right`: 安全区域内的right偏移值,默认:0; +- `--bottom`: 安全区域内的bottom偏移值,默认:0; +- `--left`: 安全区域内的left偏移值,默认:0; +- `--z-index`: z轴坐标,默认: --w-z-index - 1; \ No newline at end of file diff --git a/src/w-components/components/w-safe-area/w-safe-area.vue b/src/w-components/components/w-safe-area/w-safe-area.vue new file mode 100644 index 0000000..cb81e1a --- /dev/null +++ b/src/w-components/components/w-safe-area/w-safe-area.vue @@ -0,0 +1,18 @@ + + + \ No newline at end of file diff --git a/src/w-components/components/w-safe-var/README.md b/src/w-components/components/w-safe-var/README.md new file mode 100644 index 0000000..cbe0754 --- /dev/null +++ b/src/w-components/components/w-safe-var/README.md @@ -0,0 +1,2 @@ +# w-safe-var 安全区域变量 +> 提供--w-top,--w-right,--w-bottom,--w-left四个CSS变量,方便子孙元素使用 \ No newline at end of file diff --git a/src/w-components/components/w-safe-var/w-safe-var.vue b/src/w-components/components/w-safe-var/w-safe-var.vue new file mode 100644 index 0000000..7a5d875 --- /dev/null +++ b/src/w-components/components/w-safe-var/w-safe-var.vue @@ -0,0 +1,11 @@ + + \ No newline at end of file diff --git a/src/w-components/index.js b/src/w-components/index.js new file mode 100644 index 0000000..b989ba7 --- /dev/null +++ b/src/w-components/index.js @@ -0,0 +1,32 @@ +import { + util +} from './modules/util.js' +import prototypes from './modules/prototypes.js' +import { + PageAnimationTypeIn, + PageAnimationTypeOut +} from './modules/PageAnimationType.js' + +const $w = { + uni, + ...uni.getSystemInfoSync().safeAreaInsets, + ...util, +}; + + + + +const wPlugin = { + install(Vue){ + prototypes(); + Vue.config.globalProperties.$w = $w; + } +} + +export { + util, + $w, + wPlugin, + PageAnimationTypeIn, + PageAnimationTypeOut +} \ No newline at end of file diff --git a/src/w-components/index.scss b/src/w-components/index.scss new file mode 100644 index 0000000..bdaaf4b --- /dev/null +++ b/src/w-components/index.scss @@ -0,0 +1,47 @@ +.w-lines { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.w-flex { + @include flex; + &-column { + @include flex(column); + } +} + +@mixin flex($d: row) { + display: flex; + justify-content: center; + align-items: center; + flex-direction: $d; +} +page,view { + box-sizing: border-box; + padding: 0; + margin: 0; + border: none; + outline: none; +} +page,.w-var { + +--w-step: #{$w-step}; + +--w-z-index: #{$w-z-index}; + +--w-z-index-top: #{$w-z-index-top}; + + +@include varColor($colors,$w-step); +} + +:root { + --w-step: #{$w-step}; + + --w-z-index: #{$w-z-index}; + + --w-z-index-top: #{$w-z-index-top}; + + + @include varColor($colors,$w-step); +} \ No newline at end of file diff --git a/src/w-components/modules/PageAnimationType.js b/src/w-components/modules/PageAnimationType.js new file mode 100644 index 0000000..e253dff --- /dev/null +++ b/src/w-components/modules/PageAnimationType.js @@ -0,0 +1,2 @@ +export const PageAnimationTypeIn = ["slide-in-right","slide-in-left","slide-in-top","slide-in-bottom","pop-in","fade-in","zoom-out","zoom-fade-out","none"] +export const PageAnimationTypeOut = ["slide-out-right","slide-out-left","slide-out-top","slide-out-bottom","pop-out","fade-out","zoom-in","zoom-fade-in","none"] \ No newline at end of file diff --git a/src/w-components/modules/prototypes.js b/src/w-components/modules/prototypes.js new file mode 100644 index 0000000..42ad354 --- /dev/null +++ b/src/w-components/modules/prototypes.js @@ -0,0 +1,136 @@ +/** + * 原型扩展库 + */ +export default function() { + + /** + * 将日期对象格式化成字符串 + * @param {String} format 格式支持:yyyy-MM-dd HH:mm:ss.S 默认:yyyy-MM-dd + */ + Date.prototype.format = function(format) { + format = format == null ? "yyyy-MM-dd" : format; + let o = { + "M+": this.getMonth() + 1, //month + "d+": this.getDate(), //day + "H+": this.getHours(), //hour + "m+": this.getMinutes(), //minute + "s+": this.getSeconds(), //second + "q+": Math.floor((this.getMonth() + 3) / 3), //quarter + "S": this.getMilliseconds() //millisecond + } + + if (/(y+)/.test(format)) + format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); + for (var k in o) + if (new RegExp("(" + k + ")").test(format)) + format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]) + .length)); + return format; + } + + Number.prototype.toDate = function() { + return new Date(this); + } + + Number.prototype.toChina = function() { + let number = this.toString(); + if (number.match(/\D/) || number.length >= 14) { + throw new Error("只能是正整数,且不能超过14位"); + } + let zhArray = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十']; // 数字对应中文 + let baseArray = ['', '十', '百', '千', '万', '十', '百', '千', '亿', '十', '百', '千', '万']; //进位填充字符,第一位是 个位,可省略 + let string = String(number).split('').reverse().map((item, index) => { // 把数字切割成数组并倒序排列,然后进行遍历转成中文 + // 如果当前位为0,直接输出数字, 否则输出 数字 + 进位填充字符 + item = Number(item) == 0 ? zhArray[Number(item)] : zhArray[Number(item)] + baseArray[index]; + return item; + }).reverse().join(''); // 倒叙回来数组,拼接成字符串 + string = string.replace(/^一十/, '十'); // 如果以 一十 开头,可省略一 + string = string.replace(/零+/, '零'); // 如果有多位相邻的零,只写一个即可 + return string; + } + /** + * 将字符串格式化成日期对象 + * @param {String} format 格式支持:yyyy-MM-dd HH:mm:ss.S 默认:yyyy-MM-dd + */ + String.prototype.toDate = function(format) { + if (/^\d+$/.test(this)) { + return new Date(Number(this)); + } + format = format == null ? "yyyy-MM-dd" : format; + var d = new Date(); + var o = { + "y+": "d.setYear(val)", //year + "M+": "d.setMonth(val-1)", //month + "d+": "d.setDate(val)", //day + "H+": "d.setHours(val)", //hour + "m+": "d.setMinutes(val)", //minute + "s+": "d.setSeconds(val)", //second + "S+": "d.setMilliSeconds(val)" //millisecond + } + var regx = format + for (var k in o) { + if (new RegExp("(" + k + ")").test(format)) + regx = regx.replace(new RegExp(k), "[0-9]+"); + } + + if (!new RegExp("^" + regx + "$").test(this)) { + throw new Error("日期格式不正确:" + format); + } + + for (var k in o) { + if (new RegExp("(" + k + ")").test(format)) { + var regx = format; + for (var temp in o) { + if (temp == k) { + regx = regx.replace(new RegExp(temp), "([0-9]+)"); + } else { + regx = regx.replace(new RegExp(temp), "[0-9]+"); + } + + } + var val = Number(this.replace(new RegExp("^" + regx + "$"), "$1")); + try { + + if (k == "S+") { + d.setMilliseconds(val); + } else { + eval(o[k].replace("val", val)); + } + } catch (e) { + console.debug(e); + } + } else { + try { + var val = k == "M+" ? 1 : 0; + if (k == "S+") { + d.setMilliseconds(val); + } else { + eval(o[k].replace("val", val)); + } + } catch (e) { + console.debug(e); + } + } + } + return d; + } + + String.prototype.toTime = function() { + if(!/^(\d{2,}):(\d{2}):(\d{2})$/.test(this)){ + throw new Error("含时分秒的字符串需符合格式:(\\d{2,}):(\\d{2}):(\\d{2})"); + } + let ts = this.split(":"); + return parseInt(ts[0])*3600+parseInt(ts[1])*60+parseInt(ts[2]); + // return eval(this.replace(/^(\d{2}):(\d{2}):(\d{2})$/, "$1*3600+$2*60+$3")); + } + + Number.prototype.toTime = function() { + let ss = this % 60; + let temp = (this - ss) / 60; + let mm = temp % 60; + let hh = (temp - mm) / 60; + + return `${hh.toString().padStart(2,"0")}:${mm.toString().padStart(2,"0")}:${ss.toString().padStart(2,"0")}` + } + +}; \ No newline at end of file diff --git a/src/w-components/modules/util.js b/src/w-components/modules/util.js new file mode 100644 index 0000000..3d60ae0 --- /dev/null +++ b/src/w-components/modules/util.js @@ -0,0 +1,41 @@ +import { + PageAnimationTypeIn, + PageAnimationTypeOut +} from "./PageAnimationType" +export const util = { + back(delta = 1, animationType = 'random', animationDuration = 300) { + if (!PageAnimationTypeOut.includes(animationType)) { + animationType = PageAnimationTypeOut[util.random(0, PageAnimationTypeOut.length)]; + } + return new Promise((success, fail) => { + uni.navigateBack({ + delta, + animationType, + animationDuration, + success, + fail + }); + }); + }, + to(url = "", events = {}, animationType = 'random', animationDuration = 300) { + if (!PageAnimationTypeIn.includes(animationType)) { + animationType = PageAnimationTypeIn[util.random(0, PageAnimationTypeIn.length)]; + } + return new Promise((success, fail) => { + uni.navigateTo({ + url, + events, + animationType, + animationDuration, + success, + fail + }); + }); + }, + random(min = 0, max = 10) { + return Math.floor(Math.random() * (max - min + 1)) + min; + }, + px(num=0) { + return num+"px"; + } +}; \ No newline at end of file diff --git a/src/w-components/props/index.js b/src/w-components/props/index.js new file mode 100644 index 0000000..42212da --- /dev/null +++ b/src/w-components/props/index.js @@ -0,0 +1,13 @@ +export const customStyle = { + customStyle: { + type: Object, + default: {} + } +} + +export const customClass = { + customClass: { + type: Object, + default: {} + } +} \ No newline at end of file diff --git a/src/w-components/theme.scss b/src/w-components/theme.scss new file mode 100644 index 0000000..5dfa2a5 --- /dev/null +++ b/src/w-components/theme.scss @@ -0,0 +1,59 @@ +/** + 说明: + 1. 在页面中建议使用css变量,原因有2: + 1.1. 主题更换/暗黑主题,可以改变父(根)标签的css变量实现 + 1.2. 自定义组件设置css变量改变组件式样,这点在微信小程序及virtualHost下注意 + 2. $变量对应css变量:$w-z-index -> --w-z-index + 3. 颜色变量说明,$colors中有main的键,对应的变量有 + 3.1. --w-main: 颜色值 + 3.2. --w-main-light: 颜色值 亮度 + $w-step + 3.3. --w-main-light-1: 颜色值 亮度 + $w-step * 2 + 3.4. --w-main-light-2: 颜色值 亮度 + $w-step * 3 + 3.5. --w-main-dark: 颜色值 亮度 - $w-step + 3.6. --w-main-dark-1: 颜色值 亮度 - $w-step * 2 + 3.7. --w-main-dark-2: 颜色值 亮度 - $w-step * 3 + 3.8. --w-main-h: 颜色色相 + 3.9. --w-main-s: 颜色饱和度 + 3.10. --w-main-l: 颜色亮度 + 3.11. $w-step对应--w-step,亮度变化基础值 + 4.如果需要更多的颜色: + 4.1. 使用css的hsl函数构造颜色: hsl(var(--w-main-h),var(--w-main-s),calc(var(--w-main-l) + 50%)) + 4.2. 使用css的hsla函数构造透明度颜色: hsl(var(--w-main-h),var(--w-main-s),var(--w-main-l),.5) + 4.3. 使用css函数构造颜色,比较scss函数构造颜色在写法上显得麻烦一些,尽量使用预定义的颜色 + 4.4. 构造颜色时,色相\饱和度\亮度\透明度都可以自由设置,但建议只修改亮度和透明度 + */ +//颜色亮度变化值 +$w-step: 10; +// 普通z轴基础坐标 +$w-z-index:100; +// 顶层z轴基础坐标 +$w-z-index-top:99999; + +$colors: +( + "main": #2564a1, + "text": #333, + "bg": #F8F8F8, + "primary": #3c9cff, + "warn": #eaa339, + "success": #5ac725, + "info": #999, + "error": #f56c6c +); + + + +@mixin varColor($map,$step) { + @each $name , $value in $map { + --w-#{$name}:#{$value}; + --w-#{$name}-h:#{hue($value)}; + --w-#{$name}-s:#{saturation($value)}; + --w-#{$name}-l:#{lightness($value)}; + --w-#{$name}-light:#{hsl(hue($value),saturation($value),lightness($value) + $step)}; + --w-#{$name}-light-1:#{hsl(hue($value),saturation($value),lightness($value) + ($step * 2))}; + --w-#{$name}-light-2:#{hsl(hue($value),saturation($value),lightness($value) + ($step * 3))}; + --w-#{$name}-dark:#{hsl(hue($value),saturation($value),lightness($value) - $step)}; + --w-#{$name}-dark-1:#{hsl(hue($value),saturation($value),lightness($value) - ($step * 2))}; + --w-#{$name}-dark-2:#{hsl(hue($value),saturation($value),lightness($value) - ($step * 3))}; + } +} \ No newline at end of file diff --git a/src/w-components/w-footer/w-footer.vue b/src/w-components/w-footer/w-footer.vue deleted file mode 100644 index da5125e..0000000 --- a/src/w-components/w-footer/w-footer.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - - - \ No newline at end of file