diff --git a/package-lock.json b/package-lock.json
index 4aaccad4..8123def4 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -4419,6 +4419,26 @@
"flat-cache": "^2.0.1"
}
},
+ "flat-cache": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
+ "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
+ "dev": true,
+ "requires": {
+ "chardet": "^0.7.0",
+ "iconv-lite": "^0.4.24",
+ "tmp": "^0.0.33"
+ }
+ },
+ "file-entry-cache": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
+ "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
+ "dev": true,
+ "requires": {
+ "flat-cache": "^2.0.1"
+ }
+ },
"flat-cache": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
@@ -8976,6 +8996,11 @@
"integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
"dev": true
},
+ "qrcode.vue": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/qrcode.vue/-/qrcode.vue-1.6.1.tgz",
+ "integrity": "sha512-Qo0zpAQVTdRZsmquppZShMQOaxg/JhzTsoQtlIxTTgwHr2oVg4mhCah41MtBYi67O00D342dzgU4YyECSK04FA=="
+ },
"qs": {
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
diff --git a/package.json b/package.json
index 4181860a..bc236ce4 100644
--- a/package.json
+++ b/package.json
@@ -17,6 +17,7 @@
"moment": "^2.24.0",
"normalize.css": "^8.0.1",
"noty": "^3.2.0-beta",
+ "qrcode.vue": "^1.6.1",
"vue": "^2.6.9",
"vue-i18n": "^8.9.0",
"vue-router": "^3.0.2",
diff --git a/src/views/Share.vue b/src/views/Share.vue
index 497ece4f..b8219570 100644
--- a/src/views/Share.vue
+++ b/src/views/Share.vue
@@ -14,6 +14,7 @@