index.vue 57 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680
  1. <template>
  2. <div class="plan-page" :style="{ height: `calc(100vh - ${tabBarHeight}px)` }">
  3. <div class="plan-title">
  4. <div class="tabs">
  5. <div class="tab" :class="{ active: activeTab === 'left' }" @click="setActiveTab('left')">专家处方</div>
  6. <div class="tab" :class="{ active: activeTab === 'right' }" @click="setActiveTab('right')">
  7. 我的处方
  8. <span class="badge-dot">2</span>
  9. </div>
  10. <div class="slider" :style="sliderStyle"></div>
  11. </div>
  12. </div>
  13. <div class="plan-content" v-if="activeTab === 'left'">
  14. <div class="filter-wrap">
  15. <div class="filter-item type-cascader">
  16. <el-cascader v-model="typeVal" :options="typeOptions"></el-cascader>
  17. </div>
  18. <div class="filter-item">
  19. <el-select v-model="proviceVal" style="width: 76px">
  20. <el-option
  21. v-for="item in proviceOptions"
  22. :key="item.value"
  23. :label="item.label"
  24. :value="item.value"
  25. />
  26. </el-select>
  27. </div>
  28. <div class="filter-item">
  29. <el-select v-model="expertVal" placeholder="推荐专家" style="width: 86px">
  30. <el-option
  31. v-for="item in expertOptions"
  32. :key="item.value"
  33. :label="item.label"
  34. :value="item.value"
  35. />
  36. </el-select>
  37. </div>
  38. <div class="filter-item">
  39. <el-select v-model="filterVal" placeholder="筛选" style="width: 68px">
  40. <el-option
  41. v-for="item in filterOptions"
  42. :key="item.value"
  43. :label="item.label"
  44. :value="item.value"
  45. />
  46. </el-select>
  47. </div>
  48. </div>
  49. <div class="expert-prescription">
  50. <div class="plan-menu">
  51. <el-anchor :container="containerRef" direction="vertical" type="default" @click="handleClick">
  52. <el-menu :default-active="defaultActive" class="el-menu-vertical-demo">
  53. <el-sub-menu v-for="(menu, index) in menuData" :key="index" :index="String(menu.id)">
  54. <template #title>
  55. <img class="menu-icon" :src="require(`@/assets/img/gallery/icon-${index}.png`)" />
  56. <span class="menu-text">{{ menu.title }}</span>
  57. </template>
  58. <el-menu-item
  59. v-for="item in menu.children"
  60. :key="item.id"
  61. :index="`${menu.id}-${item.id}`"
  62. >
  63. <el-anchor-link :href="item.href" :title="item.title" />
  64. </el-menu-item>
  65. </el-sub-menu>
  66. </el-menu>
  67. </el-anchor>
  68. </div>
  69. <div class="expert-content" ref="containerRef">
  70. <div v-for="(section, index) in contentData" :key="index" class="content-section">
  71. <div class="section-id" :id="section.targetId"></div>
  72. <record-item :record-item-data="section">
  73. <template #title>
  74. <div class="box-title">
  75. <div class="title-l">
  76. {{ section.title }}
  77. <span class="parent-text">{{ section.parentTitle || "秋梢期" }}</span>
  78. </div>
  79. <div class="title-btn" @click="addToMyPlan">
  80. <el-icon color="#fff" size="14"><Plus /></el-icon>
  81. </div>
  82. </div>
  83. </template>
  84. </record-item>
  85. </div>
  86. </div>
  87. </div>
  88. <!-- 底部 -->
  89. <div class="fixed-bottom">
  90. <div class="bottom-l">
  91. <div class="l-btn">
  92. <el-icon color="#666666" class="btn-icon" size="16"><Download /></el-icon>
  93. 下载处方
  94. </div>
  95. <div class="l-btn">
  96. <el-icon color="#666666" class="btn-icon" size="16"><ChatDotRound /></el-icon>
  97. 咨询专家
  98. </div>
  99. </div>
  100. <div class="bottom-r">全部添加</div>
  101. </div>
  102. </div>
  103. <div class="plan-content my-recipe" v-if="activeTab === 'right'">
  104. <div class="filter-wrap">
  105. <div class="plan-box">
  106. <div
  107. class="plan-item"
  108. v-for="(item, index) in planList"
  109. :key="index"
  110. @click="handlePlanClick(index)"
  111. :class="{ active: activePlanIndex === index }"
  112. >
  113. {{ item.name }}
  114. </div>
  115. </div>
  116. <div class="plan-add" @click="newPlan">新增方案</div>
  117. </div>
  118. <div class="expert-prescription">
  119. <div class="plan-menu">
  120. <el-anchor :container="containerRef" direction="vertical" type="default" @click="handleClick">
  121. <el-menu :default-active="defaultActive" class="el-menu-vertical-demo">
  122. <el-sub-menu v-for="(menu, index) in menuData" :key="index" :index="String(menu.id)">
  123. <template #title>
  124. <img class="menu-icon" :src="require(`@/assets/img/gallery/icon-${index}.png`)" />
  125. <span class="menu-text">{{ menu.title }}</span>
  126. </template>
  127. <el-menu-item
  128. v-for="item in menu.children"
  129. :key="item.id"
  130. :index="`${menu.id}-${item.id}`"
  131. >
  132. <el-anchor-link :href="item.href" :title="item.title" />
  133. </el-menu-item>
  134. </el-sub-menu>
  135. </el-menu>
  136. </el-anchor>
  137. </div>
  138. <div class="expert-content" ref="containerRef">
  139. <div v-for="(section, index) in contentData" :key="index" class="content-section">
  140. <div class="section-id" :id="section.targetId"></div>
  141. <record-item :record-item-data="section">
  142. <template #title>
  143. <div class="box-title">
  144. <div class="title-l">
  145. {{ section.title }}
  146. <span class="parent-text">{{ section.parentTitle || "秋梢期" }}</span>
  147. </div>
  148. <div class="title-r">
  149. <div class="btn-item del-btn">
  150. <el-icon color="#fff" size="14"><Delete /></el-icon>
  151. </div>
  152. <div class="btn-item edit-btn">
  153. <el-icon color="#fff" size="14"><Edit /></el-icon>
  154. </div>
  155. </div>
  156. </div>
  157. </template>
  158. </record-item>
  159. </div>
  160. </div>
  161. </div>
  162. <!-- 底部 -->
  163. <div class="fixed-bottom">
  164. <div class="bottom-l">
  165. <div class="l-btn">
  166. <img class="btn-icon calculator-icon" src="@/assets/img/home/calculator.png" alt="">
  167. 投入产出计算器
  168. </div>
  169. </div>
  170. <div class="bottom-r">新增农事</div>
  171. </div>
  172. </div>
  173. </div>
  174. <add-group ref="addGroupRef" />
  175. </template>
  176. <script setup>
  177. import { computed, ref } from "vue";
  178. import recordItem from "@/components/recordItem.vue";
  179. import addGroup from "./components/addGroup.vue";
  180. import { useStore } from "vuex";
  181. const store = useStore();
  182. const tabBarHeight = computed(() => store.state.home.tabBarHeight);
  183. const containerRef = ref(null);
  184. const handleClick = (e) => {
  185. e.preventDefault();
  186. };
  187. const activeTab = ref("left");
  188. // const tabBarHeight = computed(() => store.state.home.tabBarHeight);
  189. const sliderStyle = computed(() => {
  190. // 根据当前激活的选项卡计算滑动条位置
  191. const position = activeTab.value === "left" ? "25%" : "75%";
  192. return {
  193. left: `calc(${position} - 12px)`, // 减去滑动条宽度的一半以实现居中
  194. };
  195. });
  196. function setActiveTab(tab) {
  197. activeTab.value = tab;
  198. }
  199. const typeVal = ref([1, 3]);
  200. const typeOptions = ref([
  201. {
  202. value: 1,
  203. label: "荔枝",
  204. children: [
  205. {
  206. value: 2,
  207. label: "井岗红糯",
  208. },
  209. {
  210. value: 3,
  211. label: "桂味",
  212. },
  213. {
  214. value: 4,
  215. label: "妃子笑",
  216. },
  217. {
  218. value: 5,
  219. label: "黑叶",
  220. },
  221. ],
  222. },
  223. {
  224. value: 6,
  225. label: "龙眼",
  226. children: [
  227. {
  228. value: 7,
  229. label: "龙眼1",
  230. },
  231. {
  232. value: 8,
  233. label: "龙眼2",
  234. },
  235. {
  236. value: 9,
  237. label: "龙眼3",
  238. },
  239. {
  240. value: 10,
  241. label: "龙眼4",
  242. },
  243. ],
  244. },
  245. {
  246. value: 11,
  247. label: "枇杷",
  248. children: [
  249. {
  250. value: 12,
  251. label: "枇杷1",
  252. },
  253. {
  254. value: 13,
  255. label: "枇杷2",
  256. },
  257. {
  258. value: 14,
  259. label: "枇杷3",
  260. },
  261. {
  262. value: 15,
  263. label: "枇杷4",
  264. },
  265. ],
  266. },
  267. ]);
  268. const proviceVal = ref("广东");
  269. const proviceOptions = ref([
  270. {
  271. value: "广东",
  272. label: "广东省",
  273. },
  274. {
  275. value: "广西",
  276. label: "广西省",
  277. },
  278. {
  279. value: "福建",
  280. label: "福建省",
  281. },
  282. {
  283. value: "海南",
  284. label: "海南省",
  285. },
  286. ]);
  287. const expertVal = ref("");
  288. const expertOptions = ref([
  289. {
  290. value: "1",
  291. label: "韦帮稳",
  292. },
  293. {
  294. value: "2",
  295. label: "冼继东",
  296. },
  297. {
  298. value: "3",
  299. label: "专家3",
  300. },
  301. {
  302. value: "4",
  303. label: "专家4",
  304. },
  305. ]);
  306. const filterVal = ref("");
  307. const filterOptions = ref([
  308. {
  309. value: "1",
  310. label: "最新",
  311. },
  312. {
  313. value: "3",
  314. label: "好评",
  315. },
  316. ]);
  317. // 菜单
  318. const defaultActive = ref("1-1");
  319. const menuData = [
  320. {
  321. id: 1,
  322. title: "秋梢期",
  323. children: [
  324. { id: 1, title: "巡园农事", href: "#part1" },
  325. { id: 2, title: "梢期防虫", href: "#part2" },
  326. { id: 3, title: "梢期营养", href: "#part3" },
  327. ],
  328. },
  329. {
  330. id: 2,
  331. title: "开花期",
  332. children: [
  333. { id: 1, title: "巡园农事", href: "#part4" },
  334. { id: 2, title: "摇花吹花", href: "#part5" },
  335. { id: 3, title: "花期防治", href: "#part6" },
  336. ],
  337. },
  338. ];
  339. const contentData = ref([
  340. {
  341. targetId: "part1",
  342. title: "巡园农事",
  343. parentTitle: "秋梢期",
  344. reCheckText: "本次农事复核成效优异,作物产量潜力实现大幅增长,虫害风险控制优异,未发现虫害风险",
  345. expert: 91356,
  346. orderStatus: 4,
  347. activeStatus: 0,
  348. regionId: 2,
  349. speciesId: "1",
  350. speciesName: "荔枝",
  351. farmWorkId: "699343457474318336",
  352. farmWorkLibId: "699343457474318336",
  353. farmWorkLibName: "梢期防虫",
  354. farmWorkName: "梢期防虫",
  355. expertIcon:
  356. "https://birdseye-img.sysuimars.com/birdseye-look-vue/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20250411150343.png",
  357. expertName: "韦帮稳",
  358. icon: 4,
  359. beforeExecuteDate: "2025-08-01",
  360. executeDate: "2025-08-15",
  361. code: "BZ-BC-04-SQFC-20",
  362. expertPrescription: "",
  363. condition: "单树嫩叶率大于20.0%",
  364. defaultFarmWork: 0,
  365. farmWorkType: 3,
  366. farmWorkTypeName: "病虫",
  367. usageMode: "叶面施",
  368. serviceMain: "广州泽秾丰农资有限公司",
  369. updateDate6: null,
  370. confirmPicture: [],
  371. executeMain: "广州泽秾丰农资有限公司",
  372. storeShortName: "泽秾丰",
  373. serviceRegion: "广州市从化区荔枝博览园",
  374. attention: "当前为秋梢期,建议巡园,重点关注叶片、嫩梢等部位",
  375. },
  376. {
  377. targetId: "part2",
  378. title: "梢期防虫",
  379. parentTitle: "秋梢期",
  380. consequenceText: "如果不做本次农事,会导致您的产量、质量下降30%,管理得分降低10分",
  381. id: "274654",
  382. reCheckText: "本次农事复核成效优异,作物产量潜力实现大幅增长,树体营养较充足,土壤肥力增加",
  383. farmName: "荔枝博览园",
  384. farmPoint: "POINT(113.61702297075017 23.584863449735067)",
  385. orderId: "745923632567422976",
  386. area: 2.719998598098755,
  387. expert: 91356,
  388. orderStatus: 4,
  389. activeStatus: 0,
  390. farmId: 766,
  391. regionId: 2,
  392. speciesId: "1",
  393. speciesName: "荔枝",
  394. agriculturalId: 24,
  395. farmWorkId: "699343457444958208",
  396. farmWorkLibId: "699343457444958208",
  397. farmWorkLibName: "梢期营养",
  398. farmWorkName: "梢期营养",
  399. expertIcon:
  400. "https://birdseye-img.sysuimars.com/birdseye-look-vue/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20250411150343.png",
  401. expertName: "韦帮稳",
  402. expertUserIcon: "",
  403. expertUserName: "韦帮稳",
  404. icon: 4,
  405. indexChart: [],
  406. indexName: "",
  407. beforeExecuteDate: "2025-05-26",
  408. checkDate: null,
  409. executeDate: "2025-08-01",
  410. indexJson: "",
  411. code: "BZ-YY-04-SQYY-20",
  412. expertPrescription: "",
  413. condition: "园区叶芽率大于20.0%",
  414. solarName: "",
  415. reCheck: null,
  416. executeBlueZones: [
  417. {
  418. id: "ws0y1m6x7cjz",
  419. level: null,
  420. },
  421. {
  422. id: "ws0y1md9v3ht",
  423. level: null,
  424. },
  425. {
  426. id: "ws0y1mdspbk7",
  427. level: null,
  428. },
  429. {
  430. id: "ws0y1mdvvdsz",
  431. level: null,
  432. },
  433. {
  434. id: "ws0y1me545tg",
  435. level: null,
  436. },
  437. ],
  438. menu: 1,
  439. isEdit: 0,
  440. isMaster: null,
  441. num: null,
  442. purpose: "",
  443. selfExec: null,
  444. defaultFarmWork: 0,
  445. farmWorkType: 2,
  446. farmWorkTypeName: "营养",
  447. type: 1,
  448. execute: 4,
  449. updateDate0: "2025-08-20",
  450. updateDate1: null,
  451. updateDate2: null,
  452. updateDate3: null,
  453. updateDate4: null,
  454. updateDate5: null,
  455. usageMode: "根部施",
  456. serviceMain: "广州泽秾丰农资有限公司",
  457. updateDate6: null,
  458. confirmPicture: [],
  459. executeMain: "广州泽秾丰农资有限公司",
  460. storeShortName: "泽秾丰",
  461. weatherWarningMsg: "",
  462. executeEvidence: [],
  463. userEvaluation: null,
  464. reviewDate: null,
  465. reviewDate2: null,
  466. reviewImage: [],
  467. reviewImage2: [],
  468. serviceRegion: "广州市从化区荔枝博览园",
  469. users: [
  470. {
  471. id: null,
  472. orderId: null,
  473. serviceType: null,
  474. userType: null,
  475. userId: 81881,
  476. joinStatus: null,
  477. icon: "https://birdseye-img.sysuimars.com/birdseye-look-mini/Group%201321316260.png",
  478. userName: "飞鸟种植助手",
  479. area: "",
  480. point: "",
  481. farmName: "",
  482. selected: null,
  483. },
  484. ],
  485. cost: null,
  486. prescriptionList: [
  487. {
  488. name: "营养",
  489. pesticideFertilizerList: [
  490. {
  491. defaultDroneRatio: null,
  492. defaultName: "尿素",
  493. defaultRatio: 0,
  494. id: null,
  495. muPrice: null,
  496. muUsage: 15000.0,
  497. muUsage2: 15000.0,
  498. ratio: 0,
  499. ratio2: 0,
  500. remark: "",
  501. usageMode: "",
  502. usageModeList: ["叶面施、根部施"],
  503. orderId: null,
  504. pesticideFertilizerCode: "1001",
  505. pesticideFertilizerId: "1",
  506. pesticideFertilizerName: "尿素",
  507. brand: "山东联盟",
  508. typeName: "营养",
  509. price: 132,
  510. unit: "g",
  511. executeStyle: null,
  512. },
  513. {
  514. defaultDroneRatio: null,
  515. defaultName: "15-15-15复合肥",
  516. defaultRatio: 0,
  517. id: null,
  518. muPrice: null,
  519. muUsage: 45000.0,
  520. muUsage2: 45000.0,
  521. ratio: 0,
  522. ratio2: 0,
  523. remark: "",
  524. usageMode: "",
  525. usageModeList: ["根部施"],
  526. orderId: null,
  527. pesticideFertilizerCode: "1002",
  528. pesticideFertilizerId: "2",
  529. pesticideFertilizerName: "15-15-15复合肥",
  530. brand: "金正大",
  531. typeName: "营养",
  532. price: 220,
  533. unit: "g",
  534. executeStyle: null,
  535. },
  536. ],
  537. },
  538. ],
  539. conditionList: [
  540. {
  541. index: "1-2-001-02-02-02-01-0008",
  542. name: "园区叶芽率",
  543. type: 1,
  544. value: "0.2",
  545. },
  546. ],
  547. },
  548. {
  549. targetId: "part3",
  550. title: "梢期营养",
  551. consequenceText: "如果不做本次农事,会导致您的产量、质量下降5%,管理得分降低2分",
  552. reCheckText: "本次农事复核成效优异,作物产量潜力实现大幅增长,树体营养较充足,转色速度非常稳定,转色率超过80%",
  553. farmName: "荔枝博览园",
  554. farmPoint: "POINT(113.61702297075017 23.584863449735067)",
  555. orderId: "745923697054846976",
  556. area: 2.719998598098755,
  557. expert: 91356,
  558. orderStatus: 4,
  559. activeStatus: 0,
  560. farmId: 766,
  561. regionId: 2,
  562. speciesId: "1",
  563. speciesName: "荔枝",
  564. agriculturalId: 24,
  565. farmWorkId: "699343457482706947",
  566. farmWorkLibId: "699343457482706947",
  567. farmWorkLibName: "转色营养",
  568. farmWorkName: "转色营养",
  569. expertIcon:
  570. "https://birdseye-img.sysuimars.com/birdseye-look-vue/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20250411150343.png",
  571. expertName: "韦帮稳",
  572. expertUserIcon: "",
  573. expertUserName: "韦帮稳",
  574. icon: 0,
  575. indexChart: [],
  576. indexName: "",
  577. beforeExecuteDate: "2025-05-26",
  578. checkDate: null,
  579. executeDate: "2025-05-26",
  580. indexJson: "",
  581. code: "BZ-YY-06-ZSYY-100",
  582. expertPrescription: "",
  583. condition: "园区转色率大于20.0%",
  584. solarName: "",
  585. reCheck: null,
  586. executeBlueZones: [
  587. {
  588. id: "ws0y1m6x7cjz",
  589. level: null,
  590. },
  591. {
  592. id: "ws0y1md9v3ht",
  593. level: null,
  594. },
  595. {
  596. id: "ws0y1mdspbk7",
  597. level: null,
  598. },
  599. {
  600. id: "ws0y1mdvvdsz",
  601. level: null,
  602. },
  603. {
  604. id: "ws0y1me545tg",
  605. level: null,
  606. },
  607. ],
  608. menu: 1,
  609. isEdit: 0,
  610. isMaster: null,
  611. num: null,
  612. purpose: "",
  613. selfExec: null,
  614. defaultFarmWork: 0,
  615. farmWorkType: 2,
  616. farmWorkTypeName: "营养",
  617. type: 1,
  618. execute: 4,
  619. updateDate0: "2025-08-20",
  620. updateDate1: null,
  621. updateDate2: null,
  622. updateDate3: null,
  623. updateDate4: null,
  624. updateDate5: null,
  625. usageMode: "根部施",
  626. serviceMain: "广州泽秾丰农资有限公司",
  627. updateDate6: null,
  628. confirmPicture: [],
  629. executeMain: "广州泽秾丰农资有限公司",
  630. storeShortName: "泽秾丰",
  631. weatherWarningMsg: "",
  632. executeEvidence: [],
  633. userEvaluation: null,
  634. reviewDate: null,
  635. reviewDate2: null,
  636. reviewImage: [],
  637. reviewImage2: [],
  638. serviceRegion: "广州市从化区荔枝博览园",
  639. users: [
  640. {
  641. id: null,
  642. orderId: null,
  643. serviceType: null,
  644. userType: null,
  645. userId: 81881,
  646. joinStatus: null,
  647. icon: "https://birdseye-img.sysuimars.com/birdseye-look-mini/Group%201321316260.png",
  648. userName: "飞鸟种植助手",
  649. area: "",
  650. point: "",
  651. farmName: "",
  652. selected: null,
  653. },
  654. ],
  655. cost: null,
  656. prescriptionList: [
  657. {
  658. name: "营养",
  659. pesticideFertilizerList: [
  660. {
  661. defaultDroneRatio: null,
  662. defaultName: "矿源黄腐酸钾",
  663. defaultRatio: 2000,
  664. id: null,
  665. muPrice: null,
  666. muUsage: 4.0,
  667. muUsage2: 4.0,
  668. ratio: 2000,
  669. ratio2: 200,
  670. remark: "",
  671. usageMode: "",
  672. usageModeList: ["叶面施、根部施"],
  673. orderId: null,
  674. pesticideFertilizerCode: "1166",
  675. pesticideFertilizerId: "166",
  676. pesticideFertilizerName: "矿源黄腐酸钾",
  677. brand: "广州大炎",
  678. typeName: "营养",
  679. price: 15000,
  680. unit: "g",
  681. executeStyle: null,
  682. },
  683. {
  684. defaultDroneRatio: null,
  685. defaultName: "有机质水溶肥",
  686. defaultRatio: 5000,
  687. id: null,
  688. muPrice: null,
  689. muUsage: 10.0,
  690. muUsage2: 10.0,
  691. ratio: 5000,
  692. ratio2: 500,
  693. remark: "",
  694. usageMode: "",
  695. usageModeList: ["叶面施"],
  696. orderId: null,
  697. pesticideFertilizerCode: "1167",
  698. pesticideFertilizerId: "167",
  699. pesticideFertilizerName: "有机质水溶肥",
  700. brand: "广州大炎",
  701. typeName: "营养",
  702. price: 10000,
  703. unit: "g",
  704. executeStyle: null,
  705. },
  706. {
  707. defaultDroneRatio: null,
  708. defaultName: "磷酸二氢钾",
  709. defaultRatio: 5000,
  710. id: null,
  711. muPrice: null,
  712. muUsage: 10.0,
  713. muUsage2: 10.0,
  714. ratio: 5000,
  715. ratio2: 500,
  716. remark: "",
  717. usageMode: "",
  718. usageModeList: ["叶面施、根部施"],
  719. orderId: null,
  720. pesticideFertilizerCode: "1168",
  721. pesticideFertilizerId: "168",
  722. pesticideFertilizerName: "磷酸二氢钾",
  723. brand: "广州大炎",
  724. typeName: "营养",
  725. price: 12000,
  726. unit: "g",
  727. executeStyle: null,
  728. },
  729. {
  730. defaultDroneRatio: null,
  731. defaultName: "高钾复合肥",
  732. defaultRatio: 5000,
  733. id: null,
  734. muPrice: null,
  735. muUsage: 10.0,
  736. muUsage2: 10.0,
  737. ratio: 5000,
  738. ratio2: 500,
  739. remark: "",
  740. usageMode: "",
  741. usageModeList: ["根部施"],
  742. orderId: null,
  743. pesticideFertilizerCode: "1169",
  744. pesticideFertilizerId: "169",
  745. pesticideFertilizerName: "高钾复合肥",
  746. brand: "未知",
  747. typeName: "营养",
  748. price: 245,
  749. unit: "g",
  750. executeStyle: null,
  751. },
  752. {
  753. defaultDroneRatio: null,
  754. defaultName: "红牛硫酸钾",
  755. defaultRatio: 5000,
  756. id: null,
  757. muPrice: null,
  758. muUsage: 10.0,
  759. muUsage2: 10.0,
  760. ratio: 5000,
  761. ratio2: 500,
  762. remark: "",
  763. usageMode: "",
  764. usageModeList: ["根部施"],
  765. orderId: null,
  766. pesticideFertilizerCode: "1170",
  767. pesticideFertilizerId: "170",
  768. pesticideFertilizerName: "红牛硫酸钾",
  769. brand: "广州大炎",
  770. typeName: "营养",
  771. price: 230,
  772. unit: "g",
  773. executeStyle: null,
  774. },
  775. ],
  776. },
  777. ],
  778. conditionList: [
  779. {
  780. index: "1-2-016-02-02-02-01-0008",
  781. name: "园区转色率",
  782. type: 1,
  783. value: "0.2",
  784. },
  785. ],
  786. },
  787. {
  788. targetId: "part4",
  789. title: "巡园农事",
  790. parentTitle: "开花期",
  791. consequenceText: "如果不做本次农事,会导致您的产量、质量下降20%,管理得分降低8分",
  792. id: "274672",
  793. reCheckText: "本次农事复核成效优异,作物产量潜力实现大幅增长,病虫害基数得到大幅下降,未发现病虫害风险",
  794. farmName: "荔枝博览园",
  795. farmPoint: "POINT(113.61702297075017 23.584863449735067)",
  796. orderId: "745923690209742848",
  797. area: 2.719998598098755,
  798. expert: 91356,
  799. orderStatus: 4,
  800. activeStatus: 0,
  801. farmId: 766,
  802. regionId: 2,
  803. speciesId: "1",
  804. speciesName: "荔枝",
  805. agriculturalId: 24,
  806. farmWorkId: "699343457478512646",
  807. farmWorkLibId: "699343457478512646",
  808. farmWorkLibName: "果期防治II",
  809. farmWorkName: "果期防治II",
  810. expertIcon:
  811. "https://birdseye-img.sysuimars.com/birdseye-look-vue/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20250411150343.png",
  812. expertName: "韦帮稳",
  813. expertUserIcon: "",
  814. expertUserName: "韦帮稳",
  815. icon: 1,
  816. indexChart: [],
  817. indexName: "",
  818. beforeExecuteDate: "2025-05-06",
  819. checkDate: null,
  820. executeDate: "2025-05-12",
  821. indexJson: "",
  822. code: "BZ-BC-06-GQFZ2-100",
  823. expertPrescription: "",
  824. condition: "园区膨果率大于20.0%",
  825. solarName: "",
  826. reCheck: null,
  827. executeBlueZones: [
  828. {
  829. id: "ws0y1m6x7cjz",
  830. level: null,
  831. },
  832. {
  833. id: "ws0y1md9v3ht",
  834. level: null,
  835. },
  836. {
  837. id: "ws0y1mdspbk7",
  838. level: null,
  839. },
  840. {
  841. id: "ws0y1mdvvdsz",
  842. level: null,
  843. },
  844. {
  845. id: "ws0y1me545tg",
  846. level: null,
  847. },
  848. ],
  849. menu: 1,
  850. isEdit: 0,
  851. isMaster: null,
  852. num: null,
  853. purpose: "",
  854. selfExec: null,
  855. defaultFarmWork: 0,
  856. farmWorkType: 3,
  857. farmWorkTypeName: "病虫",
  858. type: 1,
  859. execute: 4,
  860. updateDate0: "2025-08-20",
  861. updateDate1: null,
  862. updateDate2: null,
  863. updateDate3: null,
  864. updateDate4: null,
  865. updateDate5: null,
  866. usageMode: "叶面施",
  867. serviceMain: "广州泽秾丰农资有限公司",
  868. updateDate6: null,
  869. confirmPicture: [],
  870. executeMain: "广州泽秾丰农资有限公司",
  871. storeShortName: "泽秾丰",
  872. weatherWarningMsg: "",
  873. executeEvidence: [],
  874. userEvaluation: null,
  875. reviewDate: null,
  876. reviewDate2: null,
  877. reviewImage: [],
  878. reviewImage2: [],
  879. serviceRegion: "广州市从化区荔枝博览园",
  880. users: [
  881. {
  882. id: null,
  883. orderId: null,
  884. serviceType: null,
  885. userType: null,
  886. userId: 81881,
  887. joinStatus: null,
  888. icon: "https://birdseye-img.sysuimars.com/birdseye-look-mini/Group%201321316260.png",
  889. userName: "飞鸟种植助手",
  890. area: "",
  891. point: "",
  892. farmName: "",
  893. selected: null,
  894. },
  895. ],
  896. cost: null,
  897. prescriptionList: [
  898. {
  899. name: "病虫",
  900. pesticideFertilizerList: [
  901. {
  902. defaultDroneRatio: null,
  903. defaultName: "威远.绿凯",
  904. defaultRatio: 150000,
  905. id: null,
  906. muPrice: null,
  907. muUsage: 150.0,
  908. muUsage2: 150.0,
  909. ratio: 150000,
  910. ratio2: 15000,
  911. remark: "",
  912. usageMode: "",
  913. usageModeList: ["叶面施"],
  914. orderId: null,
  915. pesticideFertilizerCode: "1147",
  916. pesticideFertilizerId: "147",
  917. pesticideFertilizerName: "威远.绿凯",
  918. brand: "利民控股绿凯",
  919. typeName: "病虫",
  920. price: 90,
  921. unit: "g",
  922. executeStyle: null,
  923. },
  924. {
  925. defaultDroneRatio: null,
  926. defaultName: "微量元素益元液",
  927. defaultRatio: 150000,
  928. id: null,
  929. muPrice: null,
  930. muUsage: 300.0,
  931. muUsage2: 300.0,
  932. ratio: 150000,
  933. ratio2: 15000,
  934. remark: "",
  935. usageMode: "",
  936. usageModeList: ["叶面施"],
  937. orderId: null,
  938. pesticideFertilizerCode: "1174",
  939. pesticideFertilizerId: "174",
  940. pesticideFertilizerName: "微量元素益元液",
  941. brand: "广州大炎",
  942. typeName: "营养",
  943. price: 60,
  944. unit: "ml",
  945. executeStyle: null,
  946. },
  947. {
  948. defaultDroneRatio: null,
  949. defaultName: "中量元素益元液",
  950. defaultRatio: 150000,
  951. id: null,
  952. muPrice: null,
  953. muUsage: 300.0,
  954. muUsage2: 300.0,
  955. ratio: 150000,
  956. ratio2: 15000,
  957. remark: "",
  958. usageMode: "",
  959. usageModeList: ["叶面施"],
  960. orderId: null,
  961. pesticideFertilizerCode: "1175",
  962. pesticideFertilizerId: "175",
  963. pesticideFertilizerName: "中量元素益元液",
  964. brand: "广州大炎",
  965. typeName: "营养",
  966. price: 30,
  967. unit: "ml",
  968. executeStyle: null,
  969. },
  970. {
  971. defaultDroneRatio: null,
  972. defaultName: "济南中科翠剑",
  973. defaultRatio: 150000,
  974. id: null,
  975. muPrice: null,
  976. muUsage: 150.0,
  977. muUsage2: 150.0,
  978. ratio: 150000,
  979. ratio2: 15000,
  980. remark: "",
  981. usageMode: "",
  982. usageModeList: ["叶面施"],
  983. orderId: null,
  984. pesticideFertilizerCode: "1149",
  985. pesticideFertilizerId: "149",
  986. pesticideFertilizerName: "吡唑醚菌酯",
  987. brand: "济南中科翠剑",
  988. typeName: "病虫",
  989. price: 60,
  990. unit: "g",
  991. executeStyle: null,
  992. },
  993. {
  994. defaultDroneRatio: null,
  995. defaultName: "佳果天成",
  996. defaultRatio: 150000,
  997. id: null,
  998. muPrice: null,
  999. muUsage: 300.0,
  1000. muUsage2: 300.0,
  1001. ratio: 150000,
  1002. ratio2: 15000,
  1003. remark: "",
  1004. usageMode: "",
  1005. usageModeList: ["叶面施"],
  1006. orderId: null,
  1007. pesticideFertilizerCode: "1171",
  1008. pesticideFertilizerId: "171",
  1009. pesticideFertilizerName: "佳果天成",
  1010. brand: "广州大炎",
  1011. typeName: "营养",
  1012. price: 120,
  1013. unit: "ml",
  1014. executeStyle: null,
  1015. },
  1016. {
  1017. defaultDroneRatio: null,
  1018. defaultName: "高效氟氯氰菊酯",
  1019. defaultRatio: 150000,
  1020. id: null,
  1021. muPrice: null,
  1022. muUsage: 150.0,
  1023. muUsage2: 150.0,
  1024. ratio: 150000,
  1025. ratio2: 15000,
  1026. remark: "",
  1027. usageMode: "",
  1028. usageModeList: ["叶面施"],
  1029. orderId: null,
  1030. pesticideFertilizerCode: "1155",
  1031. pesticideFertilizerId: "155",
  1032. pesticideFertilizerName: "高效氟氯氰菊酯",
  1033. brand: "广东立威.立功",
  1034. typeName: "病虫",
  1035. price: 50,
  1036. unit: "ml",
  1037. executeStyle: null,
  1038. },
  1039. {
  1040. defaultDroneRatio: null,
  1041. defaultName: "联苯噻虫嗪",
  1042. defaultRatio: 150000,
  1043. id: null,
  1044. muPrice: null,
  1045. muUsage: 150.0,
  1046. muUsage2: 150.0,
  1047. ratio: 150000,
  1048. ratio2: 15000,
  1049. remark: "",
  1050. usageMode: "",
  1051. usageModeList: ["叶面施"],
  1052. orderId: null,
  1053. pesticideFertilizerCode: "1156",
  1054. pesticideFertilizerId: "156",
  1055. pesticideFertilizerName: "联苯噻虫嗪",
  1056. brand: "青岛金正飞灵",
  1057. typeName: "病虫",
  1058. price: 60,
  1059. unit: "ml",
  1060. executeStyle: null,
  1061. },
  1062. ],
  1063. },
  1064. ],
  1065. conditionList: [
  1066. {
  1067. index: "1-2-014-02-02-02-01-0008",
  1068. name: "园区膨果率",
  1069. type: 1,
  1070. value: "0.2",
  1071. },
  1072. ],
  1073. },
  1074. {
  1075. id: "part5",
  1076. title: "摇花吹花",
  1077. parentTitle: "开花期",
  1078. consequenceText: "如果不做本次农事,会导致您的产量、质量下降15%,管理得分降低5分",
  1079. id: "274671",
  1080. reCheckText: "本次农事复核成效优异,作物产量潜力实现大幅增长,树体营养较充足,膨果速度非常稳定,膨果率超过80%",
  1081. farmName: "荔枝博览园",
  1082. farmPoint: "POINT(113.61702297075017 23.584863449735067)",
  1083. orderId: "745923686854299648",
  1084. area: 2.719998598098755,
  1085. expert: 91356,
  1086. orderStatus: 4,
  1087. activeStatus: 0,
  1088. farmId: 766,
  1089. regionId: 2,
  1090. speciesId: "1",
  1091. speciesName: "荔枝",
  1092. agriculturalId: 24,
  1093. farmWorkId: "699343457482706944",
  1094. farmWorkLibId: "699343457482706944",
  1095. farmWorkLibName: "膨果营养",
  1096. farmWorkName: "膨果营养",
  1097. expertIcon:
  1098. "https://birdseye-img.sysuimars.com/birdseye-look-vue/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20250411150343.png",
  1099. expertName: "韦帮稳",
  1100. expertUserIcon: "",
  1101. expertUserName: "韦帮稳",
  1102. icon: 2,
  1103. indexChart: [],
  1104. indexName: "",
  1105. beforeExecuteDate: "2025-05-01",
  1106. checkDate: null,
  1107. executeDate: "2025-05-06",
  1108. indexJson: "",
  1109. code: "BZ-YY-06-PGYY-100",
  1110. expertPrescription: "",
  1111. condition: "园区膨果率大于10.0%",
  1112. solarName: "",
  1113. reCheck: null,
  1114. executeBlueZones: [
  1115. {
  1116. id: "ws0y1m6x7cjz",
  1117. level: null,
  1118. },
  1119. {
  1120. id: "ws0y1md9v3ht",
  1121. level: null,
  1122. },
  1123. {
  1124. id: "ws0y1mdspbk7",
  1125. level: null,
  1126. },
  1127. {
  1128. id: "ws0y1mdvvdsz",
  1129. level: null,
  1130. },
  1131. {
  1132. id: "ws0y1me545tg",
  1133. level: null,
  1134. },
  1135. ],
  1136. menu: 1,
  1137. isEdit: 0,
  1138. isMaster: null,
  1139. num: null,
  1140. purpose: "",
  1141. selfExec: null,
  1142. defaultFarmWork: 0,
  1143. farmWorkType: 2,
  1144. farmWorkTypeName: "营养",
  1145. type: 1,
  1146. execute: 4,
  1147. updateDate0: "2025-08-20",
  1148. updateDate1: null,
  1149. updateDate2: null,
  1150. updateDate3: null,
  1151. updateDate4: null,
  1152. updateDate5: null,
  1153. usageMode: "根部施",
  1154. serviceMain: "广州泽秾丰农资有限公司",
  1155. updateDate6: null,
  1156. confirmPicture: [],
  1157. executeMain: "广州泽秾丰农资有限公司",
  1158. storeShortName: "泽秾丰",
  1159. weatherWarningMsg: "",
  1160. executeEvidence: [],
  1161. userEvaluation: null,
  1162. reviewDate: null,
  1163. reviewDate2: null,
  1164. reviewImage: [],
  1165. reviewImage2: [],
  1166. serviceRegion: "广州市从化区荔枝博览园",
  1167. users: [
  1168. {
  1169. id: null,
  1170. orderId: null,
  1171. serviceType: null,
  1172. userType: null,
  1173. userId: 81881,
  1174. joinStatus: null,
  1175. icon: "https://birdseye-img.sysuimars.com/birdseye-look-mini/Group%201321316260.png",
  1176. userName: "飞鸟种植助手",
  1177. area: "",
  1178. point: "",
  1179. farmName: "",
  1180. selected: null,
  1181. },
  1182. ],
  1183. cost: null,
  1184. prescriptionList: [
  1185. {
  1186. name: "营养",
  1187. pesticideFertilizerList: [
  1188. {
  1189. defaultDroneRatio: null,
  1190. defaultName: "硝酸铵钙",
  1191. defaultRatio: 0,
  1192. id: null,
  1193. muPrice: null,
  1194. muUsage: 15000.0,
  1195. muUsage2: 15000.0,
  1196. ratio: 0,
  1197. ratio2: 0,
  1198. remark: "",
  1199. usageMode: "",
  1200. usageModeList: ["根部施"],
  1201. orderId: null,
  1202. pesticideFertilizerCode: "1162",
  1203. pesticideFertilizerId: "162",
  1204. pesticideFertilizerName: "硝酸铵钙",
  1205. brand: "未知",
  1206. typeName: "营养",
  1207. price: 2000,
  1208. unit: "g",
  1209. executeStyle: null,
  1210. },
  1211. {
  1212. defaultDroneRatio: null,
  1213. defaultName: "氯化钾",
  1214. defaultRatio: 0,
  1215. id: null,
  1216. muPrice: null,
  1217. muUsage: 15000.0,
  1218. muUsage2: 15000.0,
  1219. ratio: 0,
  1220. ratio2: 0,
  1221. remark: "",
  1222. usageMode: "",
  1223. usageModeList: ["根部施"],
  1224. orderId: null,
  1225. pesticideFertilizerCode: "1163",
  1226. pesticideFertilizerId: "163",
  1227. pesticideFertilizerName: "氯化钾",
  1228. brand: "未知",
  1229. typeName: "营养",
  1230. price: 4500,
  1231. unit: "g",
  1232. executeStyle: null,
  1233. },
  1234. {
  1235. defaultDroneRatio: null,
  1236. defaultName: "高氮水溶肥",
  1237. defaultRatio: 5000,
  1238. id: null,
  1239. muPrice: null,
  1240. muUsage: 10.0,
  1241. muUsage2: 10.0,
  1242. ratio: 5000,
  1243. ratio2: 500,
  1244. remark: "",
  1245. usageMode: "",
  1246. usageModeList: ["叶面施"],
  1247. orderId: null,
  1248. pesticideFertilizerCode: "1165",
  1249. pesticideFertilizerId: "165",
  1250. pesticideFertilizerName: "高氮水溶肥",
  1251. brand: "广州大炎",
  1252. typeName: "营养",
  1253. price: 8500,
  1254. unit: "g",
  1255. executeStyle: null,
  1256. },
  1257. {
  1258. defaultDroneRatio: null,
  1259. defaultName: "矿源黄腐酸钾",
  1260. defaultRatio: 2000,
  1261. id: null,
  1262. muPrice: null,
  1263. muUsage: 4.0,
  1264. muUsage2: 4.0,
  1265. ratio: 2000,
  1266. ratio2: 200,
  1267. remark: "",
  1268. usageMode: "",
  1269. usageModeList: ["叶面施、根部施"],
  1270. orderId: null,
  1271. pesticideFertilizerCode: "1166",
  1272. pesticideFertilizerId: "166",
  1273. pesticideFertilizerName: "矿源黄腐酸钾",
  1274. brand: "广州大炎",
  1275. typeName: "营养",
  1276. price: 15000,
  1277. unit: "g",
  1278. executeStyle: null,
  1279. },
  1280. ],
  1281. },
  1282. ],
  1283. conditionList: [
  1284. {
  1285. index: "1-2-014-02-02-02-01-0008",
  1286. name: "园区膨果率",
  1287. type: 1,
  1288. value: "0.1",
  1289. },
  1290. ],
  1291. },
  1292. ]);
  1293. const planList = ref([{name: "方案1",}, {name: "方案2"}]);
  1294. const activePlanIndex = ref(0);
  1295. const handlePlanClick = (index) => {
  1296. activePlanIndex.value = index;
  1297. };
  1298. const addGroupRef = ref(null);
  1299. // 新增方案
  1300. function newPlan() {
  1301. addGroupRef.value.openClientPopup()
  1302. }
  1303. // 将专家处方添加到我的处方
  1304. function addToMyPlan() {
  1305. addGroupRef.value.openClientPopup("edit")
  1306. }
  1307. </script>
  1308. <style lang="scss" scoped>
  1309. .plan-page {
  1310. position: relative;
  1311. height: calc(100vh - 50px);
  1312. .plan-title {
  1313. width: 158px;
  1314. margin: 0 auto;
  1315. padding: 6px 0;
  1316. .tabs {
  1317. display: flex;
  1318. position: relative;
  1319. height: 36px;
  1320. line-height: 36px;
  1321. .tab {
  1322. flex: 1;
  1323. text-align: center;
  1324. cursor: pointer;
  1325. color: rgba(0, 0, 0, 0.5);
  1326. z-index: 2;
  1327. transition: color 0.3s ease;
  1328. position: relative;
  1329. &.active {
  1330. color: #000000;
  1331. font-weight: bold;
  1332. }
  1333. .badge-dot {
  1334. position: absolute;
  1335. top: 0;
  1336. right: -6px;
  1337. width: 16px;
  1338. height: 16px;
  1339. background-color: #ff0000;
  1340. border-radius: 50%;
  1341. font-size: 12px;
  1342. line-height: 16px;
  1343. color: #fff;
  1344. }
  1345. }
  1346. .slider {
  1347. position: absolute;
  1348. height: 4px;
  1349. width: 24px;
  1350. background: #2199f8;
  1351. border-radius: 16px;
  1352. bottom: 0;
  1353. left: calc(25% - 12px); /* 初始位置在第一个选项卡中间 */
  1354. transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
  1355. }
  1356. }
  1357. .content {
  1358. padding: 20px;
  1359. background: #f8f9fa;
  1360. border-radius: 8px;
  1361. min-height: 200px;
  1362. }
  1363. .content-section {
  1364. display: none;
  1365. animation: fadeIn 0.5s ease;
  1366. }
  1367. .content-section.active {
  1368. display: block;
  1369. }
  1370. @keyframes fadeIn {
  1371. from {
  1372. opacity: 0;
  1373. transform: translateY(10px);
  1374. }
  1375. to {
  1376. opacity: 1;
  1377. transform: translateY(0);
  1378. }
  1379. }
  1380. }
  1381. .plan-content {
  1382. background: #f5f7fb;
  1383. .filter-wrap {
  1384. padding: 10px 0;
  1385. width: 100%;
  1386. display: flex;
  1387. align-items: center;
  1388. justify-content: space-between;
  1389. .type-cascader {
  1390. flex: 1;
  1391. text-align: center;
  1392. ::v-deep {
  1393. .el-input__inner {
  1394. width: 80px;
  1395. }
  1396. }
  1397. }
  1398. .filter-item {
  1399. width: fit-content;
  1400. ::v-deep {
  1401. .el-input__wrapper {
  1402. background: none;
  1403. box-shadow: none;
  1404. }
  1405. .el-input__inner {
  1406. font-size: 14px;
  1407. color: rgba(0, 0, 0, 0.5);
  1408. }
  1409. .el-select__wrapper {
  1410. background: none;
  1411. box-shadow: none;
  1412. gap: 2px;
  1413. padding: 4px 2px;
  1414. justify-content: center;
  1415. }
  1416. .el-select__selection {
  1417. flex: none;
  1418. width: fit-content;
  1419. }
  1420. .el-select__placeholder {
  1421. color: rgba(0, 0, 0, 0.5);
  1422. position: static;
  1423. transform: none;
  1424. width: fit-content;
  1425. }
  1426. }
  1427. }
  1428. }
  1429. }
  1430. .fixed-bottom {
  1431. position: absolute;
  1432. bottom: 12px;
  1433. left: 12px;
  1434. width: calc(100% - 24px);
  1435. display: flex;
  1436. align-items: center;
  1437. justify-content: space-between;
  1438. padding: 14px 12px;
  1439. background: linear-gradient(180deg, #f0f8ff 6px, #FFFFFF 20px);
  1440. border-radius: 14px;
  1441. box-sizing: border-box;
  1442. box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.1);
  1443. .bottom-l {
  1444. display: flex;
  1445. align-items: center;
  1446. .l-btn {
  1447. border: 1px solid rgba(153, 153, 153, 0.5);
  1448. border-radius: 30px;
  1449. padding: 0 8px 0 12px;
  1450. height: 32px;
  1451. line-height: 32px;
  1452. box-sizing: border-box;
  1453. display: flex;
  1454. align-items: center;
  1455. justify-content: center;
  1456. color: #666666;
  1457. .btn-icon {
  1458. padding-right: 3px;
  1459. }
  1460. .calculator-icon {
  1461. width: 12px;
  1462. }
  1463. }
  1464. .l-btn + .l-btn {
  1465. margin-left: 10px;
  1466. }
  1467. }
  1468. .bottom-r {
  1469. height: 32px;
  1470. line-height: 32px;
  1471. background: #2199F8;
  1472. border-radius: 20px;
  1473. color: #fff;
  1474. padding: 0 12px;
  1475. }
  1476. }
  1477. .expert-prescription {
  1478. display: flex;
  1479. width: 100%;
  1480. height: calc(100vh - 52px - 48px - 50px);
  1481. .plan-menu {
  1482. width: 100px;
  1483. height: 100%;
  1484. padding: 10px 0;
  1485. box-sizing: border-box;
  1486. background: #fff;
  1487. border-radius: 0 10px 10px 0;
  1488. .menu-icon {
  1489. width: 13px;
  1490. }
  1491. .menu-text {
  1492. padding: 0 4px;
  1493. }
  1494. ::v-deep {
  1495. .el-anchor {
  1496. height: 100%;
  1497. background: none;
  1498. }
  1499. .el-anchor__marker {
  1500. display: none;
  1501. }
  1502. .el-menu {
  1503. background: none;
  1504. border: none;
  1505. .el-sub-menu__title {
  1506. background: none;
  1507. padding: 0 2px;
  1508. justify-content: center;
  1509. }
  1510. .el-sub-menu__title {
  1511. height: 32px;
  1512. }
  1513. .el-sub-menu .el-sub-menu__icon-arrow {
  1514. position: static;
  1515. padding-top: 6px;
  1516. }
  1517. .el-sub-menu {
  1518. margin-bottom: 16px;
  1519. &.is-opened {
  1520. .el-sub-menu__icon-arrow {
  1521. padding-bottom: 6px;
  1522. padding-top: 0;
  1523. }
  1524. }
  1525. .el-menu-item {
  1526. height: 32px;
  1527. line-height: 32px;
  1528. margin: 4px 8px;
  1529. padding: 0 2px;
  1530. justify-content: center;
  1531. background: none;
  1532. }
  1533. .el-menu-item.is-active {
  1534. background: none;
  1535. color: #fff;
  1536. }
  1537. .el-anchor__item {
  1538. width: 100%;
  1539. text-align: center;
  1540. }
  1541. .el-anchor__link {
  1542. color: #666666;
  1543. }
  1544. .el-anchor__link.is-active {
  1545. background: linear-gradient(180deg, #70bffe, #2199f8);
  1546. border-radius: 20px;
  1547. color: #fff;
  1548. }
  1549. }
  1550. }
  1551. .el-anchor__list {
  1552. padding-left: 0;
  1553. }
  1554. }
  1555. }
  1556. .expert-content {
  1557. width: calc(100% - 100px);
  1558. height: 100%;
  1559. overflow: auto;
  1560. padding-bottom: 80px;
  1561. box-sizing: border-box;
  1562. .content-section {
  1563. position: relative;
  1564. .section-id {
  1565. position: absolute;
  1566. // top: -6px;
  1567. top: 0;
  1568. width: 100%;
  1569. height: 1px;
  1570. }
  1571. }
  1572. .box-title {
  1573. display: flex;
  1574. align-items: center;
  1575. justify-content: space-between;
  1576. padding-bottom: 8px;
  1577. border-bottom: 1px solid #f5f5f5;
  1578. margin-bottom: 8px;
  1579. .title-l {
  1580. font-size: 16px;
  1581. font-weight: 600;
  1582. color: #000;
  1583. .parent-text {
  1584. margin-left: 5px;
  1585. font-size: 12px;
  1586. font-weight: normal;
  1587. padding: 4px 6px;
  1588. border-radius: 14px;
  1589. background: rgba(119, 119, 119, 0.1);
  1590. }
  1591. }
  1592. .title-btn {
  1593. width: 24px;
  1594. height: 24px;
  1595. border-radius: 50%;
  1596. background: #2199f8;
  1597. display: flex;
  1598. align-items: center;
  1599. justify-content: center;
  1600. }
  1601. }
  1602. }
  1603. }
  1604. .my-recipe {
  1605. .filter-wrap {
  1606. .plan-box {
  1607. display: flex;
  1608. overflow: auto;
  1609. white-space: nowrap;
  1610. align-items: center;
  1611. padding-left: 12px;
  1612. .plan-item {
  1613. color: #000000;
  1614. background: #F1F1F1;
  1615. padding: 0 12px;
  1616. height: 32px;
  1617. line-height: 32px;
  1618. border-radius: 20px;
  1619. &.active {
  1620. background: rgba(33, 153, 248, 0.2);
  1621. color: #2199F8;
  1622. }
  1623. }
  1624. .plan-item + .plan-item {
  1625. margin-left: 10px;
  1626. }
  1627. }
  1628. .plan-add {
  1629. width: 80px;
  1630. height: 30px;
  1631. border: 1px solid #2199F8;
  1632. border-radius: 20px;
  1633. flex: none;
  1634. line-height: 32px;
  1635. text-align: center;
  1636. margin: 0 12px;
  1637. color: #2199F8;
  1638. font-size: 14px;
  1639. }
  1640. }
  1641. .title-r {
  1642. display: flex;
  1643. align-items: center;
  1644. .btn-item {
  1645. width: 24px;
  1646. height: 24px;
  1647. border-radius: 50%;
  1648. display: flex;
  1649. align-items: center;
  1650. justify-content: center;
  1651. background: #2199F8;
  1652. &.del-btn {
  1653. margin-right: 5px;
  1654. background: #FF953D;
  1655. }
  1656. }
  1657. }
  1658. }
  1659. }
  1660. </style>