You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

513 lines
16 KiB

<template>
<div>
<div class="order_info">
<div class="order_info_left">
<div class="order_info_left_title">订单信息</div>
<div class="order_info_left_content">
<div class="order_info_left_content_item">
<span>联系地址 </span>
<span>{{orderInfos.express_address}}</span>
</div>
<div class="order_info_left_content_item">
<span>联系人 </span>
<span>{{orderInfos.express_user}} {{orderInfos.express_userphone}}</span>
</div>
<div class="order_info_left_content_item">
<span>订单编号 </span>
<span>{{orderInfos.batchcode}}</span>
</div>
<div class="order_info_left_content_item">
<span>下单时间 </span>
<span>{{orderInfos.create_time | formatDate}}</span>
</div>
<div class="order_info_left_content_item">
<span>挂牌方 </span>
<span>{{orderInfos.sell_name}}</span>
</div>
<div class="order_info_left_content_item">
<span>摘牌方留言 </span>
<span>{{orderInfos. sell_message}}</span>
</div>
</div>
</div>
<div class="order_info_right">
<div class="order_info_right_title">
<img src="../../../assets/img/order_stats.png" alt="">
<span>订单状态
<template v-if="orderInfos.status==0 && orderInfos.check_status==0">等待摘牌方付款</template>
<template v-else-if="orderInfos.status==1 && orderInfos.check_status==0">等待交易所确认</template>
<template v-else-if="orderInfos.status==1 && orderInfos.check_status==2">摘牌方付款确认审核失败</template>
<template v-else-if="orderInfos.status==2 && orderInfos.check_status==0">等待双方上传签约合同</template>
<template v-else-if="orderInfos.status==3 && orderInfos.check_status==0">等待交易所确认签约合同</template>
<template v-else-if="orderInfos.status==3 && orderInfos.check_status==2">确认签约合同审核失败</template>
<template v-else-if="orderInfos.status==4 ">等待摘牌方确认交付</template>
<template v-else-if="orderInfos.status==6 ">订单结算中</template>
</span>
</div>
<p class="order_info_right_tips" v-if="orderInfos.status==0 && orderInfos.check_status==0 || orderInfos.status==1 && orderInfos.check_status==2">
摘牌方还要
<countDown :endTime="orderInfos.pay_overdue_time" endText="已经结束了"></countDown>
来付款,超时订单自动关闭。
</p>
<p class="order_info_right_tips" v-if="orderInfos.status==6">
摘牌方已确认交付,该订单正在结算中,订单结算金额为( ¥ 27,000.00 ),请耐心等候!
</p>
<p class="order_info_right_tips" v-else-if="orderInfos.status==1 && orderInfos.check_status==0">
摘牌方已上传转账记录,还有
<countDown :endTime="orderInfos.pay_overdue_time" endText="已经结束了"></countDown>
由交易所确认,请耐心等候!
</p>
<p class="order_info_right_tips" v-else-if="orderInfos.status==2 && orderInfos.check_status==0||orderInfos.status==3 && orderInfos.check_status==2">
请双方上传签约合同PDF文件扫描件,由交易所见证交易过程!
</p>
<p class="order_info_right_tips" v-else-if="orderInfos.status==3 && orderInfos.check_status==0">
交易所正在审核确认双方上传的签约合同,请耐心等候!
</p>
<p class="order_info_right_tips" v-if="orderInfos.status==4">
摘牌方还有
<countDown :endTime="orderInfos.pay_overdue_time" endText="已经结束了"></countDown>
来确认,超时订单自动确认。订单确认后交易所将会出具双方资产评估报告,确认资产交易成功!
</p>
<template v-if="orderInfos.status==2 && orderInfos.check_status==0 ||orderInfos.status==3 && orderInfos.check_status==0||orderInfos.status==3 && orderInfos.check_status==2">
<div class="order_info_right_tips">
<span>摘牌方上传</span>
<el-upload
v-if="orderInfos. sell_contract==null && orderInfos.check_status==0 || orderInfos.check_status==2"
class="upload-demo"
:action="action1"
:show-file-list="false"
:on-error="handleAvatarError"
list-type="picture"
:on-success="(res,file)=>{handleAvatarSuccess1(res,file)}"
>
<span class="upload_span ">{{orderInfos.check_status==2? '重新上传':'点击上传'}}</span>
</el-upload>
<a v-else class="upload_span upload-demo" :href="orderInfos.sell_contract" download>查看记录</a>
</div>
<div class="order_info_right_tips">
<span>挂牌方上传</span>
<a class="upload_span upload-demo" @click="imgDetils(orderInfos.buy_contract)">查看记录</a>
</div>
</template>
<div class="order_info_right_tips" v-if="orderInfos.status==6 ">
<span>您可以点击</span>
<button class="pay_button" @click="imgDetils()">{{orderInfos.type==1?'资产评估报告':'交易凭证'}}</button>
<span>下载{{orderInfos.type==1?'资产评估报告':'交易凭证'}}</span>
</div>
<div class="order_info_right_tips" v-if=" orderInfos.status==1">
<span>您可以</span>
<template v-if="orderInfos.status==0 && orderInfos.check_status==0 || orderInfos.status==1 && orderInfos.check_status==2">
<button class="pay_button">网银支付</button>
<span>或上传转账记录</span>
<el-upload
class="upload-demo"
:action="action"
:on-change="fileChange"
:show-file-list="false"
:on-error="handleAvatarError"
list-type="picture"
:on-success="(res,file)=>{handleAvatarSuccess(res,file)}"
>
<span class="upload_span">点击上传</span>
</el-upload>
</template>
<template v-else-if="orderInfos.status==1 && orderInfos.check_status==0">
<span class="upload_span1" @click="onPreview(orderInfos.pay_record)">查看记录</span>
</template>
</div>
<div class="error_msg" v-if="orderInfos.check_status==2">失败原因:{{orderInfos.check_content}}</div>
</div>
</div>
<div class="order_head">
<div class="order_head_item" >资产名称</div>
<div class="order_head_item" >资产编号</div>
<div class="order_head_item" >资产分类</div>
<div class="order_head_item" >资产单价</div>
<div class="order_head_item" >交易数量</div>
<div class="order_head_item" >金额小计</div>
</div>
<div class="order_content">
<div class="order_content_item">
<img :src="orderInfos.serial_img[0]" alt="" class="order_content_item_img">
<span class="order_content_item_span">{{orderInfos.serial_name}}</span>
</div>
<div class="order_content_item">
<span>GM-BZ-165254{{orderInfos.serial_name}}</span>
</div>
<div class="order_content_item">
<span>{{orderInfos.asset_type_name}}</span>
</div>
<div class="order_content_item">
<span>¥ {{orderInfos.single_price}}</span>
</div>
<div class="order_content_item">
<span>{{orderInfos.count}}</span>
</div>
<div class="order_content_item">
<span class="order_price">¥ {{orderInfos.price}}</span>
</div>
</div>
<div class="order_other">
<div class="order_other_item">
<div class="order_message">
<span>给挂牌方留言:</span>
<span>{{orderInfos.buy_message}}</span>
</div>
<div class="order_other_item_right">
<div>
<span>契税: ¥ {{orderInfos.contract_tax}}</span>
<span class="order_price">¥ {{orderInfos.contract_tax}}</span>
</div>
<div>
<span>印花税: ¥ {{orderInfos.printing_tax}}</span>
<span class="order_price">¥ {{orderInfos.printing_tax}}</span>
</div>
</div>
</div>
<div class="order_other_item order_other_item1">
<span>金额合计 </span>
<span class="all_price"> ¥ {{orderInfos.total_price}}</span>
</div>
</div>
<el-image-viewer
v-if="showViewer"
:on-close="closeViewer"
:url-list="img_url"
:z-index="9999"
/>
</div>
</template>
<script>
import {orderInfo,uploadingRecord,uploadingContract} from '../../../api/index'
export default {
data(){
return{
query:{
batchcode:'',
record:''
},
showViewer:false,
img_url:[],
orderInfos:{
serial_img:[]
},
host:'http://wenhua.xingtongworld.com',
action:'http://wenhua.xingtongworld.com/api/Index/uploadimg',
action1:'http://wenhua.xingtongworld.com/api/Index/uploadFile',
}
},
components: {
ElImageViewer: () => import('element-ui/packages/image/src/image-viewer'),
countDown: () => import('../../common/countDown.vue'),
},
created(){
this.query.batchcode=this.$route.query.batchcode
this.getData()
},
methods:{
uploadingContract(contract){
let data={
sell_contract:contract,
batchcode:this.query.batchcode,
}
uploadingContract(data).then(res=>{
console.info(res)
if(res.code==100){
this.orderInfos.buy_contract=this.host+res.data.img_url;
this.$message.success('上传成功!');
}else{
this.$message.error(res.msg)
}
})
},
imgDetils(img){
if(img!=null){
window.location.href = img;
}else{
this.$message.error('摘牌方还未上传签约合同')
}
},
getData(){
orderInfo(this.query).then(res => {
console.info(res)
if(res.code==100){
this.orderInfos=res.data
this.$emit('confirm',res.data)
}else{
this.$message.error(res.msg)
}
})
},
uploadingRecord(){
uploadingRecord(this.query).then(res => {
console.info(res)
if(res.code==100){
this.$message.success('文件上传成功!请等待审核~');
}else{
this.$message.error(res.msg)
}
})
},
onPreview(img) {
this.img_url = [img]
this.showViewer = true
},
// 关闭查看器
closeViewer() {
this.showViewer = false
},
handleAvatarError(){
this.$message.error('文件上传失败!');
},
handleAvatarSuccess1(res,file){
console.info(res)
if(res.code==1){
let contract=this.host+res.data.img_url;
this.uploadingContract(contract)
}else{
this.$message.error(res.msg);
}
},
handleAvatarSuccess(res, file, index,key){
if(res.code==1){
this.query.record=this.host+res.data.img_url;
this.uploadingRecord()
}
},
fileChange(file){
const typeArr = ['image/png', 'image/gif', 'image/jpeg', 'image/jpg'];
const isJPG = typeArr.indexOf(file.raw.type) !== -1;
const isLt3M = file.size / 1024 / 1024 < 3;
if (!isJPG) {
this.$message.error('只能是图片!');
this.$refs.upload.clearFiles();
return;
}
if (!isLt3M) {
this.$message.error('上传图片大小不能超过 3MB!');
this.$refs.upload.clearFiles();
// this.$set(this.query, 'goods_img', '');
return;
}
},
}
}
</script>
<style scoped>
.upload-demo{
margin-left: 20px;
}
.upload_span{
color: #294CC6;
text-decoration: underline;
cursor: pointer;
}
.upload_span1{
color: #294CC6;
text-decoration: underline;
display: inline-block;
margin-left: 20px;
cursor: pointer;
}
.order_info{
width: 100%;
min-height: 360px;
height: auto;
border: 1px solid rgba(215, 215, 215, 1);
margin-bottom: 30px;
display: flex;
}
.order_info_right{
width: 940px;
display: flex;
flex-direction: column;
justify-content: center;
padding-left: 60px;
box-sizing: border-box;
}
.order_info_right_title{
display: flex;
align-items: center;
font-size: 16px;
margin-bottom: 35px;
}
.order_info_right_title img{
width: 30px;
height: 30px;
margin-right: 30px;
}
.order_info_right_tips{
font-size: 12px;
color: #555555;
display: flex;
align-items: center;
margin-left: 80px;
margin-bottom: 25px;
}
.order_time{
color: #89201F;
}
.pay_button{
width: 80px;
font-size: 12px;
color: #555555;
height: 30px;
border: 1px solid #D7D7D7;
margin: 0 20px;
cursor: pointer;
}
.order_info_left{
width: 250px;
border-right: 1px solid rgba(215, 215, 215, 1);
box-sizing: border-box;
background-color: #F2F2F2;
}
.order_info_left_title{
padding-left: 20px;
background-color: #E7E7E7;
display: flex;
height: 40px;
align-items: center;
font-size: 12px;
font-weight: 650;
border-bottom: 1px solid rgba(215, 215, 215, 1);
box-sizing: border-box;
}
.order_info_left_content{
padding: 10px 20px;
min-height: 320px;
height: auto;
box-sizing: border-box;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.order_info_left_content_item{
font-size: 12px;
color: #555555;
display: flex;
margin-bottom: 10px;
}
.order_info_left_content_item span:first-child{
display: inline-block;
width: 80px;
margin-right: 10px;
}
.order_info_left_content_item span:last-child{
display: inline-block;
width: 135px;
}
.order_head{
display: flex;
justify-content: space-between;
margin-bottom: 25px;
width: 100%;
}
.order_head_item{
width: 166px;
font-size: 12px;
color: #7F7F7F;
text-align: center;
border-bottom: 2px solid rgba(215, 215, 215, 1);
padding-bottom: 5px;
}
.order_head_item:first-child{
width:340px
}
.order_content{
height: 75px;
background-color: rgba(255, 255, 255, 0);
border-top: 1px dashed #AAAAAA;
border-bottom: 1px dashed #AAAAAA;
display: flex;
justify-content: space-between;
margin-bottom: 5px;
}
.order_content_item{
width: 166px;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
font-size: 12px;
box-sizing: border-box;
}
.order_content_item:first-child{
width:340px;
justify-content: flex-start;
padding-left: 20px;
}
.order_content_item:last-child{
justify-content: flex-end;
padding-right: 20px;
}
.order_content_item_img{
width: 55px;
height: 55px;
margin-right: 10px;
}
.order_content_item_span{
display: inline-block;
width: 240px;
}
.order_price{
color: #EB4747;
}
.order_other{
margin-bottom: 100px;
}
.order_other_item{
display: flex;
justify-content: space-between;
height: 103px;
width: 100%;
}
.order_message{
width: 596px;
padding: 10px 20px;
display: flex;
font-size: 12px;
background: #F2F2F2;
box-sizing: border-box;
}
.order_message .order_message_input{
width: 455px;
margin-left: 10px;
}
.order_message_input >>>.el-textarea__inner{
height: 75px;
}
.order_other_item_right{
display: flex;
flex-direction: column;
justify-content: space-between;
}
.order_other_item_right>div{
width: 601px;
height: 50px;
background-color: rgba(242, 242, 242, 1);
font-size: 12px;
padding: 0 20px;
display: flex;
align-items: center;
box-sizing: border-box;
justify-content: space-between;
}
.order_other_item1{
height: 50px;
background: #F2F2F2;
align-items: center;
justify-content: flex-end;
margin-top: 3px;
font-size: 14px;
padding-right: 20px;
box-sizing: border-box;
}
.error_msg{
font-size: 12px;
color: #89201F;
margin-left: 80px;
}
</style>