| @@ -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> | |||