zsy-recycling-supervision-a.../src/pages/dispose-recode/DisposeRecodeDetail.vue

156 lines
4.6 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<script lang="ts" setup>
const show = ref(false)
const ins = ref<HTMLElement | null>(null)
const data = reactive<DisposeRecodeTypes.DisposeRecodeData>({
id: '',
origin: '',
clearingCompany: '',
licensePlate: '',
contact: '',
contactPhone: '',
inWeight: '',
outWeight: '',
suttleWeight: '',
inTime: '',
outTime: '',
disposalSite: '',
inFrontPhoto: '',
inBodyPhoto: '',
outFrontPhoto: '',
outBodyPhoto: '',
timeOutStatus: '',
timeOutStatusTxt: ''
})
const container = ref<HTMLElement | undefined>(undefined)
function closeHandler() {
container.value!.style!.width = '0'
container.value!.style!.height = '0'
show.value = false
}
defineExpose({
open(detail: DisposeRecodeTypes.DisposeRecodeData) {
Object.assign(data, detail)
container.value!.style.width = '100%'
container.value!.style.height = '100%'
show.value = true
}
})
</script>
<template>
<div ref="container" style="position: absolute;width: 0;height: 0">
<IxModal ref="ins" v-model:visible="show" :container="container"
:mask="false"
:on-before-close="closeHandler" cancel-text="" class="dispose-recode-detail" draggable header="处置详情" maskClosable type="default" width="50rem">
<div class="dispose-recode-detail-info">
<p class="detail-item"><span>来源地</span><span>{{ data.origin ?? '-' }}</span></p>
<p class="detail-item"><span>清运公司</span><span>{{ data.clearingCompany ?? '-' }}</span></p>
<p class="detail-item"><span>车牌号</span><span>{{ data.licensePlate ?? '-' }}</span></p>
<p class="detail-item"><span>联系人</span><span>{{ data.contact ?? '-' }}</span></p>
<p class="detail-item"><span>联系电话</span><span>{{ data.contactPhone ?? '-' }}</span></p>
<p class="detail-item"><span>进场磅重</span><span>{{ data.inWeight ?? '-' }}</span></p>
<p class="detail-item"><span>出场磅重</span><span>{{ data.outWeight ?? '-' }}</span></p>
<p class="detail-item"><span>净重</span><span>{{ data.suttleWeight ?? '-' }}</span></p>
<p class="detail-item"><span>进场时间</span><span>{{ data.inTime ?? '-' }}</span></p>
<p class="detail-item"><span>出场时间</span><span>{{ data.outTime ?? '-' }}</span></p>
<p class="detail-item"><span>消纳场名称</span><span>{{ data.disposalSite ?? '-' }}</span></p>
</div>
<div class="dispose-recode-detail-img-title">车辆照片</div>
<div class="dispose-recode-detail-img">
<div class="detail-item img-card">
<div class="img-title">进场车头照</div>
<IxImage :src="data.inFrontPhoto" alt="进场前"/>
</div>
<div class="detail-item img-card">
<div class="img-title">进场车身照</div>
<IxImage :src="data.inBodyPhoto" alt="进场后"/>
</div>
<div class="detail-item img-card">
<div class="img-title">出出场车头照</div>
<IxImage :src="data.outFrontPhoto" alt="出场前"/>
</div>
<div class="detail-item img-card">
<div class="img-title">出场车身照</div>
<IxImage :src="data.outBodyPhoto" alt="出场后"/>
</div>
</div>
<div class="dispose-recode-detail-img-title">装车照片</div>
<div v-if="data.tspPhotos == null || data.tspPhotos.length === 0">
<IxEmpty/>
</div>
<div v-else class="dispose-recode-detail-img">
<p v-for="tspPhoto in data.tspPhotos" class="detail-item img-card"><span class="img-title"></span>
<IxImage :src="tspPhoto" alt="装车照片"/>
</p>
</div>
<template #footer="{ cancel:_, ok }">
<IxButton mode="primary" @click="ok"></IxButton>
</template>
</IxModal>
</div>
</template>
<style lang="stylus" scoped>
.dispose-recode-detail-info, .dispose-recode-detail-img {
display grid !important
grid-template-columns 1fr 1fr
grid-gap 1rem
}
.dispose-recode-detail-img-title {
color #1F2937
font-weight bold
margin-bottom .5rem
}
.img-card {
background-color: rgb(249 250 251);
padding .5rem
border-radius .5rem
.img-title {
text-align center
}
:deep(.ix-image) {
img {
width: 100%;
height: auto;
object-fit: cover;
min-height unset
min-width unset;
}
}
}
.detail-item {
span, img {
display block
}
span:first-child {
color #6B7280
}
span:nth-child(2) {
color #111827
}
}
:deep(.ix-modal-body) {
max-height: 45rem;
}
:deep(.ix-modal-wrapper),
:deep(.ix-mask) {
position absolute
}
</style>