@@ -166,6 +166,15 @@ export function biddinglist(query){ | |||
}) | |||
} | |||
//我的竞价 | |||
export function userBiddingList(query){ | |||
return request({ | |||
url: '/transaction/website/biddinglist/projectId', | |||
method: 'get', | |||
params: query | |||
}) | |||
} | |||
//查询开户行 | |||
export function realtimeList(query){ | |||
return request({ | |||
@@ -71,7 +71,7 @@ | |||
<van-col span="24"><span>竞价方向:</span>{{ detail.biddingDirect }}</van-col> | |||
</van-row> | |||
<van-row v-if="detail.ladderPrice"> | |||
<van-col span="24"><span>阶梯价(增减幅度):</span>¥{{ detail.ladderPrice }} 元</van-col> | |||
<van-col span="24"><span>阶梯价(增减幅度):</span>¥{{ detail.ladderPrice }}</van-col> | |||
</van-row> | |||
<van-row> | |||
<van-col span="24"><span>延时周期:</span>{{timeConfig}}分钟</van-col> | |||
@@ -388,6 +388,9 @@ export default { | |||
this.getDicts("bidding_direct").then(res => { | |||
this.detail.biddingDirect = this.selectDictLabel(res.data,response.data.biddingDirect); | |||
}); | |||
this.getDicts("price_unit").then(res => { | |||
this.detail.unit = this.selectDictLabel(res.data,response.data.unit); | |||
}); | |||
for(let i of this.detail.subjectList){ | |||
this.getDicts("area_unit").then(res => { | |||
i.areaUnit = this.selectDictLabel(res.data,i.areaUnit); | |||
@@ -399,13 +402,15 @@ export default { | |||
that.biddinglistInformation = response.rows | |||
that.biddinglistInformationLength = response.total | |||
if (response.rows.length>0&&that.detail.ladderPrice){ | |||
console.log(that.detail.biddingDirect) | |||
if (that.price == 0){return;} | |||
if (that.detail.biddingDirect == 2 ||that.detail.biddingDirect == '反向竞价') { | |||
that.price = response.rows[0].money - that.detail.ladderPrice | |||
}else{ | |||
that.price = response.rows[0].money + that.detail.ladderPrice | |||
} | |||
}else if (response.rows.length>0&&!that.detail.ladderPrice){ | |||
if (that.price == 0){return;} | |||
that.price = response.rows[0].money | |||
}else{ | |||
if (that.detail.biddingDirect == 2 ||that.detail.biddingDirect == '反向竞价') { | |||
that.price = that.detail.price - that.detail.ladderPrice | |||
@@ -596,24 +601,51 @@ export default { | |||
}else{ | |||
newMoney = this.detail.price; | |||
} | |||
}); | |||
if (this.price==''||this.price==0||this.price<0||this.price == null){ | |||
this.$toast({ | |||
icon: 'fail', // 找到自己需要的图标 | |||
message: '请输入出价金额', | |||
duration:"1000", | |||
onClose:function(){ | |||
} | |||
}) | |||
return; | |||
} | |||
if (this.detail.biddingDirect == '反向竞价'){ | |||
// if (this.biddinglistInformation.length<1){ | |||
if(this.detail.price<this.price){ | |||
if (this.price==''||this.price==0||this.price<0||this.price == null){ | |||
this.$toast({ | |||
icon: 'fail', // 找到自己需要的图标 | |||
message: '请输入出价金额', | |||
duration:"1000", | |||
onClose:function(){ | |||
} | |||
}) | |||
return; | |||
} | |||
if (this.detail.biddingDirect == '反向竞价'){ | |||
// if (this.biddinglistInformation.length<1){ | |||
if(this.detail.price<this.price){ | |||
this.$toast({ | |||
icon: 'fail', // 找到自己需要的图标 | |||
message: '出价不能高于挂牌价格', | |||
duration:"1000", | |||
onClose:function(){ | |||
} | |||
}) | |||
return; | |||
}else{ | |||
if (this.detail.biddingType=='阶梯竞价'||this.detail.biddingType=='公开竞价'){ | |||
if (this.biddinglistInformation.length>1){ | |||
//判断用户出价不能高于当前出价最低价格 | |||
if(newMoney <= this.price){ | |||
this.$toast({ | |||
icon: 'fail', // 找到自己需要的图标 | |||
message: '出价不能高于当前出价最低价格', | |||
duration:"1000", | |||
onClose:function(){ | |||
} | |||
}) | |||
return; | |||
} | |||
} | |||
} | |||
} | |||
}else{ | |||
if(this.detail.price>this.price){ | |||
this.$toast({ | |||
icon: 'fail', // 找到自己需要的图标 | |||
message: '出价不能高于挂牌价格', | |||
message: '出价不能低于挂牌价格', | |||
duration:"1000", | |||
onClose:function(){ | |||
} | |||
@@ -623,10 +655,12 @@ export default { | |||
if (this.detail.biddingType=='阶梯竞价'||this.detail.biddingType=='公开竞价'){ | |||
if (this.biddinglistInformation.length>1){ | |||
//判断用户出价不能高于当前出价最低价格 | |||
if(newMoney <= this.price){ | |||
console.log(newMoney) | |||
console.log(this.price) | |||
if(newMoney >= this.price){ | |||
this.$toast({ | |||
icon: 'fail', // 找到自己需要的图标 | |||
message: '出价不能高于当前出价最低价格', | |||
message: '出价不能低于当前出价最高价格', | |||
duration:"1000", | |||
onClose:function(){ | |||
} | |||
@@ -636,64 +670,37 @@ export default { | |||
} | |||
} | |||
} | |||
}else{ | |||
if(this.detail.price>this.price){ | |||
this.$toast({ | |||
icon: 'fail', // 找到自己需要的图标 | |||
message: '出价不能低于挂牌价格', | |||
duration:"1000", | |||
onClose:function(){ | |||
} | |||
}) | |||
return; | |||
}else{ | |||
if (this.detail.biddingType=='阶梯竞价'||this.detail.biddingType=='公开竞价'){ | |||
if (this.biddinglistInformation.length>1){ | |||
//判断用户出价不能高于当前出价最低价格 | |||
if(newMoney >= this.price){ | |||
this.$toast({ | |||
icon: 'fail', // 找到自己需要的图标 | |||
message: '出价不能低于当前出价最高价格', | |||
duration:"1000", | |||
onClose:function(){ | |||
} | |||
}) | |||
return; | |||
} | |||
} | |||
} | |||
} | |||
} | |||
let data= { | |||
projectId:this.id, | |||
memberId:this.memberId, | |||
userId:this.userId, | |||
userAccount:this.userAccount, | |||
userName:this.userName, | |||
money:parseFloat(this.price), | |||
}; | |||
console.log(data) | |||
biddingSubmit(data).then(response =>{ | |||
let _this = this | |||
if(response){ | |||
this.$toast({ | |||
icon: 'success', // 找到自己需要的图标 | |||
message: '出价成功', | |||
duration:"1000", | |||
onClose:function(){ | |||
_this.reload() | |||
_this.price = _this.price-_this.detail.ladderPrice; | |||
} | |||
}) | |||
let data= { | |||
projectId:this.id, | |||
memberId:this.memberId, | |||
userId:this.userId, | |||
userAccount:this.userAccount, | |||
userName:this.userName, | |||
money:parseFloat(this.price), | |||
}; | |||
console.log(data) | |||
biddingSubmit(data).then(response =>{ | |||
let _this = this | |||
if(response){ | |||
this.$toast({ | |||
icon: 'success', // 找到自己需要的图标 | |||
message: '出价成功', | |||
duration:"1000", | |||
onClose:function(){ | |||
_this.reload() | |||
_this.price = _this.price-_this.detail.ladderPrice; | |||
} | |||
}) | |||
} | |||
}) | |||
} | |||
}) | |||
}); | |||
}, | |||
add(){ | |||
if (this.detail.biddingDirect == '反向竞价'){ | |||
if (this.biddinglistInformation.length<1){ | |||
if(this.detail.price < this.price){ | |||
if(this.detail.price <= this.price){ | |||
this.$toast({ | |||
icon: 'fail', // 找到自己需要的图标 | |||
message: '出价不能高于挂牌价格', | |||
@@ -748,7 +755,7 @@ export default { | |||
sub(){ | |||
if (this.detail.biddingDirect == '反向竞价'){ | |||
if (this.biddinglistInformation.length<1){ | |||
if(this.detail.price<=this.price){ | |||
if(this.detail.price<this.price){ | |||
this.$toast({ | |||
icon: 'fail', // 找到自己需要的图标 | |||
message: '出价不能高于挂牌价格', | |||
@@ -7,40 +7,131 @@ | |||
placeholder | |||
@click-left="onClickLeft" | |||
/> | |||
<van-list | |||
v-model="loading" | |||
:finished="finished" | |||
finished-text="没有更多了" | |||
@load="getList" | |||
class="biddingList" | |||
> | |||
<van-cell v-for="(item , index) in biddinglist" :key="index" :to="{name:'projectDetail', query: {id:item.id}}"> | |||
<van-row> | |||
<van-col span="24" style="font-size: 0.4rem;margin-bottom: 0.1rem;">{{item.projectName}}</van-col> | |||
</van-row> | |||
<van-row> | |||
<van-col span="24"> | |||
<van-row class="row"> | |||
<van-col span="4" style="font-size: 0.2rem;">当前价格</van-col> | |||
<van-col span="8" class="col"><span>{{item.money}}</span>{{item.unit}}</van-col> | |||
<van-col span="4" style="font-size: 0.2rem;">我的出价</van-col> | |||
<van-col span="8" class="col"><span>{{item.memberMoney}}</span>{{item.unit}}</van-col> | |||
</van-row> | |||
<van-row class="row"> | |||
<van-col span="5" style="font-size: 0.2rem;">距竞价结束</van-col> | |||
<van-col span="19" class="col"> | |||
<van-count-down :time="item.biddingStopTime" format="DD天HH时mm分ss秒" style="font-size: 0.2rem;color: #C21F3A;margin-top: 3px;" /> | |||
</van-col> | |||
</van-row> | |||
</van-col> | |||
</van-row> | |||
</van-cell> | |||
<div class="list_li" v-for="(item,index) in biddinglist" :key="index" :to="{name:'projectDetail', query: {id:item.id}}"> | |||
<div class="list_li_tt"> | |||
<p>{{item.projectName}}</p> | |||
<p :style="{ | |||
color: { | |||
'未开始': '#007E72', | |||
'已结束': '#848484', | |||
'竞价中': '#c21F3a', | |||
}[item.projectShowStatus]}">{{item.projectShowStatus}}</p> | |||
</div> | |||
<div class="list_li_time"> | |||
<van-count-down :time="item.biddingStopTime"> | |||
<template #default="timeData"> | |||
<span style="color: #848484;font-size: 14PX;">距结束</span> | |||
<span :style="{'font-size':'14px', | |||
color: { | |||
'未开始': '#007E72', | |||
'已结束': '#848484', | |||
'竞价中': '#c21F3a', | |||
}[item.projectShowStatus]}"> | |||
<span style="font-size: 18PX;">{{timeData.days}}</span>天 | |||
<span style="font-size: 18PX;">{{timeData.hours}}</span>时 | |||
<span style="font-size: 18PX;">{{timeData.minutes}}</span>分 | |||
<span style="font-size: 18PX;">{{timeData.seconds}}</span>秒 | |||
</span> | |||
</template> | |||
</van-count-down> | |||
</div> | |||
<div class="list_li_time"> | |||
<p> | |||
<span style="color: #848484">当前价格</span> | |||
<span :style="{'font-size':'14px', | |||
color: { | |||
'未开始': '#007E72', | |||
'已结束': '#848484', | |||
'竞价中': '#c21F3a', | |||
}[item.projectShowStatus]}" v-if="item.biddingType=='自由竞价'&&item.deadline>0"> | |||
* | |||
</span> | |||
<span :style="{'font-size':'14px', | |||
color: { | |||
'未开始': '#007E72', | |||
'已结束': '#848484', | |||
'竞价中': '#c21F3a', | |||
}[item.projectShowStatus]}" v-if="item.biddingType!='自由竞价'&&item.money"> | |||
{{item.money}}{{item.unit}} | |||
</span> | |||
<span :style="{'font-size':'14px', | |||
color: { | |||
'未开始': '#007E72', | |||
'已结束': '#848484', | |||
'竞价中': '#c21F3a', | |||
}[item.projectShowStatus]}" v-if="item.biddingType!='自由竞价'&&!item.money"> | |||
暂无出价 | |||
</span> | |||
</p> | |||
</div> | |||
<div class="list_li_time"> | |||
<p> | |||
<span style="color: #848484">我的出价</span> | |||
<span :style="{'font-size':'14px', | |||
color: { | |||
'未开始': '#007E72', | |||
'已结束': '#848484', | |||
'竞价中': '#c21F3a', | |||
}[item.projectShowStatus]}" v-if="item.biddingType!='自由竞价'&&item.money"> | |||
{{item.memberMoney}}{{item.unit}} | |||
</span> | |||
</p> | |||
<p class="showList" @click="showList(item.id)">出价记录</p> | |||
</div> | |||
</div> | |||
</van-list> | |||
<van-dialog v-model="show" title="出价记录"> | |||
<div style="height: 50vh;overflow-y: scroll;padding: 0 5PX;"> | |||
<van-cell title="出价金额" value="出价时间" /> | |||
<van-cell v-for="(item,index) in userBiddingList" :key="index" :title="item.money" :value="item.loginTime" /> | |||
</div> | |||
</van-dialog> | |||
<!-- <van-list--> | |||
<!-- v-model="loading"--> | |||
<!-- :finished="finished"--> | |||
<!-- finished-text="没有更多了"--> | |||
<!-- @load="getList"--> | |||
<!-- class="biddingList"--> | |||
<!-- >--> | |||
<!-- <van-cell v-for="(item , index) in biddinglist" :key="index" :to="{name:'projectDetail', query: {id:item.id}}">--> | |||
<!-- <van-row>--> | |||
<!-- <van-col span="24" style="font-size: 0.4rem;margin-bottom: 0.1rem;">{{item.projectName}}</van-col>--> | |||
<!-- </van-row>--> | |||
<!-- <van-row>--> | |||
<!-- <van-col span="24">--> | |||
<!-- <van-row class="row">--> | |||
<!-- <van-col span="4" style="font-size: 0.2rem;">当前价格</van-col>--> | |||
<!-- <van-col span="8" class="col"><span>{{item.money}}</span>{{item.unit}}</van-col>--> | |||
<!-- <van-col span="4" style="font-size: 0.2rem;">我的出价</van-col>--> | |||
<!-- <van-col span="8" class="col"><span>{{item.memberMoney}}</span>{{item.unit}}</van-col>--> | |||
<!-- </van-row>--> | |||
<!-- <van-row class="row">--> | |||
<!-- <van-col span="5" style="font-size: 0.2rem;">距竞价结束</van-col>--> | |||
<!-- <van-col span="19" class="col">--> | |||
<!-- <van-count-down :time="item.biddingStopTime" format="DD天HH时mm分ss秒" style="font-size: 0.2rem;color: #C21F3A;margin-top: 3px;" />--> | |||
<!-- </van-col>--> | |||
<!-- </van-row>--> | |||
<!-- </van-col>--> | |||
<!-- </van-row>--> | |||
<!-- </van-cell>--> | |||
<!-- </van-list>--> | |||
</div> | |||
</template> | |||
<script> | |||
import { getMember , biddinglist } from "@/api/user/index"; | |||
import { getMember , biddinglist,userBiddingList } from "@/api/user/index"; | |||
import { getInfo } from "@/api/login/index"; | |||
export default { | |||
name: "userBidding", | |||
@@ -49,11 +140,13 @@ export default { | |||
loading: false, | |||
finished: false, | |||
biddinglist:[], | |||
userBiddingList:[], | |||
queryParams:{ | |||
memberId:'', | |||
pageNum:1, | |||
pageSize:10 | |||
} | |||
}, | |||
show:false | |||
}; | |||
}, | |||
created() { | |||
@@ -90,13 +183,19 @@ export default { | |||
this.loading = false; | |||
}); | |||
}, | |||
showList(id){ | |||
this.show = true; | |||
userBiddingList({projectId:id,memberId:this.queryParams.memberId}).then(response => { | |||
this.userBiddingList = response.rows; | |||
}); | |||
} | |||
}, | |||
}; | |||
</script> | |||
<style scoped lang="scss"> | |||
.app-container { | |||
background-color: #FFF; | |||
/*background-color: #FFF;*/ | |||
} | |||
.biddingList{ | |||
padding: 0 2%; | |||
@@ -111,4 +210,51 @@ export default { | |||
font-weight: bold; | |||
} | |||
} | |||
.list_li{ | |||
width: 94%; | |||
background: #ffffff; | |||
border-radius: 8PX; | |||
margin: 10PX auto 0; | |||
padding: 3vw 5%; | |||
.list_li_tt{ | |||
display: flex; | |||
justify-content: space-between; | |||
padding-bottom: 10PX; | |||
border-bottom: 1PX solid rgb(239,239,239); | |||
align-items: center; | |||
p{ | |||
line-height: 22PX; | |||
&:nth-child(1){ | |||
color: #333333; | |||
font-weight: bold; | |||
font-size: 16PX; | |||
display: -webkit-box; | |||
-webkit-box-orient: vertical; | |||
-webkit-line-clamp: 1; | |||
word-break: break-all; | |||
overflow: hidden; | |||
} | |||
&:nth-child(2){ | |||
flex-shrink: 0; | |||
margin-left: 15PX; | |||
} | |||
} | |||
} | |||
.list_li_time{ | |||
display: flex; | |||
align-items: center; | |||
justify-content: space-between; | |||
margin-top: 10PX; | |||
} | |||
} | |||
.showList{ | |||
background: #007E72; | |||
color: #ffffff; | |||
padding: 5PX 10PX; | |||
border-radius: 20PX; | |||
} | |||
/deep/ .van-cell__title{flex: 0.8} | |||
/deep/ .van-cell__value{flex: 1.2} | |||
</style> |