diff --git a/src/views/business/components/waybill-import-dialog.vue b/src/views/business/components/waybill-import-dialog.vue
index 309467e..94972e9 100644
--- a/src/views/business/components/waybill-import-dialog.vue
+++ b/src/views/business/components/waybill-import-dialog.vue
@@ -96,22 +96,12 @@
prop="carrierName"
label="承运商"
min-width="140"
- />
+
编辑
删除 {
if (carrierValue) carrierChange(carrierValue);
await loadBatchRows(snapshot.id);
};
-/** 与行操作一致:仅草稿可删除 */
-const canRemoveBatch = row => String(row?.importStatus || '') === 'draft';
-const removeBatches = () => {
+/** 与后端一致:仅未结算批次可整批删除 */
+const canRemoveBatch = row => String(row?.settlementStatus || 'unsettled') === 'unsettled';
+const removeBatches = async () => {
if (!selected.value.length) {
ElMessage.warning('请选择至少一条数据');
return;
}
- // 选中含不可删条目时整批拦截(含已完成/进行中),不静默跳过
+ // 选中含部分结算/已结算时整批拦截,不静默跳过
if (selected.value.some(row => !canRemoveBatch(row))) {
- ElMessage.warning('已完成运单不可删除');
+ ElMessage.warning('仅未结算的运单批次可以删除');
return;
}
- return api.removeImportBatches(selected.value.map(item => item.id).join(',')).then(loadBatches);
+ try {
+ await ElMessageBox.confirm('确认删除选中的运单批次?删除后不可恢复。', '提示', {
+ type: 'warning',
+ });
+ } catch {
+ return;
+ }
+ await api.removeImportBatches(selected.value.map(item => item.id).join(','));
+ ElMessage.success('删除成功');
+ return loadBatches();
};
-const removeBatch = row => {
+const removeBatch = async row => {
if (!canRemoveBatch(row)) {
- ElMessage.warning('已完成运单不可删除');
+ ElMessage.warning('仅未结算的运单批次可以删除');
return;
}
- return api.removeImportBatches(row.id).then(loadBatches);
+ try {
+ await ElMessageBox.confirm(
+ `确认删除运单批次「${row.batchNo || ''}」?删除后不可恢复。`,
+ '提示',
+ { type: 'warning' }
+ );
+ } catch {
+ return;
+ }
+ await api.removeImportBatches(row.id);
+ ElMessage.success('删除成功');
+ return loadBatches();
};
const projectChange = async id => {
const requestId = ++projectRequestId;
diff --git a/src/views/settlement/components/settlement-import-page.vue b/src/views/settlement/components/settlement-import-page.vue
index 58c65d9..6a45c08 100644
--- a/src/views/settlement/components/settlement-import-page.vue
+++ b/src/views/settlement/components/settlement-import-page.vue
@@ -1378,22 +1378,18 @@ const confirmImport = async () => {
const loadTransportTypeOptions = async () => {
try {
+ // 运输方式取业务字典 transport_type 的字典名称(dictValue),不写死枚举
const response = await getDictionary({ code: 'transport_type' });
const list = unwrapData(response) || [];
transportTypeOptions.value = (Array.isArray(list) ? list : [])
.map(item => {
- const label = item.dictValue || item.label || item.name || '';
- const value = item.dictValue || item.dictKey || item.value || label;
- return label ? { label, value } : null;
+ const label = String(item.dictValue || item.label || item.name || '').trim();
+ if (!label || String(item.dictKey) === '-1') return null;
+ return { label, value: label };
})
.filter(Boolean);
} catch (error) {
- transportTypeOptions.value = [
- { label: '公路运输', value: '公路运输' },
- { label: '铁路运输', value: '铁路运输' },
- { label: '水路运输', value: '水路运输' },
- { label: '航空运输', value: '航空运输' },
- ];
+ transportTypeOptions.value = [];
}
};