Zlpt_Portal/src/views/user/orderManagement/detail.vue

324 lines
13 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.

<script setup lang="ts">
import { ref } from 'vue'
import PagingComponent from 'components/PagingComponent/index.vue'
import { useRouter } from 'vue-router'
import { getOrderListInfoApi } from 'http/api/usercenter/seekorder'
const route = useRoute()
/* 查询参数 */
const cardList = ref<any>({})
const orderStatusTemp = ref<number>(0)
const idTemp = ref<string>('')
const titleStaus = ref<any>('')
//描述信息
const operationDetails = ref<any>({
1: { title: '已出库', preOutboundUser: '', preOutboundTime: '' },
2: { title: '已收货', takeOverUser: '', takeOverTime: '' },
3: { title: '租赁结束', rentOverUser: '', rentOverTime: '' },
})
// 根据步骤的 Id 返回对应的标题
const getStepTitle = (stepId:number)=> {
if (orderStatusTemp.value === 2) {
titleStaus.value= '待出库' ;
return stepId === 1 ? '待出库' : '';
} else if (orderStatusTemp.value === 3) {
titleStaus.value= '待收货' ;
return stepId === 1 ? '已出库' : stepId === 2 ? '待收货' : '';
} else if (orderStatusTemp.value === 4) {
titleStaus.value= '租赁中' ;
return stepId === 1 ? '已出库' : stepId === 2 ? '已收货' : stepId === 3 ? '租赁中' : '';
} else if (orderStatusTemp.value === 5) {
titleStaus.value= '已退租' ;
return stepId === 1 ? '已出库' : stepId === 2 ? '已收货' : stepId === 3 ? '租赁结束' : stepId === 4 ? '已退租' : '';
} else if (orderStatusTemp.value === 6) {
titleStaus.value= '已完成' ;
return stepId === 1 ? '已出库' : stepId === 2 ? '已收货' : stepId === 3 ? '租赁结束' : stepId === 4 ? '已退租' : stepId === 5 ? '已完成' : '';
} else if(orderStatusTemp.value === 7) {
titleStaus.value= '已驳回' ;
return stepId === 1 ? '已驳回' : '';
}
titleStaus.value=''
return ''; // 默认返回空字符串
}
// 根据步骤的 Id 返回对应的描述
const getDescription=(desId:number)=>{
const operation = operationDetails.value[desId];
if (operation.title=="已出库" && titleStaus.value!= "待出库" ) {
return `
操作人:${operation.preOutboundUser==null ? ' ': operation.preOutboundUser}
操作时间:${operation.preOutboundTime==null ? ' ': operation.preOutboundTime}
`;
}else if(operation.title=="已收货" && titleStaus.value!= "待收货" && titleStaus.value!= "待出库"){
return `
操作人:${operation.takeOverUser==null ? ' ': operation.takeOverUser}
操作时间:${operation.takeOverTime==null ? ' ': operation.takeOverTime}
`;
}else if(operation.title=="租赁结束" && (titleStaus.value!= "待收货" && titleStaus.value!= "待出库" && titleStaus.value!= "租赁中")){
return `
操作人:${operation.rentOverUser==null ? ' ': operation.rentOverUser}
操作时间:${operation.rentOverTime==null ? ' ': operation.rentOverTime}
`;
}
return ''; // 默认返回空描述
}
const getId = ()=>{
orderStatusTemp.value = Number(route.query.orderStatusTemp)
idTemp.value = String(route.query.idTemp)
}
/** 查询列表 */
const getList = async () => {
let params = {
id: idTemp.value
}
const res: any = await getOrderListInfoApi(params)
cardList.value = res.data
operationDetails.value[1].preOutboundUser = res.data.detailsList[0].preOutboundUser
operationDetails.value[1].preOutboundTime = res.data.detailsList[0].preOutboundTime
operationDetails.value[2].takeOverUser = res.data.detailsList[0].takeOverUser
operationDetails.value[2].takeOverTime = res.data.detailsList[0].takeOverTime
operationDetails.value[3].rentOverUser = res.data.detailsList[0].rentOverUser
operationDetails.value[3].rentOverTime = res.data.detailsList[0].rentOverTime
}
onBeforeMount(()=>{
getId()
})
onMounted(() => {
getList()
})
const time = ref([])
</script>
<template>
<!-- 订单管理 -->
<div class="container">
<el-breadcrumb separator="/">
<el-breadcrumb-item :to="{ path: '/my-user/orderManagement' }">订单管理</el-breadcrumb-item>
<el-breadcrumb-item>订单明细</el-breadcrumb-item>
</el-breadcrumb>
<div class="section">
<el-header>
<el-row type="flex" justify="space-between" align="middle">
<el-col :span="3">
<span>订单流程</span>
</el-col>
<el-col :span="2" style="text-align:right;margin-right:20px;font-size: 20px;">
<div style="color:green;">{{titleStaus}}</div>
</el-col>
</el-row>
</el-header>
<el-steps class="step" :space="400" :active="orderStatusTemp===7 ? 1 : orderStatusTemp-1" finish-status="success">
<el-step :title="getStepTitle(1)" :description="getDescription(1)"></el-step>
<el-step :title="getStepTitle(2)" :description="getDescription(2)"></el-step>
<el-step :title="getStepTitle(3)" :description="getDescription(3)"></el-step>
<el-step :title="getStepTitle(4)" ></el-step>
<el-step :title="getStepTitle(5)" ></el-step>
</el-steps>
</div>
<div class="section">
<el-header style="height:30px">租赁信息
</el-header>
<div style="height: 80px;">
<div
class="info"
style="margin-top: 5px; display: flex; flex-wrap: wrap;"
>
<div class="item" style="width: 30%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;margin-left: 40px;opacity: 0.7">
<span>订单编号{{cardList.code}}</span>
</div>
<div class="item" style="width: 30%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;opacity: 0.7">
<span>下单时间{{cardList.orderTime}}</span>
</div>
<div class="item" style="width: 30%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;opacity: 0.7">
<span></span>
</div>
<div class="item" style="width: 30%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;margin-left: 40px;opacity: 0.7">
<span>出租单位{{cardList.czcompanyName}}</span>
</div>
<div class="item" style="width: 30%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;opacity: 0.7">
<span>出租人{{cardList.person}}</span>
</div>
<div class="item" style="width: 30%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;opacity: 0.7">
<span>出租人电话{{cardList.personPhone}}</span>
</div>
<div class="item" style="width: 30%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;margin-left: 40px;opacity: 0.7">
<span>承租单位{{cardList.companyName}}</span>
</div>
<div class="item" style="width: 30%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;opacity: 0.7">
<span>承租人{{cardList.nickName}}</span>
</div>
<div class="item" style="width: 30%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;opacity: 0.7">
<span>承租人电话{{cardList.phoneNumber}}</span>
</div>
<div class="item" style="width: 30%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;margin-left: 40px;opacity: 0.7">
<span>租赁协议</span>
</div>
</div>
</div>
<div class="cart-tbody" >
<el-row class="cart-list" v-for="(goods, j) in cardList.detailsList" :key="j">
<el-col :span="9" class="goods-info">
<el-col :span="7">
<img :src="goods.url" alt="" />
</el-col>
<div class="goods-code">
<div style="font-size: 10px; font-weight: bold">{{ goods.deviceName }}</div>
<div>租期:{{ goods.days }}{{ ' ' + '天' }}</div>
<div>租金:{{ goods.dayLeasePrice }}{{ ' ' + '元/天' }}</div>
<div>数量:{{ goods.num }}{{ ' ' + '台' }}</div>
</div>
</el-col>
<el-col :span="2">
<div style="font-size: 14px; font-weight: bold; margin-bottom: 10px">
总费用
</div>
<div class="red-font">{{goods.costs}}</div>
</el-col>
<el-col :span="7">
<div style="font-size: 14px; font-weight: bold; margin-bottom: 10px">租期</div>
<div style="color: black; font-weight: bold">
{{ goods.rentBeginTime }}
</div>
<div style="margin-top:3px;margin-bottom:3px">{{ '至' }}</div>
<div style="color: black; font-weight: bold">{{ goods.rentEndTime }}</div>
</el-col>
<el-col :span="2">
<div v-if="goods.orderStatus=='0'" style="font-size: 14px; font-weight: bold; margin-bottom: 10px; color:blue">{{"未下单"}}</div>
<div v-if="goods.orderStatus=='1'" style="font-size: 14px; font-weight: bold; margin-bottom: 10px; color:blue">{{"已下单"}}</div>
<div v-if="goods.orderStatus=='2'" style="font-size: 14px; font-weight: bold; margin-bottom: 10px; color:blue">{{"待出库"}}</div>
<div v-if="goods.orderStatus=='3'" style="font-size: 14px; font-weight: bold; margin-bottom: 10px; color:blue">{{"待收货"}}</div>
<div v-if="goods.orderStatus=='4'" style="font-size: 14px; font-weight: bold; margin-bottom: 10px; color:blue">{{"租赁中"}}</div>
<div v-if="goods.orderStatus=='5'" style="font-size: 14px; font-weight: bold; margin-bottom: 10px; color:blue">{{"已退租"}}</div>
<div v-if="goods.orderStatus=='6'" style="font-size: 14px; font-weight: bold; margin-bottom: 10px; color:blue">{{"已完成"}}</div>
<div v-if="goods.orderStatus=='7'" style="font-size: 14px; font-weight: bold; margin-bottom: 10px; color:blue">{{"已驳回"}}</div>
</el-col>
<!-- <el-col :span="3">
<div>
<el-button
@click="handleViewOrder(j)"
type="text"
size="mini"
style="color: #blue; font-weight: bold"
>
出库
</el-button>
<el-button
@click="handleViewOrder(j)"
type="text"
size="mini"
style="color: #blue; font-weight: bold"
>
驳回
</el-button>
</div>
</el-col> -->
</el-row>
</div>
</div>
</div>
</template>
<style lang="scss" scoped>
.container {
// width: 800px;
margin: 0 auto;
padding: 10px;
// background: #eeeff6;
font-size: 14px;
.step{
margin-left:80px;;
}
.section {
margin-top: 20px;
margin-bottom: 20px;
}
.cart-tbody {
background: #fff;
padding: 8px 12px;
margin: 10px;
border: 1px solid #ccc;
border-radius: 20px;
.cart-user-info {
display: flex;
align-items: center;
font-size: 13px;
.user-name,
.user-phone {
padding: 3px 18px;
border: 1px solid #ccc;
}
.user-name {
margin-left: 20px;
border-right: none;
}
}
.cart-list {
margin: 15px 0;
display: flex;
align-items: center;
div {
text-align: center;
}
.goods-info {
display: flex;
align-content: center;
img {
width: 140px;
height: 80px;
}
.goods-code {
margin-left: 70px;
display: flex;
flex-direction: column;
justify-content: space-around;
div {
text-align: left;
}
}
}
.lease-date {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
font-size: 12px;
}
.red-font {
color: #ff4800;
font-weight: bold;
}
}
}
}
</style>