|
|
|
@@ -2,7 +2,7 @@
|
|
|
|
|
import { computed, nextTick, onBeforeUnmount, onMounted, reactive, ref, watch } from 'vue'
|
|
|
|
|
import { useRoute, useRouter } from 'vue-router'
|
|
|
|
|
import { ElMessage, ElMessageBox, type FormInstance, type FormItemRule, type FormRules, type UploadRequestOptions } from 'element-plus'
|
|
|
|
|
import { AlertTriangle, Box, ChevronDown, ChevronUp, Download, Eye, FilePlus2, FileText, GripVertical, ImagePlus, MapPin, PackageCheck, Pencil, Plus, RotateCcw, Send, SlidersHorizontal, Trash2, Upload } from '@lucide/vue'
|
|
|
|
|
import { AlertTriangle, Box, ChevronDown, ChevronUp, Download, FilePlus2, FileText, GripVertical, ImagePlus, MapPin, PackageCheck, Pencil, Plus, RotateCcw, Send, SlidersHorizontal, Trash2, Upload } from '@lucide/vue'
|
|
|
|
|
import { FIRST_LEG_ORDER_STATUSES, type FirstLegOrderStatus } from '@chongchong/shared'
|
|
|
|
|
import QueryToolbar, { type QueryField, type QueryModel } from '@/components/common/QueryToolbar.vue'
|
|
|
|
|
import DataTable, { type DataTableColumn } from '@/components/common/DataTable.vue'
|
|
|
|
@@ -1159,16 +1159,16 @@ async function autofillWarehouseSelections() {
|
|
|
|
|
function getOrderRowActions(row: object): TableAction[] {
|
|
|
|
|
const order = row as FirstLegOrder
|
|
|
|
|
const actions: TableAction[] = [
|
|
|
|
|
{ key: 'detail', label: '详情', icon: Eye, run: () => openDetail(order) },
|
|
|
|
|
{ key: 'detail', label: '详情', run: () => openDetail(order) },
|
|
|
|
|
]
|
|
|
|
|
if (canConfirmInboundFee.value && order.businessSummary.customerFeeConfirmationRequired) {
|
|
|
|
|
actions.push({ key: 'fee', label: '确认计费重', run: () => openFeeConfirmation(order) })
|
|
|
|
|
}
|
|
|
|
|
if (canEditOrder.value && canClientEditFirstLegOrder(order.status)) {
|
|
|
|
|
actions.push({ key: 'edit', label: '编辑', icon: Pencil, loading: openingEditor.value, run: () => openEdit(order) })
|
|
|
|
|
actions.push({ key: 'edit', label: '编辑', loading: openingEditor.value, run: () => openEdit(order) })
|
|
|
|
|
}
|
|
|
|
|
if (eligibleCustomsDetail(order)) {
|
|
|
|
|
actions.push({ key: 'customs', label: '报关资料', icon: FileText, run: () => openCustomsDocuments(order) })
|
|
|
|
|
actions.push({ key: 'customs', label: '报关资料', run: () => openCustomsDocuments(order) })
|
|
|
|
|
}
|
|
|
|
|
return actions
|
|
|
|
|
}
|
|
|
|
@@ -1997,10 +1997,10 @@ async function searchOrders(model: QueryModel) {
|
|
|
|
|
<footer>
|
|
|
|
|
<span>更新于 {{ formatDateTime(order.updatedAt) }}</span>
|
|
|
|
|
<div>
|
|
|
|
|
<el-button link type="primary" @click="openDetail(order)"><Eye :size="15" />详情</el-button>
|
|
|
|
|
<el-button link type="primary" @click="openDetail(order)">详情</el-button>
|
|
|
|
|
<el-button v-if="canConfirmInboundFee && order.businessSummary.customerFeeConfirmationRequired" link type="primary" @click="openFeeConfirmation(order)">确认计费重</el-button>
|
|
|
|
|
<el-button v-if="canEditOrder && canClientEditFirstLegOrder(order.status)" link type="primary" :loading="openingEditor" @click="openEdit(order)"><Pencil :size="15" />编辑</el-button>
|
|
|
|
|
<el-button v-if="eligibleCustomsDetail(order)" link type="primary" @click="openCustomsDocuments(order)"><FileText :size="15" />报关资料</el-button>
|
|
|
|
|
<el-button v-if="canEditOrder && canClientEditFirstLegOrder(order.status)" link type="primary" :loading="openingEditor" @click="openEdit(order)">编辑</el-button>
|
|
|
|
|
<el-button v-if="eligibleCustomsDetail(order)" link type="primary" @click="openCustomsDocuments(order)">报关资料</el-button>
|
|
|
|
|
</div>
|
|
|
|
|
</footer>
|
|
|
|
|
</article>
|
|
|
|
|