lanan-repair-app/components/orderCard.vue
2024-10-17 18:05:11 +08:00

230 lines
4.4 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="orderCard">
<view class="order-top">
<view class="orderNo">
工单编号{{ order.orderNo }}
</view>
<view :style="{ color: getFlagColor(order.flag) }" class="flag">
{{ order.flagStr }}
</view>
</view>
<view class="order-body">
<view class="carNum">
{{ order.carNum }}
</view>
<view class="carModel">
{{ order.carModel }}
</view>
<view class="project">
<view class="project-left">
<view class="title">
<image class="titleIcon" mode="aspectFit" src="/static/icons/order-icon1.png"></image>
维修项目
</view>
<view class="desc">
{{ projectName }}
</view>
</view>
<view v-if="order.flag == 2" class="project-right">
<image class="rightIcon" mode="aspectFit" src="/static/icons/success.png"></image>
<text class="rightText">已派工</text>
</view>
</view>
<view class="baseInfo">
<view>
客户信息:{{ order.userName }} {{ order.userPhone }}
</view>
<view>
预约时间:{{ order.appointDate }}
</view>
<view>
服务顾问:{{ order.counselorName }}
</view>
</view>
<view class="footer">
<view @click="gotoDetail" v-if="order.flag == 1" class="btn pg">
项目派工
</view>
<view @click="gotoDetail" v-else-if="order.flag == 2" class="btn qc">
告知取车
</view>
</view>
</view>
</view>
</template>
<script>
export default {
name: "orderCard",
props: {
order: {
type: Object,
default: () => {
return {}
}
}
},
computed: {
projectName() {
if (this.order && this.order.projectList && this.order.projectList.length > 0) {
return this.order.projectList.map(m => m.name).join(',')
}
return ''
}
},
data() {
return {}
},
methods: {
getFlagColor(flag) {
if (flag == 1) {
return '#E8A321'
} else if (flag === 2) {
return '#999'
}
},
gotoDetail() {
uni.navigateTo({
url: '/pages-order/orderDetail/orderDetail?id=' + this.order.id
})
}
}
}
</script>
<style lang="less" scoped>
.orderCard {
background: #FFFFFF;
border-radius: 8rpx 8rpx 8rpx 8rpx;
border-left: 4rpx solid #FFB323;
padding: 0 30rpx;
}
.order-top {
padding: 20rpx 0;
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 1px solid #F3F5F7;
.orderNo {
font-weight: 500;
font-size: 24rpx;
color: #858BA0;
}
.flag {
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 24rpx;
}
}
.order-body {
.carNum {
margin: 20rpx 0;
}
.carModel {
margin: 20rpx 0;
font-weight: 500;
font-size: 28rpx;
color: #858BA0;
}
.project {
padding: 20rpx 10rpx;
background: #F2F2F7;
border-radius: 4rpx 4rpx 4rpx 4rpx;
display: flex;
align-items: center;
.project-left {
flex: 1;
width: 0;
}
.project-right {
padding: 0 16rpx;
display: flex;
flex-direction: column;
align-items: center;
border-left: 1rpx solid #DDDDDD;
.rightIcon {
width: 40rpx;
height: 40rpx;
}
.rightText {
font-weight: 500;
font-size: 24rpx;
color: #17DBB1;
}
}
.title {
font-weight: 500;
font-size: 24rpx;
color: #0174F6;
display: flex;
align-items: center;
column-gap: 8rpx;
}
.titleIcon {
width: 24rpx;
height: 24rpx;
}
.desc {
font-weight: 500;
font-size: 24rpx;
color: #333333;
margin-top: 10rpx;
}
}
.baseInfo {
font-weight: 500;
font-size: 28rpx;
color: #858BA0;
& > view {
margin: 30rpx 0;
}
}
.footer {
display: flex;
align-items: center;
justify-content: flex-end;
column-gap: 10rpx;
padding-bottom: 30rpx;
.btn {
width: 172rpx;
height: 60rpx;
border-radius: 30rpx 30rpx 30rpx 30rpx;
border: 2rpx solid #0174F6;
display: flex;
align-items: center;
justify-content: center;
font-weight: 500;
font-size: 28rpx;
color: #0174F6;
&.qc {
background: #0174F6;
color: #fff;
}
}
}
}
</style>