From 4e6f18dfa08e2f2f4f02aaa1b8e8e51852b7a9a1 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期五, 13 三月 2026 17:46:03 +0800
Subject: [PATCH] 考点核验
---
src/views/h5/verify/form.vue | 154 ++++++++++++++++++++++++++++++++++++---------------
1 files changed, 108 insertions(+), 46 deletions(-)
diff --git a/src/views/h5/verify/form.vue b/src/views/h5/verify/form.vue
index 8e2491d..8409462 100644
--- a/src/views/h5/verify/form.vue
+++ b/src/views/h5/verify/form.vue
@@ -1,34 +1,45 @@
<template>
- <div>
+ <div v-if="pdfUrl">
<el-row class="p-3 m-0" justify="space-between" align="middle">
- <el-col :span="3"></el-col>
- <el-col :span="18">
- <el-text class="text-lg font-bold text-center">
- {{ title }}
- </el-text>
+ <el-col :span="4"></el-col>
+ <el-col :span="16">
+ <el-row justify="center">
+ <el-text class="text-lg font-bold text-center">
+ {{ title }}
+ </el-text>
+ </el-row>
</el-col>
- <el-col :span="3">
- <el-button text style="color: var(--el-color-primary);" :loading="saveLoading" @click="tempSave()">鏆傚瓨</el-button>
+ <el-col :span="4">
+ <el-row justify="center">
+ <el-button
+ v-if="!isVerified"
+ text style="color: var(--el-color-primary);"
+ :loading="saveLoading" @click="tempSave()"
+ class="mx-4"
+ >
+ 鏆傚瓨
+ </el-button>
+ </el-row>
</el-col>
</el-row>
<el-divider class="m-0" style="flex-shrink: 0;"></el-divider>
- <el-scrollbar :height="`${mainHeight}px`" class="p-2 m-0 mt-1" min-size="none">
+ <el-scrollbar :height="`${mainHeight}px`" class="p-2 m-0 mt-1" >
<div v-if="pdfUrl" :style="{width: '100%', height: `${mainHeight - 100}px`}">
<PdfPreview v-if="pdfUrl" :url="pdfUrl"></PdfPreview>
</div>
<div class="p-2 my-4">
<el-form ref="verifyForm" :model="form">
- <el-form-item label="浠ヤ笂鐢虫姤鍐呭鏄惁灞炲疄" prop="isVerified">
- <el-radio-group v-model="form.isVerified">
- <el-radio :value="true">鏄�</el-radio>
- <el-radio :value="false">鍚�</el-radio>
+ <el-form-item label="*浠ヤ笂鐢虫姤鍐呭鏄惁灞炲疄" prop="isVerified">
+ <el-radio-group v-model="form.isContentTrue" :disabled="isVerified">
+ <el-radio :value="1">鏄�</el-radio>
+ <el-radio :value="0">鍚�</el-radio>
</el-radio-group>
</el-form-item>
- <el-form-item label="璇ヨ�冪偣鏍搁獙鏄惁閫氳繃" prop="isPass">
- <el-radio-group v-model="form.isPass">
- <el-radio :value="true">鏄�</el-radio>
- <el-radio :value="false">鍚�</el-radio>
+ <el-form-item label="*璇ヨ�冪偣鏍搁獙鏄惁閫氳繃" prop="isPass">
+ <el-radio-group v-model="form.isSitePass" :disabled="isVerified">
+ <el-radio :value="1">鏄�</el-radio>
+ <el-radio :value="0">鍚�</el-radio>
</el-radio-group>
</el-form-item>
<el-row><el-text>涓撳璇勪及鎰忚</el-text></el-row>
@@ -38,16 +49,23 @@
:rows="3"
type="textarea"
placeholder="璇峰~鍐欒瘎浼版剰瑙�"
+ :disabled="isVerified"
/>
</el-form-item>
- <el-row><el-text>鐜板満宸ヤ綔鐓х墖</el-text></el-row>
+ <el-row><el-text>*鐜板満宸ヤ綔鐓х墖</el-text></el-row>
<el-row>
- <UploadBtn v-model="form.image" :accept="['pdf', 'jpg']" :limitFileCount="10" listType="picture-card"></UploadBtn>
+ <UploadBtn v-model="form.image" :disabled="isVerified" :accept="['pdf', 'jpg']" :limitFileCount="10" listType="picture-card"></UploadBtn>
</el-row>
- <Signature v-model="form.signature"></Signature>
+ <Signature v-model="form.signatureUrl" :disabled="isVerified" :isRequire="true"></Signature>
- <el-button type="primary" size="large" class="my-7" style="width: 100%;">鎻愪氦鏍搁獙缁撴灉</el-button>
+ <el-button
+ v-if="!isVerified"
+ @click="submitVerify"
+ type="primary" size="large"
+ class="my-7" style="width: 100%;"
+ :loading="submitLoading"
+ >鎻愪氦鏍搁獙缁撴灉</el-button>
</el-form>
</div>
</el-scrollbar>
@@ -59,7 +77,6 @@
import Signature from '@/views/main/components/Signature.vue';
import { useSessionStore } from '@/stores/session.js'
import { storeToRefs } from 'pinia';
-import { tokenUtils } from '@/utils/axios.js';
export default {
components: {
@@ -77,13 +94,15 @@
pdfUrl: '',
form: {
id: '',
- isVerified: false,
- isPass: false,
+ isContentTrue: 0,
+ isSitePass: 0,
suggestion: '',
image: [],
- signature: ''
+ signatureUrl: ''
},
- saveLoading: false
+ isVerified: false,
+ saveLoading: false,
+ submitLoading: false
}
},
computed: {
@@ -91,7 +110,7 @@
return this.pageHeight - 80
},
appId() {
- return this.$route.params.id
+ return this.$route.query.appId
}
},
async created() {
@@ -99,18 +118,24 @@
},
mounted() {
document.title = '鑰冪偣鏍搁獙'
- this.pdfUrl = this.$qxueyou.qxyRes + '20260304/鍖犲績瀛﹂櫌鑱屼笟鎶�鑳借瘎浠疯�冪偣鏍搁獙鐢宠琛╛1772591122177.pdf'
},
methods: {
getVerifyDetail() {
- const params = { id: this.appId }
- this.$axios.get('/exam/verify-record/get', { params }).then(res => {
+ const params = { applicationId: this.appId }
+ this.$axios.get('/exam/verify-record/get-by-application-id', { params }).then(res => {
if (res.data.code == 0) {
const resData = res.data.data || {}
+ this.pdfUrl = this.$qxueyou.qxyRes + resData.examSiteVerifyFile
+ this.title = resData.organizationName + '-' + resData.examSite.siteName + '鑰冪偣鏍搁獙'
if (resData.id) {
- this.form = {
- ...resData
- }
+ this.form.isContentTrue = resData.isContentTrue
+ this.form.isSitePass = resData.isSitePass
+ this.form.suggestion = resData.evaluationOpinion
+ resData.sitePhotos?.forEach(ele => {
+ this.form.image.push({ name: '', url: ele })
+ })
+ this.form.signatureUrl = resData.signatureUrl
+ this.isVerified = resData.isVerified
}
} else {
this.$message.error('鑾峰彇鏍搁獙淇℃伅澶辫触')
@@ -119,25 +144,62 @@
},
tempSave() {
const data = {
+ applicationId: this.appId,
id: this.form.id,
- userId: 0,
- name: "",
- gender: "",
- mobile: "",
- age: 0,
- idNumber: "",
- isContentTrue: 0,
- isSitePass: 0,
- evaluationOpinion: "",
- sitePhotos: [],
- status: 0
+ userId: this.userInfo.id,
+ name: this.userInfo.name,
+ mobile: this.userInfo.mobile,
+ idNumber: this.userInfo.idCard,
+ isContentTrue: this.form.isContentTrue,
+ isSitePass: this.form.isSitePass,
+ evaluationOpinion: this.form.suggestion,
+ sitePhotos: this.form.image.map(ele => ele.url),
+ signatureUrl: this.form.signatureUrl,
}
- this.$axios.post('/exam/verify-record/create', data).then(res => {
+ this.saveLoading = true
+ this.$axios.put(`/exam/verify-record/save`, data).then(res => {
if (res.data.code == 0) {
- console.log(res.data.data)
+ this.$message.success('淇濆瓨鎴愬姛')
+ this.getVerifyDetail()
} else {
this.$message.error(res.data.msg)
}
+ }).finally(() => {
+ this.saveLoading = false
+ })
+ },
+ submitVerify() {
+ if (this.form.image.length==0) {
+ this.$message.error('璇蜂笂浼犵幇鍦哄伐浣滅収鐗�')
+ return
+ }
+ if (!this.form.signatureUrl) {
+ this.$message.error('璇峰~鍐欑鍚�')
+ return
+ }
+ this.$messageBox.confirm('鎻愪氦涔嬪悗涓嶅彲鍐嶇紪杈戞牳楠岋紝纭鎻愪氦鍚�', '鎻愮ず',
+ { confirmButtonText: '纭畾', cancelButtonText: '鍙栨秷', type: 'tip' }).then(res => {
+ if (res == 'confirm') {
+ this.submitLoading = true
+ const data = {
+ applicationId: this.appId,
+ isContentTrue: this.form.isContentTrue,
+ isSitePass: this.form.isSitePass,
+ evaluationOpinion: this.form.suggestion,
+ sitePhotos: this.form.image.map(ele => ele.url),
+ signatureUrl: this.form.signatureUrl,
+ }
+ this.$axios.post('/exam/verify-record/verify', data).then(res => {
+ if (res.data.code == 0) {
+ this.$message.success('鎻愪氦鏍搁獙鎴愬姛')
+ this.isVerified = true
+ } else {
+ this.$message.error(res.data.msg || '鎻愪氦鏍搁獙澶辫触')
+ }
+ }).finally(() => {
+ this.submitLoading = false
+ })
+ }
})
},
onPagesLoaded(msg) {
--
Gitblit v1.8.0