tdcr.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>土地出让</title>
  7. <link rel="stylesheet" href="css/mapcon.css">
  8. <link rel="stylesheet" href="swiper/swiper-bundle.css">
  9. <!-- 引入 Vue -->
  10. <script src="https://unpkg.com/vue@2.6.14/dist/vue.min.js"></script>
  11. <!-- 引入样式 -->
  12. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  13. <!-- 引入组件库 -->
  14. <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  15. <script src="js/jquery-3.5.1.min.js"></script>
  16. <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=7XivTux4H2e1ifKLjvEhxfuayDYxAluq">
  17. </script>
  18. <script src="js/urljson.js"></script>
  19. <style>
  20. #tdcr>.top {
  21. display: flex;
  22. justify-content: space-between;
  23. align-items: center;
  24. border-bottom: 1px solid #B7C7DC;
  25. background: #FFFFFF;
  26. }
  27. .contentleft {
  28. width: 50%;
  29. min-width: 841px;
  30. background-color: #EDF5FF;
  31. font-size: 20px;
  32. color: #333;
  33. padding: 15px 30px;
  34. box-sizing: border-box;
  35. font-family: Microsoft YaHei;
  36. }
  37. .contentleft>.list .listitm{
  38. width: 32.5%;
  39. }
  40. .swiperimg {
  41. display: flex;
  42. justify-content: space-between;
  43. position: relative;
  44. }
  45. .swiper {
  46. width: 20%;
  47. min-width: 170px;
  48. height: 320px;
  49. margin: auto 0;
  50. }
  51. .swiper-slide {
  52. width: 100%;
  53. text-align: center;
  54. font-size: 18px;
  55. background: #fff;
  56. display: flex;
  57. justify-content: center;
  58. align-items: center;
  59. }
  60. .swiper-slide img {
  61. width: 100%;
  62. height: 104px;
  63. cursor: pointer;
  64. }
  65. .swiper-button-next,
  66. .swiper-button-prev {
  67. /* 移除所有样式 */
  68. all: unset;
  69. position: absolute;
  70. z-index: 20;
  71. color: #666;
  72. transform: translateY(-50%) rotate(270deg);
  73. width: 27px;
  74. height: 170px;
  75. background: #FFFFFF;
  76. right: 71px;
  77. display: flex;
  78. align-items: center;
  79. background-size: 100% 100%;
  80. background-position: center;
  81. display: flex;
  82. align-items: center;
  83. justify-content: center;
  84. opacity: 1;
  85. padding-top: 5px;
  86. box-sizing: border-box;
  87. }
  88. .swiper-button-next {
  89. top: 10px;
  90. }
  91. .swiper-button-next img {
  92. transform: translateY(-50%) rotate(270deg);
  93. }
  94. .swiper-button-prev {
  95. top: 382px;
  96. }
  97. .swiper-button-prev img {
  98. transform: translateY(-50%) rotate(270deg);
  99. }
  100. .swiper-button-prev:after,
  101. .swiper-rtl .swiper-button-next:after {
  102. content: '';
  103. }
  104. .swiper-button-next:after,
  105. .swiper-rtl .swiper-button-prev:after {
  106. content: '';
  107. }
  108. .swiper-button-prev.swiper-button-disabled,
  109. .swiper-button-next.swiper-button-disabled {
  110. display: flex;
  111. align-items: center;
  112. justify-content: center;
  113. /* opacity: 1; */
  114. padding-top: 5px;
  115. box-sizing: border-box;
  116. }
  117. @media screen and (min-width:1860px) and (max-width:1920px) {
  118. .swiper-button-next,
  119. .swiper-button-prev {
  120. height: 177px;
  121. right: 74px;
  122. }
  123. }
  124. @media screen and (min-width:1600px) and (max-width:1900px) {
  125. .swiper-button-next,
  126. .swiper-button-prev {
  127. height: 170px;
  128. right: 71px;
  129. }
  130. }
  131. @media screen and (max-width:1600px) {
  132. .swiper-button-next,
  133. .swiper-button-prev {
  134. height: 170px;
  135. right: 71px;
  136. }
  137. }
  138. </style>
  139. </head>
  140. <body>
  141. <div id="tdcr">
  142. <div class="top">
  143. <div class="toplogo">
  144. <img src="images/gyylogo.png" alt="">
  145. <span>土地出让</span>
  146. </div>
  147. <div class="backbutton" @click="window.history.go(-1)">
  148. <img src="images/back1.png" alt="">
  149. <span>返回</span>
  150. </div>
  151. </div>
  152. <div style="display: flex;">
  153. <div class="contentleft">
  154. <div class="itemname" style="display: flex;flex-direction: column;">
  155. <span>{{ tdcrDetail.landName }}</span>
  156. <span style="font-size: 26px;">(业主单位:{{
  157. tdcrDetail.ownerUnit }})</span>
  158. </div>
  159. <div class="swiperimg">
  160. <img :src="imgUrl" alt="" style="width: 75%;height: 394px;">
  161. <div class="swiper-button-prev"><img src="images/toparrow.png" alt=""></div>
  162. <div class="swiper mySwiper">
  163. <div class="swiper-wrapper">
  164. <div class="swiper-slide list" v-for="(item,index) in swiperList" @click="imgDetail(item)">
  165. <img :src="item" alt="">
  166. </div>
  167. </div>
  168. </div>
  169. <div class="swiper-button-next"><img src="images/bottomarrow.png" alt=""></div>
  170. </div>
  171. <div class="list">
  172. <div class="listitm" style="background-color: #4EB2AD;">
  173. <span>占地面积</span>
  174. <span>{{ tdcrDetail.landArea?tdcrDetail.landArea:'-' }}&nbsp;亩</span>
  175. </div>
  176. <div class="listitm" style="background-color: #4BB664;">
  177. <span>主导产业</span>
  178. <span>{{ tdcrDetail.businessIndustry?tdcrDetail.businessIndustry:'-' }}</span>
  179. </div>
  180. <!-- <div class="listitm" style="background-color: #4B98F6;">
  181. <span>土地用途</span>
  182. <span>{{ tdcrDetail.landFunction }}</span>
  183. </div>
  184. <div class="listitm" style="background-color: #4BB664;">
  185. <span>招引产业</span>
  186. <span>{{ tdcrDetail.businessIndustry }}</span>
  187. </div> -->
  188. <div class="listitm" style="background-color: #DFC483;">
  189. <span>可用地情况</span>
  190. <span>{{ tdcrDetail.landState==1?"可用":"不可用" }}</span>
  191. </div>
  192. </div>
  193. <div class="text">
  194. <!-- <div style="align-items: flex-start;">
  195. <span>主导产业:</span>
  196. <div class="icon"
  197. v-for="(item,index) in (tdcrDetail.landFunction ? tdcrDetail.landFunction.split('、') : [])">
  198. {{
  199. item }}</div>
  200. </div> -->
  201. <div><span>详细地址:</span><span>{{ tdcrDetail.addr?tdcrDetail.addr:'-' }}</span></div>
  202. <div><span>联系方式:</span><span>{{ tdcrDetail.contactName?tdcrDetail.contactName:'-' }}&nbsp;&nbsp;{{ tdcrDetail.contactPhone
  203. }}</span></div>
  204. </div>
  205. <div class="buttontz"><span>我要投资</span></div>
  206. <div class="title">
  207. <img src="images/gyy-title1.png" alt="">
  208. <span>概况</span>
  209. </div>
  210. <div class="gk">
  211. {{ tdcrDetail.introduce }}
  212. </div>
  213. <div class="title">
  214. <img src="images/hyy-yscb.png" alt="">
  215. <span>要素成本</span>
  216. </div>
  217. <div class="tablecon" v-html="tdcrDetail.cost">
  218. </div>
  219. </div>
  220. <div class="contentright" id="mapcontainer"></div>
  221. </div>
  222. </div>
  223. </body>
  224. <script src="swiper/swiper-bundle.js"></script>
  225. <script>
  226. new Vue({
  227. el: '#tdcr',
  228. data: function () {
  229. return {
  230. reqPtah: '',
  231. tdcrDetail: {},
  232. imgUrl: '',
  233. swiperList: []
  234. }
  235. },
  236. mounted() {
  237. const url = new URL(window.location.href);
  238. const id = url.searchParams.get('tdid');
  239. this.getLandDetail(id);
  240. this.$nextTick(() => {
  241. var swiper = new Swiper(".mySwiper", {
  242. observer: true,
  243. observeParents: true,
  244. direction: "vertical",
  245. slidesPerView: 3,
  246. navigation: {
  247. nextEl: '.swiper-button-next',
  248. prevEl: '.swiper-button-prev',
  249. },
  250. spaceBetween: 10
  251. });
  252. })
  253. },
  254. methods: {
  255. backIndex() {
  256. window.history.go(-1)
  257. },
  258. imgDetail(imgurl) {
  259. if (imgurl == "images/tdcr0.png") {
  260. return
  261. }
  262. this.imgUrl = imgurl;
  263. },
  264. loadMap(points, namePoint, centerPoint) {
  265. let map = new BMap.Map("mapcontainer");
  266. map.enableScrollWheelZoom();// 启用滚轮缩放
  267. map.enableDragging(); // 启用拖拽功能
  268. // 设定中心点和地图级别
  269. if (!centerPoint) { map.centerAndZoom(new BMap.Point(106.64100001869987, 29.479255312672327), 17); } else {
  270. let centerarr = centerPoint.split(',');
  271. map.centerAndZoom(new BMap.Point(centerarr[0], centerarr[1]), 17);
  272. }
  273. // map.centerAndZoom(new BMap.Point(106.76976451085417, 29.59703121330567), 17);
  274. map.setMapType(BMAP_NORMAL_MAP);
  275. if (!points) return;
  276. let pointList = points.split('@');
  277. let result = [];
  278. pointList.forEach(function (point) {
  279. let arr = point.split(',');
  280. result.push(new BMap.Point(arr[0], arr[1]));
  281. });
  282. // 创建多边形
  283. let polygon = new BMap.Polygon(result, {
  284. strokeColor: "#3d9bee",
  285. strokeWeight: 4,
  286. strokeOpacity: 0.5,
  287. strokeStyle: "solid",
  288. fillColor: "#4B98F6",
  289. fillOpacity: 0.3
  290. });
  291. // 将多边形添加到地图中
  292. map.addOverlay(polygon);
  293. // 创建文本标签
  294. if (!namePoint) return;
  295. let namearr = namePoint.split(',');
  296. var opts = {
  297. position: new BMap.Point(namearr[0], namearr[1]), // 指定文本标签所在的地理位置
  298. offset: new BMap.Size(10, 10) // 设置文本偏移量
  299. };
  300. // var opts = {
  301. // position: new BMap.Point(106.76806451085417, 29.60233121330567), // 指定文本标签所在的地理位置
  302. // offset: new BMap.Size(10, 10) // 设置文本偏移量
  303. // };
  304. // 创建文本标签对象,并添加到地图
  305. var label = new BMap.Label(this.tdcrDetail.landName, opts);
  306. // 自定义文本标签样式
  307. label.setStyle({
  308. color: "#FFFFFF",
  309. fontSize: "18px",
  310. height: "auto",
  311. lineHeight: "20px",
  312. fontFamily: "微软雅黑",
  313. fontWeight: 'bold',
  314. backgroundColor: 'transparent',
  315. border: 'none',
  316. textShadow: '0 0 4px #4B97F5',
  317. textStrokeColor: "#4B97F5", // 文本描边颜色
  318. textStrokeWidth: "4px", // 文本描边宽度
  319. });
  320. map.addOverlay(label);
  321. // // 添加选择地址
  322. // if (!currPoints) return;
  323. // let pList = currPoints.split('@');
  324. // pList.forEach(function (point) {
  325. // let arr = point.split(',');
  326. // let p = new BMap.Point(arr[0], arr[1]);
  327. // let marker = new BMap.Marker(p);
  328. // map.addOverlay(marker);
  329. // });
  330. },
  331. getLandDetail(id) {
  332. let that = this;
  333. $.ajax({
  334. url: conpath + "/sellLand/" + id,
  335. type: "get",
  336. async: false,
  337. dataType: "json",
  338. success: function (d) {
  339. let data = d.data;
  340. console.log(data)
  341. if (!data) return;
  342. that.tdcrDetail = data;
  343. that.swiperList = data.imgUrl ? data.imgUrl.split(",") : [];
  344. if (!that.swiperList.length) {
  345. that.swiperList.push('images/ztcrlistno.png')
  346. }
  347. that.imgUrl = that.swiperList[0];
  348. let points = data.parkData.addr;
  349. that.loadMap(data.point, data.namePoint, data.centerPoint)
  350. // that.loadMap("106.644876,29.494949@106.635821,29.481304@106.638048,29.480675@106.645379,29.481744@106.648397,29.479921@106.65429,29.480675@106.66392,29.481367@106.663057,29.486209@106.662985,29.486901@106.666076,29.48885@106.666507,29.490233@106.665573,29.493817@106.66162,29.49564@106.661692,29.493503@106.659105,29.49344@106.658171,29.491868@106.654721,29.492874@106.65314,29.494383@106.651415,29.496143@106.649475,29.493251");
  351. }
  352. });
  353. }
  354. }
  355. })
  356. </script>
  357. </html>