Files
im-uniapp/components/hrm/detailPanels/travel.vue

148 lines
4.0 KiB
Vue
Raw Normal View History

<template>
<!-- 出差申请详情容器使用已定义的样式类 -->
<view class="reimburse-detail-container">
<!-- 出差开始时间 -->
<view class="detail-item">
<view class="item-label">开始时间</view>
<view class="item-value">{{ detail.startTime || '无' }}</view>
</view>
<!-- 出差结束时间 -->
<view class="detail-item">
<view class="item-label">结束时间</view>
<view class="item-value">{{ detail.endTime || '无' }}</view>
</view>
<!-- 出差类型 -->
<view class="detail-item">
<view class="item-label">出差类型</view>
<view class="item-value">{{ detail.travelType || '无' }}</view>
</view>
<!-- 出差目的地 -->
<view class="detail-item">
<view class="item-label">出差目的地</view>
<view class="item-value">{{ detail.destination || '无' }}</view>
</view>
<!-- 出差原因 -->
<view class="detail-item">
<view class="item-label">出差原因</view>
<view class="item-value">{{ detail.reason || '无' }}</view>
</view>
<!-- 收款人姓名 -->
<view class="detail-item">
<view class="item-label">收款人姓名</view>
<view class="item-value">{{ detail.payeeName || '无' }}</view>
</view>
<!-- 预估费用拼接元单位 -->
<view class="detail-item">
<view class="item-label">预估费用</view>
<view class="item-value">{{ detail.estimatedCost || 0 }} </view>
</view>
<!-- 开户银行 -->
<view class="detail-item">
<view class="item-label">开户银行</view>
<view class="item-value">{{ detail.bankName || '无' }}</view>
</view>
<!-- 银行账号 -->
<view class="detail-item">
<view class="item-label">银行账号</view>
<view class="item-value">{{ detail.bankAccount || '无' }}</view>
</view>
<!-- 备注 -->
<view class="detail-item">
<view class="item-label">备注</view>
<view class="item-value">{{ detail.remark || '无' }}</view>
</view>
<!-- 创建人 -->
<view class="detail-item">
<view class="item-label">创建人</view>
<view class="item-value">{{ detail.createBy || '无' }}</view>
</view>
<!-- 创建时间 -->
<view class="detail-item">
<view class="item-label">创建时间</view>
<view class="item-value">{{ detail.createTime || '无' }}</view>
</view>
<!-- 更新人 -->
<view class="detail-item">
<view class="item-label">更新人</view>
<view class="item-value">{{ detail.updateBy || '无' }}</view>
</view>
<!-- 更新时间最后一项样式会自动去掉下边框 -->
<view class="detail-item">
<view class="item-label">更新时间</view>
<view class="item-value">{{ detail.updateTime || '无' }}</view>
</view>
</view>
</template>
<script>
import { getTravelReq } from '@/api/hrm/travel.js'
export default {
props: {
bizId: {
type: String,
required: true
}
},
data() {
return {
detail: {}
}
},
watch: {
bizId: {
handler(newVal) {
// 增加空值判断,避免无效请求
if (newVal) {
getTravelReq(newVal).then(res => {
this.detail = res.data || {}
console.log(this.detail)
})
}
},
immediate: true
}
},
}
</script>
<style scoped>
/* 容器样式 */
.reimburse-detail-container {
padding: 20rpx;
background-color: #ffffff;
border-radius: 12rpx;
margin: 10rpx;
box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.05);
}
/* 每一项的样式 */
.detail-item {
display: flex;
align-items: flex-start; /* 多行文本对齐 */
padding: 18rpx 0;
border-bottom: 1px solid #f5f5f5;
}
/* 最后一项去掉下边框 */
.detail-item:last-child {
border-bottom: none;
}
/* 标签样式 */
.item-label {
width: 140rpx;
font-size: 28rpx;
color: #666666;
font-weight: 500;
padding-top: 2rpx; /* 对齐多行文本 */
}
/* 值的样式 */
.item-value {
flex: 1;
font-size: 28rpx;
color: #333333;
line-height: 40rpx; /* 多行文本行高 */
}
</style>