diff --git a/src/components/func/geetest.ts b/src/components/func/geetest.ts new file mode 100644 index 00000000..22a778ef --- /dev/null +++ b/src/components/func/geetest.ts @@ -0,0 +1,33 @@ +/** + * @file component func geetest.ts + * @description 封装自定义 geetest 组件,通过函数调用的方式,简化 geetest 的使用,使用时需要在 main.ts 中引入 geetest.js + * @since Beta v0.3.3 + */ + +import { h, render, type VNode } from "vue"; +import geetest from "./geetest.vue"; + +const geetestId = "tg-func-geetest"; + +const renderBox = (): VNode => { + const container = document.createElement("div"); + container.id = geetestId; + const boxVNode: VNode = h(geetest); + render(boxVNode, container); + document.body.appendChild(container); + return boxVNode; +}; + +let geetestInstance: VNode; + +const showGeetest = async (): Promise => { + if (geetestInstance) { + const boxVue = geetestInstance.component; + return boxVue?.exposeProxy?.displayBox(); + } else { + geetestInstance = renderBox(); + return await showGeetest(); + } +}; + +export default showGeetest; diff --git a/src/components/func/geetest.vue b/src/components/func/geetest.vue new file mode 100644 index 00000000..cb1d08ca --- /dev/null +++ b/src/components/func/geetest.vue @@ -0,0 +1,189 @@ + + + diff --git a/src/components/overlay/to-geetest.vue b/src/components/overlay/to-geetest.vue deleted file mode 100644 index cb83d1dc..00000000 --- a/src/components/overlay/to-geetest.vue +++ /dev/null @@ -1,136 +0,0 @@ - - - diff --git a/src/pages/common/Test.vue b/src/pages/common/Test.vue index df5c15b6..255c2e94 100644 --- a/src/pages/common/Test.vue +++ b/src/pages/common/Test.vue @@ -17,12 +17,11 @@
获取极验
-