completed.vue 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690
  1. <template>
  2. <div class="base-container">
  3. <fnHeader :hideSwitch="true" :hideShadow="true" showDate></fnHeader>
  4. <div class="content">
  5. <div class="content-header">
  6. <div class="btn" @click="goBack">
  7. <img src="@/assets/images/common/back-icon.png" alt="" />
  8. 返回
  9. </div>
  10. <div class="tabs-group">
  11. <div class="tabs-item" v-for="item in 5" :key="item">农事名称0{{item}}</div>
  12. </div>
  13. </div>
  14. <div class="content-body">
  15. <div class="content-left">
  16. <chart-box class="left-cont" name="农事成效" color="yellow">
  17. <div class="box">
  18. <div class="box-item">
  19. <div class="box-title">基本信息</div>
  20. <div class="info-box">
  21. <div class="info-l">
  22. <img class="farm-img" src="@/assets/img/gallery/farm-img.png" alt="" />
  23. </div>
  24. <div class="info-r">
  25. <div class="farm-name">荔博园</div>
  26. <div class="info-item">
  27. <div class="info-name">农事名称:</div>
  28. <div class="info-value">
  29. {{ workItem.farmWorkName }} ({{ workItem.executeDate }})
  30. </div>
  31. </div>
  32. <div class="info-item">
  33. <div class="info-name">农事目的:</div>
  34. <div class="info-value">{{ workItem.purpose }}</div>
  35. </div>
  36. <div class="info-item">
  37. <div class="info-name">肥药处方:</div>
  38. <div class="info-value">
  39. <div class="rescription">
  40. <span
  41. v-for="(
  42. fertilizer, fertilizerI
  43. ) in workItem.pesticideFertilizerList"
  44. :key="fertilizerI"
  45. >
  46. {{ fertilizer.ratio ? fertilizer.ratio + "倍" : "" }}
  47. {{ fertilizer.name }}
  48. <span
  49. v-if="
  50. fertilizerI !==
  51. workItem.pesticideFertilizerList.length - 1
  52. "
  53. >
  54. +
  55. </span>
  56. </span>
  57. </div>
  58. </div>
  59. </div>
  60. </div>
  61. </div>
  62. </div>
  63. <div class="box-item">
  64. <div class="box-title">主体信息</div>
  65. <div class="subject-box">
  66. <div class="subject-item">
  67. <img class="subject-img" src="@/assets/img/gallery/capital.png" alt="" />
  68. <div class="subject-tag">
  69. 大禹农资
  70. <el-icon class="right-icon" size="14"><ArrowRightBold /></el-icon>
  71. </div>
  72. </div>
  73. <div class="subject-item">
  74. <img class="subject-img" src="@/assets/img/gallery/capital.png" alt="" />
  75. <div class="subject-tag">
  76. 北极农服
  77. <el-icon class="right-icon" size="14"><ArrowRightBold /></el-icon>
  78. </div>
  79. </div>
  80. <div class="subject-item">
  81. <img class="subject-img" src="@/assets/img/gallery/capital.png" alt="" />
  82. <div class="subject-tag">
  83. 韦帮稳
  84. <el-icon class="right-icon" size="14"><ArrowRightBold /></el-icon>
  85. </div>
  86. </div>
  87. </div>
  88. </div>
  89. <div class="box-item">
  90. <div class="box-title">复核成效</div>
  91. <div class="result-text">
  92. 通过精准农业技术的应用,作物产量实现了两位数的增长,<span>病虫害</span>的发生率大幅下降,<span>土壤肥力</span>的提升通过精准农业技术的应用,<span>作物产量</span>实现了两位数的增长,<span>病虫害</span>的发生率大幅下降,<span>土壤肥力</span>的提升
  93. </div>
  94. </div>
  95. </div>
  96. <div class="footer">
  97. <div class="button defalut-btn">联系专家</div>
  98. <div class="button" @click="handleOk">加入标准体系</div>
  99. </div>
  100. </chart-box>
  101. </div>
  102. <div class="content-right">
  103. <div class="box-item box-none">
  104. <div class="box-title border-none">复核图片</div>
  105. <div class="img-list">
  106. <div class="img-item">
  107. <!-- 图片列表 -->
  108. <AlbumCarousel
  109. temp="执行前"
  110. :key="1"
  111. :farmId="766"
  112. :sampleId="110725"
  113. :lock="false"
  114. :farmWork="{ beforeExecuteDate: '2025-02-20', executeDate: '2025-02-25' }"
  115. ></AlbumCarousel>
  116. </div>
  117. <div class="img-item">
  118. <AlbumCarousel
  119. temp="执行前"
  120. :key="2"
  121. :farmId="766"
  122. :sampleId="110725"
  123. :lock="false"
  124. :farmWork="{ beforeExecuteDate: '2025-02-15', executeDate: '2025-02-20' }"
  125. ></AlbumCarousel>
  126. </div>
  127. <div class="img-item">
  128. <AlbumCarousel
  129. temp="执行后"
  130. :key="3"
  131. :farmId="766"
  132. :sampleId="110725"
  133. :lock="false"
  134. :farmWork="{ beforeExecuteDate: '2025-02-10', executeDate: '2025-02-15' }"
  135. ></AlbumCarousel>
  136. </div>
  137. </div>
  138. </div>
  139. <div class="box-item box-none">
  140. <div class="box-title border-none">用户评价</div>
  141. <div class="box-evaluate">
  142. <div class="comment" v-for="item in 3" :key="item">
  143. <div class="user-info">
  144. <el-avatar
  145. class="avatar"
  146. :size="40"
  147. src="https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png"
  148. />
  149. <div class="user-name">翰有月</div>
  150. </div>
  151. <div class="rate">
  152. <div class="rate-item">
  153. <span class="name">农资</span>
  154. <el-rate v-model="value" size="small" />
  155. </div>
  156. <div class="rate-item">
  157. <span class="name">农服</span>
  158. <el-rate v-model="value" size="small" />
  159. </div>
  160. <div class="rate-item">
  161. <span class="name">专家</span>
  162. <el-rate v-model="value" size="small" />
  163. </div>
  164. </div>
  165. <el-text class="text" line-clamp="2" size="16px">
  166. 这里是用户的评级内容,有点长,省略100个字。这里是用户的评级内容,有点长,省略100个字。这里是用户的评级内容,有点长,省略100个字。这里是用户的评级内容,有点长,省略100个字。
  167. </el-text>
  168. <span class="date">2025.1.20</span>
  169. </div>
  170. </div>
  171. </div>
  172. </div>
  173. </div>
  174. </div>
  175. </div>
  176. </template>
  177. <script setup>
  178. import { onMounted, ref } from "vue";
  179. import { ElMessage } from "element-plus";
  180. import fnHeader from "@/components/fnHeader.vue";
  181. import AlbumCarousel from "@/views/home/album/album_compoents/albumCarousel";
  182. import chartBox from "@/components/chartBox.vue";
  183. import { useRouter, useRoute } from "vue-router";
  184. import { useStore } from "vuex";
  185. let store = useStore();
  186. const workItem = {
  187. id: "214936",
  188. serviceRegion: "广州市从化区荔枝博览园",
  189. orderId: "685852811698638848",
  190. area: 593,
  191. expert: 81653,
  192. orderStatus: 0,
  193. farmId: 766,
  194. regionId: null,
  195. speciesId: "1",
  196. speciesName: "荔枝",
  197. agriculturalId: 1,
  198. farmWorkId: "15",
  199. farmWorkLibId: "15",
  200. farmWorkLibName: "膨果营养",
  201. farmWorkName: "膨果营养",
  202. expertIcon: "https://birdseye-img.sysuimars.com/birdseye-look-mini/bbs/icon/75e8fb25a1418291e648d35acf1ca41.png",
  203. expertName: "韦老师",
  204. icon: 1,
  205. indexChart: [
  206. {
  207. date: "5/1",
  208. name: "",
  209. value: 3,
  210. },
  211. {
  212. date: "5/5",
  213. name: "",
  214. value: 4,
  215. },
  216. {
  217. date: "5/11",
  218. name: "",
  219. value: 14,
  220. },
  221. {
  222. date: "5/15",
  223. name: "",
  224. value: 24,
  225. },
  226. ],
  227. indexName: "",
  228. beforeExecuteDate: null,
  229. executeDate: "2025-05-05",
  230. indexJson:
  231. '[{"date":"5/1","value":3.0},{"date":"5/5","value":4.0},{"date":"5/11","value":14.0},{"date":"5/15","value":24.0}]',
  232. code: "GF-PG",
  233. expertPrescription: "",
  234. condition: "单树膨果率5%",
  235. solarName: "5月上旬",
  236. reCheck: 0,
  237. executeBlueZones: [],
  238. menu: 1,
  239. num: null,
  240. purpose: "施足营养,促进膨果转色",
  241. farmWorkType: 2,
  242. farmWorkTypeName: "营养",
  243. type: 1,
  244. execute: 3,
  245. updateDate0: null,
  246. updateDate1: null,
  247. updateDate2: null,
  248. updateDate3: null,
  249. updateDate4: null,
  250. updateDate5: null,
  251. serviceMain: "大荔农业",
  252. executeMain: "大荔农业",
  253. weatherWarningMsg: "荔枝普遍处于花穗期,近期温度较过去一周快速下降,有花穗生长停滞风险\r\n",
  254. userEvaluation: null,
  255. users: [
  256. {
  257. id: null,
  258. orderId: null,
  259. serviceType: null,
  260. userType: 1,
  261. userId: 81669,
  262. joinStatus: null,
  263. icon: "https://birdseye-img.sysuimars.com/birdseye-look-mini/bbs/icon/23.png",
  264. userName: "用户81669",
  265. area: "",
  266. point: "POINT(113.52575791849408 23.830400966597722)",
  267. farmName: "农场1011",
  268. selected: 0,
  269. },
  270. {
  271. id: null,
  272. orderId: null,
  273. serviceType: null,
  274. userType: 1,
  275. userId: 81653,
  276. joinStatus: null,
  277. icon: "https://birdseye-img.sysuimars.com/birdseye-look-mini/bbs/icon/75e8fb25a1418291e648d35acf1ca41.png",
  278. userName: "韦老师",
  279. area: "5.51",
  280. point: "POINT(113.68851269297058 23.786884947916857)",
  281. farmName: "farm_01",
  282. selected: 0,
  283. },
  284. {
  285. id: null,
  286. orderId: null,
  287. serviceType: 1,
  288. userType: 2,
  289. userId: 81881,
  290. joinStatus: null,
  291. icon: "https://birdseye-img.sysuimars.com/birdseye-look-mini/bbs/icon/lz_logo.png",
  292. userName: "飞鸟种植助手",
  293. area: "",
  294. point: "POINT(113.30139794715421 23.511158355652277)",
  295. farmName: "农场11-523",
  296. selected: 0,
  297. },
  298. {
  299. id: null,
  300. orderId: null,
  301. serviceType: null,
  302. userType: 1,
  303. userId: 81663,
  304. joinStatus: null,
  305. icon: "https://birdseye-img.sysuimars.com/birdseye-look-mini/bbs/icon/8.png",
  306. userName: "用户81663",
  307. area: "6.35",
  308. point: "POINT(114.37672046161343 23.45379334952031)",
  309. farmName: "农场11",
  310. selected: 0,
  311. },
  312. ],
  313. prescriptionList: [
  314. {
  315. name: "营养",
  316. pesticideFertilizerList: [
  317. {
  318. defaultDroneRatio: null,
  319. defaultName: "高钾复合肥",
  320. defaultRatio: null,
  321. id: null,
  322. muPrice: null,
  323. muUsage: null,
  324. muUsage2: null,
  325. ratio: null,
  326. ratio2: null,
  327. remark: "",
  328. usageMode: "根部施",
  329. usageModeList: [],
  330. orderId: null,
  331. pesticideFertilizerCode: "",
  332. pesticideFertilizerId: "35",
  333. pesticideFertilizerName: "高钾复合肥",
  334. brand: "",
  335. typeName: "",
  336. price: null,
  337. unit: "",
  338. executeStyle: null,
  339. },
  340. ],
  341. usageMode: "根部施",
  342. },
  343. ],
  344. pesticideFertilizerList: [
  345. {
  346. id: null,
  347. name: "高钾复合肥 1kg/棵",
  348. pesticideFertilizerCode: "35",
  349. ratio: null,
  350. count: null,
  351. typeName: "营养",
  352. },
  353. ],
  354. pesticideFertilizers: [
  355. {
  356. defaultDroneRatio: null,
  357. defaultName: "高钾复合肥",
  358. defaultRatio: null,
  359. id: "685852812344561664",
  360. muPrice: null,
  361. muUsage: null,
  362. muUsage2: null,
  363. ratio: null,
  364. ratio2: null,
  365. remark: "",
  366. usageMode: "根部施",
  367. usageModeList: ["根部施"],
  368. orderId: "685852811698638848",
  369. pesticideFertilizerCode: "",
  370. pesticideFertilizerId: "35",
  371. pesticideFertilizerName: "高钾复合肥 1kg/棵",
  372. brand: "",
  373. typeName: "营养",
  374. price: null,
  375. unit: "kg",
  376. executeStyle: null,
  377. },
  378. ],
  379. };
  380. const router = useRouter();
  381. const route = useRoute();
  382. const value = ref(4);
  383. onMounted(() => {
  384. getList();
  385. });
  386. const getList = () => {
  387. console.log("000");
  388. };
  389. const goBack = () => {
  390. router.go(-1);
  391. };
  392. //确定/下发农事
  393. const handleOk = () => {};
  394. </script>
  395. <style lang="scss" scoped>
  396. .base-container {
  397. width: 100%;
  398. height: 100vh;
  399. color: #fff;
  400. position: relative;
  401. box-sizing: border-box;
  402. z-index: 1;
  403. background: #000;
  404. .content {
  405. width: 100%;
  406. height: calc(100% - 74px);
  407. padding: 20px;
  408. box-sizing: border-box;
  409. .box-item {
  410. background: rgba(255, 255, 255, 0.04);
  411. border: 1px solid #444444;
  412. border-radius: 8px;
  413. padding: 16px 12px;
  414. box-sizing: border-box;
  415. width: 100%;
  416. &.box-none {
  417. border: none;
  418. background: none;
  419. padding: 0;
  420. }
  421. .box-title {
  422. font-size: 20px;
  423. border-bottom: 1px solid #333333;
  424. padding: 0 0 12px 13px;
  425. margin-bottom: 20px;
  426. position: relative;
  427. display: flex;
  428. justify-content: space-between;
  429. &.border-none {
  430. padding-bottom: 0;
  431. border: none;
  432. }
  433. &::before {
  434. content: "";
  435. position: absolute;
  436. left: 0;
  437. top: 6px;
  438. width: 3px;
  439. height: 16px;
  440. background: #fff;
  441. border-radius: 11px;
  442. }
  443. }
  444. }
  445. .box-item + .box-item {
  446. margin-top: 16px;
  447. }
  448. }
  449. .content-header {
  450. display: flex;
  451. align-items: center;
  452. margin-bottom: 24px;
  453. .btn {
  454. display: flex;
  455. align-items: center;
  456. justify-content: center;
  457. border: 1px solid rgba(255, 255, 255, 0.78);
  458. border-radius: 4px;
  459. padding: 9px;
  460. width: 104px;
  461. margin-right: 48px;
  462. cursor: pointer;
  463. img {
  464. width: 14px;
  465. margin-right: 5px;
  466. }
  467. }
  468. .tabs-group{
  469. width: calc(100% - 104px - 48px);
  470. display: flex;
  471. font-size: 18px;
  472. color: #cecece;
  473. border-bottom: 1px solid #444444;
  474. .tabs-item{
  475. padding: 0 14px 14px 14px;
  476. }
  477. .tabs-item + .tabs-item{
  478. margin-left: 20px;
  479. }
  480. }
  481. }
  482. .content-body {
  483. width: 100%;
  484. height: calc(100% - 40px - 24px);
  485. display: flex;
  486. justify-content: space-between;
  487. .content-left {
  488. width: 473px;
  489. height: 100%;
  490. box-sizing: border-box;
  491. .box {
  492. width: 100%;
  493. height: calc(100% - 58px);
  494. padding: 16px 12px;
  495. box-sizing: border-box;
  496. overflow-y: auto;
  497. }
  498. .left-cont {
  499. width: 100%;
  500. height: 100%;
  501. .info-box {
  502. display: flex;
  503. border-radius: 5px;
  504. align-items: center;
  505. .info-l {
  506. .farm-img {
  507. width: 100px;
  508. width: 100px;
  509. border-radius: 8px;
  510. object-fit: scale-down;
  511. }
  512. }
  513. .info-r {
  514. padding-left: 12px;
  515. }
  516. .farm-name {
  517. font-size: 18px;
  518. color: #fff;
  519. padding-bottom: 4px;
  520. }
  521. .info-item {
  522. display: flex;
  523. font-size: 15px;
  524. .info-name {
  525. color: #727272;
  526. flex: none;
  527. }
  528. .info-value {
  529. color: #cecece;
  530. }
  531. }
  532. .info-item + .info-item {
  533. margin-top: 4px;
  534. }
  535. }
  536. .subject-box {
  537. width: 100%;
  538. display: flex;
  539. align-items: center;
  540. justify-content: space-around;
  541. .subject-item {
  542. border-radius: 8px;
  543. display: flex;
  544. flex-direction: column;
  545. align-items: center;
  546. justify-content: center;
  547. width: 33%;
  548. .subject-img {
  549. width: 67px;
  550. height: 67px;
  551. object-fit: cover;
  552. border-radius: 50%;
  553. border: 2px solid #fff;
  554. }
  555. .subject-tag {
  556. font-size: 14px;
  557. padding: 2px 8px 3px 8px;
  558. background: #ffd489;
  559. color: #000;
  560. border-radius: 24px;
  561. display: flex;
  562. align-items: center;
  563. margin-top: -5px;
  564. }
  565. }
  566. .subject-item + .subject-item {
  567. margin-left: 8px;
  568. }
  569. }
  570. .result-text {
  571. font-size: 15px;
  572. line-height: 22px;
  573. span {
  574. color: #ffd489;
  575. }
  576. }
  577. }
  578. }
  579. .content-right {
  580. width: calc(100% - 473px - 18px);
  581. margin-left: 18px;
  582. height: 100%;
  583. background: #191919;
  584. border: 0.6px solid #444444;
  585. padding: 20px;
  586. box-sizing: border-box;
  587. border-radius: 8px;
  588. .img-list {
  589. display: flex;
  590. justify-content: space-between;
  591. .img-item {
  592. width: 32.5%;
  593. .carousel-container {
  594. border-radius: 10px;
  595. }
  596. }
  597. .img-item + .img-item {
  598. margin-left: 12px;
  599. }
  600. }
  601. .box-evaluate {
  602. display: flex;
  603. .comment {
  604. flex: 1;
  605. padding: 20px 10px;
  606. box-sizing: border-box;
  607. border-radius: 5px;
  608. background: rgba(255, 255, 255, 0.05);
  609. .user-info {
  610. display: flex;
  611. align-items: center;
  612. .user-name {
  613. font-weight: 500;
  614. margin-left: 8px;
  615. }
  616. }
  617. .rate {
  618. display: flex;
  619. justify-content: space-between;
  620. ::v-deep {
  621. .el-rate {
  622. --el-rate-icon-margin: 3px;
  623. }
  624. }
  625. .rate-item {
  626. display: flex;
  627. align-items: center;
  628. border-radius: 4px;
  629. padding: 4px 2px;
  630. font-size: 12px;
  631. .name {
  632. margin-right: 2px;
  633. color: #666666;
  634. }
  635. }
  636. }
  637. .text {
  638. color: #fff;
  639. }
  640. .date {
  641. color: #727272;
  642. }
  643. }
  644. .comment + .comment {
  645. margin-left: 12px;
  646. }
  647. }
  648. }
  649. .footer {
  650. width: 100%;
  651. height: 58px;
  652. border-top: 0.5px solid #555555;
  653. background: rgba(255, 255, 255, 0.04);
  654. display: flex;
  655. justify-content: flex-end;
  656. align-items: center;
  657. .button {
  658. font-size: 16px;
  659. padding: 8px 58px;
  660. background: #ffd489;
  661. border-radius: 4px;
  662. color: #000;
  663. margin-right: 12px;
  664. cursor: pointer;
  665. }
  666. .defalut-btn {
  667. color: #ffd489;
  668. font-size: 14px;
  669. padding: 8px 20px;
  670. background: none;
  671. border: 1px solid #ffd489;
  672. }
  673. }
  674. }
  675. }
  676. </style>