36 lines
1.9 KiB
Vue
36 lines
1.9 KiB
Vue
<script setup lang="ts">
|
||
import AppDialog from '@/shared/components/AppDialog.vue'
|
||
|
||
const props = defineProps<{
|
||
dispatchNo?: string
|
||
busy?: boolean
|
||
saveDisabled?: boolean
|
||
pending?: boolean
|
||
beforeClose?: (done: () => void) => void | Promise<void>
|
||
}>()
|
||
const open = defineModel<boolean>({ default: false })
|
||
const emit = defineEmits<{ save: [] }>()
|
||
function close(done: () => void) {
|
||
if (props.busy) return
|
||
if (props.beforeClose) return props.beforeClose(done)
|
||
if (!props.pending) done()
|
||
}
|
||
</script>
|
||
|
||
<template>
|
||
<AppDialog v-model="open" class="admin-density-dialog admin-density" title="登记运营信息" width="1080px" :confirm-loading="busy" :confirm-disabled="saveDisabled" :confirm-text="pending ? '核对并重试原请求' : '保存登记'" :before-close="close" :close-on-press-escape="!busy" @confirm="emit('save')">
|
||
<p class="owned-business-operation-reference">排车单号 {{ dispatchNo || '—' }}</p>
|
||
<slot name="state" />
|
||
<fieldset class="owned-business-operation-section"><legend>整车金额</legend><slot name="amount" /><p>整车只登记一次;单价采用系统返回的总金额与实际物理托数计算结果。</p></fieldset>
|
||
<fieldset class="owned-business-operation-section"><legend>逐目的地实际到达时间</legend><slot name="arrivals" /></fieldset>
|
||
<fieldset class="owned-business-operation-section"><legend>实际里程与油耗</legend><slot name="measurements" /></fieldset>
|
||
<p>登记运营信息不推进排车或派送状态;照片在独立上传照片窗口中处理。</p>
|
||
</AppDialog>
|
||
</template>
|
||
|
||
<style scoped>
|
||
.owned-business-operation-reference { overflow-wrap: anywhere; }
|
||
.owned-business-operation-section { min-width: 0; margin: 0 0 var(--admin-space-4); padding: var(--admin-space-4); border: 1px solid var(--admin-table-border); }
|
||
.owned-business-operation-section legend { padding: 0 var(--admin-space-2); font-weight: 600; }
|
||
</style>
|