From d7984bf05c24649dded8079e6419ed2b15802424 Mon Sep 17 00:00:00 2001
From: jlzhou <12020042@qq.com>
Date: Fri, 19 May 2023 17:55:51 +0800
Subject: [PATCH] =?UTF-8?q?demo=E5=AE=8C=E6=88=90=E6=95=B0=E6=8D=AE?=
=?UTF-8?q?=E4=BB=93=E5=BA=93,=E8=87=AA=E5=AE=9A=E4=B9=89=E5=85=A8?=
=?UTF-8?q?=E5=B1=80=E5=8F=98=E9=87=8F,=E8=87=AA=E5=AE=9A=E4=B9=89?=
=?UTF-8?q?=E7=8E=AF=E5=A2=83=E5=8F=98=E9=87=8F,demo=E9=A6=96=E9=A1=B5,?=
=?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E7=BB=84=E4=BB=B6w-footer,w-loader,?=
=?UTF-8?q?w-navbar,w-safe-area,w-safe-var?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
package.json | 10 +-
pnpm-lock.yaml | 298 +++++++++++++++++-
src/App.vue | 32 +-
src/main.js | 12 +-
src/pages.json | 22 +-
src/pages/demo/demo0.vue | 97 ++++++
src/pages/demo/demo1.vue | 21 +-
src/pages/demo/demo2.vue | 84 +++++
src/pages/demo/index.vue | 29 ++
src/pages/index/index.vue | 11 +-
src/store/index.js | 10 +
src/store/modules/auth.js | 36 +++
src/store/modules/demo1.js | 30 ++
src/store/modules/demo2.js | 32 ++
src/uni.scss | 2 +
.../components/w-footer/w-footer.vue | 26 ++
.../{ => components}/w-loader/w-loader.vue | 16 +-
.../components/w-navbar/w-navbar.vue | 130 ++++++++
.../components/w-safe-area/README.md | 10 +
.../components/w-safe-area/w-safe-area.vue | 18 ++
.../components/w-safe-var/README.md | 2 +
.../components/w-safe-var/w-safe-var.vue | 11 +
src/w-components/index.js | 32 ++
src/w-components/index.scss | 47 +++
src/w-components/modules/PageAnimationType.js | 2 +
src/w-components/modules/prototypes.js | 136 ++++++++
src/w-components/modules/util.js | 41 +++
src/w-components/props/index.js | 13 +
src/w-components/theme.scss | 59 ++++
src/w-components/w-footer/w-footer.vue | 38 ---
30 files changed, 1219 insertions(+), 88 deletions(-)
create mode 100644 src/pages/demo/demo0.vue
create mode 100644 src/pages/demo/demo2.vue
create mode 100644 src/pages/demo/index.vue
create mode 100644 src/store/index.js
create mode 100644 src/store/modules/auth.js
create mode 100644 src/store/modules/demo1.js
create mode 100644 src/store/modules/demo2.js
create mode 100644 src/w-components/components/w-footer/w-footer.vue
rename src/w-components/{ => components}/w-loader/w-loader.vue (88%)
create mode 100644 src/w-components/components/w-navbar/w-navbar.vue
create mode 100644 src/w-components/components/w-safe-area/README.md
create mode 100644 src/w-components/components/w-safe-area/w-safe-area.vue
create mode 100644 src/w-components/components/w-safe-var/README.md
create mode 100644 src/w-components/components/w-safe-var/w-safe-var.vue
create mode 100644 src/w-components/index.js
create mode 100644 src/w-components/index.scss
create mode 100644 src/w-components/modules/PageAnimationType.js
create mode 100644 src/w-components/modules/prototypes.js
create mode 100644 src/w-components/modules/util.js
create mode 100644 src/w-components/props/index.js
create mode 100644 src/w-components/theme.scss
delete mode 100644 src/w-components/w-footer/w-footer.vue
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 @@
+
+
+
+
+ 自定义全局变量$w,在模板和js中可以直接使用
+ 安全区域:
+
+ $w.left:{{$w.left}} |
+ $w.top:{{$w.top}} |
+ $w.right:{{$w.right}} |
+ $w.bottom:{{$w.bottom}}
+
+
+ 路由:
+
+ $w.back()
+ $w.back(2)
+ $w.to('/pages/demo/demo1')
+
+
+ uni:
+
+ $w.uni:方便在魔板中直接调用uni相关方法
+
+
+ prototype(原生方法):
+
+ Date.prototype.format
+ d=new Date()
+ d.format() : {{d.format()}}
+ d.format('yyyy年MM月dd日HH时mm分ss秒S毫秒') : {{d.format('yyyy年MM月dd日HH时mm分ss秒S毫秒')}}
+
+ String.prototype.toDate
+ '2011-11-12'.toDate() : {{'2011-11-12'.toDate()}}
+ '2011-11-12 17:59'.toDate('yyyy-MM-dd HH:mm') : {{'2011-11-12 17:59'.toDate('yyyy-MM-dd HH:mm')}}
+
+ Number.prototype.toDate
+ 结果.format("yyyy-MM-dd HH:mm")
+ Number(0).toDate() : {{Number(0).toDate().format("yyyy-MM-dd HH:mm")}}
+ d.getTime().toDate() : {{d.getTime().toDate().format("yyyy-MM-dd HH:mm")}}
+
+ Number.prototype.toChina
+ Number(0).toChina() : {{Number(0).toChina()}}
+ Number(10).toChina() : {{Number(10).toChina()}}
+ Number(12).toChina() : {{Number(12).toChina()}}
+ Number(123).toChina() : {{Number(123).toChina()}}
+ Number(120).toChina() : {{Number(120).toChina()}}
+ Number(1234567890123).toChina() : {{Number(1234567890123).toChina()}}
+
+ Number.prototype.toTime
+ Number(0).toTime() : {{Number(0).toTime()}}
+ Number(10).toTime() : {{Number(10).toTime()}}
+ Number(100).toTime() : {{Number(100).toTime()}}
+ Number(1000).toTime() : {{Number(1000).toTime()}}
+ Number(10000).toTime() : {{Number(10000).toTime()}}
+
+ String.prototype.toTime
+ '00:00:00'.toTime() : {{'00:00:00'.toTime()}}
+ '01:02:03'.toTime() : {{'01:02:03'.toTime()}}
+
+
+
+
+
+
+
+
\ 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 @@
-
- js中获取环境变量:{{ title }}
-
-
- 模板中直接使用环境变量:{{ $env.title }}
-
-
- {{ $env }}
+
+
+
+ js中获取环境变量:{{ title }}
+
+
+ 模板中直接使用环境变量:{{ $env.title }}
+
+
+ {{ $env }}
+
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 @@
+
+
+
+
+ demo1Store非持久化仓库示例数据:
+
+ demo1Store.name : {{demo1Store.name}}
+ demo1Store.getName : {{demo1Store.getName}}
+ demo1Store.sex : {{demo1Store.sex}}
+ demo1Store.getSex : {{demo1Store.getSex}}
+ demo1Store.age : {{demo1Store.age}}
+
+
+
+ 读取属性name
+
+
+ 读取计算属性getName
+
+
+ 设置属性name='张三'
+
+
+ 执行方法setName('李四')
+
+
+ 执行$reset()重置
+
+
+
+
+
+ demo2Store持久化仓库示例数据:
+
+ demo2Store.name : {{demo2Store.name}}
+ demo2Store.getName : {{demo2Store.getName}}
+ demo2Store.sex : {{demo2Store.sex}}
+ demo2Store.getSex : {{demo2Store.getSex}}
+ demo2Store.age : {{demo2Store.age}}
+
+
+
+ 读取属性name
+
+
+ 读取计算属性getName
+
+
+ 设置属性name='张三'
+
+
+ 执行方法setName('李四')
+
+
+ 执行$reset()重置
+
+
+ 清空缓存(不建议)
+
+
+
+
+
+
+
+
+
\ 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