移动端
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

projectDetail.vue 43 KiB

hace 4 años
hace 4 años
hace 4 años
hace 4 años
hace 4 años
hace 4 años
hace 4 años
hace 4 años
hace 4 años
hace 2 años
hace 4 años
hace 4 años
hace 4 años
hace 4 años
hace 2 años
hace 2 años
hace 4 años
hace 4 años
hace 4 años
hace 4 años
hace 2 años
hace 4 años
hace 4 años
hace 2 años
hace 2 años
hace 2 años
hace 4 años
hace 2 años
hace 2 años
hace 4 años
hace 2 años
hace 4 años
hace 4 años
hace 2 años
hace 4 años
hace 4 años
hace 2 años
hace 4 años
hace 2 años
hace 4 años
hace 4 años
hace 4 años
hace 2 años
hace 2 años
hace 4 años
hace 4 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 4 años
hace 4 años
hace 2 años
hace 4 años
hace 2 años
hace 4 años
hace 4 años
hace 2 años
hace 4 años
hace 2 años
hace 4 años
hace 2 años
hace 4 años
hace 2 años
hace 2 años
hace 4 años
hace 2 años
hace 2 años
hace 4 años
hace 2 años
hace 4 años
hace 2 años
hace 2 años
hace 4 años
hace 4 años
hace 4 años
hace 4 años
hace 2 años
hace 2 años
hace 4 años
hace 2 años
hace 4 años
hace 4 años
hace 2 años
hace 2 años
hace 2 años
hace 4 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 4 años
hace 4 años
hace 4 años
hace 4 años
hace 4 años
hace 4 años
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217
  1. <template>
  2. <div class="app-container">
  3. <van-nav-bar
  4. title="项目详情"
  5. left-arrow
  6. fixed
  7. placeholder
  8. @click-left="$router.back(-1)"
  9. />
  10. <van-tabs scrollspy sticky color="#007b76" >
  11. <van-tab title="竞拍信息" title-style="font-size:12px;">
  12. <!-- <van-swipe class="my-swipe" height="235" indicator-color="white" @change="onChange">-->
  13. <!-- <template v-if="detail.fileUrlList !== undefined &&detail.fileUrlList.length>0">-->
  14. <!-- <van-swipe-item v-for="(item,index) in detail.fileUrlList" :key="index"><van-image :src="item.fileUrl?'/api'+item.fileUrl:'../../static/images/zwtp.jpg'" height="235" /></van-swipe-item>-->
  15. <!-- </template>-->
  16. <!-- <template v-else>-->
  17. <!-- <van-swipe-item><van-image src="../../static/images/zwtp.jpg" height="235" /></van-swipe-item>-->
  18. <!-- </template>-->
  19. <!-- <template #indicator>-->
  20. <!-- <div class="custom-indicator">{{ current + 1 }}/{{ detail.fileUrlList !== undefined &&detail.fileUrlList.length>0 ? detail.fileUrlList.length:1 }}</div>-->
  21. <!-- </template>-->
  22. <!-- </van-swipe>-->
  23. <van-notice-bar color="#fff" background="#007E72" left-icon="clock-o">
  24. {{ process }}&nbsp&nbsp&nbsp&nbsp<span id="timeData"></span>
  25. <!-- <van-count-down ref="countDown" :time="time" format="DD 天 HH 时 mm 分 ss 秒" @change="timerChange" />-->
  26. </van-notice-bar>
  27. <div class="information">
  28. <van-row>
  29. <van-col span="24" class="title">【{{ detail.rollout }}】{{ detail.projectName }}</van-col>
  30. </van-row>
  31. <van-row>
  32. <van-col span="5">挂牌价</van-col>
  33. <van-col span="19" class="price"><span>{{detail.price}}</span> {{detail.unit}}</van-col>
  34. </van-row>
  35. <van-row>
  36. <van-col span="5">保证金</van-col>
  37. <van-col span="19" class="money"><span>{{ detail.deposit }}</span> 元</van-col>
  38. </van-row>
  39. </div>
  40. <div class="lead" v-if="((detail.biddingType=='自由竞价' || detail.biddingType=='1')&&detail.projectShowStatus!='正在竞价'&&detail.projectShowStatus!='等待竞价') || (detail.biddingType!='自由竞价' && detail.biddingType!='1')">
  41. <van-row >
  42. <van-col span="2"><van-image src="../../static/images/icon/phone.png" style="vertical-align: text-top;" /></van-col>
  43. <template v-if="biddinglistInformation!=undefined&&biddinglistInformation.length>0">
  44. <van-col span="6">{{biddinglistInformation[0].memberId}}</van-col>
  45. <van-col span="9">{{biddinglistInformation[0].money}}{{detail.unit}}</van-col>
  46. <van-col span="7">领先</van-col>
  47. </template>
  48. </van-row>
  49. </div>
  50. <div class="detail">
  51. <van-row>
  52. <van-col span="24"><span>报名开始时间:</span>{{ detail.signupStartTime }}</van-col>
  53. </van-row>
  54. <van-row>
  55. <van-col span="24"><span>报名截止时间:</span>{{ detail.signupStopTime }}</van-col>
  56. </van-row>
  57. <van-row>
  58. <van-col span="24"><span>竞价开始时间:</span>{{ detail.biddingStartTime }}</van-col>
  59. </van-row>
  60. <van-row>
  61. <van-col span="24"><span>竞价结束时间:</span>{{ detail.biddingStopSetime }}</van-col>
  62. </van-row>
  63. <van-row>
  64. <van-col span="24"><span>竞价方式:</span>{{ detail.biddingType }}</van-col>
  65. </van-row>
  66. <van-row>
  67. <van-col span="24"><span>竞价方向:</span>{{ detail.biddingDirect }}</van-col>
  68. </van-row>
  69. <van-row v-if="detail.ladderPrice&&detail.biddingType=='阶梯竞价'">
  70. <van-col span="24"><span>阶梯价(增减幅度):</span>¥{{ detail.ladderPrice }}</van-col>
  71. </van-row>
  72. <van-row v-if="detail.delayPeriod!=0">
  73. <van-col span="24"><span>延时周期:</span>{{detail.delayPeriod}}秒</van-col>
  74. </van-row>
  75. <van-row v-if="detail.delayPeriod!=0">
  76. <van-col span="24"><span>延时说明:</span>自由竞价期结束后,进入{{detail.delayPeriod}}秒延时竞价期;延时竞价期内但凡有出价,则继续延时竞价,直至无人出价!</van-col>
  77. </van-row>
  78. </div>
  79. </van-tab>
  80. <van-tab title="标的物介绍" title-style="font-size:12px;">
  81. <p class="delTitle">标的物介绍</p>
  82. <div class="introduce">
  83. <van-row>
  84. <van-col span="24" style="color:#333333;font-size: 0.4rem;text-align: center;font-weight: bold;">项目挂牌转出方简况及公告内容</van-col>
  85. </van-row>
  86. <van-row>
  87. <van-col span="24"><span>{{detail.projectNumber == '集体资产采购类' ? '建设方':'转出方'}}名称</span>{{ detail.outName }}</van-col>
  88. </van-row>
  89. <van-row>
  90. <van-col span="24"><span>住址</span>{{ detail.address }}</van-col>
  91. </van-row>
  92. <van-row>
  93. <van-col span="24"><span>经济类型</span>{{ detail.economicType }}</van-col>
  94. </van-row>
  95. <van-row>
  96. <van-col span="24"><span>统一社会信用代码</span>{{ detail.areaNum }}</van-col>
  97. </van-row>
  98. <van-row>
  99. <van-col span="12"><span>法人/负责人</span>{{ detail.legalPerson }}</van-col>
  100. <van-col span="12"><span>联系电话</span>{{ detail.phone }}</van-col>
  101. </van-row>
  102. <van-row>
  103. <van-col span="12"><span>项目类型</span>{{ detail.projectNumber }}</van-col>
  104. <van-col span="12"><span>标的类别</span>{{ detail.projectType }}</van-col>
  105. </van-row>
  106. <van-row>
  107. <van-col span="24"><span>转出项目名称</span>{{ detail.projectName }}</van-col>
  108. </van-row>
  109. <van-row>
  110. <van-col span="24"><span>坐落</span>{{ detail.locationName }}</van-col>
  111. </van-row>
  112. <!-- <van-row>-->
  113. <!-- <van-col span="14"><span>是否属再次转出</span>{{ detail.twoout == 'N'?"否":"是"}}</van-col>-->
  114. <!-- <van-col span="10"><span>前次转出方式</span>{{ detail.oneout}}</van-col>-->
  115. <!-- </van-row>-->
  116. <van-row v-if="detail.projectNumber != '集体资产采购类'">
  117. <van-col span="12"><span>拟转出方式</span>{{ detail.rollout }}</van-col>
  118. <van-col span="12"><span>拟转出面积/数量</span> {{detail.allCount}}{{detail.allCountUnit}} </van-col>
  119. </van-row>
  120. <template v-if="detail.projectNumber != '集体资产采购类'">
  121. <template v-if="detail.projectNumber == '集体经营性资产' && detail.projectType == '房屋建筑' && detail.rollout == '转让'">
  122. </template>
  123. <van-row v-else>
  124. <van-col span="24"><span>拟转出期限</span>{{detail.outStartTime}} 至 {{detail.outStopTime}}&nbsp&nbsp&nbsp&nbsp&nbsp共{{detail.outYearNum}}{{detail.outYearUnit}}</van-col>
  125. </van-row>
  126. </template>
  127. <van-row v-if="detail.projectNumber != '集体资产采购类'">
  128. <van-col span="24"><span>涉及农户数</span>{{ detail.peasantNum }}</van-col>
  129. </van-row>
  130. <van-row>
  131. <van-col span="24"><span>支付方式</span>{{ detail.paymentType }}</van-col>
  132. </van-row>
  133. <van-row>
  134. <van-col span="24"><span>授权情况</span>{{ detail.authorization }}</van-col>
  135. </van-row>
  136. <van-row>
  137. <van-col span="24"><span>{{detail.projectNumber == '集体资产采购类' ? '工程内容':'拟流转用途'}}</span>{{ detail.contractPurpose }}</van-col>
  138. </van-row>
  139. <van-row>
  140. <van-col span="24"><span>{{detail.projectNumber == '集体资产采购类' ? '承包范围':'其它需要披露的事项'}}</span>{{ detail.cracksEvents }}</van-col>
  141. </van-row>
  142. <van-row>
  143. <van-col span="24"><span>受让方条件</span>{{ detail.condition }}</van-col>
  144. </van-row>
  145. <van-row v-if="detail.projectNumber != '集体资产采购类'">
  146. <van-col span="24" style="color:#007E72;">标的物信息</van-col>
  147. </van-row>
  148. <div v-if="detail.projectNumber != '集体资产采购类'" class="project_info" v-for="(item,index) in detail.subjectList" :key="index">
  149. <van-row>
  150. <van-col span="8">{{ item.landName }}</van-col>
  151. <van-col span="8">{{ item.area }}{{item.areaUnit}}</van-col>
  152. <van-col span="8">{{ item.condition}}</van-col>
  153. </van-row>
  154. </div>
  155. </div>
  156. </van-tab>
  157. <van-tab title="标的物图片" title-style="font-size:12px;">
  158. <p class="delTitle">标的物图片</p>
  159. <template v-if="detail.fileUrlList !== undefined &&detail.fileUrlList.length>0">
  160. <van-image v-for="(item,index) in detail.fileUrlList" :key="index" :src="item.fileUrl?'/api'+item.fileUrl:'../../static/images/index/detailImg.png'" style="vertical-align: text-top;" />
  161. </template>
  162. <template v-else>
  163. <van-image src="../../static/images/index/detailImg.png" style="vertical-align: text-top;" />
  164. </template>
  165. </van-tab>
  166. <van-tab title="竞买须知" title-style="font-size:12px;">
  167. <p class="delTitle">竞买须知</p>
  168. <div class="notice" v-html="webConfig">
  169. </div>
  170. </van-tab>
  171. <van-tab title="竞价记录" title-style="font-size:12px;">
  172. <p class="delTitle">竞价记录</p>
  173. <div class="biddingList">
  174. <p v-if="detail.biddingType == '自由竞价' && (detail.projectShowStatus == '正在竞价'||detail.projectShowStatus == '等待竞价')">友情提示:自由竞价方式下,项目结束前不显示竞价记录!</p>
  175. <table v-else width="100%" cellspacing="0">
  176. <tr>
  177. <td>出价人</td>
  178. <td>出价</td>
  179. <td>状态</td>
  180. <td>时间</td>
  181. </tr>
  182. <tr v-for="(item,index) in biddinglistInformation" :key="index">
  183. <td>{{ item.memberId }}</td>
  184. <td>{{ item.money}}</td>
  185. <template v-if="index==0">
  186. <td style="color:#C21F3A">领先</td>
  187. </template>
  188. <template v-else>
  189. <td></td>
  190. </template>
  191. <td>{{ item.loginTime }}</td>
  192. </tr>
  193. </table>
  194. </div>
  195. </van-tab>
  196. </van-tabs>
  197. <div style="height: 3rem;"></div>
  198. <div class="bottomBtn" v-if="bottomBtn">
  199. <van-row v-if="!showBtn">
  200. <!-- <van-col span="8" style="margin-top: 4px;" @click="showPopup">-->
  201. <!-- <van-image src="../../static/images/icon/clock.png" style="vertical-align: text-bottom;" />-->
  202. <!-- <p style="line-height: 0.2rem;color: #999999">提醒</p>-->
  203. <!-- </van-col>-->
  204. <van-col span="24">
  205. <van-button round color="#C21F3A" block :disabled="isSignup" @click="goSignUp">
  206. {{ btnMsg }}<br/>
  207. <span style="font-size: 10px">保证金¥{{detail.deposit}}</span>
  208. </van-button>
  209. </van-col>
  210. </van-row>
  211. <div v-if="showBtn&&detail.biddingType!='阶梯竞价'" style="display: flex;align-items: center;width: 70%;margin: 0 auto;">
  212. <van-field v-model="price" type="number" input-align="center" placeholder="请输入出价金额" />
  213. <p style="flex-shrink: 0;">{{detail.unit}}</p>
  214. </div>
  215. <van-row v-if="showBtn" type="flex" justify="space-around">
  216. <van-col span="3" v-if="detail.ladderPrice&&detail.biddingType=='阶梯竞价'" style="text-align: center;line-height: 1rem">
  217. <van-button color="#e2e2e2" icon="minus" size="small" @click="sub"></van-button>
  218. </van-col>
  219. <van-col span="18">
  220. <div style="display: flex;">
  221. <van-button round color="#C21F3A" block @click="offer">
  222. <p>出价</p>
  223. <p v-if="detail.ladderPrice&&detail.biddingType=='阶梯竞价'">{{price}}{{detail.unit}}</p>
  224. </van-button>
  225. <!-- <van-button v-if="isFirst == 'Y'" round color="#C21F3A" block @click="offerFirst" style="margin-left: 10px;width: 30%;">-->
  226. <!-- <p>优先跟价</p>-->
  227. <!-- </van-button>-->
  228. </div>
  229. </van-col>
  230. <van-col span="3" v-if="detail.ladderPrice&&detail.biddingType=='阶梯竞价'" style="text-align: center;line-height: 1rem">
  231. <van-button color="#e2e2e2" icon="plus" size="small" @click="add"></van-button>
  232. </van-col>
  233. </van-row>
  234. </div>
  235. <van-popup v-model="show" class="popup" closeable>
  236. <van-image src="../../static/images/icon/success.png"/>
  237. <p class="popupTit">提醒设置成功</p>
  238. <p class="popupContent">系统将按要求提醒您竞拍</p>
  239. <van-button round color="#C21F3A" block class="iKnow">
  240. 我知道了
  241. </van-button>
  242. <p class="updatePopup">修改提醒方式</p>
  243. </van-popup>
  244. </div>
  245. </template>
  246. <script>
  247. import {
  248. biddingSubmit,
  249. getBiddingList, getBiddingStopTime,
  250. getMember,
  251. getOutProjectDetail,
  252. getSignup,
  253. getWebConfig,
  254. projectNewBidMoney
  255. } from "../../api/project";
  256. import {getInfo} from "../../api/login";
  257. import $ from "jquery";
  258. export default {
  259. name: "projectDetail",
  260. provide(){
  261. return{
  262. reload:this.reload
  263. }
  264. },
  265. data() {
  266. return {
  267. current: 0,
  268. show: false,
  269. id:this.$route.query.id,
  270. detail: {
  271. biddingType:'自由竞价'
  272. },
  273. webConfig:"",
  274. biddinglistInformation:[],
  275. rollout_type:[],
  276. process:"",
  277. tip:"",
  278. btnMsg:"",
  279. time:null,
  280. timeMsg:"",
  281. isSignup:true,
  282. showBtn:false,
  283. price:null,
  284. userAccount:"",
  285. userName:"",
  286. userId:"",
  287. timeConfig:'',
  288. biddinglistInformationLength:0,
  289. biddingTimeType:1,
  290. isFirst:'',
  291. timer:null,
  292. getSignupData:'',
  293. bottomBtn:false,
  294. delayPeriodNow:false,
  295. nowDate:0,
  296. biddingquery:{
  297. projectId:this.$route.query.id,
  298. pageSize:10,
  299. pageNum:1
  300. },
  301. timeData:'',
  302. timeCount:null
  303. };
  304. },
  305. computed: {
  306. getNowFormatDate:function(){
  307. let date = new Date();
  308. let seperator1 = "-";
  309. let seperator2 = ":";
  310. let month = date.getMonth() + 1;
  311. let day = date.getDate();
  312. let hours = date.getHours();
  313. let minutes = date.getMinutes();
  314. let seconds = date.getSeconds();
  315. if (month >= 1 && month <= 9) {
  316. month = "0" + month;
  317. }
  318. if (day >= 0 && day <= 9) {
  319. day = "0" + day;
  320. }
  321. if (hours >= 0 && hours <= 9) {
  322. hours = "0" + hours;
  323. }
  324. if (minutes >= 0 && minutes <= 9) {
  325. minutes = "0" + minutes;
  326. }
  327. if (seconds >= 0 && seconds <= 9) {
  328. seconds = "0" + seconds;
  329. }
  330. let currentdate = date.getFullYear() + seperator1 + month + seperator1 + day + " " + hours + seperator2 + minutes + seperator2 + seconds;
  331. //console.log(currentdate)
  332. return currentdate;
  333. }
  334. },
  335. created() {
  336. clearInterval(this.timer);
  337. this.reload();
  338. },
  339. methods: {
  340. goSignUp(){
  341. getInfo().then(response => {
  342. getMember(response.user.userId).then(resresponse => {
  343. let data= {
  344. projectId:this.id,
  345. memberId:resresponse.data.id,
  346. };
  347. var isSign;
  348. getSignup(data).then(r =>{
  349. if(r.data=="1"){
  350. isSign=true
  351. }
  352. })
  353. if (resresponse.data.auditStatus == 'Y'){
  354. if (isSign){
  355. this.$toast({
  356. icon: 'error', // 找到自己需要的图标
  357. message: '已报名,请耐心等待审核结果!',
  358. duration:"2000",
  359. onClose:function(){
  360. }
  361. })
  362. return;
  363. }
  364. this.$router.push(
  365. {
  366. path: 'signUp',
  367. query: {
  368. projectId: this.detail.id,
  369. deposit: this.detail.deposit,
  370. projectName: this.detail.projectName
  371. }
  372. }
  373. );
  374. }else{
  375. this.$toast({
  376. icon: 'error', // 找到自己需要的图标
  377. message: '交易中心审核注册信息后方可进行报名!',
  378. duration:"2000",
  379. onClose:function(){
  380. }
  381. })
  382. }
  383. })
  384. })
  385. },
  386. onChange(index) {
  387. this.current = index;
  388. },
  389. showPopup() {
  390. this.show = true;
  391. },
  392. reload(){
  393. //console.log("结束进入")
  394. getOutProjectDetail(this.id).then(response =>{
  395. this.detail=response.data
  396. this.getDicts("rollout_type").then(res =>{
  397. this.detail.rollout = this.selectDictLabel(res.data,response.data.rollout);
  398. if(this.detail.oneout==0){
  399. this.detail.oneout = "无"
  400. }else{
  401. this.detail.oneout = this.selectDictLabel(res.data,response.data.oneout);
  402. }
  403. })
  404. this.getDicts("project_type").then(res => {
  405. this.detail.projectNumber = this.selectDictLabel(res.data,response.data.projectNumber);
  406. });
  407. this.getDicts("sub_object_type").then(res => {
  408. // this.detail.projectType = this.selectDictLabel(res.data,response.data.projectType);
  409. });
  410. this.getDicts("economic_type").then(res => {
  411. this.detail.economicType = this.selectDictLabel(res.data,response.data.economicType);
  412. });
  413. this.getDicts("area_unit").then(res => {
  414. this.detail.allCountUnit = this.selectDictLabel(res.data,response.data.allCountUnit);
  415. });
  416. this.getDicts("bidding_type").then(res => {
  417. // debugger;
  418. this.detail.biddingType = this.selectDictLabel(res.data,response.data.biddingType);
  419. });
  420. this.getDicts("bidding_direct").then(res => {
  421. this.detail.biddingDirect = this.selectDictLabel(res.data,response.data.biddingDirect);
  422. });
  423. this.getDicts("price_unit").then(res => {
  424. this.detail.unit = this.selectDictLabel(res.data,response.data.unit);
  425. });
  426. this.getDicts("payment_type").then(res => {
  427. this.detail.paymentType = this.selectDictLabel(res.data,response.data.paymentType);
  428. });
  429. for(let i of this.detail.subjectList){
  430. this.getDicts("area_unit").then(res => {
  431. i.areaUnit = this.selectDictLabel(res.data,i.areaUnit);
  432. });
  433. }
  434. var that = this;
  435. this.timer = setInterval(function () {
  436. if(that.process == "竞价中"){
  437. getBiddingList(that.biddingquery).then(response =>{
  438. that.biddinglistInformation = response.rows
  439. if((response.rows.length != that.biddinglistInformationLength) && that.detail.ladderPrice){
  440. if (that.detail.biddingDirect == 2 ||that.detail.biddingDirect == '反向竞价') {
  441. if(response.rows[0].money<=that.price) {
  442. that.price = parseInt(response.rows[0].money) - parseInt(that.detail.ladderPrice)
  443. }
  444. }else{
  445. if(response.rows[0].money>=that.price) {
  446. that.price = parseInt(response.rows[0].money) + parseInt(that.detail.ladderPrice)
  447. }
  448. }
  449. }
  450. that.biddinglistInformationLength = response.total
  451. });
  452. }
  453. },3000)
  454. getInfo().then(response => {
  455. this.userId=response.user.userId
  456. getMember(response.user.userId).then(res => {
  457. this.userAccount=res.data.phone
  458. this.userName=res.data.realname
  459. this.memberId=res.data.id
  460. let data= {
  461. projectId:this.id,
  462. memberId:res.data.id,
  463. depositStatus:'1'
  464. };
  465. getSignup(data).then(r =>{
  466. this.getSignupData = r.data;
  467. this.isFirst = r.signup.isFirst;
  468. this.getBidding();
  469. this.timeCount = setInterval(()=>{
  470. this.getTime()
  471. },1000)
  472. this.bottomBtn = true;
  473. })
  474. })
  475. })
  476. });
  477. getWebConfig().then(response =>{
  478. this.timeConfig = response.data[8].configValue;
  479. response.data.map(item =>{
  480. if(item.configKey=="cqjy.website.bidInfo"){
  481. this.webConfig = item.configValue
  482. }
  483. })
  484. });
  485. },
  486. getTime(){
  487. this.bottomBtn = true;
  488. let biddingStartTime = Date.parse(this.detail.biddingStartTime)+0
  489. let biddingStopTime = Date.parse(this.detail.biddingStopTime)+0
  490. let biddingStopSetime = Date.parse(this.detail.biddingStopSetime)+0
  491. let signupStartTime = Date.parse(this.detail.signupStartTime)+0
  492. let signupStopTime = Date.parse(this.detail.signupStopTime)+0
  493. let nowDate = Date.parse(this.format($.ajax({async:false,data:{i: Date.parse(new Date())}}).getResponseHeader("Date"), "yyyy-MM-dd HH:mm:ss"));
  494. let time = this.detail.delayPeriod * 1000;
  495. var difference = biddingStopTime-nowDate;//延时后时间差
  496. var differenceSetime = biddingStopSetime-nowDate;//延时后时间差
  497. let m = Math.floor(difference/1000/60%60);
  498. let s = Math.floor(difference/1000%60);
  499. if (s%2 == 0&&time!=0){
  500. getBiddingStopTime(this.id).then(response =>{
  501. this.$set(this.detail,'biddingStopTime',response.data);
  502. });
  503. }
  504. if (differenceSetime <= 0 && difference >= 0 && difference <=time){
  505. console.log("竞价剩余两分钟"+"m:"+m+"s:"+s)
  506. this.biddingTimeType = 1;
  507. this.process= "竞价中"
  508. this.detail.projectShowStatus = '正在竞价';
  509. this.tip=this.detail.biddingStopTime+"结束竞价"
  510. this.timeMsg="距竞价结束"
  511. if(this.getSignupData=="1"){
  512. this.isSignup=true
  513. this.btnMsg="立即竞价"
  514. this.showBtn=true
  515. // this.price=this.detail.ladderPrice?this.biddinglistInformation[0].money+this.detail.ladderPrice:this.biddinglistInformation[0].money+1
  516. }else{
  517. this.btnMsg="未报名"
  518. this.isSignup=true
  519. }
  520. $('#timeData').html(this.TimeInterval(biddingStopTime-nowDate));
  521. if (s < 1 && m < 1){
  522. console.log("竞价结束22222222222")
  523. getBiddingStopTime(this.id).then(response => {
  524. this.$set(this.detail,'biddingStopTime',response.data)
  525. let timeNew = Date.parse(response.data) + 0 - nowDate;
  526. if (timeNew > 0) {
  527. this.$set(this.detail,'biddingStopTime',response.data)
  528. this.getTime();
  529. } else {
  530. // clearInterval(this.timeCount);
  531. this.process = "竞价结束"
  532. this.tip = this.detail.biddingStopTime + "结束竞价"
  533. this.btnMsg = "竞价结束"
  534. this.timeMsg = "竞价结束"
  535. this.time = 0
  536. this.isSignup = true
  537. this.showBtn = false
  538. this.biddingTimeType = 2;
  539. this.detail.projectShowStatus = '竞价结束'
  540. $('#timeData').html('');
  541. return;
  542. }
  543. });
  544. }else if (s%2 == 0&&time!=0){
  545. getBiddingStopTime(this.id).then(response =>{
  546. this.$set(this.detail,'biddingStopTime',response.data);
  547. });
  548. }
  549. }else{
  550. this.dataCompare(signupStartTime,signupStopTime,biddingStartTime,biddingStopSetime)
  551. }
  552. },
  553. dataCompare(signupStartTime,signupStopTime,biddingStartTime,biddingStopTime){
  554. let nowDate = Date.parse(this.format($.ajax({async:false,data:{i: Date.parse(new Date())}}).getResponseHeader("Date"), "yyyy-MM-dd HH:mm:ss"));
  555. if(signupStartTime>nowDate){
  556. //console.log('未开始')
  557. this.process= "报名未开始"
  558. this.tip=this.detail.signupStartTime+"开始报名"
  559. this.btnMsg="报名未开始"
  560. this.timeMsg="距报名开始"
  561. $('#timeData').html(this.TimeInterval(signupStartTime-nowDate))
  562. // this.timeData = ;
  563. this.isSignup=true
  564. }
  565. if(signupStopTime>nowDate&&signupStopTime>signupStartTime){
  566. //console.log('报名中')
  567. this.process= "报名中"
  568. this.isSignup=false
  569. this.tip=this.detail.signupStopTime+"报名截止"
  570. this.btnMsg="立即报名"
  571. this.timeMsg="距报名截止"
  572. // this.time = signupStopTime-nowDate
  573. $('#timeData').html(this.TimeInterval(signupStopTime-nowDate));
  574. // this.timeData = this.TimeInterval(signupStopTime-nowDate);
  575. if(this.getSignupData=="1"){
  576. this.isSignup=true
  577. this.btnMsg="已报名"
  578. }
  579. }
  580. if(biddingStartTime>nowDate&&nowDate>signupStopTime){
  581. //console.log('竞价未开始')
  582. this.biddingTimeType = 3;
  583. this.process= "竞价未开始"
  584. this.tip=this.detail.biddingStartTime+"开始竞价"
  585. this.timeMsg="距竞价开始"
  586. // this.time = biddingStartTime-nowDate
  587. $('#timeData').html(this.TimeInterval(biddingStartTime-nowDate));
  588. // this.timeData = this.TimeInterval(biddingStartTime-nowDate);
  589. this.isSignup=true;
  590. if(this.getSignupData=="1"){
  591. this.btnMsg="已报名"
  592. // this.price=this.detail.ladderPrice?this.biddinglistInformation[0].money+this.detail.ladderPrice:this.biddinglistInformation[0].money+1
  593. }else{
  594. this.btnMsg="未报名"
  595. }
  596. }
  597. if(biddingStopTime>nowDate&&nowDate>biddingStartTime){
  598. //console.log('竞价中')
  599. this.biddingTimeType = 1;
  600. this.process= "竞价中"
  601. this.tip=this.detail.biddingStopTime+"结束竞价"
  602. this.timeMsg="距竞价结束"
  603. // this.time = biddingStopTime-nowDate
  604. $('#timeData').html(this.TimeInterval(biddingStopTime-nowDate));
  605. // this.timeData = this.TimeInterval(biddingStopTime-nowDate);
  606. //console.log(this.timeData)
  607. if(this.getSignupData=="1"){
  608. this.isSignup=true
  609. this.btnMsg="立即竞价"
  610. this.showBtn=true
  611. // this.price=this.detail.ladderPrice?this.biddinglistInformation[0].money+this.detail.ladderPrice:this.biddinglistInformation[0].money+1
  612. }else{
  613. this.btnMsg="未报名"
  614. this.isSignup=true
  615. }
  616. }
  617. if(nowDate>biddingStopTime){
  618. //console.log('竞价结束')
  619. // clearInterval(this.timeCount);
  620. this.process= "竞价结束"
  621. this.tip=this.detail.biddingStopTime+"结束竞价"
  622. this.detail.projectShowStatus = '竞价结束'
  623. this.btnMsg="竞价结束"
  624. this.timeMsg="竞价结束"
  625. this.time = 0
  626. this.isSignup = true
  627. this.showBtn=false
  628. this.biddingTimeType = 2;
  629. $('#timeData').html('');
  630. // this.timeData = ''
  631. }
  632. },
  633. getBidding(){
  634. var that = this;
  635. getBiddingList(that.biddingquery).then(response =>{
  636. that.biddinglistInformation = response.rows
  637. that.biddinglistInformationLength = response.total
  638. if (that.detail.biddingType == '阶梯竞价'){
  639. if (response.rows.length>0&&that.detail.ladderPrice){
  640. if (that.price == 0){return;}
  641. if (that.detail.biddingDirect == 2 ||that.detail.biddingDirect == '反向竞价') {
  642. let money = that.price?that.price:response.rows[0].money
  643. if(response.rows[0].money<=money){
  644. that.price = parseFloat(response.rows[0].money - that.detail.ladderPrice).toFixed(2)
  645. }
  646. }else{
  647. console.log(response.rows[0].money>=that.price)
  648. let money = that.price?that.price:response.rows[0].money
  649. if(response.rows[0].money>=money){
  650. that.price = parseFloat(response.rows[0].money + that.detail.ladderPrice).toFixed(2)
  651. }
  652. }
  653. }else if (response.rows.length>0&&!that.detail.ladderPrice){
  654. if (that.price == 0){return;}
  655. that.price = response.rows[0].money
  656. }else{
  657. if (that.detail.biddingDirect == 2 ||that.detail.biddingDirect == '反向竞价') {
  658. that.price = parseFloat(that.detail.price).toFixed(2)
  659. }else{
  660. that.price = parseFloat(that.detail.price).toFixed(2)
  661. }
  662. }
  663. }
  664. });
  665. },
  666. offerFirst(){
  667. let newMoney;
  668. projectNewBidMoney(this.id).then(response =>{
  669. if (response.data&&response.code==200){
  670. newMoney = response.data;
  671. }else{
  672. newMoney = this.detail.price;
  673. }
  674. let data= {
  675. projectId:this.id,
  676. memberId:this.memberId,
  677. userId:this.userId,
  678. userAccount:this.userAccount,
  679. userName:this.userName,
  680. money:parseFloat(newMoney),
  681. loginTime:Date.now($.ajax({async:false,data:{i: Date.parse(new Date())}}).getResponseHeader("Date"))
  682. };
  683. biddingSubmit(data).then(response =>{
  684. let _this = this
  685. if(response){
  686. this.$toast({
  687. icon: 'success', // 找到自己需要的图标
  688. message: '出价成功',
  689. duration:"1000",
  690. onClose:function(){
  691. clearInterval(this.timer);
  692. // _this.reload()
  693. _this.getBidding();
  694. if (_this.detail.delayPeriod != 0 && _this.delayPeriodNow){
  695. _this.time = null;
  696. }
  697. if (_this.detail.biddingType=='自由竞价'||_this.detail.biddingType=='公开竞价'){
  698. _this.price = null;
  699. }
  700. }
  701. })
  702. }
  703. })
  704. });
  705. },
  706. offer(){
  707. let newMoney;
  708. projectNewBidMoney(this.id).then(response =>{
  709. if (response.data&&response.code==200){
  710. newMoney = response.data;
  711. }else{
  712. newMoney = this.detail.price;
  713. }
  714. if (this.price==''||this.price==0||this.price<0||this.price == null){
  715. this.$toast({
  716. icon: 'fail', // 找到自己需要的图标
  717. message: '请输入出价金额',
  718. duration:"1000",
  719. onClose:function(){
  720. }
  721. })
  722. return;
  723. }
  724. if (this.detail.biddingDirect == '反向竞价'){
  725. // if (this.biddinglistInformation.length<1){
  726. if(this.detail.price<this.price){
  727. this.$toast({
  728. icon: 'fail', // 找到自己需要的图标
  729. message: '出价不能高于挂牌价格',
  730. duration:"1000",
  731. onClose:function(){
  732. }
  733. })
  734. return;
  735. }else{
  736. if (this.detail.biddingType=='阶梯竞价'||this.detail.biddingType=='公开竞价'){
  737. if (this.biddinglistInformation.length>1){
  738. //判断用户出价不能高于当前出价最低价格
  739. if(newMoney <= this.price){
  740. this.$toast({
  741. icon: 'fail', // 找到自己需要的图标
  742. message: '出价不能高于当前出价最低价格',
  743. duration:"1000",
  744. onClose:function(){
  745. }
  746. })
  747. return;
  748. }
  749. }
  750. }
  751. }
  752. }else{
  753. if(this.detail.price>this.price){
  754. this.$toast({
  755. icon: 'fail', // 找到自己需要的图标
  756. message: '出价不能低于挂牌价格',
  757. duration:"1000",
  758. onClose:function(){
  759. }
  760. })
  761. return;
  762. }else{
  763. if (this.detail.biddingType=='阶梯竞价'||this.detail.biddingType=='公开竞价'){
  764. if (this.biddinglistInformation.length>1){
  765. //判断用户出价不能高于当前出价最低价格
  766. //console.log(newMoney)
  767. //console.log(this.price)
  768. if(newMoney >= this.price){
  769. this.$toast({
  770. icon: 'fail', // 找到自己需要的图标
  771. message: '出价不能低于当前出价最高价格',
  772. duration:"1000",
  773. onClose:function(){
  774. }
  775. })
  776. return;
  777. }
  778. }
  779. }
  780. }
  781. }
  782. let data= {
  783. projectId:this.id,
  784. memberId:this.memberId,
  785. userId:this.userId,
  786. userAccount:this.userAccount,
  787. userName:this.userName,
  788. money:parseFloat(this.price),
  789. loginTime:Date.now($.ajax({async:false,data:{i: Date.parse(new Date())}}).getResponseHeader("Date"))
  790. };
  791. // console.log(Date.now($.ajax({async:false}).getResponseHeader("Date")))
  792. biddingSubmit(data).then(response =>{
  793. let _this = this
  794. if(response){
  795. // clearInterval(this.timer);
  796. this.$toast({
  797. icon: 'success', // 找到自己需要的图标
  798. message: '出价成功',
  799. duration:"1000",
  800. onClose:function(){
  801. clearInterval(this.timer);
  802. // _this.reload()
  803. _this.getBidding();
  804. if (_this.detail.delayPeriod != 0 && _this.delayPeriodNow){
  805. _this.time = null;
  806. }
  807. if (_this.detail.biddingType=='自由竞价'||_this.detail.biddingType=='公开竞价'){
  808. _this.price = null;
  809. }else{
  810. _this.price = _this.price-_this.detail.ladderPrice;
  811. }
  812. }
  813. })
  814. }
  815. })
  816. });
  817. },
  818. add(){
  819. if (this.detail.biddingDirect == '反向竞价'){
  820. if (this.biddinglistInformation.length<1){
  821. if(this.detail.price <= this.price){
  822. this.$toast({
  823. icon: 'fail', // 找到自己需要的图标
  824. message: '出价不能高于挂牌价格',
  825. duration:"1000",
  826. onClose:function(){
  827. }
  828. })
  829. return;
  830. }
  831. }else{
  832. if(this.biddinglistInformation[0].money <= (parseFloat(this.price)+parseFloat(this.detail.ladderPrice)).toFixed(2)){
  833. this.$toast({
  834. icon: 'fail', // 找到自己需要的图标
  835. message: '出价不能高于当前出价最低价格',
  836. duration:"1000",
  837. onClose:function(){
  838. }
  839. })
  840. return;
  841. }
  842. }
  843. }else{
  844. if (this.biddinglistInformation.length<1){
  845. if(this.detail.price>this.price){
  846. this.$toast({
  847. icon: 'fail', // 找到自己需要的图标
  848. message: '出价不能低于挂牌价格',
  849. duration:"1000",
  850. onClose:function(){
  851. }
  852. })
  853. return;
  854. }
  855. }else{
  856. if(this.biddinglistInformation[0].money>this.price){
  857. this.$toast({
  858. icon: 'fail', // 找到自己需要的图标
  859. message: '出价不能低于当前出价最高价格',
  860. duration:"1000",
  861. onClose:function(){
  862. }
  863. })
  864. return;
  865. }
  866. }
  867. }
  868. //console.log(this.price == null)
  869. this.price == null?this.price = 0:this.price = this.price;
  870. this.detail.ladderPrice?this.price=(parseFloat(this.price)+parseFloat(this.detail.ladderPrice)).toFixed(2):this.price += 1
  871. },
  872. sub(){
  873. if (this.detail.biddingDirect == '反向竞价'){
  874. if (this.biddinglistInformation.length<1){
  875. if(this.detail.price<this.price){
  876. this.$toast({
  877. icon: 'fail', // 找到自己需要的图标
  878. message: '出价不能高于挂牌价格',
  879. duration:"1000",
  880. onClose:function(){
  881. }
  882. })
  883. return;
  884. }
  885. }else{
  886. if(this.biddinglistInformation[0].money<this.price){
  887. this.$toast({
  888. icon: 'fail', // 找到自己需要的图标
  889. message: '出价不能高于当前出价最低价格',
  890. duration:"1000",
  891. onClose:function(){
  892. }
  893. })
  894. return;
  895. }
  896. }
  897. }else{
  898. if (this.biddinglistInformation.length<1){
  899. if(this.detail.price>=this.price){
  900. this.$toast({
  901. icon: 'fail', // 找到自己需要的图标
  902. message: '出价不能低于挂牌价格',
  903. duration:"1000",
  904. onClose:function(){
  905. }
  906. })
  907. return;
  908. }
  909. }else{
  910. if(this.biddinglistInformation[0].money >= (parseFloat(this.price)-parseFloat(this.detail.ladderPrice)).toFixed(2)){
  911. this.$toast({
  912. icon: 'fail', // 找到自己需要的图标
  913. message: '出价不能低于当前出价最高价格',
  914. duration:"1000",
  915. onClose:function(){
  916. }
  917. })
  918. return;
  919. }
  920. }
  921. }
  922. this.price == null?this.price = 0:this.price = this.price;
  923. if (this.price == 0)return;
  924. this.detail.ladderPrice?this.price=(parseFloat(this.price)-parseFloat(this.detail.ladderPrice)).toFixed(2):this.price -= 1
  925. // if(this.detail.ladderPrice){
  926. // if((this.price-this.detail.ladderPrice)>this.biddinglistInformation[0].money){
  927. // this.price-=this.detail.ladderPrice
  928. // }else{
  929. // this.$toast({
  930. // icon: 'error', // 找到自己需要的图标
  931. // message: '出价不能低于当前最高价',
  932. // duration:"1000",
  933. // })
  934. // }
  935. // }else{
  936. // if((this.price-1)>this.biddinglistInformation[0].money){
  937. // this.price-=1
  938. // }else{
  939. // this.$toast({
  940. // icon: 'error', // 找到自己需要的图标
  941. // message: '出价不能低于当前最高价',
  942. // duration:"1000",
  943. // })
  944. // }
  945. // }
  946. },
  947. timerChange(value){
  948. let d = value.days;
  949. let h = value.hours;
  950. let m = value.minutes;
  951. let s = value.seconds;
  952. let biddingStopTime = Date.parse(this.detail.biddingStopTime)+0
  953. let nowDate = Date.parse(this.format($.ajax({async:false,data:{i: Date.parse(new Date())}}).getResponseHeader("Date"), "yyyy-MM-dd HH:mm:ss"));
  954. let time = this.detail.delayPeriod * 1000;
  955. if (s < 1 && m < 1){
  956. console.log("竞价结束22222222222")
  957. getBiddingStopTime(this.id).then(response => {
  958. this.$set(this.detail,'biddingStopTime',response.data)
  959. let timeNew = Date.parse(response.data) + 0 - nowDate;
  960. if (timeNew > 0) {
  961. this.$set(this.detail,'biddingStopTime',response.data)
  962. this.getTime();
  963. } else {
  964. this.process = "竞价结束"
  965. this.tip = this.detail.biddingStopTime + "结束竞价"
  966. this.btnMsg = "竞价结束"
  967. this.timeMsg = "竞价结束"
  968. this.time = 0
  969. this.isSignup = true
  970. this.showBtn = false
  971. this.biddingTimeType = 2;
  972. return;
  973. }
  974. });
  975. }else if (s%2 == 0&&time!=0){
  976. //console.log('aaa')
  977. // console.log((biddingStopTime-nowDate))
  978. // console.log(time)
  979. // this.getTime();
  980. if ((biddingStopTime-nowDate)<=time){
  981. // console.log("竞价剩余两分钟"+"m:"+m+"s:"+s)
  982. getBiddingStopTime(this.id).then(response =>{
  983. if(this.detail.biddingStopTime!=response.data){
  984. console.log('有人出价')
  985. this.time = null;
  986. }
  987. this.detail.biddingStopTime = response.data
  988. this.$set(this.detail,'biddingStopTime',response.data);
  989. this.delayPeriodNow = true;
  990. // this.time = Date.parse(response.data)+0-nowDate;
  991. });
  992. }
  993. }
  994. },
  995. TimeInterval(timestamp) {
  996. //时间戳转化为天时分秒
  997. // 总秒数
  998. var second = Math.floor(timestamp/ 1000);
  999. // 天数
  1000. var day = Math.floor(second / 3600 / 24);
  1001. // 小时
  1002. var hr = Math.floor(second / 3600 % 24);
  1003. // 分钟
  1004. var min = Math.floor(second / 60 % 60);
  1005. // 秒
  1006. var sec = Math.floor(second % 60);
  1007. return (day?day + "天":'0天') + (hr?hr+ "时":'0时') + ( min?min + "分":'0分') + sec + "秒";
  1008. },
  1009. },
  1010. destroyed () {
  1011. console.log('bbbbbbbbbb')
  1012. clearInterval(this.timer);
  1013. clearInterval(this.timeCount);
  1014. },
  1015. beforeDestory() {
  1016. clearInterval(this.timer)
  1017. clearInterval(this.timeCount);
  1018. },
  1019. //离开页面清除定时器失效问题
  1020. beforeRouteLeave(to, from, next) {
  1021. console.log("我离开了")
  1022. clearInterval(this.timer)
  1023. clearInterval(this.timeCount);
  1024. this.time = null;
  1025. next()
  1026. }
  1027. };
  1028. </script>
  1029. <style scoped lang="scss">
  1030. .app-container {
  1031. }
  1032. .van-count-down{
  1033. display: inline-block;
  1034. color: #fff;
  1035. }
  1036. .custom-indicator {
  1037. position: absolute;
  1038. right: 20px;
  1039. bottom: 20px;
  1040. padding: 0px 20px;
  1041. font-size: 12px;
  1042. /*rgba(0, 0, 0, 0.1)*/
  1043. background: rgba(0, 0, 0, 0.2);
  1044. color: #FFF;
  1045. border-radius: 20px;
  1046. line-height: 0.5rem;
  1047. }
  1048. .title{
  1049. font-size: 0.45rem;
  1050. margin-bottom: 10PX;
  1051. }
  1052. .my-swipe{
  1053. width: 100%;
  1054. }
  1055. .my-swipe .van-swipe-item .van-image{
  1056. width: 100%;
  1057. }
  1058. .information{
  1059. background-color: #FFF;
  1060. margin-top: 0.3rem;
  1061. padding: 0.4rem 0.5rem;
  1062. }
  1063. .van-row{
  1064. line-height: 0.7rem;
  1065. }
  1066. .price{
  1067. color: #C21F3A;
  1068. }
  1069. .price span{
  1070. font-size: 0.5rem;
  1071. font-weight: bold;
  1072. }
  1073. .money{
  1074. color: #C21F3A;
  1075. }
  1076. .money span{
  1077. font-size: 0.5rem;
  1078. font-weight: bold;
  1079. }
  1080. .van-count-down{
  1081. line-height: 0.7rem;
  1082. }
  1083. .lead{
  1084. background-color: #FFF;
  1085. margin-top: 0.3rem;
  1086. padding: 0.1rem 0.5rem;
  1087. color: #C21F3A;
  1088. }
  1089. .detail{
  1090. background-color: #FFF;
  1091. margin-top: 0.3rem;
  1092. padding: 0.2rem 0.5rem;
  1093. }
  1094. .detail span{
  1095. color: #8A8A8A;
  1096. }
  1097. .delTitle{
  1098. font-size: 0.4rem;
  1099. color: #007E72;
  1100. padding: 0.2rem 0.5rem;
  1101. }
  1102. .introduce{
  1103. padding: 0.2rem 0.5rem 0.5rem;
  1104. background-color: #FFF;
  1105. }
  1106. .introduce span{
  1107. color: #8A8A8A;
  1108. margin-right: 20px;
  1109. }
  1110. .project_info{
  1111. border: 1px solid #DCDCDC;
  1112. padding: 0px 20px;
  1113. margin-top: 10px;
  1114. border-radius: 10px;
  1115. }
  1116. .notice{
  1117. padding: 0.5rem;
  1118. background-color: #FFF;
  1119. }
  1120. .notice p{
  1121. line-height: 0.7rem;
  1122. }
  1123. .biddingList{
  1124. padding: 0.5rem;
  1125. background-color: #FFF;
  1126. margin-bottom: 0.4rem;
  1127. }
  1128. .biddingList table{
  1129. text-align: center;
  1130. }
  1131. .biddingList table td{
  1132. text-align: center;
  1133. padding: 10px 0px;
  1134. }
  1135. .biddingList table tr:first-child td{
  1136. background-color: #007E72;
  1137. color: #FFF;
  1138. }
  1139. .bottomBtn{
  1140. padding: 0.2rem 0.2rem;
  1141. background-color: #FFF;
  1142. position: fixed;
  1143. bottom: 0;
  1144. width: 100%;
  1145. }
  1146. .popup{
  1147. text-align: center;
  1148. padding: 0.5rem;
  1149. border-radius: 20px;
  1150. width: 70%;
  1151. padding-top: 1.5rem;
  1152. }
  1153. .popupTit{
  1154. color: #007E72;
  1155. font-size: 0.4rem;
  1156. line-height: 0.9rem;
  1157. }
  1158. .popupContent{
  1159. color: #666666;
  1160. }
  1161. .iKnow{
  1162. margin-top: 1rem;
  1163. }
  1164. .updatePopup{
  1165. color: #007E72;
  1166. margin-top: 0.5rem;
  1167. }
  1168. </style>