This commit is contained in:
zlwu committed 2026-08-20 11:17:41 +08:00
1 parent 1938a9b76a
commit 9da462fcba
36 files changed
+609614 -6945

No files matched your search

+33 -33
View File
@@ -161,6 +161,18 @@
</div>
</template>
</el-table-column>
<el-table-column
v-if="isColumnVisible('personnelSummary')"
prop="personnelSummary"
label="关联人员"
min-width="220"
align="center"
header-align="center"
>
<template #default="{ row }">
<PlVehiclePersonnelSummaryCell :vehicle="row" @manage="handleEdit(row)" />
</template>
</el-table-column>
<el-table-column
v-if="isColumnVisible('certAttachments')"
label="证书附件"
@@ -172,7 +184,7 @@
<PlCertListAttachmentCell
:cert-list="row.certList"
show-vehicle-part
:media-active="mediaActive"
use-placeholder-thumb
/>
</template>
</el-table-column>
@@ -205,19 +217,6 @@
header-align="center"
show-overflow-tooltip
/>
<el-table-column
v-if="isColumnVisible('personnelSummary')"
prop="personnelSummary"
label="关联人员"
min-width="160"
align="center"
header-align="center"
show-overflow-tooltip
>
<template #default="{ row }">
{{ normalizePlPersonnelSummaryDisplay(row.personnelSummary) }}
</template>
</el-table-column>
<el-table-column
v-if="isColumnVisible('remark')"
prop="remark"
@@ -327,26 +326,19 @@
</div>
<ListTable table-key="pl-self-vehicle-2" :data="personnelList" stripe class="list-table sub-table">
<el-table-column type="index" label="序号" min-width="68" align="center" header-align="center" />
<el-table-column label="姓名" min-width="160">
<el-table-column label="姓名" min-width="260">
<template #default="{ row }">
<el-select
v-model="row.personnelId"
placeholder="请选择人员"
filterable
remote
clearable
:remote-method="searchPersonnel"
<PlVehiclePersonnelSelectCell
:row="row"
:options="getPersonnelOptionsForRow(row)"
:loading="personnelSelectLoading"
@focus="onPersonnelSelectFocus"
@change="(id: string | undefined) => handlePersonnelSelect(row, id)"
>
<el-option
v-for="p in getPersonnelOptionsForRow(row)"
:key="p.id"
:label="formatPersonnelLabel(p)"
:value="p.id"
/>
</el-select>
affiliation="self"
:search-personnel="searchPersonnel"
:on-personnel-select-focus="onPersonnelSelectFocus"
:format-personnel-label="formatPersonnelLabel"
@select="(id) => handlePersonnelSelect(row, id)"
@saved="(payload) => handlePersonnelFormSaved(row, payload)"
/>
</template>
</el-table-column>
<el-table-column label="手机号" min-width="120">
@@ -484,6 +476,9 @@ import PlVehicleCertPartTabs from '@/components/business/pl-vehicle-cert-part-ta
import PlVehicleCertPersonnelTabs from '@/components/business/pl-vehicle-cert-personnel-tabs/index.vue'
import PlVehicleCertBadges from '@/components/business/pl-vehicle-cert-badges/index.vue'
import PlCertListAttachmentCell from '@/components/business/pl-cert-list-attachment-cell/index.vue'
import PlVehiclePersonnelSelectCell from '@/components/business/pl-vehicle-personnel-select-cell/index.vue'
import PlVehiclePersonnelSummaryCell from '@/components/business/pl-vehicle-personnel-summary-cell/index.vue'
import { usePlVehiclePersonnelQuickCreate } from '@/composables/usePlVehiclePersonnelQuickCreate'
import type { VehiclePersonnelViewRow } from '@/components/business/pl-vehicle-personnel-view-list/index.vue'
import SystemViewDialog, {
type ViewSection
@@ -549,12 +544,12 @@ const {
const listColumnDefs = [
{ prop: 'photoUrls', label: '照片' },
{ prop: 'personnelSummary', label: '关联人员' },
{ prop: 'certAttachments', label: '证书附件' },
{ prop: 'vehicleType', label: '车辆类型' },
{ prop: 'vehicleStatus', label: '车辆状态' },
{ prop: 'loadCapacity', label: '载重(吨)' },
{ prop: 'carrierName', label: '承运商', defaultVisible: false },
{ prop: 'personnelSummary', label: '关联人员' },
{ prop: 'remark', label: '备注', defaultVisible: false }
]
@@ -578,6 +573,11 @@ const {
personnelAffiliation: 'self'
})
})
const { handlePersonnelFormSaved } = usePlVehiclePersonnelQuickCreate({
personnelOptions,
onSelect: handlePersonnelSelect
})
const selectedRows = ref<Vehicle[]>([])
const dialogVisible = ref(false)
const dialogTitle = ref('')
+33 -33
View File
@@ -166,6 +166,18 @@
</div>
</template>
</el-table-column>
<el-table-column
v-if="isColumnVisible('personnelSummary')"
prop="personnelSummary"
label="关联人员"
min-width="220"
align="center"
header-align="center"
>
<template #default="{ row }">
<PlVehiclePersonnelSummaryCell :vehicle="row" @manage="handleEdit(row)" />
</template>
</el-table-column>
<el-table-column
v-if="isColumnVisible('certAttachments')"
label="证书附件"
@@ -177,7 +189,7 @@
<PlCertListAttachmentCell
:cert-list="row.certList"
show-vehicle-part
:media-active="mediaActive"
use-placeholder-thumb
/>
</template>
</el-table-column>
@@ -212,19 +224,6 @@
header-align="center"
show-overflow-tooltip
/>
<el-table-column
v-if="isColumnVisible('personnelSummary')"
prop="personnelSummary"
label="关联人员"
min-width="160"
align="center"
header-align="center"
show-overflow-tooltip
>
<template #default="{ row }">
{{ normalizePlPersonnelSummaryDisplay(row.personnelSummary) }}
</template>
</el-table-column>
<el-table-column
v-if="isColumnVisible('remark')"
prop="remark"
@@ -336,26 +335,19 @@
</div>
<ListTable table-key="pl-vehicle-2" :data="personnelList" stripe class="list-table sub-table">
<el-table-column type="index" label="序号" min-width="68" align="center" header-align="center" />
<el-table-column label="姓名" min-width="160">
<el-table-column label="姓名" min-width="260">
<template #default="{ row }">
<el-select
v-model="row.personnelId"
placeholder="请选择人员"
filterable
remote
clearable
:remote-method="searchPersonnel"
<PlVehiclePersonnelSelectCell
:row="row"
:options="getPersonnelOptionsForRow(row)"
:loading="personnelSelectLoading"
@focus="onPersonnelSelectFocus"
@change="(id: string | undefined) => handlePersonnelSelect(row, id)"
>
<el-option
v-for="p in getPersonnelOptionsForRow(row)"
:key="p.id"
:label="formatPersonnelLabel(p)"
:value="p.id"
/>
</el-select>
affiliation="carrier"
:search-personnel="searchPersonnel"
:on-personnel-select-focus="onPersonnelSelectFocus"
:format-personnel-label="formatPersonnelLabel"
@select="(id) => handlePersonnelSelect(row, id)"
@saved="(payload) => handlePersonnelFormSaved(row, payload)"
/>
</template>
</el-table-column>
<el-table-column label="手机号" min-width="120">
@@ -504,6 +496,9 @@ import PlVehicleCertPersonnelTabs from '@/components/business/pl-vehicle-cert-pe
import PlVehicleCertBadges from '@/components/business/pl-vehicle-cert-badges/index.vue'
import PlCertListAttachmentCell from '@/components/business/pl-cert-list-attachment-cell/index.vue'
import PlPasteRecognizeDialog from '@/components/business/pl-paste-recognize-dialog/index.vue'
import PlVehiclePersonnelSelectCell from '@/components/business/pl-vehicle-personnel-select-cell/index.vue'
import PlVehiclePersonnelSummaryCell from '@/components/business/pl-vehicle-personnel-summary-cell/index.vue'
import { usePlVehiclePersonnelQuickCreate } from '@/composables/usePlVehiclePersonnelQuickCreate'
import type { VehiclePersonnelViewRow } from '@/components/business/pl-vehicle-personnel-view-list/index.vue'
import SystemViewDialog, {
type ViewSection
@@ -561,12 +556,12 @@ const {
const listColumnDefs = [
{ prop: 'photoUrls', label: '照片' },
{ prop: 'personnelSummary', label: '关联人员' },
{ prop: 'certAttachments', label: '证书附件' },
{ prop: 'vehicleType', label: '车辆类型' },
{ prop: 'vehicleStatus', label: '车辆状态' },
{ prop: 'loadCapacity', label: '载重(吨)' },
{ prop: 'carrierName', label: '承运商' },
{ prop: 'personnelSummary', label: '关联人员' },
{ prop: 'remark', label: '备注', defaultVisible: false }
]
@@ -595,6 +590,11 @@ const {
: undefined
})
})
const { handlePersonnelFormSaved } = usePlVehiclePersonnelQuickCreate({
personnelOptions,
onSelect: handlePersonnelSelect
})
const selectedRows = ref<Vehicle[]>([])
const dialogVisible = ref(false)
const pasteVisible = ref(false)