From ca98bc278ce0b721bed304194e339166664dba7a Mon Sep 17 00:00:00 2001 From: "DESKTOP-6C3NK6N\\WXS" <815034831@qq.com> Date: Mon, 29 Jul 2024 17:15:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=84=8F=E8=A7=81=E5=8F=8D=E9=A6=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/feedBack/fun.js | 24 ++ src/components/feedBack/index.js | 7 + src/components/feedBack/index.vue | 203 +++++++++++ src/components/feedBack/uploadImage.vue | 223 ++++++++++++ src/components/feedBackTable/index.vue | 0 src/main.js | 4 +- src/views/feedBack/index.vue | 329 ++++++++++++++++++ .../trials-layout/components/feedBack.vue | 21 +- src/views/trials/trials-layout/index.vue | 23 +- 9 files changed, 818 insertions(+), 16 deletions(-) create mode 100644 src/components/feedBack/fun.js create mode 100644 src/components/feedBack/index.js create mode 100644 src/components/feedBack/index.vue create mode 100644 src/components/feedBack/uploadImage.vue create mode 100644 src/components/feedBackTable/index.vue create mode 100644 src/views/feedBack/index.vue diff --git a/src/components/feedBack/fun.js b/src/components/feedBack/fun.js new file mode 100644 index 00000000..ddaa9b9c --- /dev/null +++ b/src/components/feedBack/fun.js @@ -0,0 +1,24 @@ +import Vue from "vue"; +import FEEDBACKCOMP from "./index.vue"; +const FBConstructor = Vue.extend(FEEDBACKCOMP); + +const FB = options => { + const { cancelBack } = options; + // if (!UserId) throw `UserId is requred.but ${UserId}` + const id = `FB${new Date().getTime()}`; + const instance = new FBConstructor(); + instance.id = id; + instance.vm = instance.$mount(); + if (instance.vm.visible) return; + document.body.appendChild(instance.vm.$el); + instance.vm.open(); + instance.vm.$on("success", (Id) => { + }); + instance.vm.$on("closed", () => { + document.body.removeChild(instance.vm.$el); + instance.vm.$destroy(); + if (cancelBack) cancelBack() + }); + return instance.vm; +} +export default FB; \ No newline at end of file diff --git a/src/components/feedBack/index.js b/src/components/feedBack/index.js new file mode 100644 index 00000000..e801c731 --- /dev/null +++ b/src/components/feedBack/index.js @@ -0,0 +1,7 @@ +import FEEDBACKCOMP from "./index.vue"; +import FB from "./fun"; + +export default Vue => { + Vue.component(FEEDBACKCOMP.name, FEEDBACKCOMP); + Vue.prototype.$FB = FB; +}; \ No newline at end of file diff --git a/src/components/feedBack/index.vue b/src/components/feedBack/index.vue new file mode 100644 index 00000000..a624ad71 --- /dev/null +++ b/src/components/feedBack/index.vue @@ -0,0 +1,203 @@ + + + \ No newline at end of file diff --git a/src/components/feedBack/uploadImage.vue b/src/components/feedBack/uploadImage.vue new file mode 100644 index 00000000..41bef0df --- /dev/null +++ b/src/components/feedBack/uploadImage.vue @@ -0,0 +1,223 @@ + + + + \ No newline at end of file diff --git a/src/components/feedBackTable/index.vue b/src/components/feedBackTable/index.vue new file mode 100644 index 00000000..e69de29b diff --git a/src/main.js b/src/main.js index d4bdb191..42a18202 100644 --- a/src/main.js +++ b/src/main.js @@ -60,6 +60,8 @@ import Preview from '@/components/Preview/index' Vue.use(Preview) import MFA from '@/components/MFA/index' Vue.use(MFA) +import FB from '@/components/feedBack/index' +Vue.use(FB) import adaptive from '@/directive/adaptive/index' // 表格自适应指令 Vue.use(adaptive) @@ -374,7 +376,7 @@ async function VueInit() { } _vm.$store.dispatch('user/logout').then(res => { // window.location.href = `/login` - if(_vm.$msgbox){ + if (_vm.$msgbox) { _vm.$msgbox.close(); } isOpen = false diff --git a/src/views/feedBack/index.vue b/src/views/feedBack/index.vue new file mode 100644 index 00000000..5f37c455 --- /dev/null +++ b/src/views/feedBack/index.vue @@ -0,0 +1,329 @@ + + + diff --git a/src/views/trials/trials-layout/components/feedBack.vue b/src/views/trials/trials-layout/components/feedBack.vue index c35b81b8..feb1ded7 100644 --- a/src/views/trials/trials-layout/components/feedBack.vue +++ b/src/views/trials/trials-layout/components/feedBack.vue @@ -10,7 +10,9 @@
- {{ $t("triials:feedBack:botton:opinion") }} + {{ + $t("triials:feedBack:botton:opinion") + }} {{ $t("triials:feedBack:botton:mine") }}
@@ -23,12 +25,16 @@ export default { return { visible: false, show: null, + lock: false, }; }, mounted() { document.getElementsByTagName("body")[0].addEventListener("click", () => { + if (this.lock) return; this.visible = false; - this.show = false; + if (this.show) { + this.show = false; + } }); }, methods: { @@ -38,6 +44,15 @@ export default { } this.show = true; }, + // 打开意见反馈 + openFeedBack() { + this.lock = true; + this.$FB({ + cancelBack: () => { + this.lock = false; + }, + }); + }, }, }; @@ -46,7 +61,7 @@ export default { position: fixed; bottom: 50px; right: -25px; - z-index: 100000; + z-index: 1000; width: 50px; height: 50px; background: rgba(64, 158, 255, 0.533); diff --git a/src/views/trials/trials-layout/index.vue b/src/views/trials/trials-layout/index.vue index 38ec453d..5596bc22 100644 --- a/src/views/trials/trials-layout/index.vue +++ b/src/views/trials/trials-layout/index.vue @@ -6,26 +6,25 @@ - +