Переглянути джерело

产权交易

rongxin_prod
庞东旭 2 роки тому
джерело
коміт
9a81ea5330
3 змінених файлів з 259 додано та 97 видалено
  1. +9
    -0
      src/api/user/index.js
  2. +79
    -72
      src/views/project/projectDetail.vue
  3. +171
    -25
      src/views/user/bidding/index.vue

+ 9
- 0
src/api/user/index.js Переглянути файл

@@ -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){ export function realtimeList(query){
return request({ return request({


+ 79
- 72
src/views/project/projectDetail.vue Переглянути файл

@@ -71,7 +71,7 @@
<van-col span="24"><span>竞价方向:</span>{{ detail.biddingDirect }}</van-col> <van-col span="24"><span>竞价方向:</span>{{ detail.biddingDirect }}</van-col>
</van-row> </van-row>
<van-row v-if="detail.ladderPrice"> <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-row> <van-row>
<van-col span="24"><span>延时周期:</span>{{timeConfig}}分钟</van-col> <van-col span="24"><span>延时周期:</span>{{timeConfig}}分钟</van-col>
@@ -388,6 +388,9 @@ export default {
this.getDicts("bidding_direct").then(res => { this.getDicts("bidding_direct").then(res => {
this.detail.biddingDirect = this.selectDictLabel(res.data,response.data.biddingDirect); 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){ for(let i of this.detail.subjectList){
this.getDicts("area_unit").then(res => { this.getDicts("area_unit").then(res => {
i.areaUnit = this.selectDictLabel(res.data,i.areaUnit); i.areaUnit = this.selectDictLabel(res.data,i.areaUnit);
@@ -399,13 +402,15 @@ export default {
that.biddinglistInformation = response.rows that.biddinglistInformation = response.rows
that.biddinglistInformationLength = response.total that.biddinglistInformationLength = response.total
if (response.rows.length>0&&that.detail.ladderPrice){ if (response.rows.length>0&&that.detail.ladderPrice){
console.log(that.detail.biddingDirect)
if (that.price == 0){return;} if (that.price == 0){return;}
if (that.detail.biddingDirect == 2 ||that.detail.biddingDirect == '反向竞价') { if (that.detail.biddingDirect == 2 ||that.detail.biddingDirect == '反向竞价') {
that.price = response.rows[0].money - that.detail.ladderPrice that.price = response.rows[0].money - that.detail.ladderPrice
}else{ }else{
that.price = response.rows[0].money + that.detail.ladderPrice 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{ }else{
if (that.detail.biddingDirect == 2 ||that.detail.biddingDirect == '反向竞价') { if (that.detail.biddingDirect == 2 ||that.detail.biddingDirect == '反向竞价') {
that.price = that.detail.price - that.detail.ladderPrice that.price = that.detail.price - that.detail.ladderPrice
@@ -596,24 +601,51 @@ export default {
}else{ }else{
newMoney = this.detail.price; 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({ this.$toast({
icon: 'fail', // 找到自己需要的图标 icon: 'fail', // 找到自己需要的图标
message: '出价不能高于挂牌价格',
message: '出价不能于挂牌价格',
duration:"1000", duration:"1000",
onClose:function(){ onClose:function(){
} }
@@ -623,10 +655,12 @@ export default {
if (this.detail.biddingType=='阶梯竞价'||this.detail.biddingType=='公开竞价'){ if (this.detail.biddingType=='阶梯竞价'||this.detail.biddingType=='公开竞价'){
if (this.biddinglistInformation.length>1){ if (this.biddinglistInformation.length>1){
//判断用户出价不能高于当前出价最低价格 //判断用户出价不能高于当前出价最低价格
if(newMoney <= this.price){
console.log(newMoney)
console.log(this.price)
if(newMoney >= this.price){
this.$toast({ this.$toast({
icon: 'fail', // 找到自己需要的图标 icon: 'fail', // 找到自己需要的图标
message: '出价不能高于当前出价最低价格',
message: '出价不能低于当前出价最高价格',
duration:"1000", duration:"1000",
onClose:function(){ 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(){ add(){
if (this.detail.biddingDirect == '反向竞价'){ if (this.detail.biddingDirect == '反向竞价'){
if (this.biddinglistInformation.length<1){ if (this.biddinglistInformation.length<1){
if(this.detail.price < this.price){
if(this.detail.price <= this.price){
this.$toast({ this.$toast({
icon: 'fail', // 找到自己需要的图标 icon: 'fail', // 找到自己需要的图标
message: '出价不能高于挂牌价格', message: '出价不能高于挂牌价格',
@@ -748,7 +755,7 @@ export default {
sub(){ sub(){
if (this.detail.biddingDirect == '反向竞价'){ if (this.detail.biddingDirect == '反向竞价'){
if (this.biddinglistInformation.length<1){ if (this.biddinglistInformation.length<1){
if(this.detail.price<=this.price){
if(this.detail.price<this.price){
this.$toast({ this.$toast({
icon: 'fail', // 找到自己需要的图标 icon: 'fail', // 找到自己需要的图标
message: '出价不能高于挂牌价格', message: '出价不能高于挂牌价格',


+ 171
- 25
src/views/user/bidding/index.vue Переглянути файл

@@ -7,40 +7,131 @@
placeholder placeholder
@click-left="onClickLeft" @click-left="onClickLeft"
/> />

<van-list <van-list
v-model="loading" v-model="loading"
:finished="finished" :finished="finished"
finished-text="没有更多了" finished-text="没有更多了"
@load="getList" @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-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> </div>
</template> </template>


<script> <script>
import { getMember , biddinglist } from "@/api/user/index";
import { getMember , biddinglist,userBiddingList } from "@/api/user/index";
import { getInfo } from "@/api/login/index"; import { getInfo } from "@/api/login/index";
export default { export default {
name: "userBidding", name: "userBidding",
@@ -49,11 +140,13 @@ export default {
loading: false, loading: false,
finished: false, finished: false,
biddinglist:[], biddinglist:[],
userBiddingList:[],
queryParams:{ queryParams:{
memberId:'', memberId:'',
pageNum:1, pageNum:1,
pageSize:10 pageSize:10
}
},
show:false
}; };
}, },
created() { created() {
@@ -90,13 +183,19 @@ export default {
this.loading = false; this.loading = false;
}); });
}, },
showList(id){
this.show = true;
userBiddingList({projectId:id,memberId:this.queryParams.memberId}).then(response => {
this.userBiddingList = response.rows;
});
}
}, },
}; };
</script> </script>


<style scoped lang="scss"> <style scoped lang="scss">
.app-container { .app-container {
background-color: #FFF;
/*background-color: #FFF;*/
} }
.biddingList{ .biddingList{
padding: 0 2%; padding: 0 2%;
@@ -111,4 +210,51 @@ export default {
font-weight: bold; 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> </style>

Завантаження…
Відмінити
Зберегти