diff --git a/src/api/index.js b/src/api/index.js index 4607858..9e4b2da 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -220,6 +220,9 @@ export const certificationApi = { // 管理员代用户完成认证(暂不关联合同) adminCompleteWithoutContract: (data) => request.post('/certifications/admin/complete-without-contract', data), + // 管理员触发重新认证(回退到提交企业信息,保留钱包/API Key/历史记录) + adminResetForResignContract: (data) => request.post('/certifications/admin/reset-for-resign-contract', data), + // 管理端企业审核:列表(按状态机 certification_status 筛选)、详情、通过、拒绝、按用户变更状态 adminListSubmitRecords: (params) => request.get('/certifications/admin/submit-records', { params }), adminGetSubmitRecord: (id) => request.get(`/certifications/admin/submit-records/${id}`), diff --git a/src/pages/admin/users/index.vue b/src/pages/admin/users/index.vue index 9b3d63c..a1938f1 100644 --- a/src/pages/admin/users/index.vue +++ b/src/pages/admin/users/index.vue @@ -543,6 +543,15 @@
暂无合同信息
+ +
+ + 重新认证 + + + 回退到填写企业信息,钱包 / API Key / 历史记录不受影响 + +
@@ -699,6 +708,59 @@ + + + +
+ + + + + + + +
+ +
@@ -745,6 +807,20 @@ const adminCertForm = reactive({ reason: '' }) +// 管理员重新签合同 +const resignContractDialogVisible = ref(false) +const resignContractLoading = ref(false) +const resignContractFormRef = ref(null) +const resignContractForm = reactive({ + reason: '' +}) +const resignContractRules = { + reason: [ + { required: true, message: '请填写操作原因', trigger: 'blur' }, + { min: 2, max: 500, message: '原因长度需在 2-500 字之间', trigger: 'blur' } + ] +} + const adminCertRules = { company_name: [{ required: true, message: '请输入企业名称', trigger: 'blur' }], unified_social_code: [{ required: true, message: '请输入统一社会信用代码', trigger: 'blur' }], @@ -999,6 +1075,39 @@ const handleSubmitAdminCert = async () => { } } +// 打开重新认证弹窗 +const openResignContractDialog = () => { + if (!selectedUser.value?.is_certified) { + ElMessage.warning('仅已认证用户可重新认证') + return + } + resignContractForm.reason = '' + resignContractDialogVisible.value = true +} + +// 提交重新认证 +const handleSubmitResignContract = async () => { + if (!resignContractFormRef.value || !selectedUser.value) return + try { + await resignContractFormRef.value.validate() + resignContractLoading.value = true + await certificationApi.adminResetForResignContract({ + user_id: selectedUser.value.id, + reason: resignContractForm.reason + }) + ElMessage.success('已重置为重新认证,请通知用户前往企业入驻重新填写企业信息') + resignContractDialogVisible.value = false + userDialogVisible.value = false + await loadUsers() + await loadStats() + } catch (error) { + console.error('重新认证失败:', error) + ElMessage.error(error?.response?.data?.message || '重新认证失败') + } finally { + resignContractLoading.value = false + } +} + // 查看合同 const handleViewContract = (contract) => { if (contract.contract_file_url) {