diff --git a/web/src/App.vue b/web/src/App.vue
index 641e695..b00eb59 100644
--- a/web/src/App.vue
+++ b/web/src/App.vue
@@ -45,7 +45,7 @@ function initStore(store) {
export default {
components: {
TopToolbar,
- BottomNav
+ BottomNav,
},
created() {
diff --git a/web/src/components/ProxyList.vue b/web/src/components/ProxyList.vue
index db5d8ca..aee41c4 100644
--- a/web/src/components/ProxyList.vue
+++ b/web/src/components/ProxyList.vue
@@ -68,6 +68,14 @@
>
{{ info.name }}
+
+
+ content_copy
+
{
- const {data} = resp;
- if (data.indexOf("\n") !== -1)
+ let {data} = resp;
+ if (data instanceof String && data.indexOf("\n") !== -1)
this.proxies = data.split("\n").map(p => JSON.parse(p));
else
this.proxies = [data];
@@ -126,7 +135,7 @@ export default {
await axios.get(`${this.url}?target=URI`).then(resp => {
const {data} = resp;
- if (data.indexOf("\n") !== -1)
+ if (data instanceof String && data.indexOf("\n") !== -1)
this.uris = data.split("\n");
else
this.uris = [data];
@@ -150,8 +159,14 @@ export default {
this.dialog = true
},
- async showQRCode(idx) {
+ copyLink() {
+ this.$clipboard(this.link);
+ this.$store.commit("SET_SUCCESS_MESSAGE", `节点链接已复制到剪贴板!`);
+ },
+
+ showQRCode(idx) {
this.qr = this.uris[idx];
+ this.link = this.uris[idx];
this.info.name = this.proxies[idx].name;
this.showQR = true;
}
diff --git a/web/src/components/SpeedDial.vue b/web/src/components/SpeedDial.vue
new file mode 100644
index 0000000..66a2e14
--- /dev/null
+++ b/web/src/components/SpeedDial.vue
@@ -0,0 +1,48 @@
+
+
+
+
+
+ mdi-close
+ apps
+
+
+
+ mdi-plus
+
+
+ create_new_folder
+
+
+
+
+
+
diff --git a/web/src/router/index.js b/web/src/router/index.js
index 8ae2627..d169306 100644
--- a/web/src/router/index.js
+++ b/web/src/router/index.js
@@ -48,7 +48,6 @@ const router = new Router({
router.beforeEach((to, from, next) => {
const {meta} = to;
- // document.title = to.meta.title
store.commit("SET_NAV_TITLE", meta.title);
next();
})
diff --git a/web/src/utils/index.js b/web/src/utils/index.js
index 7e14c42..16fd81a 100644
--- a/web/src/utils/index.js
+++ b/web/src/utils/index.js
@@ -1,4 +1,5 @@
import Axios from 'axios';
+import Vue from 'vue';
import store from "@/store";
import {BACKEND_BASE} from "@/config";
@@ -7,6 +8,8 @@ export const axios = Axios.create({
timeout: 10000
});
+export const EventBus = new Vue();
+
export function isEmptyObj(obj) {
return Object.keys(obj).length === 0;
}
diff --git a/web/src/views/Subscription.vue b/web/src/views/Subscription.vue
index e020dcf..5726bbe 100644
--- a/web/src/views/Subscription.vue
+++ b/web/src/views/Subscription.vue
@@ -98,11 +98,10 @@
v-if="!showProxyList"
v-model="opened"
direction="top"
- right
+ left
fab
absolute
bottom
- small
transition="slide-y-reverse-transition"
>