f
This commit is contained in:
@@ -184,7 +184,10 @@ export const certificationApi = {
|
||||
headers: {
|
||||
'Content-Type': 'multipart/form-data'
|
||||
}
|
||||
})
|
||||
}),
|
||||
|
||||
// 管理员代用户完成认证(暂不关联合同)
|
||||
adminCompleteWithoutContract: (data) => request.post('/certifications/admin/complete-without-contract', data)
|
||||
}
|
||||
|
||||
// API相关接口
|
||||
|
||||
@@ -546,6 +546,11 @@
|
||||
<el-icon class="text-4xl text-gray-300 mb-2"><warning /></el-icon>
|
||||
<div class="text-lg font-medium text-gray-600">该用户尚未完成企业认证</div>
|
||||
<div class="text-sm text-gray-500 mt-1">完成企业认证后可查看详细信息</div>
|
||||
<div class="mt-4">
|
||||
<el-button type="primary" @click="openAdminCompleteCertDialog" size="small">
|
||||
代用户完成认证
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-dialog>
|
||||
@@ -641,12 +646,61 @@
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 管理员代用户完成认证弹窗 -->
|
||||
<el-dialog v-model="adminCertDialogVisible" title="代用户完成企业认证" :width="isMobile ? '90%' : '600px'"
|
||||
class="enterprise-dialog">
|
||||
<div v-if="selectedUser" class="space-y-4">
|
||||
<div class="user-info mb-4">
|
||||
<div class="info-item">
|
||||
<span class="info-label">用户手机:</span>
|
||||
<span class="info-value">{{ formatPhone(selectedUser.phone) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<el-form ref="adminCertFormRef" :model="adminCertForm" :rules="adminCertRules" label-width="120px">
|
||||
<el-form-item label="企业名称" prop="company_name">
|
||||
<el-input v-model="adminCertForm.company_name" placeholder="请输入企业名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="统一社会信用代码" prop="unified_social_code">
|
||||
<el-input v-model="adminCertForm.unified_social_code" placeholder="请输入统一社会信用代码" />
|
||||
</el-form-item>
|
||||
<el-form-item label="法定代表人姓名" prop="legal_person_name">
|
||||
<el-input v-model="adminCertForm.legal_person_name" placeholder="请输入法定代表人姓名" />
|
||||
</el-form-item>
|
||||
<el-form-item label="法定代表人身份证" prop="legal_person_id">
|
||||
<el-input v-model="adminCertForm.legal_person_id" placeholder="请输入法定代表人身份证号码" />
|
||||
</el-form-item>
|
||||
<el-form-item label="法人手机号" prop="legal_person_phone">
|
||||
<el-input v-model="adminCertForm.legal_person_phone" placeholder="请输入法人手机号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="企业地址" prop="enterprise_address">
|
||||
<el-input v-model="adminCertForm.enterprise_address" placeholder="请输入企业地址" />
|
||||
</el-form-item>
|
||||
<el-form-item label="操作原因" prop="reason">
|
||||
<el-input v-model="adminCertForm.reason" type="textarea" :rows="3" placeholder="请填写本次代用户完成认证的原因,便于审计" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
|
||||
<template #footer>
|
||||
<div :class="['dialog-footer', isMobile ? 'flex-col' : '']">
|
||||
<el-button :class="isMobile ? 'w-full' : ''" @click="adminCertDialogVisible = false">
|
||||
取消
|
||||
</el-button>
|
||||
<el-button type="primary" :class="isMobile ? 'w-full' : ''" @click="handleSubmitAdminCert"
|
||||
:loading="adminCertLoading">
|
||||
确认完成认证
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
</ListPageLayout>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { financeApi, userApi } from '@/api'
|
||||
import { certificationApi, financeApi, userApi } from '@/api'
|
||||
import FilterItem from '@/components/common/FilterItem.vue'
|
||||
import FilterSection from '@/components/common/FilterSection.vue'
|
||||
import ListPageLayout from '@/components/common/ListPageLayout.vue'
|
||||
@@ -673,6 +727,30 @@ const selectedUser = ref(null)
|
||||
const rechargeLoading = ref(false)
|
||||
const rechargeFormRef = ref(null)
|
||||
|
||||
// 管理员代用户完成认证
|
||||
const adminCertDialogVisible = ref(false)
|
||||
const adminCertLoading = ref(false)
|
||||
const adminCertFormRef = ref(null)
|
||||
const adminCertForm = reactive({
|
||||
company_name: '',
|
||||
unified_social_code: '',
|
||||
legal_person_name: '',
|
||||
legal_person_id: '',
|
||||
legal_person_phone: '',
|
||||
enterprise_address: '',
|
||||
reason: ''
|
||||
})
|
||||
|
||||
const adminCertRules = {
|
||||
company_name: [{ required: true, message: '请输入企业名称', trigger: 'blur' }],
|
||||
unified_social_code: [{ required: true, message: '请输入统一社会信用代码', trigger: 'blur' }],
|
||||
legal_person_name: [{ required: true, message: '请输入法定代表人姓名', trigger: 'blur' }],
|
||||
legal_person_id: [{ required: true, message: '请输入法定代表人身份证号码', trigger: 'blur' }],
|
||||
legal_person_phone: [{ required: true, message: '请输入法人手机号', trigger: 'blur' }],
|
||||
enterprise_address: [{ required: true, message: '请输入企业地址', trigger: 'blur' }],
|
||||
reason: [{ required: true, message: '请填写本次操作原因', trigger: 'blur' }]
|
||||
}
|
||||
|
||||
// 统计数据
|
||||
const stats = ref({
|
||||
total_users: 0,
|
||||
@@ -738,14 +816,14 @@ onMounted(() => {
|
||||
if (route.query.company_name) {
|
||||
filters.company_name = route.query.company_name
|
||||
}
|
||||
|
||||
|
||||
// 如果有手机号参数,设置为搜索条件
|
||||
if (route.query.phone) {
|
||||
filters.phone = route.query.phone
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
loadUsers()
|
||||
loadStats()
|
||||
})
|
||||
@@ -862,6 +940,61 @@ const handleViewUser = (user) => {
|
||||
userDialogVisible.value = true
|
||||
}
|
||||
|
||||
// 打开管理员代用户完成认证弹窗
|
||||
const openAdminCompleteCertDialog = () => {
|
||||
if (!selectedUser.value) return
|
||||
// 如果用户已有部分企业信息,做回显
|
||||
if (selectedUser.value.enterprise_info) {
|
||||
const info = selectedUser.value.enterprise_info
|
||||
adminCertForm.company_name = info.company_name || ''
|
||||
adminCertForm.unified_social_code = info.unified_social_code || ''
|
||||
adminCertForm.legal_person_name = info.legal_person_name || ''
|
||||
adminCertForm.legal_person_id = info.legal_person_id || ''
|
||||
adminCertForm.legal_person_phone = info.legal_person_phone || ''
|
||||
adminCertForm.enterprise_address = info.enterprise_address || ''
|
||||
} else {
|
||||
adminCertForm.company_name = ''
|
||||
adminCertForm.unified_social_code = ''
|
||||
adminCertForm.legal_person_name = ''
|
||||
adminCertForm.legal_person_id = ''
|
||||
adminCertForm.legal_person_phone = ''
|
||||
adminCertForm.enterprise_address = ''
|
||||
}
|
||||
adminCertForm.reason = ''
|
||||
adminCertDialogVisible.value = true
|
||||
}
|
||||
|
||||
// 提交管理员代用户完成认证
|
||||
const handleSubmitAdminCert = async () => {
|
||||
if (!adminCertFormRef.value || !selectedUser.value) return
|
||||
try {
|
||||
await adminCertFormRef.value.validate()
|
||||
adminCertLoading.value = true
|
||||
const payload = {
|
||||
user_id: selectedUser.value.id,
|
||||
company_name: adminCertForm.company_name,
|
||||
unified_social_code: adminCertForm.unified_social_code,
|
||||
legal_person_name: adminCertForm.legal_person_name,
|
||||
legal_person_id: adminCertForm.legal_person_id,
|
||||
legal_person_phone: adminCertForm.legal_person_phone,
|
||||
enterprise_address: adminCertForm.enterprise_address,
|
||||
reason: adminCertForm.reason
|
||||
}
|
||||
await certificationApi.adminCompleteWithoutContract(payload)
|
||||
ElMessage.success('已代用户完成企业认证')
|
||||
adminCertDialogVisible.value = false
|
||||
userDialogVisible.value = false
|
||||
// 重新加载用户列表和统计
|
||||
await loadUsers()
|
||||
await loadStats()
|
||||
} catch (error) {
|
||||
console.error('代用户完成认证失败:', error)
|
||||
ElMessage.error(error?.response?.data?.message || '代用户完成认证失败')
|
||||
} finally {
|
||||
adminCertLoading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
// 查看合同
|
||||
const handleViewContract = (contract) => {
|
||||
if (contract.contract_file_url) {
|
||||
|
||||
Reference in New Issue
Block a user