LvShanXiang.vue 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533
  1. <template>
  2. <div class="LvShanXiang" @click="qita">
  3. <hy-header :navTag="0"></hy-header>
  4. <div class="warp">
  5. <div class="left">
  6. <div class="left1">
  7. <E-Left1 style="height: 100%"></E-Left1>
  8. </div>
  9. <div class="left2">
  10. <E-Left2 style="height: 100%"></E-Left2>
  11. </div>
  12. <div class="left3">
  13. <E-Left3 style="height: 100%"></E-Left3>
  14. </div>
  15. </div>
  16. <div class="middle">
  17. <section class="section">
  18. <div class="warp">
  19. <div class="item">
  20. <div>
  21. <span class="title">当月存栏量:</span>
  22. <span class="num">10534</span>
  23. <span class="unit">只</span>
  24. </div>
  25. </div>
  26. <div class="item">
  27. <div>
  28. <span class="title">当月出栏量:</span>
  29. <span class="num">1534</span>
  30. <span class="unit">只</span>
  31. </div>
  32. </div>
  33. <div class="item">
  34. <div>
  35. <span class="title">月种羊出栏:</span>
  36. <span class="num">2380</span>
  37. <span class="unit">只</span>
  38. </div>
  39. </div>
  40. </div>
  41. <div class="warp">
  42. <div class="item">
  43. <div>
  44. <span class="title">当前肉羊价:</span>
  45. <span class="num">33</span>
  46. <span class="unit">元/kg</span>
  47. </div>
  48. </div>
  49. <div class="item">
  50. <div>
  51. <span class="title">当前种羊价:</span>
  52. <span class="num">53</span>
  53. <span class="unit">元/kg</span>
  54. </div>
  55. </div>
  56. <div class="item">
  57. <div>
  58. <span class="title">当前羊粪价:</span>
  59. <span class="num">0.8</span>
  60. <span class="unit">元/kg</span>
  61. </div>
  62. </div>
  63. </div>
  64. </section>
  65. <footer class="footer" v-if="isShowMain">
  66. <main class="inputWrap">
  67. <input
  68. type="text"
  69. class="input"
  70. v-model="searchStr"
  71. placeholder="族谱溯源"
  72. />
  73. <i class="icon_search" @click.stop="search"></i>
  74. </main>
  75. <img src="../../assets/u922.png" />
  76. <div class="point p1" @click.stop="clickPoint('dr')">
  77. <i class="warp">
  78. <i class="middle">
  79. <i class="center"></i>
  80. </i>
  81. </i>
  82. </div>
  83. <div class="point p2" @click.stop="clickPoint('ys')">
  84. <i class="warp">
  85. <i class="middle">
  86. <i class="center"></i>
  87. </i>
  88. </i>
  89. </div>
  90. <!-- <div class="point p3">
  91. <i class="warp">
  92. <i class="middle">
  93. <i class="center"></i>
  94. </i>
  95. </i>
  96. </div> -->
  97. </footer>
  98. <footer
  99. class="footer_2"
  100. v-show="!isShowMain"
  101. >
  102. <!-- @click.stop="isShowMain = false" -->
  103. <h1>族谱溯源</h1>
  104. <article class="tree">
  105. <div class="self">021543</div>
  106. <div class="f">父:025464</div>
  107. <div class="m">母:01348</div>
  108. <div class="ff">父父:045645</div>
  109. <div class="fm">父母:046595</div>
  110. <div class="mf">母父:084561</div>
  111. <div class="mm">母母:046585</div>
  112. </article>
  113. </footer>
  114. </div>
  115. <div class="right">
  116. <div class="right1">
  117. <E-Right1 style="height: 100%"></E-Right1>
  118. </div>
  119. <div class="right2">
  120. <E-Right2 style="height: 100%"></E-Right2>
  121. </div>
  122. <div class="right3">
  123. <E-Right3 style="height: 100%"></E-Right3>
  124. </div>
  125. </div>
  126. </div>
  127. <article class="dialog" v-if="showDialog">
  128. <h3>{{ dialogData.name }}</h3>
  129. <div class="container">
  130. <p v-for="item in dialogData.content" :key="item.name">{{ item }}</p>
  131. </div>
  132. </article>
  133. </div>
  134. </template>
  135. <script>
  136. import HyHeader from "@/components/HyHeader";
  137. import ELeft1 from "./charts/ELeft1";
  138. import ELeft2 from "./charts/ELeft2";
  139. import ELeft3 from "./charts/ELeft3";
  140. import ERight1 from "./charts/ERight1";
  141. import ERight2 from "./charts/ERight2";
  142. import ERight3 from "./charts/ERight3";
  143. export default {
  144. name: "LvShanXiang",
  145. data() {
  146. return {
  147. searchStr: "",
  148. isShowMain: true,
  149. showDialog: false,
  150. fieldInfo: {
  151. dr: {
  152. name: "长兴德睿生态农业开发有限公司",
  153. content: [
  154. "占地面积:200余亩",
  155. "羊舍数量:18幢",
  156. "建筑面积:13000㎡",
  157. "常年存栏:8500多只",
  158. "每年繁殖羔羊:10000多只",
  159. ],
  160. },
  161. ys: {
  162. name: "长兴永盛牧业有限公司",
  163. content: [
  164. "占地面积:200余亩",
  165. "羊舍数量:24幢",
  166. "建筑面积:9500㎡",
  167. "常年存栏:8000只",
  168. "预计年供应:30000只",
  169. ],
  170. },
  171. },
  172. dialogData: {name:'' , content: []}
  173. };
  174. },
  175. components: {
  176. HyHeader,
  177. ELeft1,
  178. ELeft2,
  179. ELeft3,
  180. ERight1,
  181. ERight2,
  182. ERight3,
  183. },
  184. created() {
  185. document.title = "吕山牧场";
  186. },
  187. methods: {
  188. search() {
  189. console.log(this.searchStr);
  190. console.log("search");
  191. this.isShowMain = false;
  192. },
  193. clickPoint(v) {
  194. this.showDialog = !this.showDialog;
  195. this.dialogData = this.fieldInfo[v]
  196. },
  197. qita() {
  198. this.isShowMain = true;
  199. this.showDialog = false;
  200. },
  201. },
  202. };
  203. </script>
  204. <style lang="scss" scope>
  205. .LvShanXiang {
  206. background-image: url(../../assets/bg.png);
  207. background-size: 100% 100%;
  208. background-repeat: no-repeat;
  209. box-sizing: border-box;
  210. // border: 1px solid #f52424;
  211. height: 100%;
  212. display: flex;
  213. flex-direction: column;
  214. > .warp {
  215. // border: 1px solid #ffee00;
  216. height: 100%;
  217. display: flex;
  218. .left {
  219. // border: 1px solid #2b65e0;
  220. width: 20%;
  221. display: flex;
  222. flex-direction: column;
  223. > .left1 {
  224. // border: 1px solid #8bdd77;
  225. height: 33.33%;
  226. }
  227. > .left2 {
  228. // border: 1px solid #ddad77;
  229. height: 33.33%;
  230. }
  231. > .left3 {
  232. // border: 1px solid #8bdd77;
  233. height: 33.33%;
  234. }
  235. }
  236. > .middle {
  237. width: 60%;
  238. min-width: 1600px;
  239. display: flex;
  240. flex-direction: column;
  241. align-items: center;
  242. > .section {
  243. width: 92%;
  244. .warp {
  245. display: flex;
  246. justify-content: space-around;
  247. .item {
  248. border-radius: 20px;
  249. height: 90px;
  250. min-width: 450px;
  251. border: 4px solid #53bafd;
  252. box-sizing: border-box;
  253. flex: 1 0 20%;
  254. margin: 20px 3%;
  255. padding: 10px 10px 10px 10px;
  256. font-size: 35px;
  257. font-weight: 600;
  258. display: flex;
  259. justify-content: center;
  260. align-items: center;
  261. .title {
  262. color: #fff;
  263. }
  264. .num {
  265. color: #53bafd;
  266. font-size: 1.2em;
  267. }
  268. .unit {
  269. color: #53bafd;
  270. font-size: 20px;
  271. margin-left: 15px;
  272. }
  273. }
  274. }
  275. }
  276. > .footer {
  277. // border: 1px solid #8877dd;
  278. width: 92%;
  279. flex-grow: 1;
  280. margin: 80px 0;
  281. display: flex;
  282. justify-content: center;
  283. align-items: center;
  284. position: relative;
  285. transition: all 1s ease;
  286. > .inputWrap {
  287. position: absolute;
  288. left: 0;
  289. top: 0;
  290. width: 500px;
  291. height: 80px;
  292. display: flex;
  293. align-items: center;
  294. font-size: 60px;
  295. color: #fff;
  296. border: 2px solid #797979;
  297. border-radius: 10px;
  298. background-color: #0e93b2;
  299. > .input {
  300. width: 200px;
  301. flex-grow: 1;
  302. font-size: 60px;
  303. color: #fff;
  304. padding-left: 20px;
  305. background: none;
  306. // outline: none;
  307. border: none;
  308. &:focus {
  309. // border: 4px solid #797979;
  310. background: none;
  311. outline: none;
  312. }
  313. }
  314. > .icon_search {
  315. position: absolute;
  316. right: 10px;
  317. width: 60px;
  318. height: 60px;
  319. background: url(../../assets/search.png) no-repeat;
  320. background-size: contain;
  321. }
  322. }
  323. > img {
  324. height: 80%;
  325. width: 70%;
  326. -webkit-user-select: none;
  327. -moz-user-select: none;
  328. -ms-user-select: none;
  329. user-select: none;
  330. }
  331. .point {
  332. position: absolute;
  333. > .warp {
  334. flex-basis: 1;
  335. display: flex;
  336. justify-content: center;
  337. align-items: center;
  338. border: 6px solid #2793d1;
  339. border-radius: 50%;
  340. box-sizing: border-box;
  341. animation: animation_warp 2s 0.2s infinite alternate;
  342. > .middle {
  343. display: flex;
  344. justify-content: center;
  345. align-items: center;
  346. position: absolute;
  347. box-sizing: border-box;
  348. border: 6px solid #2793d1;
  349. border-radius: 50%;
  350. animation: animation_middle 2s 0.2s infinite
  351. alternate;
  352. .center {
  353. position: absolute;
  354. display: inline-block;
  355. width: 20px;
  356. height: 20px;
  357. box-sizing: border-box;
  358. background-color: #2793d1;
  359. border-radius: 50%;
  360. animation: animation_center 2s 0.2s infinite;
  361. }
  362. }
  363. }
  364. @keyframes animation_warp {
  365. 0% {
  366. width: 140px;
  367. height: 140px;
  368. }
  369. 100% {
  370. width: 50px;
  371. height: 50px;
  372. transform: translate(45px, 45px);
  373. border: 6px solid transparent;
  374. }
  375. }
  376. @keyframes animation_middle {
  377. 0% {
  378. width: 50px;
  379. height: 50px;
  380. border: 6px solid transparent;
  381. }
  382. 100% {
  383. width: 140px;
  384. height: 140px;
  385. }
  386. }
  387. @keyframes animation_center {
  388. 0% {
  389. background-color: transparent;
  390. }
  391. 100% {
  392. background-color: #2793d1;
  393. }
  394. }
  395. }
  396. // > .p1 {
  397. // left: 50%;
  398. // top: 25%;
  399. // }
  400. // > .p2 {
  401. // left: 60%;
  402. // top: 45%;
  403. // }
  404. // > .p3 {
  405. // left: 35%;
  406. // top: 60%;
  407. // }
  408. > .p1 {
  409. left: 33%;
  410. top: 57%;
  411. }
  412. > .p2 {
  413. left: 55%;
  414. top: 45%;
  415. }
  416. }
  417. > .footer_2 {
  418. // border: 1px solid #8bdd77;
  419. width: 88%;
  420. margin-top: 30px;
  421. flex-grow: 1;
  422. box-sizing: border-box;
  423. // transition: all 3s ease;
  424. display: flex;
  425. flex-direction: column;
  426. > h1 {
  427. color: #fff;
  428. font-size: 60px;
  429. }
  430. > .tree {
  431. // border: 1px solid #9277dd;
  432. flex-grow: 1;
  433. width: 95%;
  434. margin: 3% auto;
  435. background: url(../../assets/tree.png) no-repeat center;
  436. background-size: 100% 100%;
  437. position: relative;
  438. font-size: 60px;
  439. font-weight: 600;
  440. color: #fff;
  441. > div {
  442. // border: 1px solid #dd7796;
  443. position: absolute;
  444. width: 22%;
  445. text-align: center;
  446. overflow: hidden;
  447. text-overflow: ellipsis;
  448. white-space: nowrap;
  449. }
  450. > .self {
  451. left: 5%;
  452. top: 50%;
  453. }
  454. > .f {
  455. left: 34.5%;
  456. top: 36.4%;
  457. }
  458. > .m {
  459. left: 34.5%;
  460. top: 60.9%;
  461. }
  462. > .ff {
  463. left: 71.4%;
  464. top: 9%;
  465. }
  466. > .fm {
  467. left: 71.4%;
  468. top: 36.4%;
  469. }
  470. > .mf {
  471. left: 71.4%;
  472. top: 60.9%;
  473. }
  474. > .mm {
  475. left: 71.4%;
  476. top: 85.6%;
  477. }
  478. }
  479. }
  480. }
  481. .right {
  482. // border: 1px solid #2b65e0;
  483. width: 20%;
  484. > .right1 {
  485. // border: 1px solid #8bdd77;
  486. height: 33.33%;
  487. }
  488. > .right2 {
  489. // border: 1px solid #ddad77;
  490. height: 33.33%;
  491. }
  492. > .right3 {
  493. // border: 1px solid #8bdd77;
  494. height: 33.33%;
  495. }
  496. }
  497. }
  498. }
  499. .dialog {
  500. // border: 1px solid #8bdd77;
  501. min-width: 500px;
  502. min-height: 300px;
  503. position: fixed;
  504. left: 50%;
  505. top: 30%;
  506. transform: translate(-50%, 0);
  507. background-color: #203c7a;
  508. background-image: linear-gradient(30deg, #0c1c46, #27428b);
  509. // background-image: radial-gradient(#203c7a 60%, #277AEB);
  510. box-shadow: 0px 0px 50px #454991;
  511. border-radius: 25px;
  512. overflow: hidden;
  513. box-sizing: border-box;
  514. // padding: 30px;
  515. color: #fff;
  516. > h3 {
  517. font-size: 50px;
  518. text-align: center;
  519. background-color: #207bc4;
  520. padding: 15px 30px 15px 30px;
  521. }
  522. > .container {
  523. font-size: 40px;
  524. margin: 20px 30px;
  525. }
  526. }
  527. </style>