|
3 | 3 | import { ref, reactive, onMounted } from 'vue'; |
4 | 4 | import { NForm, NFormItem, NInput, NButton, NSpace, NText, useMessage } from 'naive-ui'; |
5 | 5 |
|
| 6 | +import Turnstile from './utils/Turnstile.vue'; |
| 7 | +
|
6 | 8 | const host = "https://task.micono.eu.org"; |
7 | 9 | const message = useMessage(); |
8 | 10 | const form = reactive({}); |
9 | 11 | const formRef = ref(null); |
| 12 | +const turnstileRef = ref(null); |
10 | 13 |
|
11 | 14 | const rules = { |
12 | 15 | appid: { |
@@ -122,13 +125,13 @@ const submit = e => { |
122 | 125 | "key": form.key.trim(), |
123 | 126 | "mobile": form.mobile.trim(), |
124 | 127 | "name": form.name.trim(), |
125 | | - "turnstile": form.turnstile, |
126 | 128 | }; |
127 | 129 | localStorage.setItem("upload_form", JSON.stringify(body)); |
128 | | - fetch(`${host}/api/scheduler/public/tasks`, { |
| 130 | + fetch(`${host}/api/public/tasks`, { |
129 | 131 | "method": "PUT", |
130 | 132 | "headers": { |
131 | 133 | "Content-Type": "application/json", |
| 134 | + "CF-Turnstile-Token": form.turnstile, |
132 | 135 | }, |
133 | 136 | "body": JSON.stringify(body), |
134 | 137 | }) |
@@ -204,8 +207,7 @@ onMounted(() => { |
204 | 207 | <NInput v-model:value.trim="form.name" placeholder="请输入小程序名称" /> |
205 | 208 | </NFormItem> |
206 | 209 | <NFormItem label="证明你是人" path="turnstile"> |
207 | | - <div class="cf-turnstile" size="flexible" data-sitekey="0x4AAAAAACITxajFbe2aEfkS" |
208 | | - data-callback="onTurnstileSuccess"></div> |
| 210 | + <Turnstile site-key="0x4AAAAAACITxajFbe2aEfkS" ref="turnstileRef" v-model="form.turnstile" /> |
209 | 211 | </NFormItem> |
210 | 212 | <NButton type="primary" v-if="form?.status == 'success'" block disabled>已提交成功</NButton> |
211 | 213 | <NButton type="primary" v-else block @click.prevent="submit">提交</NButton> |
|
0 commit comments