修复bug
This commit is contained in:
@@ -32,21 +32,25 @@ const qualificationFileError = ref('')
|
||||
const qualificationSubmitting = ref(false)
|
||||
const profileSubmitting = ref(false)
|
||||
const loading = ref(false)
|
||||
const loadError = ref('')
|
||||
const selectedFile = ref<File | null>(null)
|
||||
const draft = reactive<TenantCompanyProfile>({ ...store.company })
|
||||
const qualificationDraft = reactive({ type: '营业执照', fileName: '', certificateNo: '' })
|
||||
|
||||
onMounted(async () => {
|
||||
async function loadCompanyContext() {
|
||||
loading.value = true
|
||||
loadError.value = ''
|
||||
try {
|
||||
await store.loadCompanyContext()
|
||||
Object.assign(draft, store.company)
|
||||
} catch (error) {
|
||||
ElMessage.error(error instanceof Error ? error.message : '企业资料加载失败')
|
||||
loadError.value = error instanceof Error ? error.message : '企业资料加载失败'
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
onMounted(() => void loadCompanyContext())
|
||||
|
||||
function startEdit() {
|
||||
Object.assign(draft, store.company)
|
||||
@@ -176,11 +180,16 @@ function qualificationStatus(status: string) {
|
||||
|
||||
<template>
|
||||
<section v-loading="loading" class="profile-page">
|
||||
<div v-if="loadError" class="client-card profile-load-error" role="alert">
|
||||
<div><strong>企业资料加载失败</strong><span>{{ loadError }}</span></div>
|
||||
<el-button :loading="loading" @click="loadCompanyContext">重新加载</el-button>
|
||||
</div>
|
||||
<template v-else>
|
||||
<div class="profile-summary-card client-card">
|
||||
<div class="company-mark"><Building2 :size="28" /></div>
|
||||
<div class="company-summary">
|
||||
<div><h2>{{ store.company.companyName }}</h2><el-tag :type="companyApproved ? 'success' : store.company.auditStatus === 'REJECTED' || store.company.auditStatus === 'DISABLED' ? 'danger' : 'warning'" effect="light">{{ auditStatusCopy.label }}</el-tag></div>
|
||||
<p>{{ store.company.creditCode }} · {{ store.company.companyType }}</p>
|
||||
<p>{{ store.company.creditCode || '统一社会信用代码暂未填写' }}</p>
|
||||
</div>
|
||||
<el-button v-if="auth.hasPermission('company:profile:edit')" type="primary" @click="startEdit"><Pencil :size="16" />编辑企业资料</el-button>
|
||||
</div>
|
||||
@@ -195,14 +204,9 @@ function qualificationStatus(status: string) {
|
||||
<template #label><span class="tab-label"><Building2 :size="16" />企业基本信息</span></template>
|
||||
<div class="client-card info-panel">
|
||||
<dl class="profile-grid">
|
||||
<div><dt>公司名称</dt><dd>{{ store.company.companyName }}</dd></div>
|
||||
<div><dt>统一社会信用代码</dt><dd>{{ store.company.creditCode }}</dd></div>
|
||||
<div><dt>企业类型</dt><dd>{{ store.company.companyType }}</dd></div>
|
||||
<div><dt>注册地</dt><dd>{{ store.company.registeredAddress }}</dd></div>
|
||||
<div><dt>成立日期</dt><dd>{{ store.company.establishedDate }}</dd></div>
|
||||
<div><dt>注册资本</dt><dd>{{ store.company.registeredCapital }}</dd></div>
|
||||
<div><dt>法人姓名</dt><dd>{{ store.company.legalRepresentative }}</dd></div>
|
||||
<div><dt>法人电话</dt><dd>{{ store.company.legalRepresentativePhone }}</dd></div>
|
||||
<div><dt>公司名称</dt><dd>{{ store.company.companyName || '-' }}</dd></div>
|
||||
<div><dt>统一社会信用代码</dt><dd>{{ store.company.creditCode || '-' }}</dd></div>
|
||||
<div><dt>法人姓名</dt><dd>{{ store.company.legalRepresentative || '-' }}</dd></div>
|
||||
</dl>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
@@ -211,11 +215,9 @@ function qualificationStatus(status: string) {
|
||||
<template #label><span class="tab-label"><UserRound :size="16" />联系信息</span></template>
|
||||
<div class="client-card info-panel">
|
||||
<dl class="profile-grid">
|
||||
<div><dt>联系人</dt><dd>{{ store.company.contactName }}</dd></div>
|
||||
<div><dt>联系电话</dt><dd>{{ store.company.contactPhone }}</dd></div>
|
||||
<div><dt>联系邮箱</dt><dd>{{ store.company.contactEmail }}</dd></div>
|
||||
<div><dt>微信</dt><dd>{{ store.company.contactWechat }}</dd></div>
|
||||
<div class="full-row"><dt>业务地址</dt><dd>{{ store.company.businessAddress }}</dd></div>
|
||||
<div><dt>联系人</dt><dd>{{ store.company.contactName || '-' }}</dd></div>
|
||||
<div><dt>联系电话</dt><dd>{{ store.company.contactPhone || '-' }}</dd></div>
|
||||
<div><dt>联系邮箱</dt><dd>{{ store.company.contactEmail || '-' }}</dd></div>
|
||||
</dl>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
@@ -224,7 +226,7 @@ function qualificationStatus(status: string) {
|
||||
<template #label><span class="tab-label"><FileCheck2 :size="16" />资质文件</span></template>
|
||||
<div class="client-card qualification-panel">
|
||||
<header><div><h3>企业资质</h3><p>文件更新后需等待平台重新审核,历史业务不受影响。</p></div><el-button v-if="auth.hasPermission('company:qualification:upload')" type="primary" @click="openQualificationDialog"><Upload :size="16" />更新资质</el-button></header>
|
||||
<el-table class="desktop-qualification-table" :data="store.qualifications" row-key="id">
|
||||
<el-table class="desktop-qualification-table" :data="store.qualifications" row-key="id" empty-text="暂无企业资质记录">
|
||||
<el-table-column label="操作" width="90" fixed="left"><template #default="{ row }"><el-button link type="primary" @click="previewQualification(row as TenantQualification)">查看</el-button></template></el-table-column>
|
||||
<el-table-column prop="type" label="文件类型" min-width="150" />
|
||||
<el-table-column prop="fileName" label="文件名称" min-width="220" show-overflow-tooltip />
|
||||
@@ -239,6 +241,7 @@ function qualificationStatus(status: string) {
|
||||
<dl><div><dt>有效期</dt><dd>{{ record.expiresAt }}</dd></div><div><dt>更新时间</dt><dd>{{ record.updatedAt }}</dd></div></dl>
|
||||
<el-button link type="primary" @click="previewQualification(record)">查看文件信息</el-button>
|
||||
</article>
|
||||
<div v-if="store.qualifications.length === 0" class="client-empty">暂无企业资质记录。</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
@@ -250,18 +253,13 @@ function qualificationStatus(status: string) {
|
||||
<div class="form-grid-two">
|
||||
<el-form-item label="公司名称" required><el-input v-model="draft.companyName" /></el-form-item>
|
||||
<el-form-item label="统一社会信用代码"><el-input v-model="draft.creditCode" disabled /></el-form-item>
|
||||
<el-form-item label="企业类型"><el-input v-model="draft.companyType" /></el-form-item>
|
||||
<el-form-item label="注册地"><el-input v-model="draft.registeredAddress" /></el-form-item>
|
||||
<el-form-item label="法人姓名" required><el-input v-model="draft.legalRepresentative" /></el-form-item>
|
||||
<el-form-item label="法人电话"><el-input v-model="draft.legalRepresentativePhone" /></el-form-item>
|
||||
</div>
|
||||
<h3>联系信息</h3>
|
||||
<div class="form-grid-two">
|
||||
<el-form-item label="联系人" required><el-input v-model="draft.contactName" /></el-form-item>
|
||||
<el-form-item label="联系电话" required><el-input v-model="draft.contactPhone" /></el-form-item>
|
||||
<el-form-item label="联系邮箱"><el-input v-model="draft.contactEmail" /></el-form-item>
|
||||
<el-form-item label="微信"><el-input v-model="draft.contactWechat" /></el-form-item>
|
||||
<el-form-item label="业务地址" class="full-row"><el-input v-model="draft.businessAddress" /></el-form-item>
|
||||
</div>
|
||||
</el-form>
|
||||
<template #footer><div class="drawer-actions"><el-button :disabled="profileSubmitting" @click="cancelEdit">取消</el-button><el-button type="primary" :loading="profileSubmitting" @click="saveProfile">保存修改</el-button></div></template>
|
||||
@@ -296,11 +294,15 @@ function qualificationStatus(status: string) {
|
||||
<span>{{ previewUrl ? '文件通过当前商户会话临时加载,关闭弹窗后立即释放。' : '当前文件暂不可预览。' }}</span>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.profile-page { display: flex; flex-direction: column; gap: 16px; }
|
||||
.profile-load-error { display: flex; min-height: 180px; align-items: center; justify-content: center; gap: 22px; text-align: left; }
|
||||
.profile-load-error > div { display: flex; max-width: 560px; flex-direction: column; gap: 6px; }
|
||||
.profile-load-error span { color: var(--muted); font-size: 12px; line-height: 1.6; }
|
||||
.company-audit-notice { display: flex; align-items: flex-start; gap: 12px; padding: 15px 17px; border: 1px solid; }
|
||||
.company-audit-notice svg { flex: 0 0 21px; margin-top: 1px; }
|
||||
.company-audit-notice div { display: flex; min-width: 0; flex-direction: column; gap: 4px; }
|
||||
|
||||
Reference in New Issue
Block a user