37 lines
2.0 KiB
Vue
37 lines
2.0 KiB
Vue
<script setup lang="ts">
|
||
import InlineHelp from '@/shared/components/InlineHelp.vue'
|
||
import '@/styles/adminWorkbench.css'
|
||
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 admin-workbench is-dialog" 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="outsourced-business-operation-reference">排车单号 {{ dispatchNo || '—' }}</p>
|
||
<slot name="state" />
|
||
<fieldset class="outsourced-business-operation-section density-dialog-section" data-tone="work"><legend>整车承运金额<InlineHelp title="承运金额口径">整车只登记一次;单价采用系统返回的承运金额与实际物理托数计算结果。</InlineHelp></legend><slot name="amount" /></fieldset>
|
||
<fieldset class="outsourced-business-operation-section density-dialog-section" data-tone="work"><legend>逐目的地实际到达时间</legend><slot name="arrivals" /></fieldset>
|
||
<p class="density-dialog-note">登记运营信息不推进排车或派送状态;照片在独立上传照片窗口中处理。</p>
|
||
</AppDialog>
|
||
</template>
|
||
|
||
<style scoped>
|
||
.outsourced-business-operation-reference { overflow-wrap: anywhere; }
|
||
.outsourced-business-operation-section { min-width: 0; margin: 0 0 var(--admin-space-4); }
|
||
.outsourced-business-operation-section legend { padding: 0 var(--admin-space-2); font-weight: 600; }
|
||
</style>
|