chooseland.vue 29 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214
  1. <template>
  2. <view :class="[AppTheme]" class="container">
  3. <view class="inationy_aea">
  4. <view :class="selectindexs ? 'carousel-section bg' : 'carousel-section '">
  5. <view v-show="selectindexs">
  6. <swiper class="carousel" circular>
  7. <swiper-item v-for="(item, index) in imglist" :key="index" class="carousel-item">
  8. <image :src="item" style="width: 100%;height: 100%;"></image>
  9. </swiper-item>
  10. </swiper>
  11. <view class="swiper-dots"></view>
  12. </view>
  13. <view v-show="!selectindexs">
  14. <yfsVideo ref="yvideo" :src="landdetails&&landdetails.video_url"></yfsVideo>
  15. </view>
  16. <scroll-view style="height: 40px;position: absolute;bottom: 20rpx;" scroll-x="true">
  17. <view class="farm_btn">
  18. <view
  19. :class="selectindexs ? 'baner_btn act bg-primary border-primary' : 'baner_btn border-primary'"
  20. @click="chickvedio(true)">图片
  21. </view>
  22. <view v-show="landdetails&&landdetails.video_url"
  23. :class="!selectindexs ? 'baner_btn act bg-primary border-primary' : 'baner_btn border-primary '"
  24. @click="chickvedio(false)">视频</view>
  25. </view>
  26. </scroll-view>
  27. </view>
  28. <view class="borbak"></view>
  29. <!-- 基本信息 -->
  30. <view class="detailed_information">
  31. <view class="price_selection">
  32. <view class="commodity_price">
  33. <view class="commodity_price_red text-neutral">¥{{ landdetails.show_price||0 }}</view>
  34. 元起
  35. </view>
  36. </view>
  37. <view class="case_titleblock">
  38. <view class="case_title">{{ landdetails.soil_name||'' }}</view>
  39. </view>
  40. <view class="case_title_sm">{{ landdetails.soil_desc||'' }}</view>
  41. <view class="borbak"></view>
  42. <view class="rental_record" v-if="landdetails.address!=''">
  43. <view class="rental_address"
  44. style=" display: flex;justify-items: center;justify-content: center; font-weight: normal;">
  45. <view class="">
  46. <u-icon @click="casemap" name="map" :label="landdetails.address" labelPos="right"
  47. labelSize="14" size="18">
  48. </u-icon>
  49. </view>
  50. <view v-if="position" class=""
  51. style=" display: flex;justify-items: center;justify-content: center;margin-top: 2rpx;">
  52. <u-icon name="arrow-right" labelSize="12" size="16">
  53. </u-icon>
  54. </view>
  55. </view>
  56. </view>
  57. <view class="borbak"></view>
  58. <!-- 选择地块 -->
  59. <view class="rental_record">
  60. <view class="rental_address" v-if='soil_set&&soil_set.title1'>{{soil_set.title1}}</view>
  61. <view class="rental_address" v-else>选择土地</view>
  62. <view class="regional_records">剩余{{ hirelandlistsenum }}/{{ retunnsn(hirelandlist.length) }}</view>
  63. </view>
  64. <view class="parcel_status">
  65. <view class="parcel_statusitem">
  66. <view class="color_block_representation" style="background-color: #9F7F68;"></view>
  67. 可选
  68. </view>
  69. <view class="parcel_statusitem">
  70. <view class="color_block_representation" style="background-color: #635044;"></view>
  71. 选中
  72. </view>
  73. <view class="parcel_statusitem">
  74. <view class="color_block_representation" style="background-color: #DFD8D4;"></view>
  75. 已租
  76. </view>
  77. </view>
  78. <view class="land_list">
  79. <scroll-view class="scroll-view_H" scroll-x="true">
  80. <view class="land_item" v-for="(item, index) in hirelandlist" :key="index"
  81. @click="swtedland(item, index)">
  82. <view v-if="item.status === '0' || item.status === 0" class="land_item_text1"
  83. :style="{backgroundImage: selelanditem === index?'url(' + representation_sel + ') !important':''}">
  84. <view class="land_item_title1">{{ item.area }}</view>
  85. <view class="land_item_title2">m²</view>
  86. <view class="land_item_title3">{{ item.alias }}</view>
  87. </view>
  88. <view v-if="item.status === '1' || item.status === 1" class="land_item_text"
  89. :style="{backgroundImage: item.status === 1 || item.status === '1'?'url(' + landselled + ') !important':''}">
  90. 已出租
  91. </view>
  92. <view style="justify-content: center;display: flex;padding-top: 10rpx;">
  93. <u-icon
  94. v-if="(item.status === '0' && selelanditem !== index) || (item.status === 0 && selelanditem !== index)"
  95. name="checkmark-circle" color="rgb(159, 127, 104)" size="25">
  96. </u-icon>
  97. <u-icon v-if="selelanditem === index" name="checkmark-circle-fill"
  98. color="rgb(99, 80, 68)" size="25">
  99. </u-icon>
  100. <u-icon v-if="item.status === '1' || item.status === 1" name="lock"
  101. color="rgb(223, 216, 212)" size="25">
  102. </u-icon>
  103. </view>
  104. </view>
  105. </scroll-view>
  106. </view>
  107. <view class="borbak"></view>
  108. <!-- 选择周期和服务 -->
  109. <view class="rental_record" @click="hireselect = true">
  110. <view class="rental_address" v-if='soil_set&&soil_set.title2'>{{soil_set.title2}}</view>
  111. <view class="rental_address" v-else>租赁周期</view>
  112. <view class="hirecycle" v-if='soil_set&&soil_set.title3'>{{ cycle===''?soil_set.title3 :cycle }}></view>
  113. <view class="hirecycle" v-else>{{ cycle===''? "请选择租赁周期" :cycle }} ></view>
  114. </view>
  115. <view class="borbak"></view>
  116. <u-picker :show="hireselect" ref="uPicker" keyName="label" :columns="[hirepackagelist]"
  117. @confirm="choonsesekey" @cancel="cancel"></u-picker>
  118. <view class="rental_record">
  119. <view class="rental_address" v-if="soil_set&&soil_set.title4">{{soil_set.title4}}</view>
  120. <view class="rental_address" v-else>地块服务</view>
  121. <view class="regional_records" @click="navtovip()" v-if="soil_set&&soil_set.title5">{{soil_set.title5}} >
  122. </view>
  123. <view class="regional_records" @click="navtovip()" v-else>了解特权 ></view>
  124. </view>
  125. <view class="parcel_selist">
  126. <scroll-view class="scroll-view_t" scroll-x="true">
  127. <view class="scroll_view_item" @click="cutlysetage = index"
  128. v-for="(item, index) in hostingpackage" :key="index"
  129. :class="[cutlysetage === index ? 'scroll_vem_sle bg-base border-primary' : 'scroll_vem_sle1']">
  130. <view class="title_main plug_center_100">{{ item.serve_name }}</view>
  131. <view class="postage plug_center_100 text-neutral">
  132. <text class="price_bold ">{{ item.serve_price }}</text>
  133. /天
  134. </view>
  135. <view class="brief_introduction">{{ item.serve_desc }}</view>
  136. </view>
  137. </scroll-view>
  138. </view>
  139. <view class="borbak"></view>
  140. <!-- 种子列表 -->
  141. <view class="rental_record">
  142. <view class="rental_address" v-if="soil_set&&soil_set.title6">{{soil_set.title6}}</view>
  143. <view class="rental_address" v-else>种子列表</view>
  144. <view class="regional_records" @click="seeseed()" v-if="soil_set&&soil_set.title7">{{soil_set.title7}} >
  145. </view>
  146. <view class="regional_records" @click="seeseed()" v-else>查看全部 ></view>
  147. </view>
  148. <view class="seed_list">
  149. <navigator :url="'/pagesB/pages/chooseland/seed/vilegedetail?seedid=' + item.id"
  150. hover-class="navigator-hover" open-type="navigate" class="seed_item"
  151. v-for="(item, index) in seeddatalist" :key="index">
  152. <image class="seed_item_thumbnail" mode="aspectFill" :src="item.ripe_pic"></image>
  153. <view class="seed_item_delit">
  154. <view class="seed_delit_title">{{ item.seed_name }}</view>
  155. <view class="seed_delit_yield">预估产量:{{ item.seed_yield }}kg/m²</view>
  156. </view>
  157. </navigator>
  158. </view>
  159. <!-- 店铺 -->
  160. <view class="borbak"></view>
  161. <view class="farm" v-if="landdetails.farm_id">
  162. <view class="text_area">
  163. <view class="shop_name">
  164. <image :src="farm_info.farm_logo" :lazy-load="true" class="shop_thumbnail"></image>
  165. <view class="right_shop_mess">
  166. <view class="shop_line">
  167. <view class="shop_line_p1">{{farm_info.farm_name}}
  168. </view>
  169. <view class="right_shop_mess_p2" @click="gostoredetail(farm_info.id)">
  170. 进店逛逛
  171. </view>
  172. </view>
  173. <view class="shop_line_fl">
  174. </view>
  175. <view class="shop_line">
  176. <view class="shop_line_p2">
  177. <u-icon name="map" size="20" color="#9C9C9C"></u-icon>
  178. <view class="address">
  179. {{farm_info.farm_address}}
  180. </view>
  181. </view>
  182. </view>
  183. </view>
  184. </view>
  185. </view>
  186. <view class="shop_one">
  187. <view class="shop_one_1">
  188. <view class="view1">{{farm_info.page_view}}</view>
  189. <view class="view2">访客数</view>
  190. </view>
  191. <view>
  192. <u-line color="#999998" direction="col" length='60%'></u-line>
  193. </view>
  194. <view class="shop_one_1">
  195. <view class="view1">{{farm_info.shopnum}}</view>
  196. <view class="view2">全部商品</view>
  197. </view>
  198. <view>
  199. <u-line color="#999998" direction="col" length='60%'></u-line>
  200. </view>
  201. <view class="shop_one_1">
  202. <view class="view1">{{farm_info.shoporder}}</view>
  203. <view class="view2">已售出</view>
  204. </view>
  205. </view>
  206. <!-- <view style="padding: 0 0 20rpx 0;">
  207. <u-album singleSize="75" multipleSize='75' singleMode="aspectFill"
  208. multipleMode="aspectFill" :urls="farm_info.detail_img" maxCount="4" :showMore='true'
  209. rowCount="4"></u-album>
  210. </view> -->
  211. </view>
  212. <!-- 土地详情 -->
  213. <view class="borbak"></view>
  214. <view class="land_details">
  215. <view class="rental_record">
  216. <view class="rental_address" v-if="soil_set&&soil_set.title8">{{soil_set.title8}}</view>
  217. <view class="rental_address" v-else>土地详情</view>
  218. </view>
  219. <view class="land_content" v-html="landdetails.soil_detail"></view>
  220. </view>
  221. </view>
  222. </view>
  223. <admyself :opshow="true"></admyself>
  224. <!-- 底部操作菜单 -->
  225. <view class="page-bottom">
  226. <view class="page-bottom_1">
  227. <navigator url="/pages/index/index" open-type="switchTab" class="p-b-btn">
  228. <u-icon labelSize="12" color="#909399" label="首页" labelPos="bottom" labelColor="#909399" size="25"
  229. name="home"></u-icon>
  230. </navigator>
  231. <view @click="opensharebox" class="p-b-btn">
  232. <u-icon labelSize="12" color="#909399" label="分享" labelPos="bottom" labelColor="#909399" size="25"
  233. name="share"></u-icon>
  234. </view>
  235. <!-- #ifdef MP -->
  236. <view class="p-b-btn" style="position: relative;">
  237. <u-icon labelSize="12" color="#909399" label="客服" labelPos="bottom" labelColor="#909399" size="25"
  238. name="chat"></u-icon>
  239. <button open-type="contact" hover-class="none" style="position: absolute;opacity: 0;">客服</button>
  240. </view>
  241. <!-- #endif -->
  242. </view>
  243. <view class="action-btn-group">
  244. <button type="primary" class=" bg-linear-gradient action-btn no-border buy-now-btn"
  245. @click="sumitorder">立即租赁</button>
  246. </view>
  247. </view>
  248. <view class="pading_bss"></view>
  249. <u-back-top :scroll-top="scrollTop" :custom-style="customstyle"></u-back-top>
  250. <!-- #ifdef MP-WEIXIN -->
  251. <nologin ref="nologin" v-on:loginback="loginback"></nologin>
  252. <!-- #endif -->
  253. <!-- 分享 -->
  254. <sharebox ref="sbox" v-if="sharedata" :data="sharedata"></sharebox>
  255. </view>
  256. </template>
  257. <script>
  258. import Landapi from '@/api/land/index.js';
  259. import Seedapi from '@/api/seed/index.js';
  260. import yfsVideo from '@/components/yfs-video/yfs-video.vue';
  261. import nologin from '@/components/nologin/nologin.vue';
  262. export default {
  263. components: {
  264. yfsVideo,
  265. nologin
  266. },
  267. data() {
  268. return {
  269. primary: this.$theme.primary,
  270. sharedata: null,
  271. cycle: '',
  272. btnImgOrVideo: 1,
  273. // 土地详情
  274. landdetails: '',
  275. // 轮播图集合
  276. imglist: [],
  277. //切换轮播和监控
  278. selectindexs: true,
  279. // 出租土地集
  280. hirelandlist: [],
  281. // 当前选中土地下标
  282. selelanditem: null,
  283. //租聘周期
  284. hirecycle: '',
  285. //顶部距离
  286. scrollTop: 0,
  287. customstyle: {
  288. background: '#F4F6F8'
  289. },
  290. //租聘周期选择器显隐控制器
  291. hireselect: false,
  292. // 托管周期
  293. hirepackagelist: [],
  294. orderid: null,
  295. // 当前选中托管套餐
  296. cutlysetage: 0,
  297. // 土地租赁协议
  298. hostingpackage: [],
  299. // 种子列表
  300. seeddatalist: [],
  301. //剩余土地
  302. hirelandlistsenum: 0,
  303. videoUrl: 'videoUrl',
  304. settingFile: getApp().globalData.siteinfo,
  305. landselled: '',
  306. representation_sel: '',
  307. latitude: '', //纬度
  308. longitude: '', //经度
  309. position: false,
  310. tarpty_id: '',
  311. soil_set: '',
  312. farm_info:''
  313. };
  314. },
  315. onLoad(options) {
  316. this.$store.commit('setlandleaseorder', null);
  317. this.landselled = this.settingFile.root_img + '/static/app/chooseland/landselled.png';
  318. this.representation_sel = this.settingFile.root_img + '/static/app/chooseland/landseed.png';
  319. this.$bindid.getbindid(options, this.$store);
  320. //获取土地详情
  321. this.getlanddebyid(options.landid);
  322. this.orderid = options.landid;
  323. // 获取土地租赁协议列表
  324. this.gethostingpackage();
  325. //获取种子列表
  326. this.getseedlist(1, 1);
  327. if (this.$config && this.$config.app.position == 1) {
  328. this.position = true;
  329. }
  330. },
  331. onShareAppMessage(res) {
  332. let that = this
  333. let data = {
  334. title: that.sharedata.title,
  335. imageUrl: that.sharedata.imageUrl,
  336. path: that.sharedata.path
  337. };
  338. return data;
  339. },
  340. onShareTimeline(res) {
  341. let that = this
  342. return {
  343. title: that.sharedata.title,
  344. imageUrl: that.sharedata.imageUrl,
  345. path: that.sharedata.path
  346. }
  347. },
  348. onShow: function() {
  349. this.selectindexs = true;
  350. this.selelanditem = null;
  351. this.cutlysetage = 0;
  352. if (this.orderid !== null) {
  353. //获取土地详情
  354. this.getlanddebyid(this.orderid);
  355. }
  356. },
  357. methods: {
  358. gostoredetail(farmid) { //跳转店铺详情
  359. uni.navigateTo({
  360. url: "/pagesC/pages/merchantdetails/merchantdetails?id=" + farmid
  361. })
  362. },
  363. loginback() {
  364. //登录回调
  365. },
  366. casemap() {
  367. if (this.position) {
  368. // #ifdef MP-WEIXIN || APP-PLUS
  369. uni.openLocation({
  370. latitude: Number(this.latitude), //要去的纬度-地址---请注意这里的Number,如果不加Number,就会出错
  371. longitude: Number(this.longitude), //要去的经度-地址---请注意这里的Number,如果不加Number,就会出错
  372. name: '',
  373. address: this.landdetails.address
  374. });
  375. // #endif
  376. }
  377. },
  378. opensharebox() {
  379. this.$refs.sbox.opensharebox(this.sharedata);
  380. },
  381. videoErrorCallback() {
  382. this.$api.msg('播放错误,请换一个~');
  383. },
  384. chickvedio(_selectindexs) {
  385. this.selectindexs = _selectindexs;
  386. if (!this.selectindexs) {
  387. this.$refs.yvideo.playvideo(this.landdetails.video_url);
  388. }
  389. },
  390. //获取种子列表
  391. getseedlist(type, p) {
  392. var that = this;
  393. Seedapi.getseedlist({
  394. type: type,
  395. p: p,
  396. orderid: this.orderid
  397. }).then(res => {
  398. if (res.status == 1) {
  399. // 获取服务套餐详情集合
  400. that.seeddatalist = res.data;
  401. } else {
  402. that.$api.msg(res.msg);
  403. }
  404. });
  405. },
  406. //获取土地详情
  407. getlanddebyid(landid) {
  408. let that = this;
  409. if (landid !== null && landid !== undefined) {
  410. Landapi.getlanddeilt({
  411. id: landid
  412. }).then(res => {
  413. if (res.status == 1) {
  414. that.sharedata = res.data.sharedata
  415. that.sharedata.title = res.data.soil_name;
  416. that.sharedata.path = '/pagesB/pages/chooseland/chooseland?pid=' + this.$getuid() +
  417. '&id=' + landid;
  418. that.landdetails = res.data;
  419. that.farm_info=res.data.farm;
  420. console.log(that.farm_info,'that.farm_info')
  421. that.soil_set = res.data.soil_set;
  422. console.log(that.soil_set,'')
  423. that.tarpty_id = res.data.party;
  424. that.landdetails.soil_detail = res.data.soil_detail.replace(/\<img src="/gi,
  425. `<img style='width:100%;display:block' src="${that.settingFile.root_rich_img}`);
  426. //返回为对象,无需转换
  427. let pannms = res.data.period;
  428. that.hirepackagelist = [];
  429. for (var i; i < pannms.length; i++) {
  430. console.log(i)
  431. }
  432. pannms.forEach((item, index) => {
  433. let paritem = {
  434. label: item.periodname,
  435. value: parseInt(item.days),
  436. extra: index
  437. };
  438. that.hirepackagelist.push(paritem);
  439. });
  440. that.imglist.push(that.landdetails.soil_cover_pic);
  441. that.hirelandlist = JSON.parse(that.landdetails.subdivision);
  442. let updaordermess = this.$store.state.updaordermess;
  443. updaordermess.soil_pic = that.landdetails.soil_cover_pic;
  444. let locationdata = res.data.location
  445. that.latitude = locationdata[1]; //要去的纬度-地址
  446. that.longitude = locationdata[0]; //要去的经度-地址
  447. that.$store.commit('setupdaordermess', updaordermess);
  448. this.retuoklen(this.hirelandlist)
  449. } else {
  450. that.$api.msg(res.msg);
  451. }
  452. })
  453. }
  454. },
  455. // 获取土地租赁协议列表
  456. gethostingpackage(title) {
  457. var that = this;
  458. Landapi.getsecemist({
  459. soil_id: this.orderid
  460. }).then(res => {
  461. if (res.status == 1) {
  462. // 给套餐集合赋值
  463. that.hostingpackage = res.data.data;
  464. } else {
  465. that.$api.msg(res.msg);
  466. }
  467. });
  468. },
  469. //切换当前选中土地
  470. swtedland(item, index) {
  471. let that = this;
  472. if (item !== null && item !== undefined) {
  473. if (item.status === '0' || item.status === 0) {
  474. if (that.selelanditem === index) {
  475. that.selelanditem = null;
  476. } else {
  477. if (that.hirelandlist[index].title === item.title) {
  478. that.selelanditem = index;
  479. }
  480. }
  481. }
  482. }
  483. },
  484. // 切换select值
  485. choonsesekey(e) {
  486. let that = this;
  487. that.hireselect = false;
  488. that.hirecycle = that.hirepackagelist[e.indexs[0]];
  489. that.cycle = that.hirecycle.label
  490. },
  491. cancel() {
  492. let that = this;
  493. that.hireselect = false;
  494. },
  495. //跳转了解特权页面
  496. navtovip() {
  497. uni.navigateTo({
  498. url: '/pagesB/pages/chooseland/landservice/landservice?soil_id=' + this.orderid + '&type=0'
  499. });
  500. },
  501. // 查看更多种子
  502. seeseed() {
  503. uni.navigateTo({
  504. url: '/pagesB/pages/chooseland/seed/moreseed?orderid=' + this.orderid
  505. });
  506. },
  507. sumitpost() {
  508. var that = this;
  509. if (that.selelanditem !== null) {
  510. if (!that.hirecycle) {
  511. that.$api.msg('请选择租赁周期');
  512. return
  513. }
  514. var selelanditemtext = that.hirelandlist[that.selelanditem]
  515. let ordermess = {
  516. //土地id
  517. landid: that.landdetails.id,
  518. //地块ID
  519. selelanditem: selelanditemtext.id,
  520. //选中土地
  521. selelanditemtext: selelanditemtext,
  522. //当前选中托管套餐
  523. cutlysetagetext: that.hostingpackage[that.cutlysetage],
  524. //托管周期
  525. hirecycle: that.hirecycle,
  526. //托管周期集合
  527. hirepackagelist: that.hirepackagelist,
  528. //土地名称
  529. soil_name: that.landdetails.soil_name,
  530. seednumber: 0,
  531. vipaddress: that.landdetails.vipaddress,
  532. level_radio: that.landdetails.level_radio,
  533. };
  534. that.$store.commit('setlandleaseorder', ordermess);
  535. uni.navigateTo({
  536. url: '/pagesB/pages/creatorder/creatorder?id=' + that.tarpty_id + '&soil_id=' + this
  537. .orderid
  538. });
  539. } else {
  540. that.$api.msg('请选择土地');
  541. }
  542. },
  543. //提交订单
  544. sumitorder() {
  545. let that = this;
  546. // #ifdef MP-WEIXIN
  547. if (that.$store.state.islogin()) {
  548. that.sumitpost()
  549. } else {
  550. that.$refs.nologin.open();
  551. }
  552. // #endif
  553. // #ifdef H5 || APP-PLUS
  554. that.sumitpost()
  555. // #endif
  556. },
  557. //跳转首页
  558. gotoindex() {
  559. uni.switchTab({
  560. url: '/pages/land/land'
  561. });
  562. },
  563. //返回剩余土地数
  564. retuoklen(landlist) {
  565. let surplusnm = 0;
  566. if (landlist !== null && landlist !== undefined) {
  567. landlist.forEach(item => {
  568. if (item.status === 0 || item.status === '0') {
  569. surplusnm = surplusnm + 1;
  570. }
  571. });
  572. }
  573. this.hirelandlistsenum = surplusnm;
  574. },
  575. //土地分块总数
  576. retunnsn(itmenum) {
  577. if (itmenum === undefined) {
  578. return 0;
  579. } else {
  580. return itmenum;
  581. }
  582. }
  583. }
  584. };
  585. </script>
  586. <style lang="scss">
  587. .ditu {
  588. width: 100%;
  589. height: calc(100vh);
  590. }
  591. #vievieod {
  592. height: 600rpx;
  593. width: 100%;
  594. top: -16rpx
  595. }
  596. .pading_bss {
  597. height: 200rpx;
  598. width: 100%;
  599. }
  600. .container {
  601. overflow-x: hidden;
  602. }
  603. .carousel-section {
  604. position: relative;
  605. width: 100%;
  606. height: 450rpx;
  607. background-color: #000;
  608. .carousel {
  609. width: 100%;
  610. height: 450rpx;
  611. swiper {
  612. width: 100%;
  613. height: 100%;
  614. .swiper-item {
  615. width: 100%;
  616. height: 100%;
  617. image {
  618. width: 100%;
  619. height: 100%;
  620. }
  621. }
  622. }
  623. }
  624. .farm_btn {
  625. position: absolute;
  626. display: flex;
  627. .baner_btn {
  628. width: 150rpx;
  629. height: 60rpx;
  630. margin: 0 20rpx;
  631. color: #ffffff;
  632. text-align: center;
  633. line-height: 54rpx;
  634. border-radius: 30rpx;
  635. border-width: 1rpx;
  636. border-style: solid;
  637. }
  638. .baner_btn.act {}
  639. }
  640. }
  641. .carousel-section.bg {
  642. background-color: #000000;
  643. .video_blck {
  644. width: 100%;
  645. height: 419rpx;
  646. }
  647. }
  648. button::after {
  649. border: none;
  650. }
  651. .inationy_aea {}
  652. .detailed_information {
  653. width: calc(100% - 40rpx);
  654. margin: 15rpx 20rpx 0 20rpx;
  655. }
  656. .price_selection {
  657. display: flex;
  658. justify-content: space-between;
  659. align-items: center;
  660. }
  661. .commodity_price {
  662. font-size: 28rpx;
  663. color: #999;
  664. display: flex;
  665. }
  666. .commodity_price_red {
  667. font-weight: 800;
  668. margin: 0 10rpx 0 0;
  669. font-size: 32rpx;
  670. }
  671. .wx_share {
  672. font-size: 28rpx;
  673. color: #999;
  674. display: flex;
  675. justify-content: flex-start;
  676. background: transparent;
  677. align-items: center;
  678. }
  679. .case_titleblock {
  680. display: flex;
  681. justify-content: flex-start;
  682. align-items: center;
  683. }
  684. .case_title {
  685. font-size: 30rpx;
  686. font-weight: 550;
  687. color: #000;
  688. padding: 20rpx 5rpx;
  689. }
  690. .case_title_sm {
  691. font-size: 28rpx;
  692. color: #999;
  693. margin: 20rpx 0 10rpx 0;
  694. }
  695. button:after {
  696. border: none;
  697. }
  698. .rental_record {
  699. display: flex;
  700. justify-content: space-between;
  701. align-items: center;
  702. margin: 15rpx 0;
  703. }
  704. .rental_address {
  705. font-size: 30rpx;
  706. color: #000;
  707. font-weight: 550;
  708. }
  709. .regional_records {
  710. font-size: 26rpx;
  711. color: #999;
  712. }
  713. .parcel_status {
  714. display: flex;
  715. justify-content: space-around;
  716. margin: 35rpx 0;
  717. }
  718. .parcel_statusitem {
  719. display: flex;
  720. justify-content: flex-start;
  721. align-items: center;
  722. font-size: 28rpx;
  723. color: #000;
  724. }
  725. .color_block_representation {
  726. width: 35rpx;
  727. height: 35rpx;
  728. margin-right: 5rpx;
  729. border-radius: 5rpx;
  730. }
  731. .land_list {}
  732. .scroll-view_H {
  733. width: 100%;
  734. white-space: nowrap;
  735. position: relative;
  736. height: 350rpx;
  737. }
  738. .land_item {
  739. white-space: break-spaces;
  740. margin: 0 10rpx;
  741. text-align: center;
  742. display: inline-block;
  743. }
  744. .land_item_text {
  745. height: 235rpx;
  746. font-size: 30rpx;
  747. color: #fff;
  748. width: 68rpx;
  749. padding: 10rpx 7rpx;
  750. background-image: url('../../../static/chooseland/land.png');
  751. text-align: center;
  752. border-radius: 10rpx;
  753. background-size: cover;
  754. align-items: center;
  755. justify-content: center;
  756. display: flex;
  757. writing-mode: vertical-lr;
  758. text-orientation: upright;
  759. letter-spacing: 6px;
  760. }
  761. .land_item_text1 {
  762. height: 235rpx;
  763. font-size: 30rpx;
  764. color: #fff;
  765. width: 68rpx;
  766. padding: 10rpx 7rpx;
  767. background-image: url('../../../static/chooseland/land.png');
  768. text-align: center;
  769. border-radius: 10rpx;
  770. background-size: cover;
  771. flex-wrap: nowrap;
  772. flex-direction: column;
  773. align-items: center;
  774. justify-content: center;
  775. display: flex;
  776. }
  777. .land_item_title1 {
  778. width: 68rpx;
  779. align-items: center;
  780. justify-content: center;
  781. display: flex;
  782. padding-left: 2rpx;
  783. text-align: center;
  784. }
  785. .land_item_title2 {
  786. width: 68rpx;
  787. align-items: center;
  788. justify-content: center;
  789. display: flex;
  790. padding-left: 10rpx;
  791. text-align: center;
  792. }
  793. .land_item_title3 {
  794. width: 68rpx;
  795. writing-mode: vertical-lr;
  796. text-orientation: upright;
  797. letter-spacing: 4px;
  798. align-items: center;
  799. justify-content: center;
  800. display: flex;
  801. text-align: center;
  802. }
  803. .curnmk {
  804. width: 28rpx;
  805. height: 28rpx;
  806. border: 1rpx solid #666;
  807. opacity: 0.5;
  808. margin: 15rpx auto 0 auto;
  809. border-radius: 50%;
  810. }
  811. .custom_pair {
  812. margin-top: 15rpx;
  813. background: #FFF;
  814. border-radius: 50%;
  815. border-style: solid;
  816. border-width: 1rpx;
  817. }
  818. .custom_pair1 {
  819. margin-top: 15rpx;
  820. background: #FFF;
  821. border-radius: 50%;
  822. border-style: solid;
  823. border-width: 1rpx;
  824. }
  825. .custom_pair2 {
  826. margin-top: 15rpx;
  827. background: #f3f3f3;
  828. border: 1rpx solid #f3f3f3;
  829. border-radius: 50%;
  830. }
  831. .hirecycle {
  832. font-size: 28rpx;
  833. color: #333;
  834. }
  835. .parcel_selist {
  836. width: 100%;
  837. }
  838. .borbak {
  839. height: 10rpx;
  840. width: calc(100% + 40rpx);
  841. margin: 0 -20rpx;
  842. background-color: #fafafa;
  843. }
  844. .scroll-view_t {
  845. white-space: nowrap;
  846. width: 100%;
  847. margin: 25rpx 0;
  848. }
  849. .scroll_view_item {
  850. width: 285rpx;
  851. padding: 25rpx 0 0 0;
  852. border-radius: 15rpx;
  853. display: inline-block;
  854. margin: 0 15rpx;
  855. vertical-align: top;
  856. // border: 3rpx solid transparent;
  857. }
  858. .scroll_vem_sle {
  859. border-width: 5rpx;
  860. border-style: solid;
  861. }
  862. .scroll_vem_sle1 {
  863. border: 3rpx solid #ececec;
  864. border-width: 3rpx;
  865. border-style: solid;
  866. background: #ececec;
  867. }
  868. .title_main {
  869. font-size: 32rpx;
  870. color: #000;
  871. }
  872. .postage {
  873. font-size: 28rpx;
  874. margin: 20rpx 0;
  875. }
  876. .brief_introduction {
  877. color: #999;
  878. font-size: 26rpx;
  879. height: 120rpx;
  880. line-height: 30rpx;
  881. margin: 0 15rpx;
  882. width: calc(100% - 30rpx);
  883. text-align: center;
  884. white-space: break-spaces;
  885. }
  886. .plug_center_100 {
  887. width: 100%;
  888. text-align: center;
  889. }
  890. .price_bold {
  891. font-size: 34rpx;
  892. font-weight: 800;
  893. }
  894. .slege_navion {
  895. display: flex;
  896. justify-content: space-between;
  897. align-items: center;
  898. background-color: #ffffff;
  899. position: fixed;
  900. width: 90%;
  901. margin: 0 5%;
  902. bottom: constant(safe-area-inset-bottom);
  903. bottom: env(safe-area-inset-bottom);
  904. padding: 15rpx 0;
  905. background: rgba(255, 255, 255, 0.9);
  906. box-shadow: 2px 4px 12px rgba(0, 0, 0, 0.08);
  907. border-radius: 16rpx;
  908. align-items: flex-end;
  909. }
  910. .operation_buttonlist {
  911. display: flex;
  912. justify-content: flex-start;
  913. }
  914. .disn_flx {
  915. display: flex;
  916. justify-content: flex-start;
  917. align-items: center;
  918. }
  919. .seed_list {
  920. display: flex;
  921. justify-content: space-between;
  922. flex-wrap: wrap;
  923. }
  924. .seed_item {
  925. width: 45%;
  926. display: flex;
  927. justify-content: flex-start;
  928. align-items: center;
  929. margin: 15rpx;
  930. }
  931. .seed_item_thumbnail {
  932. width: 100rpx;
  933. height: 100rpx;
  934. border-radius: 10rpx;
  935. }
  936. .seed_item_delit {
  937. margin-left: 15rpx;
  938. }
  939. .seed_delit_title {
  940. font-size: 28rpx;
  941. color: #000000;
  942. }
  943. .seed_delit_yield {
  944. font-size: 24rpx;
  945. line-height: 35rpx;
  946. color: #999;
  947. margin-top: 10rpx;
  948. }
  949. .land_details {
  950. margin: 0;
  951. padding-bottom: 20rpx;
  952. }
  953. .land_content {
  954. width: 100%;
  955. }
  956. .load_window {
  957. position: fixed;
  958. top: 50%;
  959. left: 50%;
  960. width: 100%;
  961. transform: translate(-50%, -50%);
  962. }
  963. .bottom_fill {
  964. height: 150rpx;
  965. width: 100%;
  966. background: transparent;
  967. }
  968. /* 底部操作菜单 */
  969. .page-bottom {
  970. position: fixed;
  971. left: 0;
  972. bottom: 0;
  973. z-index: 95;
  974. display: flex;
  975. justify-content: space-around;
  976. // justify-content: center;
  977. align-items: center;
  978. width: 100%;
  979. height: 100upx;
  980. background: rgba(255, 255, 255, 0.9);
  981. box-shadow: 0 0 20upx 0 rgba(0, 0, 0, 0.5);
  982. .page-bottom_1 {
  983. display: flex;
  984. justify-content: space-evenly;
  985. // margin-left: 2vh;
  986. .p-b-btn {
  987. display: flex;
  988. flex-direction: column;
  989. align-items: center;
  990. justify-content: center;
  991. font-size: $font-sm;
  992. width: 96upx;
  993. height: 80upx;
  994. .yticon {
  995. font-size: 40upx;
  996. line-height: 48upx;
  997. color: $font-color-light;
  998. }
  999. &.active,
  1000. &.active .yticon {
  1001. color: $tab-color-1;
  1002. }
  1003. .icon-fenxiang2 {
  1004. font-size: 42upx;
  1005. transform: translateY(-2upx);
  1006. }
  1007. .icon-shoucang {
  1008. font-size: 46upx;
  1009. }
  1010. }
  1011. }
  1012. .action-btn-group {
  1013. display: flex;
  1014. height: 76upx;
  1015. border-radius: 100px;
  1016. overflow: hidden;
  1017. box-shadow: 0 20upx 40upx -16upx #fa436a;
  1018. box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
  1019. background: linear-gradient(to right, #ffac30);
  1020. position: relative;
  1021. // margin-right: 2vh;
  1022. .action-btn {
  1023. display: flex;
  1024. align-items: center;
  1025. justify-content: center;
  1026. width: 350rpx;
  1027. height: 100%;
  1028. font-size: $font-base;
  1029. padding: 0;
  1030. border-radius: 0;
  1031. }
  1032. }
  1033. }
  1034. .text_area {
  1035. .shop_name {
  1036. display: flex;
  1037. justify-content: space-between;
  1038. align-items: center;
  1039. .shop_thumbnail {
  1040. width: 90rpx;
  1041. height: 90rpx;
  1042. border-radius: 50%;
  1043. }
  1044. .right_shop_mess {
  1045. width: calc(100% - 90rpx);
  1046. padding-left: 15rpx;
  1047. .shop_line {
  1048. display: flex;
  1049. justify-content: space-between;
  1050. align-items: center;
  1051. .shop_line_p1 {
  1052. color: #1f1f1f;
  1053. font-size: 32rpx;
  1054. padding-left: 3rpx;
  1055. font-weight: 300;
  1056. }
  1057. .shop_line_p2 {
  1058. width: 100%;
  1059. display: flex;
  1060. align-items: center;
  1061. .address {
  1062. color: #333;
  1063. font-size: 26rpx;
  1064. overflow: hidden;
  1065. text-overflow: ellipsis;
  1066. white-space: nowrap;
  1067. }
  1068. }
  1069. }
  1070. .shop_line_fl {
  1071. display: flex;
  1072. justify-content: flex-start;
  1073. align-items: center;
  1074. margin: 5rpx 0;
  1075. }
  1076. .right_shop_mess_p2 {
  1077. border: 1rpx solid #cccccc;
  1078. color: #666;
  1079. font-size: 24rpx;
  1080. padding: 12rpx 20rpx;
  1081. border-radius: 40rpx;
  1082. }
  1083. }
  1084. }
  1085. }
  1086. .shop_one {
  1087. display: flex;
  1088. justify-content: space-evenly;
  1089. padding: 30rpx 0rpx;
  1090. .shop_one_1 {
  1091. display: flex;
  1092. flex-direction: column;
  1093. align-items: center;
  1094. .view1 {
  1095. font-size: 28rpx;
  1096. margin-bottom: 10rpx;
  1097. }
  1098. .view2 {
  1099. font-size: 24rpx;
  1100. color: #999999;
  1101. }
  1102. }
  1103. }
  1104. .farm{
  1105. // background-color: #ffffff;
  1106. margin-top: 20rpx;
  1107. padding: 20rpx;
  1108. }
  1109. </style>