index.vue 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389
  1. <template>
  2. <div class="farm-page">
  3. <custom-header name="我的主页"></custom-header>
  4. <div class="farm-list">
  5. <div class="box-wrap expert-info">
  6. <div class="expert-top">
  7. <div class="top-l">
  8. <img class="expert-icon" src="https://birdseye-img.sysuimars.com/birdseye-look-vue/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20250411150343.png" alt="">
  9. <div class="l-info">
  10. <div class="info-name">
  11. <div class="expert-name">韦帮稳</div>
  12. <span class="expert-tag">
  13. <img class="expert-img" src="@/assets/img/home/expert-icon.png" alt="">
  14. 专家
  15. </span>
  16. </div>
  17. <div class="info-bottom">
  18. <div
  19. class="fruit-tag"
  20. v-for="(ele, eleIndex) in tagList"
  21. :key="eleIndex"
  22. >
  23. {{ ele.name }}
  24. </div>
  25. </div>
  26. </div>
  27. </div>
  28. <!-- <div class="top-r">编辑信息</div> -->
  29. </div>
  30. <div class="expert-list">
  31. <div class="page-title">
  32. <img class="title-icon" src="@/assets/img/home/man.png" alt="">
  33. 专家简介
  34. </div>
  35. <div class="list-one">
  36. <div class="one-info">
  37. <span class="one-name">职称:</span>广州荔博园种业有限公司董事长
  38. </div>
  39. <div class="one-info">
  40. <span class="one-name">单位:</span>广州市从化区荔枝文化博览园
  41. </div>
  42. <div class="one-info">
  43. <span class="one-name">擅长:</span>荔枝的病虫害防治、生长异常调节、物候期调 节等等...
  44. </div>
  45. <div class="one-info last-one">
  46. <span class="one-name">服务品类:</span><div class="more">更多<el-icon class="more-icon"><ArrowRightBold /></el-icon></div>
  47. </div>
  48. <div class="one-type">
  49. <div class="type-item" v-for="item in 5" :key="item">
  50. <img class="type-img" src="@/assets/img/gallery/icon-0.png" alt="">
  51. <div class="type-name">荔枝</div>
  52. </div>
  53. </div>
  54. </div>
  55. </div>
  56. </div>
  57. <div class="box-wrap list-wrap">
  58. <div class="list-title">
  59. <div class="page-title">
  60. <img class="title-icon" src="@/assets/img/home/man.png" alt="">
  61. 定点基地
  62. </div>
  63. <div class="more">更多<el-icon class="more-icon"><ArrowRightBold /></el-icon></div>
  64. </div>
  65. <div class="list-content">
  66. <div class="list-item" v-for="item in 3" :key="item">
  67. <div class="item-info">
  68. <div class="item-top">
  69. <div class="left-img">
  70. <img class="img-dom" src="https://birdseye-img-ali-cdn.sysuimars.com/16926861-1e20-4cbd-8bf2-90208db5a2d0/806080da-1a30-4b5b-b64b-b22e722c6cb6/DJI_202509010800_001_806080da-1a30-4b5b-b64b-b22e722c6cb6/DJI_20250901080536_0045_V_code-ws0fsmge97gh.jpeg" alt="">
  71. </div>
  72. <div class="left-content">
  73. <div class="content-title">
  74. <span>荔枝博览园</span>
  75. </div>
  76. <div class="content-desc">
  77. <div>果园面积:1500亩</div>
  78. <div>服务作物:荔枝-妃子笑、桂味</div>
  79. </div>
  80. </div>
  81. </div>
  82. </div>
  83. <div class="item-btn">查看详情</div>
  84. </div>
  85. </div>
  86. </div>
  87. </div>
  88. <div class="bottom-btn"><div class="share-btn">分享</div></div>
  89. </div>
  90. </template>
  91. <script setup>
  92. import customHeader from "@/components/customHeader.vue";
  93. import { ref } from "vue";
  94. const tagList = [{name: "荔枝"}, {name: "龙眼"}]
  95. </script>
  96. <style scoped lang="scss">
  97. .farm-page {
  98. width: 100%;
  99. height: 100vh;
  100. .farm-list {
  101. width: 100%;
  102. height: calc(100% - 40px - 52px);
  103. overflow: auto;
  104. background-color: #f7f7f7;
  105. padding: 12px;
  106. box-sizing: border-box;
  107. .page-title {
  108. display: flex;
  109. align-items: center;
  110. font-size: 16px;
  111. color: #000000;
  112. font-weight: bold;
  113. .title-icon {
  114. width: 16px;
  115. height: 16px;
  116. padding-right: 8px;
  117. }
  118. }
  119. .more {
  120. display: flex;
  121. align-items: center;
  122. color: #999999;
  123. }
  124. .box-wrap {
  125. background: #ffffff;
  126. border-radius: 12px;
  127. padding: 12px;
  128. &.expert-info {
  129. .expert-top {
  130. display: flex;
  131. align-items: flex-start;
  132. justify-content: space-between;
  133. .top-l {
  134. display: flex;
  135. }
  136. .top-r {
  137. display: flex;
  138. align-items: center;
  139. padding: 4px 10px;
  140. color: #2199F8;
  141. font-size: 12px;
  142. background: rgba(33, 153, 248, 0.12);
  143. border-radius: 20px;
  144. }
  145. .l-info {
  146. padding-left: 7px;
  147. }
  148. .info-name {
  149. display: flex;
  150. align-items: center;
  151. }
  152. .info-bottom {
  153. padding-top: 8px;
  154. display: flex;
  155. }
  156. .fruit-tag {
  157. margin-left: 5px;
  158. padding: 0 8px;
  159. height: 20px;
  160. line-height: 20px;
  161. background: #cae7ff;
  162. border-radius: 2px;
  163. font-size: 12px;
  164. color: #2199f8;
  165. // &.pest {
  166. // background: #eedaff;
  167. // color: #ac4dff;
  168. // }
  169. &:nth-child(2) {
  170. background: #eedaff;
  171. color: #ac4dff;
  172. }
  173. }
  174. .expert-icon {
  175. width: 68px;
  176. height: 68px;
  177. border-radius: 8px;
  178. object-fit: cover;
  179. }
  180. .info-flex{
  181. display: flex;
  182. align-items: center;
  183. }
  184. .expert-name {
  185. color: #000;
  186. font-size: 16px;
  187. font-weight: bold;
  188. }
  189. .expert-tag {
  190. height: 20px;
  191. width: 48px;
  192. display: flex;
  193. align-items: center;
  194. justify-content: center;
  195. color: #C77D05;
  196. background: #FFECAD;
  197. border-radius: 4px;
  198. font-size: 12px;
  199. margin-left: 8px;
  200. line-height: 20px;
  201. .expert-img {
  202. width: 12px;
  203. padding-right: 2px;
  204. }
  205. }
  206. .btn-text{
  207. font-size: 12px;
  208. color: #A8A8A8;
  209. padding: 2px 12px;
  210. border-radius: 20px;
  211. border: 1px solid #A8A8A8;
  212. background: rgba(220, 220, 220, 0.1);
  213. &.actice{
  214. color: #F3C11D;
  215. border-color: #F3C11D;
  216. background: rgba(243, 193, 29, 0.1);
  217. }
  218. }
  219. }
  220. .expert-list {
  221. padding: 16px 0;
  222. font-size: 14px;
  223. .list-one {
  224. padding-top: 8px;
  225. .one-info {
  226. // display: flex;
  227. color: #666666;
  228. line-height: 18px;
  229. padding-bottom: 2px;
  230. .one-name {
  231. flex: none;
  232. color: rgba(102, 102, 102, 0.5);
  233. }
  234. &.last-one {
  235. padding-top: 6px;
  236. display: flex;
  237. align-items: center;
  238. justify-content: space-between;
  239. }
  240. }
  241. .one-type {
  242. padding-top: 8px;
  243. display: flex;
  244. justify-content: space-around;
  245. .type-item {
  246. width: 20%;
  247. display: flex;
  248. flex-direction: column;
  249. justify-content: center;
  250. align-items: center;
  251. .type-img {
  252. width: 48px;
  253. height: 48px;
  254. border-radius: 50%;
  255. border: 1px solid #E5E5E5;
  256. }
  257. .type-name {
  258. padding-top: 2px;
  259. color: #666666;
  260. font-size: 12px;
  261. }
  262. }
  263. }
  264. }
  265. }
  266. }
  267. &.list-wrap {
  268. margin-top: 12px;
  269. .list-title {
  270. padding-bottom: 12px;
  271. display: flex;
  272. justify-content: space-between;
  273. align-items: center;
  274. border-bottom: 1px solid #F5F5F5;
  275. }
  276. }
  277. }
  278. .list-content {
  279. padding: 12px 0;
  280. }
  281. .list-item {
  282. background-color: #fff;
  283. border-radius: 10px;
  284. // padding: 10px;
  285. display: flex;
  286. justify-content: space-between;
  287. align-items: center;
  288. .item-info {
  289. .item-top {
  290. display: flex;
  291. align-items: center;
  292. gap: 12px;
  293. .left-img {
  294. width: 68px;
  295. height: 68px;
  296. border-radius: 8px;
  297. .img-dom {
  298. border-radius: 8px;
  299. width: 100%;
  300. height: 100%;
  301. object-fit: cover;
  302. }
  303. }
  304. .left-content {
  305. .content-title {
  306. display: flex;
  307. align-items: center;
  308. gap: 10px;
  309. margin-bottom: 4px;
  310. font-size: 16px;
  311. font-weight: 500;
  312. .content-tag {
  313. background-color: #2199f8;
  314. color: #fff;
  315. padding: 2px 8px;
  316. border-radius: 15px;
  317. font-size: 12px;
  318. font-weight: 400;
  319. }
  320. .content-text {
  321. font-size: 12px;
  322. color: #2199F8;
  323. font-weight: 400;
  324. }
  325. }
  326. .content-desc {
  327. font-size: 12px;
  328. color: #999999;
  329. line-height: 18px;
  330. }
  331. }
  332. }
  333. .select {
  334. width: 105px;
  335. margin-left: 80px;
  336. margin-top: 10px;
  337. ::v-deep{
  338. .el-select__wrapper{
  339. border: 1px solid #2199F8;
  340. box-shadow: none;
  341. }
  342. .el-select__placeholder,.el-select__caret{
  343. color: #2199F8;
  344. }
  345. .el-select__selection {
  346. flex: none;
  347. width: fit-content;
  348. }
  349. .el-select__placeholder {
  350. position: static;
  351. transform: none;
  352. width: fit-content;
  353. }
  354. }
  355. }
  356. }
  357. .item-btn {
  358. color: #2199F8;
  359. padding: 4px 8px;
  360. border: 1px solid #2199F8;
  361. border-radius: 4px;
  362. }
  363. }
  364. .list-item + .list-item {
  365. margin-top: 10px;
  366. padding-top: 10px;
  367. border-top: 1px solid #F5F5F5;
  368. }
  369. }
  370. .bottom-btn {
  371. height: 52px;
  372. width: 100%;
  373. padding: 6px 32px;
  374. box-sizing: border-box;
  375. .share-btn {
  376. color: #fff;
  377. text-align: center;
  378. border-radius: 20px;
  379. padding: 8px;
  380. background: linear-gradient(180deg, #76C3FF, #2199F8);
  381. }
  382. }
  383. }
  384. </style>