|
@@ -152,6 +152,41 @@
|
|
|
|
|
|
|
|
<template #default="{ row }">{{ row.plan.planDate || '—' }}</template>
|
|
<template #default="{ row }">{{ row.plan.planDate || '—' }}</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
|
|
+ <el-table-column
|
|
|
|
|
+ v-if="isColumnVisible('deliveryTimes')"
|
|
|
|
|
+ prop="deliveryTimes"
|
|
|
|
|
+ label="送货时间"
|
|
|
|
|
+ min-width="130"
|
|
|
|
|
+ align="center"
|
|
|
|
|
+ >
|
|
|
|
|
+ <template #header>
|
|
|
|
|
+ <div class="col-header-with-filter">
|
|
|
|
|
+ <span class="col-header-with-filter__label">送货时间</span>
|
|
|
|
|
+ <ColumnHeaderFilter
|
|
|
|
|
+ prop="deliveryTimes"
|
|
|
|
|
+ label="送货时间"
|
|
|
|
|
+ type="datetime"
|
|
|
|
|
+ :is-active="isFilterActive('deliveryTimes')"
|
|
|
|
|
+ :model-value="filters.deliveryTimes || null"
|
|
|
|
|
+ @update:model-value="(v) => setFilterState('deliveryTimes', v)"
|
|
|
|
|
+ />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <template #default="{ row }">
|
|
|
|
|
+ <div
|
|
|
|
|
+ v-if="(row.plan.deliveryTimes || []).length"
|
|
|
|
|
+ class="pl-delivery-times-cell"
|
|
|
|
|
+ >
|
|
|
|
|
+ <div
|
|
|
|
|
+ v-for="(t, i) in row.plan.deliveryTimes"
|
|
|
|
|
+ :key="`${row.plan.id}-dt-${i}`"
|
|
|
|
|
+ >
|
|
|
|
|
+ {{ t }}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <span v-else>—</span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
v-if="isColumnVisible('archiveStatus')"
|
|
v-if="isColumnVisible('archiveStatus')"
|
|
|
prop="archiveStatus"
|
|
prop="archiveStatus"
|
|
@@ -709,6 +744,7 @@ const { ContractDetailDialog, contractDetailRef, openContractDetail } = useContr
|
|
|
/** 计划区可合并列(顺序须与表格左侧列一致,不含勾选/序号/计划编号) */
|
|
/** 计划区可合并列(顺序须与表格左侧列一致,不含勾选/序号/计划编号) */
|
|
|
const PLAN_MERGE_COLUMN_PROPS = [
|
|
const PLAN_MERGE_COLUMN_PROPS = [
|
|
|
'planDate',
|
|
'planDate',
|
|
|
|
|
+ 'deliveryTimes',
|
|
|
'archiveStatus',
|
|
'archiveStatus',
|
|
|
'followStatus',
|
|
'followStatus',
|
|
|
'planType',
|
|
'planType',
|
|
@@ -736,6 +772,7 @@ const PRICE_COLUMN_PROPS = new Set(['productUnitPrice', 'productAmount'])
|
|
|
|
|
|
|
|
const allListColumnDefs = [
|
|
const allListColumnDefs = [
|
|
|
{ prop: 'planDate', label: '计划日期' },
|
|
{ prop: 'planDate', label: '计划日期' },
|
|
|
|
|
+ { prop: 'deliveryTimes', label: '送货时间' },
|
|
|
{ prop: 'archiveStatus', label: '归档状态' },
|
|
{ prop: 'archiveStatus', label: '归档状态' },
|
|
|
{ prop: 'followStatus', label: '跟进状态' },
|
|
{ prop: 'followStatus', label: '跟进状态' },
|
|
|
{ prop: 'planType', label: '单据类型' },
|
|
{ prop: 'planType', label: '单据类型' },
|
|
@@ -954,6 +991,9 @@ function getArchiveStatCellValue(row: PlPlanListDisplayRow, prop: string): unkno
|
|
|
}
|
|
}
|
|
|
if (prop === 'followUserName') return plan.followUserName
|
|
if (prop === 'followUserName') return plan.followUserName
|
|
|
if (prop === 'planDate') return plan.planDate
|
|
if (prop === 'planDate') return plan.planDate
|
|
|
|
|
+ if (prop === 'deliveryTimes') {
|
|
|
|
|
+ return (plan.deliveryTimes || []).join('\n') || '—'
|
|
|
|
|
+ }
|
|
|
return ''
|
|
return ''
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1208,4 +1248,12 @@ onMounted(() => {
|
|
|
pointer-events: none;
|
|
pointer-events: none;
|
|
|
cursor: default;
|
|
cursor: default;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+.pl-delivery-times-cell {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 2px;
|
|
|
|
|
+ line-height: 1.35;
|
|
|
|
|
+}
|
|
|
</style>
|
|
</style>
|