prodInputFlux.vue 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. <template>
  2. <div class="fertilizer-input-form">
  3. <el-card shadow="always" class="form-card">
  4. <div class="card-content">
  5. <div class="input-section">
  6. <el-form label-width="250px" label-position="top">
  7. <div class="form-section">
  8. <div class="input-group">
  9. <el-form-item label="氮肥镉含量平均值 (mg/kg)" class="form-item">
  10. <el-input v-model="nitrogenCdContent" placeholder="0.05"></el-input>
  11. </el-form-item>
  12. <el-form-item label="氮肥单位面积使用量 (t/ha/a)" class="form-item">
  13. <el-input v-model="nitrogenUsage" placeholder="0.05"></el-input>
  14. </el-form-item>
  15. </div>
  16. <div class="input-group">
  17. <el-form-item label="磷肥镉含量平均值 (mg/kg)" class="form-item">
  18. <el-input v-model="phosphorusCdContent" placeholder="0.158"></el-input>
  19. </el-form-item>
  20. <el-form-item label="磷肥单位面积使用量 (t/ha/a)" class="form-item">
  21. <el-input v-model="phosphorusUsage" placeholder="0.158"></el-input>
  22. </el-form-item>
  23. </div>
  24. <div class="input-group">
  25. <el-form-item label="钾肥镉含量平均值 (mg/kg)" class="form-item">
  26. <el-input v-model="potassiumCdContent" placeholder="0.06"></el-input>
  27. </el-form-item>
  28. <el-form-item label="钾肥单位面积使用量 (t/ha/a)" class="form-item">
  29. <el-input v-model="potassiumUsage" placeholder="0.06"></el-input>
  30. </el-form-item>
  31. </div>
  32. <div class="input-group">
  33. <el-form-item label="复合肥镉含量平均值 (mg/kg)" class="form-item">
  34. <el-input v-model="compoundFertilizerCdContent" placeholder="0.065"></el-input>
  35. </el-form-item>
  36. <el-form-item label="复合肥单位面积使用量 (t/ha/a)" class="form-item">
  37. <el-input v-model="compoundFertilizerUsage" placeholder="0.065"></el-input>
  38. </el-form-item>
  39. </div>
  40. <div class="input-group">
  41. <el-form-item label="有机肥镉含量平均值 (mg/kg)" class="form-item">
  42. <el-input v-model="organicFertilizerCdContent" placeholder="0.6"></el-input>
  43. </el-form-item>
  44. <el-form-item label="有机肥单位面积使用量 (t/ha/a)" class="form-item">
  45. <el-input v-model="organicFertilizerUsage" placeholder="0.6"></el-input>
  46. </el-form-item>
  47. </div>
  48. <div class="input-group">
  49. <el-form-item label="农药镉含量 (mg/kg)" class="form-item">
  50. <el-input v-model="pesticideCdContent" placeholder="0.25"></el-input>
  51. </el-form-item>
  52. <el-form-item label="农药单位面积使用量 (t/ha/a)" class="form-item">
  53. <el-input v-model="pesticideUsage" placeholder="0.25"></el-input>
  54. </el-form-item>
  55. </div>
  56. <div class="input-group">
  57. <el-form-item label="农家肥镉含量 (mg/kg)" class="form-item">
  58. <el-input v-model="farmYardManureCdContent" placeholder="0.35"></el-input>
  59. </el-form-item>
  60. <el-form-item label="农家肥单位面积使用量 (t/ha/a)" class="form-item">
  61. <el-input v-model="farmYardManureUsage" placeholder="0.35"></el-input>
  62. </el-form-item>
  63. </div>
  64. <div class="input-group">
  65. <el-form-item label="农膜镉含量 (mg/kg)" class="form-item">
  66. <el-input v-model="agriFilmCdContent" placeholder="0.25"></el-input>
  67. </el-form-item>
  68. <el-form-item label="农膜(存留)单位面积使用量 (t/ha/a)" class="form-item">
  69. <el-input v-model="agriFilmResidueUsage" placeholder="0.6"></el-input>
  70. </el-form-item>
  71. </div>
  72. </div>
  73. </el-form>
  74. </div>
  75. <div class="button-section">
  76. <!-- 按钮区域背景图 -->
  77. <div class="button-bg"></div>
  78. <!-- 底部半透明层 -->
  79. <div class="bottom-overlay"></div>
  80. <el-button class="calculate-btn">
  81. <span class="btn-text">农产品输入通量计算</span>
  82. </el-button>
  83. </div>
  84. </div>
  85. </el-card>
  86. </div>
  87. </template>
  88. <script>
  89. export default {
  90. data() {
  91. return {
  92. nitrogenCdContent: '0.05',
  93. nitrogenUsage: '0.05',
  94. phosphorusCdContent: '0.158',
  95. phosphorusUsage: '0.158',
  96. potassiumCdContent: '0.06',
  97. potassiumUsage: '0.06',
  98. compoundFertilizerCdContent: '0.065',
  99. compoundFertilizerUsage: '0.065',
  100. organicFertilizerCdContent: '0.6',
  101. organicFertilizerUsage: '0.6',
  102. pesticideCdContent: '0.25',
  103. pesticideUsage: '0.25',
  104. farmYardManureCdContent: '0.35',
  105. farmYardManureUsage: '0.35',
  106. agriFilmCdContent: '0.25',
  107. agriFilmResidueUsage: '0.6'
  108. };
  109. }
  110. };
  111. </script>
  112. <style scoped>
  113. .fertilizer-input-form {
  114. padding: 20px;
  115. display: flex;
  116. justify-content: center;
  117. background-color: rgba(255, 255, 255, 0.8); /* 半透明背景 */
  118. }
  119. .form-card {
  120. width: 90%;
  121. max-width: 1200px;
  122. margin: 0 auto;
  123. background: linear-gradient(135deg, #FAFDFF, #FFFAA2);
  124. border: 1px solid #e6e6e6;
  125. border-radius: 12px;
  126. overflow: hidden;
  127. box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
  128. }
  129. .card-content {
  130. display: flex;
  131. min-height: 600px;
  132. }
  133. .input-section {
  134. width: 60%;
  135. padding: 30px;
  136. border-right: 1px dashed #c0c4cc;
  137. }
  138. .button-section {
  139. width: 40%;
  140. display: flex;
  141. align-items: center;
  142. justify-content: center;
  143. padding: 30px;
  144. position: relative;
  145. overflow: hidden;
  146. }
  147. /* 按钮区域背景图 - 使用本地图片 */
  148. .button-bg {
  149. position: absolute;
  150. top: 0;
  151. left: 0;
  152. right: 0;
  153. bottom: 0;
  154. /* 请替换为您的本地图片路径 */
  155. background: url('@/assets/images/fertilizer-bg.jpg') no-repeat center center;
  156. background-size: cover;
  157. z-index: 0;
  158. }
  159. /* 底部半透明层 */
  160. .bottom-overlay {
  161. position: absolute;
  162. left: 0;
  163. right: 0;
  164. bottom: 0;
  165. height: 40%;
  166. background: linear-gradient(to top, rgba(255, 255, 255, 0.5), transparent);
  167. z-index: 1;
  168. }
  169. .form-section {
  170. display: flex;
  171. flex-direction: column;
  172. height: 100%;
  173. }
  174. .input-group {
  175. display: flex;
  176. justify-content: space-between;
  177. margin-bottom: 20px;
  178. gap: 20px;
  179. }
  180. .form-item {
  181. flex: 1;
  182. margin-bottom: 0;
  183. display: flex;
  184. flex-direction: column;
  185. align-items: flex-start;
  186. }
  187. .el-form-item__label {
  188. font-size: 16px;
  189. text-align: left;
  190. margin-bottom: 8px;
  191. padding: 0 !important;
  192. font-weight: 600;
  193. color: #333;
  194. }
  195. .el-input {
  196. width: 100%;
  197. }
  198. /* 使用 :deep() 替代已弃用的 >>> */
  199. :deep(.el-input) .el-input__inner {
  200. width: 100% !important;
  201. padding: 12px 0;
  202. border: none;
  203. border-radius: 0;
  204. background: transparent;
  205. /* 底部边框效果 */
  206. border-bottom: 1px solid #dcdfe6;
  207. /* 底部阴影效果 */
  208. box-shadow: 0 1px 0 rgba(0, 0, 0, 0.05);
  209. transition: all 0.3s ease;
  210. }
  211. :deep(.el-input) .el-input__inner:focus {
  212. border-bottom: 2px solid #409EFF;
  213. /* 聚焦时底部阴影加强 */
  214. box-shadow: 0 2px 0 rgba(64, 158, 255, 0.2);
  215. background: rgba(64, 158, 255, 0.03);
  216. }
  217. /* 占位符样式 */
  218. :deep(.el-input) .el-input__inner::placeholder {
  219. color: #a0a0a0;
  220. font-style: italic;
  221. }
  222. .calculate-btn {
  223. width: 100%;
  224. max-width: 300px;
  225. height: 200px;
  226. border: none;
  227. border-radius: 25px !important;
  228. font-size: 24px;
  229. font-weight: bold;
  230. transition: all 0.4s ease;
  231. position: relative;
  232. z-index: 2; /* 确保按钮在覆盖层之上 */
  233. /* 渐变背景色 */
  234. background: linear-gradient(to right, #8DF9F0, #26B046);
  235. /* 按钮整体阴影 */
  236. box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15),
  237. 0 4px 10px rgba(38, 176, 70, 0.3) inset;
  238. }
  239. .calculate-btn:hover {
  240. transform: scale(1.03);
  241. box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2),
  242. 0 4px 12px rgba(38, 176, 70, 0.4) inset;
  243. background: linear-gradient(to right, #7de8df, #20a03d);
  244. }
  245. .calculate-btn:active {
  246. transform: scale(0.98);
  247. box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15),
  248. 0 2px 8px rgba(38, 176, 70, 0.4) inset;
  249. }
  250. .btn-text {
  251. position: relative;
  252. color: white;
  253. text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
  254. font-size: 26px;
  255. letter-spacing: 1px;
  256. z-index: 1;
  257. padding: 20px;
  258. text-align: center;
  259. line-height: 1.4;
  260. }
  261. </style>