Merge branch 'release/test' of http://8.163.30.128:10082/html/admin-web into release/test
This commit is contained in:
@@ -37,4 +37,10 @@ describe('LoadingListsView', () => {
|
|||||||
expect(detailSource).toContain('装柜完成后清单、明细和运输信息永久只读')
|
expect(detailSource).toContain('装柜完成后清单、明细和运输信息永久只读')
|
||||||
expect(source).toContain('expectedVersion: detail.value.summary.version')
|
expect(source).toContain('expectedVersion: detail.value.summary.version')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('exposes a row edit action only for loading preload plans', () => {
|
||||||
|
expect(source).toContain("isPreload && canEdit && row.status === 'LOADING'")
|
||||||
|
expect(source).toContain('openEditFromRow(row)')
|
||||||
|
expect(source).toContain('await loadDetail()')
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { computed, onMounted, reactive, ref, watch } from 'vue'
|
import { computed, onMounted, reactive, ref, watch } from 'vue'
|
||||||
import { ElMessage, type FormInstance, type FormRules } from 'element-plus'
|
import { ElMessage, type FormInstance, type FormRules } from 'element-plus'
|
||||||
import { Eye } from '@lucide/vue'
|
import { Eye, Pencil } from '@lucide/vue'
|
||||||
import { useAccessPreviewStore } from '@/core/access/accessPreview'
|
import { useAccessPreviewStore } from '@/core/access/accessPreview'
|
||||||
import { getApiErrorDetails, type ApiErrorDetails } from '@/shared/api/http'
|
import { getApiErrorDetails, type ApiErrorDetails } from '@/shared/api/http'
|
||||||
import AdminPage from '@/shared/components/AdminPage.vue'
|
import AdminPage from '@/shared/components/AdminPage.vue'
|
||||||
@@ -165,6 +165,19 @@ function openDetail(rowValue: object) {
|
|||||||
void loadDetail()
|
void loadDetail()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function openEditFromRow(rowValue: object) {
|
||||||
|
const row = rowValue as LoadingListSummary
|
||||||
|
if (!isPreload.value || !canEdit.value || row.status !== 'LOADING') return
|
||||||
|
selectedPlanId.value = String(row.planId)
|
||||||
|
selectedWarehouseId.value = String(row.warehouseId || '')
|
||||||
|
detail.value = null
|
||||||
|
detailError.value = null
|
||||||
|
detailOpen.value = true
|
||||||
|
await loadDetail()
|
||||||
|
const loadedDetail = detail.value as LoadingDetail | null
|
||||||
|
if (loadedDetail && loadedDetail.summary.status === 'LOADING') openEdit()
|
||||||
|
}
|
||||||
|
|
||||||
function openEdit() {
|
function openEdit() {
|
||||||
if (!detail.value || !('preloadNo' in detail.value.summary) || detail.value.summary.status !== 'LOADING') return
|
if (!detail.value || !('preloadNo' in detail.value.summary) || detail.value.summary.status !== 'LOADING') return
|
||||||
editForm.containerNo = detail.value.summary.containerNo || ''
|
editForm.containerNo = detail.value.summary.containerNo || ''
|
||||||
@@ -237,7 +250,10 @@ onMounted(() => {
|
|||||||
:empty-text="`暂无符合筛选条件的${title}`"
|
:empty-text="`暂无符合筛选条件的${title}`"
|
||||||
:aria-label="title"
|
:aria-label="title"
|
||||||
>
|
>
|
||||||
<template #actions="{ row }"><el-button v-if="canView" link type="primary" @click="openDetail(row)"><Eye :size="15" />查看</el-button></template>
|
<template #actions="{ row }">
|
||||||
|
<el-button v-if="canView" link type="primary" @click="openDetail(row)"><Eye :size="15" />查看</el-button>
|
||||||
|
<el-button v-if="isPreload && canEdit && row.status === 'LOADING'" link type="primary" @click="openEditFromRow(row)"><Pencil :size="15" />编辑</el-button>
|
||||||
|
</template>
|
||||||
<template #customers="{ row }">{{ (row as PreloadSummary).customers.map((item) => item.customerName || item.accountId).join('、') || '—' }}</template>
|
<template #customers="{ row }">{{ (row as PreloadSummary).customers.map((item) => item.customerName || item.accountId).join('、') || '—' }}</template>
|
||||||
<template #vesselVoyage="{ row }">{{ (row as PreloadSummary).vesselName || '—' }} / {{ (row as PreloadSummary).voyageNo || '—' }}</template>
|
<template #vesselVoyage="{ row }">{{ (row as PreloadSummary).vesselName || '—' }} / {{ (row as PreloadSummary).voyageNo || '—' }}</template>
|
||||||
<template #status="{ row }"><StatusBadge :status="row.status" /><span class="status-label">{{ row.status === 'LOADING' ? '装柜中' : row.status === 'COMPLETED' ? '装柜完成' : row.status }}</span></template>
|
<template #status="{ row }"><StatusBadge :status="row.status" /><span class="status-label">{{ row.status === 'LOADING' ? '装柜中' : row.status === 'COMPLETED' ? '装柜完成' : row.status }}</span></template>
|
||||||
|
|||||||
Reference in New Issue
Block a user