hookehuyr

✨ feat: 新增密码验证进入表单功能

/*
* @Date: 2022-06-17 14:54:29
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2022-12-16 15:57:01
* @LastEditTime: 2023-02-07 13:23:19
* @FilePath: /data-table/src/api/form.js
* @Description: 表单接口
*/
......@@ -13,7 +13,8 @@ const Api = {
ADD_FORM_FIELD: '/srv/?a=add_form_field',
ADD_FORM_SETTING: '/srv/?a=add_form_setting',
QUERY_FORM_SETTING: '/srv/?a=query_form_setting',
}
VERIFY_PASSWORD: '/srv/?a=verify_password',
};
/**
* @description: 新增表单
......@@ -58,3 +59,11 @@ export const addFormSettingAPI = (params) => fn(fetch.post(Api.ADD_FORM_SETTING,
* @returns: end_time 停止时间
*/
export const getFormSettingAPI = (params) => fn(fetch.get(Api.QUERY_FORM_SETTING, params));
/**
* @description: 验证便当密码
* @param: form_code 表单唯一标识
* @param: mmtx_password 用户输入的密码
* @returns:
*/
export const postVerifyPasswordAPI = (params) => fn(fetch.post(Api.VERIFY_PASSWORD, params));
......
<!--
* @Date: 2022-07-18 10:22:22
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2023-02-07 10:25:41
* @LastEditTime: 2023-02-07 13:27:49
* @FilePath: /data-table/src/views/index.vue
* @Description: 首页
-->
......@@ -83,6 +83,19 @@
</div>
</div>
</van-overlay>
<van-overlay :show="pwd_show">
<div class="pwd-wrapper">
<div class="block">
<div style="text-align: center; margin-top: 0.5rem;">请输入密码填写表单</div>
<van-config-provider :theme-vars="themeVars">
<van-form>
<van-field v-model="mmtx_password" type="password" autocomplete label="密码" style="border: 1px solid #dfdfdf; margin: 1rem 0; border-radius: 5px;" />
<van-button @click="onSubmitPwd" type="primary" round block>验证并填写表单</van-button>
</van-form>
</van-config-provider>
</div>
</div>
</van-overlay>
</template>
<script setup>
......@@ -99,7 +112,7 @@ import {
useTitle,
} from "@/utils/generatePackage.js";
import { useRoute } from "vue-router";
import { queryFormAPI, getFormSettingAPI } from "@/api/form.js";
import { queryFormAPI, getFormSettingAPI, postVerifyPasswordAPI } from "@/api/form.js";
import { addFormDataAPI } from "@/api/data.js";
import { showSuccessToast, showFailToast } from "vant";
import { wxInfo, getUrlParams } from "@/utils/tools";
......@@ -183,6 +196,16 @@ const setRefMap = (el, item) => {
const notice_text = ref("");
const show = ref(false);
const qr_url = ref("");
const pwd_show = ref(true);
const mmtx_password = ref('');
// 提交表单密码
const onSubmitPwd = async () => {
const { code } = await postVerifyPasswordAPI({ form_code: $route.query.code, mmtx_password: mmtx_password.value });
if (code) {
pwd_show.value = false;
}
}
onMounted(async () => {
// TAG: 全局背景色
......@@ -295,6 +318,10 @@ const checkUserSubscribe = async () => {
localStorage.setItem('weixin_subscribe', 1);
show.value = false;
}
// 凭密码填写设置
if (form_setting.mmtx_enable) {
pwd_show.value = true;
}
}
// 操作绑定自定义字段回调
......@@ -472,4 +499,17 @@ const onSubmit = async (values) => {
// height: 10rem;
background-color: #fff;
}
.pwd-wrapper {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
.block {
width: 80vw;
background-color: #fff;
padding: 1rem;
border-radius: 5px;
}
}
</style>
......