fix(pl): 证件建档后自动启用,取消期初确认门槛。

保存即写入期初已用0并置为active;Web/H5仅保留复核入口,存量未确认证在读取或选证时自动补期初。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
wuzilongandCursor committed 2026-11-15 14:53:43 +08:00
1 parent 02d576abfe
commit e0598ed07b
8 files changed
+216 -89

No files matched your search

@@ -60,12 +60,12 @@
>编辑</button
>
<button
v-if="canEdit && row.status !== 'void' && row.status !== 'closed'"
v-if="canEdit && row.openingConfirmed && row.status !== 'void' && row.status !== 'closed'"
class="mp-wv-btn"
type="button"
@click="confirmRow = row"
>
{{ row.openingConfirmed ? '复核' : '期初确认' }}
复核
</button>
</div>
</article>
@@ -8,37 +8,21 @@
:close-on-click-overlay="!saving"
@update:show="onShow"
>
<van-nav-bar
:title="row?.openingConfirmed ? '复核证件' : '期初核对'"
left-text="关闭"
@click-left="!saving && emit('close')"
/>
<van-nav-bar title="复核证件" left-text="关闭" @click-left="!saving && emit('close')" />
<div v-if="row" class="mp-cert-confirm-sheet__body mp-cert-form">
<p class="plan-empty-hint">{{ row.certNo }} · {{ row.openingConfirmed ? '复核已启用的证件' : '核对历史用量后启用' }}</p>
<template v-if="!row.openingConfirmed">
<van-field v-model="opening.usedQty" label="历史已用量" label-align="top" type="number" :disabled="saving" />
<van-cell title="一次有效证已有使用记录" center>
<template #right-icon>
<van-switch v-model="opening.singleUseConsumed" :disabled="saving" size="20px" />
</template>
</van-cell>
<van-field v-model="opening.sourceNote" label="历史来源说明" label-align="top" type="textarea" rows="2" :disabled="saving" />
<p class="plan-empty-hint">核对凭据</p>
<AttachmentUploadField v-model="opening.evidenceUrls" folder="pl/quota-cert" :disabled="saving" hint="" />
</template>
<p class="plan-empty-hint">{{ row.certNo }} · 复核已启用的证件</p>
<van-field v-model="opening.reason" label="核对说明" label-align="top" type="textarea" rows="2" :disabled="saving" />
</div>
<footer>
<button class="mp-wv-btn" type="button" :disabled="saving" @click="emit('close')">取消</button>
<button class="mp-wv-btn mp-wv-btn--primary" type="button" :disabled="saving" @click="submit">
{{ saving ? '正在提交…' : '确认启用' }}
{{ saving ? '正在提交…' : '确认复核' }}
</button>
</footer>
</van-popup>
</template>
<script setup lang="ts">
import { ElMessage } from 'element-plus'
import AttachmentUploadField from '@/components/business/attachment-upload-field/index.vue'
import { quotaCertApi, type CertType, type QuotaCert } from '@/api/pl/quota-cert'
import { randomOperationId } from '@/utils/random-id'
import './cert-mobile.scss'
@@ -76,19 +60,15 @@
opening.reason = opening.reason.trim()
saving.value = true
try {
if (props.row.openingConfirmed) {
await quotaCertApi.verify(kind, props.row.id, {
operationId: opening.operationId,
reason: opening.reason
})
} else {
await quotaCertApi.confirm(kind, props.row.id, { ...opening })
}
ElMessage.success(props.row.openingConfirmed ? '证件已复核' : '期初已确认')
await quotaCertApi.verify(kind, props.row.id, {
operationId: opening.operationId,
reason: opening.reason
})
ElMessage.success('证件已复核')
emit('saved')
emit('close')
} catch {
ElMessage.error('核对没有提交,请重试')
ElMessage.error('复核没有提交,请重试')
} finally {
saving.value = false
}
+8 -34
View File
@@ -93,11 +93,10 @@
><el-icon><Edit /></el-icon>编辑</el-button
>
<el-button
v-if="canEdit && row.status !== 'void' && row.status !== 'closed'"
v-if="canEdit && row.openingConfirmed && row.status !== 'void' && row.status !== 'closed'"
size="small"
@click="openConfirm(row)"
><el-icon><Check /></el-icon
>{{ row.openingConfirmed ? '复核' : '期初确认' }}</el-button
><el-icon><Check /></el-icon>复核</el-button
>
<el-button size="small" @click="view(row)"
><el-icon><View /></el-icon>查看</el-button
@@ -591,35 +590,12 @@
</SystemViewDialog>
<el-dialog
v-model="confirmVisible"
:title="confirmRow?.openingConfirmed ? '复核证件' : '期初核对'"
title="复核证件"
width="640px"
align-center
class="dialog-form-layout quota-cert-confirm-dialog"
>
<el-form label-position="top">
<template v-if="!confirmRow?.openingConfirmed">
<div class="form-grid-2">
<el-form-item>
<template #label>
历史已用量(证面单位)<span v-if="confirmUnit" class="form-label-tip">{{
confirmUnit
}}</span>
</template>
<el-input v-model="opening.usedQty">
<template v-if="confirmUnit" #append>{{ confirmUnit }}</template>
</el-input>
</el-form-item>
<el-form-item label="一次有效证是否已有使用记录">
<el-switch v-model="opening.singleUseConsumed" />
</el-form-item>
</div>
<el-form-item label="历史来源说明">
<el-input v-model="opening.sourceNote" type="textarea" />
</el-form-item>
<el-form-item label="核对凭据">
<AttachmentUploadField v-model="opening.evidenceUrls" folder="pl/quota-cert" />
</el-form-item>
</template>
<el-form-item label="核对说明"
><el-input v-model="opening.reason" type="textarea"
/></el-form-item>
@@ -628,7 +604,7 @@
><el-button @click="confirmVisible = false"
><el-icon><Close /></el-icon>取消</el-button
><el-button type="primary" :loading="saving" @click="confirm"
><el-icon><Check /></el-icon>确认启用</el-button
><el-icon><Check /></el-icon>确认复核</el-button
></template
>
</el-dialog>
@@ -1818,12 +1794,10 @@
saving.value = true
try {
const targetKind = rowCertType(confirmRow.value)
if (confirmRow.value.openingConfirmed)
await quotaCertApi.verify(targetKind, confirmRow.value.id, {
operationId: opening.operationId,
reason: opening.reason
})
else await quotaCertApi.confirm(targetKind, confirmRow.value.id, opening)
await quotaCertApi.verify(targetKind, confirmRow.value.id, {
operationId: opening.operationId,
reason: opening.reason
})
confirmVisible.value = false
await load()
} finally {