庞东旭 3 年前
父节点
当前提交
d210bb9348
共有 6 个文件被更改,包括 728 次插入174 次删除
  1. +1
    -1
      config/index.js
  2. +77
    -0
      src/api/project/index.js
  3. +9
    -0
      src/router/index.js
  4. +115
    -56
      src/views/project/index.vue
  5. +335
    -117
      src/views/project/projectDetail.vue
  6. +191
    -0
      src/views/project/signUp.vue

+ 1
- 1
config/index.js 查看文件

@@ -22,7 +22,7 @@ module.exports = {
},

// Various Dev Server settings
host: 'localhost', // can be overwritten by process.env.HOST
host: '0.0.0.0', // can be overwritten by process.env.HOST
port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
autoOpenBrowser: false,
errorOverlay: true,


+ 77
- 0
src/api/project/index.js 查看文件

@@ -0,0 +1,77 @@
import request from '@/utils/request'

//字典 标的物所在地
export function getDeptList(id) {
return request({
url: '/transaction/website/deptList' ,
method: 'get',
params: {deptId:id}
})
}
//挂牌项目列表
export function getOutProjectList(data){
return request({
url:'/transaction/website/outproject/list?deptId=&projectNumber=&',
method:'get',
})
}
//挂牌项目详情
export function getOutProjectDetail(id){
return request({
url:'/transaction/website/outproject/id/'+id,
method:'get',
})
}
//获取网站配置
export function getWebConfig(){
return request({
url:'/transaction/website/config',
method:'get',
})
}
//竞价记录列表
export function getBiddingList(id){
return request({
url:'/transaction/website/biddinglist/projectId?projectId='+id,
method:'get',
})
}
export function uploadPic (params) {
return request({
url:'/common/base64Attach',// 替换成您需要上传的接口
method: 'post',
data: params
})
}
//会员信息查询
export function getMember(id){
return request({
url:'/transaction/member/userId/'+id,
method:'get',
})
}
//提交报名
export function submmitSignup (params) {
return request({
url:'/transaction/signup',
method: 'post',
data: params
})
}
// 查询报名状态
export function getSignup (params) {
return request({
url:'/transaction/signup/getSignupByMemberIdAndProId',
method: 'get',
params:params
})
}
// 出价
export function biddingSubmit (params) {
return request({
url:'/transaction/bidding',
method: 'post',
data:params
})
}


+ 9
- 0
src/router/index.js 查看文件

@@ -267,6 +267,15 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/policy/index'], resolve)
},
{
path: '/project/signUp',
name: 'signUp',
meta: {
title: '报名',
hidden: true
},
component: (resolve) => require(['@/views/project/signUp'], resolve)
},
{
path: '/noticeDetail',
name: 'noticeDetail',


+ 115
- 56
src/views/project/index.vue 查看文件

@@ -1,91 +1,150 @@
<template>
<div class="app-container">
<van-search v-model="value" placeholder="请输入搜索关键词" />
<van-search v-model="value" placeholder="请输入搜索关键词" @search="onSearch"/>
<van-dropdown-menu>
<van-dropdown-item v-model="value1" :options="option1" />
<van-dropdown-item v-model="value2" :options="option2" />
<van-dropdown-item v-model="value3" :options="option3" />
<van-dropdown-item v-model="value1" :options="projectTypeOption" @change="getList"/>
<van-dropdown-item :value="value2" :title="value2" ref="item">
<van-tree-select
:active-id.sync="activeId"
:items="deptListOption"
:main-active-index.sync="activeIndex"
:max="1"
@click-item="clickItem"
@click-nav="clickNav"
/>
</van-dropdown-item>
<van-dropdown-item v-model="value3" :options="option3" @change="getList"/>
</van-dropdown-menu>
<van-list
v-model="loading"
:finished="finished"
finished-text="没有更多了"
>
<router-link to="project/projectDetail">
<van-card thumb="../../static/images/index/projectImg.png" >
<van-list v-model="loading" :finished="finished" finished-text="没有更多了">
<router-link :to="{path:'project/projectDetail',query:{id:item.id}}" v-for="(item,index) in infoList">
<van-card :thumb="item.fileUrl?''+item.fileUrl:'../../static/images/index/projectImg.png'" >
<template #tags>
<p class="title">【出租】管家堡乡500亩水田</p>
<p class="type">等待成交</p>
<p class="timeEnd">报名结束 2021-04-29 14:58:06</p>
<p class="timeEnd">竞价结束 2021-05-01 17:30:00</p>
<p class="title">【{{item.rollout}}】{{item.projectName}}</p>
<p class="type">{{ item.projectShowStatus }}</p>
<p class="timeEnd">报名结束 {{ item.signupStopTime }}</p>
<p class="timeEnd">竞价结束 {{ item.biddingStopTime }}</p>
<van-row>
<van-col span="12" class="money"><span>500</span>元/亩/年</van-col>
<van-col span="12" class="time">2021-04-19 20:20:20</van-col>
<van-col span="12" class="money"><span>{{ item.price }}</span>{{ item.unit }}</van-col>
<van-col span="8" offset="4" class="time">{{ item.projectReleaseTime }}</van-col>
</van-row>
</template>
</van-card>
</router-link>

<van-card thumb="../../static/images/index/projectImg.png" >
<template #tags>
<p class="title">【出租】管家堡乡500亩水田</p>
<p class="type">等待成交</p>
<p class="timeEnd">报名结束 2021-04-29 14:58:06</p>
<p class="timeEnd">竞价结束 2021-05-01 17:30:00</p>
<van-row>
<van-col span="12" class="money"><span>500</span>元/亩/年</van-col>
<van-col span="12" class="time">2021-04-19 20:20:20</van-col>
</van-row>
</template>
</van-card>
<van-card thumb="../../static/images/index/projectImg.png" >
<template #tags>
<p class="title">【出租】管家堡乡500亩水田</p>
<p class="type">等待成交</p>
<p class="timeEnd">报名结束 2021-04-29 14:58:06</p>
<p class="timeEnd">竞价结束 2021-05-01 17:30:00</p>
<van-row>
<van-col span="12" class="money"><span>500</span>元/亩/年</van-col>
<van-col span="12" class="time">2021-04-19 20:20:20</van-col>
</van-row>
</template>
</van-card>
</van-list>
</div>
</template>

<script>
import {getOutProjectList,getDeptList} from "../../api/project";

export default {
name: "project",
data() {
return {
value:'',
value1: 0,
value2: 'a',
value3: 'A',
value1: '',
value2: '标的物位置',
activeId: 1,
activeIndex: 0,
value3: '',
value:"",
//是否显示加载
loading: false,
//是否滚动到底部
finished: true,
option1: [
{ text: '标的物类型', value: 0 },
{ text: '标的物类型', value: 1 },
{ text: '标的物类型', value: 2 },
],
option2: [
{ text: '标的所在地', value: 'a' },
{ text: '标的所在地', value: 'b' },
{ text: '标的所在地', value: 'c' },
],
option3: [
{ text: '项目状态', value: 'A' },
{ text: '项目状态', value: 'B' },
{ text: '项目状态', value: 'C' },
{ text: '竞价状态', value: '' },
{ text: '全部', value: '全部' },
{ text: '竞价中', value: '竞价中' },
{ text: '竞价结束', value: '竞价结束' },
],
//标的物类型
projectTypeOption:[{text:'标的物类型',value:''}],
//标的物所在地
deptListOption: [
],
input: '',
infoList:[],
};
},
created() {
this.getDicts("project_type").then(response => {
response.data.map(item => {
this.projectTypeOption.push({ value:item.dictCode, text: item.dictLabel});
});
});
getDeptList().then(response => {
response.data.map(item => {
getDeptList(item.deptId).then(res => {
let list = []
res.data.map(i =>{
list.push({text:i.deptName,children:[],id:i.deptId})
})
if(list.length==0){
list.push({text:item.deptName,id:item.deptId})
}else{
this.deptListOption.push({ text: item.deptName,children: list});
}
});
});
});
this.getList();
},
mounted() {},
methods: {},
methods: {
onSearch(val) {
this.loading = true;
if(this.infoList.length>0){
let newList = []
for(let j = 0 ;j<this.infoList.length;j++){
if(this.infoList[j].projectName.indexOf(val)>-1){
newList.push(this.infoList[j]);
}
}
this.infoList = newList
}
if(val==""){
this.getList()
}
this.loading = false;
},
getList(){
let queryDatas = {
deptId: this.value1,
projectNumber:this.activeId,
projectShowStatus:this.value3
}
getOutProjectList(queryDatas).then(response =>{
this.infoList = response.rows
if(this.infoList.length>0){
let newList = []
for(let j = 0 ;j<this.infoList.length;j++){
if(this.infoList[j].projectName.indexOf(this.value)>-1){
newList.push(this.infoList[j]);
}
}
this.infoList = newList
console.log(this.infoList)
}
});
},
clickNav(index){

},
clickItem(data){
if(data.text==this.value2){
this.activeId=1
this.value2='标的物位置'
}else{
this.value2=data.text
}
this.getList()
this.$refs.item.toggle();
},
},
};
</script>



+ 335
- 117
src/views/project/projectDetail.vue 查看文件

@@ -5,65 +5,70 @@
left-arrow
fixed
placeholder
@click-left="$router.back(-1)"
/>
<van-tabs scrollspy sticky color="#007b76" >
<van-tab title="竞拍信息" title-style="font-size:12px;">
<van-swipe class="my-swipe" height="235" indicator-color="white" @change="onChange">
<van-swipe-item><van-image src="../../static/images/index/banner.png" height="235" /></van-swipe-item>
<van-swipe-item><van-image src="../../static/images/index/banner.png" height="235" /></van-swipe-item>
<van-swipe-item><van-image src="../../static/images/index/banner.png" height="235" /></van-swipe-item>
<van-swipe-item><van-image src="../../static/images/index/banner.png" height="235" /></van-swipe-item>
<template v-if="detail.fileUrlList !== undefined &&detail.fileUrlList.length>0">
<van-swipe-item v-for="(item,index) in detail.fileUrlList"><van-image :src="item.fileUrl?''+item.fileUrl:'../../static/images/index/banner.png'" height="235" /></van-swipe-item>
</template>
<template v-else>
<van-swipe-item><van-image src="../../static/images/index/banner.png" height="235" /></van-swipe-item>
</template>
<template #indicator>
<div class="custom-indicator">{{ current + 1 }}/4</div>
<div class="custom-indicator">{{ current + 1 }}/{{ detail.fileUrlList !== undefined &&detail.fileUrlList.length>0 ? detail.fileUrlList.length:1 }}</div>
</template>
</van-swipe>
<van-notice-bar color="#fff" background="#007E72" left-icon="clock-o">
正在进行今天12:00结束
{{ process }}&nbsp&nbsp&nbsp&nbsp{{tip}}
</van-notice-bar>
<div class="information">
<van-row>
<van-col span="24" class="title">【出租】管家堡乡500亩水田</van-col>
<van-col span="24" class="title">【{{ detail.rollout }}】{{ detail.projectName }}</van-col>
</van-row>
<van-row>
<van-col span="4">距结束</van-col>
<van-col span="20"><van-count-down :time="30 * 60 * 60 * 1000" format="DD 天 HH 时 mm 分 ss 秒" /></van-col>
<van-col span="4">{{ process }}</van-col>
<van-col span="20"><van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒" /></van-col>
</van-row>
<van-row>
<van-col span="4">挂牌价</van-col>
<van-col span="20" class="price"><span>500</span> 元/亩/年</van-col>
<van-col span="20" class="price"><span>{{detail.price}}</span> 元/亩/年</van-col>
</van-row>
<van-row>
<van-col span="4">保证金</van-col>
<van-col span="20" class="money"><span>5000</span> 元</van-col>
<van-col span="20" class="money"><span>{{ detail.deposit }}</span> 元</van-col>
</van-row>
</div>
<div class="lead">
<van-row gutter="20">
<van-row >
<van-col span="3"><van-image src="../../static/images/icon/phone.png" style="vertical-align: text-top;" /></van-col>
<van-col span="4">J1433</van-col>
<van-col span="4">领先</van-col>
<van-col span="4">06.20</van-col>
<van-col span="4">22:46:38</van-col>
<template v-if="biddinglistInformation!=undefined&&biddinglistInformation.length>0">
<van-col span="4">{{biddinglistInformation[0].userName}}</van-col>
<van-col span="4">{{biddinglistInformation[0].money}}元</van-col>
<van-col span="4">领先</van-col>
<van-col span="8">{{biddinglistInformation[0].createTime}}</van-col>
</template>
</van-row>
</div>
<div class="detail">
<van-row>
<van-col span="24"><span>报名开始时间:</span>2021-04-1915:18:53</van-col>
<van-col span="24"><span>报名开始时间:</span>{{ detail.signupStartTime }}</van-col>
</van-row>
<van-row>
<van-col span="24"><span>报名截止时间:</span>2021-04-1915:20:53</van-col>
<van-col span="24"><span>报名截止时间:</span>{{ detail.signupStopTime }}</van-col>
</van-row>
<van-row>
<van-col span="24"><span>竞价开始时间:</span>2021-04-1915:25:53</van-col>
<van-col span="24"><span>竞价开始时间:</span>{{ detail.biddingStartTime }}</van-col>
</van-row>
<van-row>
<van-col span="24"><span>竞价截止时间:</span>2021-04-1915:35:53</van-col>
<van-col span="24"><span>竞价截止时间:</span>{{ detail.biddingStopTime }}</van-col>
</van-row>
<van-row>
<van-col span="24"><span>竞价方式:</span>自由竞价/阶梯竞价</van-col>
<van-col span="24"><span>竞价方式:</span>{{ detail.biddingType }}</van-col>
</van-row>
<van-row>
<van-col span="24"><span>阶梯价(加价幅度):</span>¥1,000</van-col>
<van-col span="24"><span>阶梯价(加价幅度):</span>{{ detail.ladderPrice }}</van-col>
</van-row>
<van-row>
<van-col span="24"><span>延时周期:</span>2分钟报名<van-icon name="question" size="15" style="top: 3px;left: 5px;" color="#CDCDCD"/></van-col>
@@ -77,112 +82,83 @@
<van-col span="24" style="color:#8A8A8A;font-size: 0.4rem;">项目挂牌转出方简况及公告内容</van-col>
</van-row>
<van-row>
<van-col span="24"><span>转出方名称</span>张三丰</van-col>
<van-col span="24"><span>转出方名称</span>{{ detail.outName }}</van-col>
</van-row>
<van-row>
<van-col span="24"><span>住址(地址)</span>威海市环翠区文化西路39号-5</van-col>
<van-col span="24"><span>住址(地址)</span>{{ detail.address }}</van-col>
</van-row>
<van-row>
<van-col span="14"><span>经济类型</span>个人</van-col>
<van-col span="10"><span>注册账号</span>13306310001</van-col>
<van-col span="14"><span>经济类型</span>{{ detail.economicType }}</van-col>
<van-col span="10"><span>注册账号</span>{{ detail.registerNum }}</van-col>
</van-row>
<van-row>
<van-col span="24"><span>注册资本(万元)</span>2000万</van-col>
<van-col span="24"><span>注册资本(万元)</span>{{ detail.registerMoney }}</van-col>
</van-row>
<van-row>
<van-col span="24"><span>组织机构代码证号</span>SI4761215652</van-col>
<van-col span="24"><span>组织机构代码证号</span>{{ detail.areaNum }}</van-col>
</van-row>
<van-row>
<van-col span="24"><span>法定代表人/负责人</span>张三丰</van-col>
<van-col span="24"><span>法定代表人/负责人</span>{{ detail.legalPerson }}</van-col>
</van-row>
<van-row>
<van-col span="24"><span>身份证号</span>371481199001012400</van-col>
<van-col span="24"><span>身份证号</span>{{ detail.idCardNum }}</van-col>
</van-row>
<van-row>
<van-col span="24"><span>联系电话</span>13306310001</van-col>
<van-col span="24"><span>联系电话</span>{{ detail.phone }}</van-col>
</van-row>
<van-row>
<van-col span="24"><span>电子邮箱</span>1027238303@qq.com</van-col>
<van-col span="24"><span>电子邮箱</span>{{ detail.email }}</van-col>
</van-row>
<van-row>
<van-col span="14"><span>项目类型</span>农户承包土地经营权</van-col>
<van-col span="10"><span>农地性质</span>耕地</van-col>
<van-col span="14"><span>项目类型</span>{{ detail.projectNumber }}</van-col>
<van-col span="10"><span>农地性质</span>{{ detail.projectType }}</van-col>
</van-row>
<van-row>
<van-col span="24"><span>转出项目名称</span>管家堡乡转500亩土地</van-col>
<van-col span="24"><span>转出项目名称</span>{{ detail.projectName }}</van-col>
</van-row>
<van-row>
<van-col span="24"><span>坐落</span>兴和县城关镇阳坡村委会</van-col>
<van-col span="24"><span>坐落</span>{{ detail.locationName }}</van-col>
</van-row>
<van-row>
<van-col span="14"><span>是否属再次转出</span>否</van-col>
<van-col span="10"><span>前次转出方式</span></van-col>
<van-col span="14"><span>是否属再次转出</span>{{ detail.twoout == 'N'?"":"是"}}</van-col>
<van-col span="10"><span>前次转出方式</span>{{ detail.oneout}}</van-col>
</van-row>
<van-row>
<van-col span="14"><span>拟转出方式</span>出租</van-col>
<van-col span="10"><span>拟转出面积/数量</span>500亩</van-col>
<van-col span="14"><span>拟转出方式</span>{{ detail.rollout }}</van-col>
<van-col span="10"><span>拟转出面积/数量</span> {{detail.allCount}}{{detail.allCountUnit}} </van-col>
</van-row>
<van-row>
<van-col span="24"><span>拟转出期限</span>2021-05-24至2039-05-24共18年</van-col>
<van-col span="24"><span>拟转出期限</span>{{detail.outStartTime}} 至 {{detail.outStopTime}}&nbsp&nbsp&nbsp&nbsp&nbsp共{{detail.outYearNum}}年</van-col>
</van-row>
<van-row>
<van-col span="24"><span>涉及农户数</span>1户</van-col>
<van-col span="24"><span>涉及农户数</span>{{ detail.peasantNum }}</van-col>
</van-row>
<van-row>
<van-col span="24" style="color:#007E72;">标的物信息</van-col>
</van-row>
<div class="project_info">
<van-row>
<van-col span="14"><span>标的物名称</span>张三丰地</van-col>
<van-col span="10"><span>面积/数量</span>50亩</van-col>
</van-row>
<van-row>
<van-col span="24"><span>备注</span></van-col>
</van-row>
</div>
<div class="project_info">
<div class="project_info" v-for="(item,index) in detail.subjectList">
<van-row>
<van-col span="14"><span>标的物名称</span>张三丰地</van-col>
<van-col span="10"><span>面积/数量</span>50亩</van-col>
<van-col span="14"><span>标的物名称</span>{{ item.landName }}</van-col>
<van-col span="10"><span>面积/数量</span>{{ item.area }}{{item.areaUnit}}</van-col>
</van-row>
<van-row>
<van-col span="24"><span>备注</span></van-col>
<van-col span="24"><span>{{ item.condition}}</span></van-col>
</van-row>
</div>
</div>
</van-tab>
<van-tab title="标的物图片" title-style="font-size:12px;">
<p class="delTitle">标的物图片</p>
<van-image src="../../static/images/index/detailImg.png" style="vertical-align: text-top;" />
<van-image src="../../static/images/index/detailImg.png" style="vertical-align: text-top;" />
<van-image src="../../static/images/index/detailImg.png" style="vertical-align: text-top;" />
<template v-if="detail.fileUrlList !== undefined &&detail.fileUrlList.length>0">
<van-image v-for="(item,index) in detail.fileUrlList" :src="item.fileUrl?''+item.fileUrl:'../../static/images/index/detailImg.png'" style="vertical-align: text-top;" />
</template>
<template v-else>
<van-image src="../../static/images/index/detailImg.png" style="vertical-align: text-top;" />
</template>
</van-tab>
<van-tab title="竞买须知" title-style="font-size:12px;">
<p class="delTitle">竞买须知</p>
<div class="notice">
<p>一、竞价保证金缴付方式及要求:</p>
<p>竞买人为个人的,可选择银行柜台转账、网上银行转账两种之一的方式缴付竞价保证金,不得采用该两种方式以外的其他方式缴付竞价保证金。 竞买人为单位的,可选择银行柜台转账、网上银行转账两种之一的方式缴付竞价保证金,不得采用该两种方式以外的其他方式缴付竞价保证金。 如果竞买人未按规定方式缴付竞价保证金,将会造成竞价保证金无法退还竞价人,由此产生的一切后果和责任,由竞买人自行承担。</p>
<p>1.通过银行柜台转账的,在缴款时须在银行进账单或汇款凭证的备注/用途/附言栏中准确填写项目编号。</p>
<p>2.通过网上银行转账的,在缴款时须在网上银行支付界面的备注/用途/银行附言栏中准确填写项目编号。</p>
<p>二、竞价保证金缴付注意事项</p>
<p>1.竞买人应填写并提示竞价保证金汇出银行将其填写的备注信息准确、完备地发送至农交所上述账户。若因竞买人未按要求填写相关信息而导致其无法参与竞价的,由此产生的一切后果和责任由竞买人自行承担。</p>
<p>2.竞买人应妥善保管竞价保证金缴款凭证,该凭证将作为查询及办理相关手续的依据之一。</p>
<p>三、报名所需材料:</p>
<p>1.黑龙江农村产权流转交易意向受让申请书(首页资料下载处下载)。</p>
<p>2.有效资格证明文件:</p>
<p>(1)受让方为个人的,需提供本人身份证;</p>
<p>(2)受让方为单位的,需提供有效期内的营业执照副本、机构代码证、法定代表人身份、合作社章程/公司章程(封面盖章,骑缝盖章)、合作社成员大会决议/股东会决议/董事会决议。</p>
<p>3.缴款凭证。</p>
<p>4.竞投保证金退还所需报名人本人名下的有效银行卡。</p>
<p>四、报名:</p>
<p>竞价保证金缴纳后:</p>
<p>1.线下报名:携带竞价保证金缴款凭证的原件以及报名所需材料到镇(街)、区(县)、市、省级平台进行报名。到报名地点领取或者在本页面下方“竞投文件下载”处下载竞投文件。</p>
<p>2.线上报名:点击“线上报名”按钮,填写报名表,以附件形式上传竞价保证金缴款凭证和报名所需材料的照片, 竞价账户密码以短信形式进行发送。在本页面下方“竞投文件下载”处下载。</p>
<p>五、项目报名时间截止后,仅有一名意向受让方报名的,直接与转出方协议签约;有两名及两名以上意向受让方报名的,实行网络电子竞价或农交所同意的其他公开方式竞价。</p>
<p>六、实行网上电子竞价的项目:竞投人登录农村产权交易中心网站,进入竞价大厅找到已报名项目,在竞投报价截止时间之前进行报价。竞投结束后,系统按竞投报价从高到低排序,选择报价最高者竞得项目。竞投报价不能低于项目挂牌价格,逾期报价或不符合规定的报价做无效处理,竞投人所交保证金转作违约金,作为对交易中心的违约赔偿,不予退还。</p>
<p>七、受让方承诺在竞价成功后严格按照转出方的要求予以开发利用,且不用于非农业建设,不改变原用途,不破坏农业综合生产能力,不破坏生态环境,对于需提供开发利用规划的,及时提交规划文件。</p>
<p>八、受让方放弃竞得项目的、无正当理由不与出让方签订合同的、在签订合同时向出让方提出附加条件或者更改合同实质性内容的,竞投保证金不予返还。</p>
<p>九、法定节假日、公休日不受理报名。</p>
<div class="notice" v-html="webConfig">
</div>
</van-tab>
<van-tab title="竞价记录" title-style="font-size:12px;">
@@ -196,57 +172,48 @@
<td>状态</td>
<td>出价时间</td>
</tr>
<tr>
<td>15314031621</td>
<td>张三</td>
<td>45,101</td>
<td style="color:#C21F3A">领先</td>
<td>2021-04-20 10:55:13</td>
</tr>
<tr>
<td>15314031621</td>
<td>张三三</td>
<td>45,101</td>
<td></td>
<td>2021-04-20 10:55:13</td>
</tr>
<tr>
<td>15314031621</td>
<td>张三</td>
<td>45,101</td>
<td></td>
<td>2021-04-20 10:55:13</td>
<tr v-for="(item,index) in this.biddinglistInformation">
<td>{{ item.userAccount }}</td>
<td>{{ item.userName }}</td>
<td>{{ item.money}}</td>
<template v-if="index==0">
<td style="color:#C21F3A">领先</td>
</template>
<template v-else>
<td></td>
</template>
<td>{{ item.createTime }}</td>
</tr>
</table>
</div>
</van-tab>
</van-tabs>
<div style="height: 2rem;"></div>
<div class="bottomBtn">
<van-row>
<div class="bottomBtn" v-if="">
<van-row v-if="!showBtn">
<van-col span="8" style="margin-top: 4px;" @click="showPopup">
<van-image src="../../static/images/icon/clock.png" style="vertical-align: text-bottom;" />
<p style="line-height: 0.2rem;color: #999999">提醒</p>
</van-col>
<van-col span="16">
<van-button round color="#C21F3A" block>
立即报名<br/>
<span style="font-size: 10px">保证金¥30,000</span>
<van-button round color="#C21F3A" block :disabled="isSignup" :to="{path:'signUp',query:{projectId:detail.id,deposit:detail.deposit,projectName:detail.projectName}}">
{{ btnMsg }}<br/>
<span style="font-size: 10px">保证金¥{{detail.deposit}}</span>
</van-button>
</van-col>
</van-row>
<van-row style="display: none;">
<van-col span="3" style="text-align: center;line-height: 1rem">
<van-button color="#e2e2e2" icon="plus" size="mini"></van-button>
<van-row v-if="showBtn">
<van-col span="4" style="text-align: center;line-height: 1rem">
<van-button color="#e2e2e2" icon="minus" size="small" @click="sub"></van-button>
</van-col>
<van-col span="18">
<van-button round color="#C21F3A" block>
<van-col span="16">
<van-button round color="#C21F3A" block @click="offer">
<p>出价</p>
<p>434,000</p>
<p>{{price}}元</p>
</van-button>
</van-col>
<van-col span="3" style="text-align: center;line-height: 1rem">
<van-button color="#e2e2e2" icon="minus" size="mini"></van-button>
<van-col span="4" style="text-align: center;line-height: 1rem">
<van-button color="#e2e2e2" icon="plus" size="small" @click="add"></van-button>
</van-col>
</van-row>
</div>
@@ -263,16 +230,78 @@
</template>

<script>
import {
biddingSubmit,
getBiddingList,
getMember,
getOutProjectDetail,
getSignup,
getWebConfig
} from "../../api/project";
import {getInfo} from "../../api/login";

export default {
name: "projectDetail",
provide(){
return{
reload:this.reload
}
},
data() {
return {
current: 0,
show: false,
id:this.$route.query.id,
detail: {},
webConfig:"",
biddinglistInformation:[],
rollout_type:[],
process:"",
tip:"",
btnMsg:"",
time:0,
timeMsg:"",
isSignup:false,
showBtn:false,
price:0,
userAccount:"",
userName:"",
userId:""
};
},
mounted() {
computed: {
getNowFormatDate:function(){
let date = new Date();
let seperator1 = "-";
let seperator2 = ":";
let month = date.getMonth() + 1;
let day = date.getDate();
let hours = date.getHours();
let minutes = date.getMinutes();
let seconds = date.getSeconds();
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (day >= 0 && day <= 9) {
day = "0" + day;
}
if (hours >= 0 && hours <= 9) {
hours = "0" + hours;
}
if (minutes >= 0 && minutes <= 9) {
minutes = "0" + minutes;
}
if (seconds >= 0 && seconds <= 9) {
seconds = "0" + seconds;
}
let currentdate = date.getFullYear() + seperator1 + month + seperator1 + day + " " + hours + seperator2 + minutes + seperator2 + seconds;
console.log(currentdate)
return currentdate;
}
},
created() {

this.reload();
},
methods: {
onChange(index) {
@@ -281,7 +310,196 @@ export default {
showPopup() {
this.show = true;
},
},
reload(){
getOutProjectDetail(this.id).then(response =>{
this.detail=response.data
this.getDicts("rollout_type").then(res =>{
this.detail.rollout = this.selectDictLabel(res.data,response.data.rollout);
if(this.detail.oneout==0){
this.detail.oneout = "无"
}else{
this.detail.oneout = this.selectDictLabel(res.data,response.data.oneout);
}
})
this.getDicts("project_type").then(res => {
this.detail.projectNumber = this.selectDictLabel(res.data,response.data.projectNumber);
});
this.getDicts("sub_object_type").then(res => {
this.detail.projectType = this.selectDictLabel(res.data,response.data.projectType);
});
this.getDicts("economic_type").then(res => {
this.detail.economicType = this.selectDictLabel(res.data,response.data.economicType);
});
this.getDicts("area_unit").then(res => {
this.detail.allCountUnit = this.selectDictLabel(res.data,response.data.allCountUnit);
});
this.getDicts("bidding_type").then(res => {
this.detail.biddingType = this.selectDictLabel(res.data,response.data.biddingType);
});
for(let i of this.detail.subjectList){
this.getDicts("area_unit").then(res => {
i.areaUnit = this.selectDictLabel(res.data,i.areaUnit);
});
}
let biddingStartTime = Date.parse(this.detail.biddingStartTime)+0
let biddingStopTime = Date.parse(this.detail.biddingStopTime)+0
let signupStartTime = Date.parse(this.detail.signupStartTime)+0
let signupStopTime = Date.parse(this.detail.signupStopTime)+0
let nowDate = Date.parse(new Date());
if(signupStartTime>nowDate){
this.process= "报名未开始"
this.tip=this.detail.signupStartTime+"开始报名"
this.btnMsg="立即报名"
this.timeMsg="距报名开始"
this.time = signupStartTime-nowDate
this.isSignup=true
}else if(signupStopTime>nowDate&&signupStopTime>signupStartTime){
this.process= "报名中"
this.tip=this.detail.signupStopTime+"报名截止"
this.btnMsg="立即报名"
this.timeMsg="距报名截止"
this.time = signupStopTime-nowDate
getInfo().then(response => {
let _this = this
getMember(response.user.userId).then(res => {
console.log(res)
let data= {
projectId:this.id,
memberId:res.data.id,
};
getSignup(data).then(r =>{
if(r.data=="1"){
_this.isSignup=true
this.btnMsg="已报名"
}
})
})
})
}else if(biddingStartTime>nowDate&&nowDate>signupStopTime){
this.process= "竞价未开始"
this.tip=this.detail.biddingStartTime+"开始竞价"
this.timeMsg="距竞价开始"
this.time = biddingStartTime-nowDate
getInfo().then(response => {
let _this = this
getMember(response.user.userId).then(res => {
let data= {
projectId:this.id,
memberId:res.data.id,
};
getSignup(data).then(r =>{
if(r.data=="1"){
_this.isSignup=true
this.btnMsg="立即竞价"
this.price=this.detail.ladderPrice?this.biddinglistInformation[0].money+this.detail.ladderPrice:this.biddinglistInformation[0].money+1
}else{
this.btnMsg="未报名"
}
})
})
})
}else if(biddingStopTime>nowDate&&nowDate>biddingStartTime){
this.process= "竞价中"
this.tip=this.detail.biddingStopTime+"结束竞价"
this.timeMsg="距竞价结束"
this.time = biddingStopTime-nowDate
getInfo().then(response => {
let _this = this
this.userId=response.user.userId
getMember(response.user.userId).then(res => {
this.userAccount=res.data.phone
this.userName=res.data.realname
this.memberId=res.data.id
let data= {
projectId:this.id,
memberId:res.data.id,
};
getSignup(data).then(r =>{
if(r.data=="1"){
_this.isSignup=true
this.btnMsg="立即竞价"
this.showBtn=true
this.price=this.detail.ladderPrice?this.biddinglistInformation[0].money+this.detail.ladderPrice:this.biddinglistInformation[0].money+1
}else{
this.btnMsg="未报名"
_this.isSignup=true
}
})
})
})
}else if(nowDate>biddingStopTime){
this.process= "竞价结束"
this.tip=this.detail.biddingStopTime+"结束竞价"
this.btnMsg="竞价结束"
this.timeMsg="竞价结束"
this.time = 0
this.isSignup = true
}
});
getWebConfig().then(response =>{
response.data.map(item =>{
if(item.configKey=="cqjy.website.bidInfo"){
this.webConfig += item.configValue
}
})
});
getBiddingList(this.id).then(response =>{
this.biddinglistInformation = response.rows
});
},
offer(){
let data= {
projectId:this.id,
memberId:this.memberId,
userId:this.userId,
userAccount:this.userAccount,
userName:this.userName,
money:this.price,
loginTime:this.getNowFormatDate
};
console.log(data)
biddingSubmit(data).then(response =>{
let _this = this
if(response){
this.$toast({
icon: 'success', // 找到自己需要的图标
message: '出价成功',
duration:"1000",
onClose:function(){
_this.reload()
}
})

}
})
},
add(){
this.detail.ladderPrice?this.price=this.price+this.detail.ladderPrice:this.price+=1
},
sub(){
if(this.detail.ladderPrice){
if((this.price-this.detail.ladderPrice)>this.biddinglistInformation[0].money){
this.price-=this.detail.ladderPrice
}else{
this.$toast({
icon: 'error', // 找到自己需要的图标
message: '出价不能低于当前最高价',
duration:"1000",
})
}
}else{
if((this.price-1)>this.biddinglistInformation[0].money){
this.price-=1
}else{
this.$toast({
icon: 'error', // 找到自己需要的图标
message: '出价不能低于当前最高价',
duration:"1000",
})
}
}
},
}
};
</script>



+ 191
- 0
src/views/project/signUp.vue 查看文件

@@ -0,0 +1,191 @@
<template>
<div class="app-container" style="background: #fff;height: 100%">
<van-nav-bar
title="报名"
left-arrow
fixed
placeholder
@click-left="$router.back(-1)"
/>
<van-row>
<p class="" style="padding:20px 20px 0px;font-size: 0.4rem">
<span>项目名称:</span>
<span style="color:#007E72;font-size: 0.45rem;font-weight: bold;">{{ projectName }}</span>
</p>
<p style="padding:10px 20px 0;font-size: 0.4rem;margin-bottom: 20px">
<span>缴纳保证金:</span>
<span style="color:#C21F3A;font-size: 0.45rem;font-weight: bold;">¥{{ deposit }}</span>
</p>
</van-row>
<van-row style="padding:0 20px;">
<h2 style="margin-bottom:10px;">1.竞买人请确认以下事项并勾选</h2>
<p>· 已阅读并知晓:拍下不买的后果,即保证金不予退还并承担相应的后果包括处罚等</p>
<p>· 已阅读并知晓:本次报名仅代表本人,未接受他人委托参与竞买。(如需办理委托,请在报名前联系处置单位将双方信息录入系统</p>
<p>· 已阅读并知晓:如您报名成功,您的姓名、证件号码、手机号、联系地址等信息将披露给资产处置单位及相关服务提供方,用于核实竞买人的真是身份、竞买资格及相关服务提供</p>
<p>· 已阅读并知晓:竞买人如果没有进行实地看样,视为接受标的所有瑕疵等细则</p>
<p style="margin-bottom:10px;">· 已阅读并知晓:已阅读并同意 <span style="color:#C21F3A">《竞拍服务协议》</span></p>
<van-checkbox v-model="checked" shape="square" checked-color="#007E72" ><p :style="{color:color}">本人已知晓并同意以上所有事项</p></van-checkbox>
</van-row>
<van-row style="padding:0 10px;margin-top: 20px;">
<h2 style="margin-bottom:10px;padding:0 10px">2.竞买人身份确认</h2>
<van-form @submit="onSubmit">
<van-field
v-model="nickName"
name="nickName"
label="姓名"
placeholder="姓名"
required
:rules="[{ required: true, message: '请填写姓名' }]"
/>
<van-field
v-model="phone"
name="phone"
label="会员账号"
placeholder="会员账号"
required
:rules="[{ required: true, message: '请填写会员账号' }]"
/>
<van-field
v-model="bankCardName"
name="bankCardName"
label="开户银行"
placeholder="开户银行"
required
:rules="[{ required: true, message: '请填写开户银行' }]"
/>
<van-field
v-model="bankCardNum"
name="bankCardNum"
label="银行卡号"
placeholder="银行卡号"
required
:rules="[{ required: true, message: '请填写银行卡号' }]"
/>
<van-field
v-model="idCardNum"
name="idCardNum"
label="身份证号"
placeholder="身份证号"
required
:rules="[{ required: true, message: '请填写身份证号' }]"
/>
<van-field
v-model="projectId"
name="projectId"
style="display: none"
/>
<van-field
v-model="memberId"
name="memberId"
style="display: none"
/>
<van-field
v-model="status"
name="status"
style="display: none"
/>
<van-field label="上传相关凭证" required>
<template #input>
<van-uploader accept="*" v-model="fileList" multiple>
<van-button icon="plus" size="small" round color="#007E72">点击上传</van-button>
</van-uploader>
</template>
</van-field>
<div style="margin: 16px;">
<van-button round block type="info" native-type="submit" color="#007E72">保存</van-button>
</div>
</van-form>
</van-row>
</div>
</template>

<script>
import {getMember, submmitSignup, uploadPic} from "../../api/project";
import {getInfo} from "../../api/login";

export default {
name: "signUp",
data() {
return {
projectId:this.$route.query.projectId,
deposit:this.$route.query.deposit,
projectName:this.$route.query.projectName,
bankCardName:"",
bankCardNum:"",
idCardNum:"",
phone:"",
memberId:"",
status:"Y",
checked: true,
color:"#007E72",
nickName:"",
userName:"",
password:"",
fileList:[],
tableId:"",
};
},
created() {
getInfo().then(response => {
getMember(response.user.userId).then(res => {
this.nickName = res.data.realname
this.idCardNum = res.data.idCardNum
this.bankCardName = res.data.bankCardName
this.bankCardNum = res.data.bankCardNum
this.phone = res.data.phone
this.memberId = res.data.id
})
})
},
methods: {
onRead (file) {
let data = {};
let f = []
for (let i of file){
f.push(i.content)
}
data['files']= f
data['fileType']= ""
data['bizPath']= "transaction"
data['tableName']= "t_transaction_signup"
data['tableId']= this.tableId
uploadPic(data).then(response => {
if(response.code=="200"){
let _this = this
this.$toast({
icon: 'success', // 找到自己需要的图标
message: '提交申请,等待审核',
duration:"2000",
onClose:function(){
_this.$router.back(-1);
}
})
}
})
},
onSubmit(values){
if(!this.checked){
this.$toast({
icon: 'warning', // 找到自己需要的图标
message: '保存之前,请先勾选<<竞拍服务协议>>!'
})
}
submmitSignup(values).then(response =>{
if(response.code==200){
this.tableId = response.data
this.onRead(this.fileList)
}
})
}
},
watch:{
checked(val){
val==true?this.color="#007E72":this.color="#000"
}
}
}
</script>

<style scoped lang="scss">

</style>

正在加载...
取消
保存