fix(web-admin): restrict legacy recharge pages to non-ETC types

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
wuzilongandCursor committed 2026-11-12 18:56:19 +08:00
1 parent a7938a3b80
commit 95a9c04fa6
5 files changed
+20 -17

No files matched your search

@@ -1,7 +1,6 @@
import type { ColumnFilterDef } from '@/composables/useClientColumnFilters'
const RECHARGE_TYPE_OPTIONS = [
{ value: 'etc', label: 'ETC' },
{ value: 'fuel', label: '油卡' },
{ value: 'shanxia', label: '山峡' },
{ value: 'bailian', label: '百链' }
@@ -15,7 +14,7 @@ const RECHARGE_STATUS_OPTIONS = [
{ value: 'cancelled', label: '已作废' }
]
/** ETC 申请列表列头漏斗(服务端)。 */
/** 油卡申请列表列头漏斗(服务端)。 */
export const plVehicleRechargeApplyColumnFilterDefs: ColumnFilterDef[] = [
{ prop: 'applyNo', label: '申请单号', type: 'text', queryKey: 'applyNo' },
{ prop: 'licensePlate', label: '车牌号', type: 'text', queryKey: 'licensePlate' },
@@ -52,7 +51,7 @@ export const plVehicleRechargeApplyColumnFilterDefs: ColumnFilterDef[] = [
}
]
/** ETC 审批列表列头漏斗(服务端;在申请 defs 基础上增加当前节点)。 */
/** 油卡审批列表列头漏斗(服务端;在申请 defs 基础上增加当前节点)。 */
export const plVehicleRechargeApprovalColumnFilterDefs: ColumnFilterDef[] = [
...plVehicleRechargeApplyColumnFilterDefs.filter((d) => d.prop !== 'createTime'),
{ prop: 'currentNodeName', label: '当前节点', type: 'text', queryKey: 'currentNodeName' },
@@ -65,7 +64,7 @@ export const plVehicleRechargeApprovalColumnFilterDefs: ColumnFilterDef[] = [
}
]
/** ETC 发放看板列头漏斗(服务端)。 */
/** 油卡发放看板列头漏斗(服务端)。 */
export const plVehicleRechargeDisburseColumnFilterDefs: ColumnFilterDef[] = [
{ prop: 'applyNo', label: '申请单号', type: 'text', queryKey: 'applyNo' },
{
@@ -111,7 +110,7 @@ export const plVehicleRechargeDisburseColumnFilterDefs: ColumnFilterDef[] = [
}
]
/** ETC 审批人设置(客户端)。 */
/** 油卡审批人设置(客户端)。 */
export const plVehicleRechargeWorkflowColumnFilterDefs: ColumnFilterDef[] = [
{ prop: 'nodeName', label: '节点名称', type: 'text' },
{
@@ -1,4 +1,4 @@
<!-- ETC/油卡充值申请 -->
<!-- 油卡充值申请 -->
<template>
<div class="page-container">
<section class="panel">
@@ -369,7 +369,6 @@
</el-form-item>
<el-form-item label="充值类型" prop="rechargeType">
<el-select v-model="formData.rechargeType" placeholder="请选择" style="width: 100%">
<el-option label="ETC" value="etc" />
<el-option label="油卡" value="fuel" />
<el-option label="山峡" value="shanxia" />
<el-option label="百链" value="bailian" />
@@ -716,6 +715,7 @@ function buildListQueryParams(): Record<string, any> {
const params: Record<string, any> = { ...toQueryParams(), ...toSortQueryParams() }
const keyword = quickSearchKeyword.value.trim()
if (keyword) params.q = keyword
params.rechargeTypeNe = 'etc'
return params
}
@@ -768,7 +768,7 @@ const formData = reactive({
applyNo: '',
applicantId: '',
licensePlate: '',
rechargeType: 'etc' as 'etc' | 'fuel' | 'shanxia' | 'bailian',
rechargeType: 'fuel' as 'etc' | 'fuel' | 'shanxia' | 'bailian',
applyDate: '',
odometerKm: null as number | null,
attachmentUrls: '',
@@ -1004,7 +1004,7 @@ function resetForm() {
formData.applyNo = ''
formData.applicantId = ''
formData.licensePlate = ''
formData.rechargeType = 'etc'
formData.rechargeType = 'fuel'
formData.applyDate = ''
formData.odometerKm = null
formData.attachmentUrls = ''
@@ -1244,7 +1244,9 @@ function applySummaryFilter() {
if (typeof plate !== 'string' || !['etc', 'fuel'].includes(String(kind))) return
Object.keys(filters).forEach((key) => delete filters[key])
filters.licensePlate = { text: plate }
filters.rechargeType = { text: '', selected: [String(kind)] }
if (String(kind) !== 'etc') {
filters.rechargeType = { text: '', selected: [String(kind)] }
}
quickSearchKeyword.value = ''
pagination.page = 1
const query = { ...route.query }
@@ -686,7 +686,8 @@
const res = await api({
page: pager.page,
pageSize: pager.pageSize,
...toQueryParams()
...toQueryParams(),
rechargeTypeNe: 'etc'
})
const data: any = (res as any)?.data ?? res
tableData.value = data?.items || []
@@ -1,4 +1,4 @@
<!-- ETC/油卡充值发放管理 -->
<!-- 油卡充值发放管理 -->
<template>
<div class="page-container">
<section class="panel">
@@ -460,7 +460,6 @@
</el-form-item>
<el-form-item label="充值类型" prop="rechargeType">
<el-select v-model="formData.rechargeType" placeholder="请选择" style="width: 100%">
<el-option label="ETC" value="etc" />
<el-option label="油卡" value="fuel" />
<el-option label="山峡" value="shanxia" />
<el-option label="百链" value="bailian" />
@@ -727,6 +726,7 @@ function buildListQueryParams(): Record<string, any> {
const params: Record<string, any> = { ...toQueryParams(), ...toSortQueryParams() }
const keyword = quickSearchKeyword.value.trim()
if (keyword) params.q = keyword
params.rechargeTypeNe = 'etc'
return params
}
@@ -780,7 +780,7 @@ const formData = reactive({
rechargeOrderNo: '',
applyId: '',
licensePlate: '',
rechargeType: 'etc' as 'etc' | 'fuel' | 'shanxia' | 'bailian',
rechargeType: 'fuel' as 'etc' | 'fuel' | 'shanxia' | 'bailian',
rechargeDate: '',
cardNo: '',
gasStation: '',
@@ -985,7 +985,7 @@ function resetForm() {
formData.rechargeOrderNo = ''
formData.applyId = ''
formData.licensePlate = ''
formData.rechargeType = 'etc'
formData.rechargeType = 'fuel'
formData.rechargeDate = ''
formData.cardNo = ''
formData.gasStation = ''
@@ -997,7 +997,7 @@ function resetForm() {
function handleDisburse(row: VehicleRechargeDisburseBoardItem) {
if (row.applyStatus === 'in_approval') {
ElMessage.warning('审批中的申请请到「ETC/油卡充值审批」菜单完成发放登记')
ElMessage.warning('审批中的申请请到「油卡充值审批」菜单完成发放登记')
return
}
resetForm()
@@ -1,4 +1,4 @@
<!-- 工作流配置(ETC/油卡充值) -->
<!-- 工作流配置(油卡充值) -->
<!-- eslint-disable vue/no-v-model-argument -->
<template>
<div class="page-container">
@@ -11,6 +11,7 @@
{{ statusLabel(wfDef.status) }}
</el-tag>
</span>
<span class="form-tip">ETC 与油卡共用同一套审批人配置</span>
</div>
<div class="list-toolbar">