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 @@ + + + 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" >