field-edit.html 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>编辑地块 - 地块管理</title>
  7. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css">
  8. <link rel="stylesheet" href="https://at.alicdn.com/t/font_3114978_qe0b39no76.css">
  9. <link rel="stylesheet" href="../assets/css/global.css">
  10. <style>
  11. :root {
  12. --primary: #4CAF50;
  13. --primary-dark: #388E3C;
  14. --primary-light: #A5D6A7;
  15. --primary-bg: #F1F8E9;
  16. --success: #4CAF50;
  17. --warning: #FFC107;
  18. --danger: #F44336;
  19. --info: #2196F3;
  20. --disabled: #9E9E9E;
  21. --border: #E0E0E0;
  22. --text-primary: #212121;
  23. --text-secondary: #757575;
  24. --radius: 8px;
  25. }
  26. body {
  27. background-color: #f5f7f9;
  28. color: var(--text-primary);
  29. font-family: "PingFang SC", "Microsoft YaHei", sans-serif;
  30. }
  31. .page-container {
  32. max-width: 1200px;
  33. margin: 0 auto;
  34. padding: 24px;
  35. }
  36. .page-header {
  37. display: flex;
  38. justify-content: space-between;
  39. align-items: center;
  40. margin-bottom: 24px;
  41. }
  42. .page-title {
  43. font-size: 20px;
  44. font-weight: 600;
  45. color: var(--text-primary);
  46. }
  47. .btn-back {
  48. display: inline-flex;
  49. align-items: center;
  50. padding: 8px 16px;
  51. color: #666;
  52. background: #fff;
  53. border: 1px solid #ddd;
  54. border-radius: 4px;
  55. cursor: pointer;
  56. transition: all 0.3s;
  57. }
  58. .btn-back:hover {
  59. color: var(--primary);
  60. border-color: var(--primary);
  61. }
  62. .btn-back i {
  63. margin-right: 4px;
  64. }
  65. .content-card {
  66. background: #fff;
  67. border-radius: var(--radius);
  68. box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  69. padding: 24px;
  70. }
  71. .form-grid {
  72. display: grid;
  73. grid-template-columns: repeat(2, 1fr);
  74. gap: 20px;
  75. }
  76. .form-group {
  77. margin-bottom: 0;
  78. }
  79. .form-label {
  80. display: block;
  81. margin-bottom: 8px;
  82. font-size: 14px;
  83. color: #333;
  84. }
  85. .form-input {
  86. width: 100%;
  87. padding: 8px 12px;
  88. border: 1px solid #ddd;
  89. border-radius: 4px;
  90. font-size: 14px;
  91. transition: all 0.3s;
  92. height: 36px;
  93. }
  94. .form-input:focus {
  95. border-color: var(--primary);
  96. box-shadow: 0 0 0 2px rgba(76, 175, 80, 0.1);
  97. outline: none;
  98. }
  99. .required {
  100. color: #f44336;
  101. margin-left: 4px;
  102. }
  103. .btn {
  104. display: inline-flex;
  105. align-items: center;
  106. justify-content: center;
  107. padding: 8px 16px;
  108. font-size: 14px;
  109. border-radius: 4px;
  110. cursor: pointer;
  111. transition: all 0.3s;
  112. height: 36px;
  113. }
  114. .btn-primary {
  115. background-color: var(--primary);
  116. color: white;
  117. border: none;
  118. }
  119. .btn-primary:hover {
  120. background-color: var(--primary-dark);
  121. }
  122. .btn-outline {
  123. background-color: white;
  124. color: #666;
  125. border: 1px solid #ddd;
  126. }
  127. .btn-outline:hover {
  128. border-color: var(--primary);
  129. color: var(--primary);
  130. }
  131. .footer-actions {
  132. display: flex;
  133. justify-content: flex-end;
  134. gap: 12px;
  135. margin-top: 24px;
  136. padding-top: 24px;
  137. border-top: 1px solid #f0f0f0;
  138. }
  139. @media (max-width: 768px) {
  140. .form-grid {
  141. grid-template-columns: 1fr;
  142. }
  143. }
  144. </style>
  145. </head>
  146. <body>
  147. <div class="page-container">
  148. <div class="page-header">
  149. <h1 class="page-title">编辑地块</h1>
  150. <button class="btn-back" onclick="history.back()">
  151. <i class="iconfont icon-left"></i>返回
  152. </button>
  153. </div>
  154. <div class="content-card">
  155. <form id="fieldForm">
  156. <div class="form-grid">
  157. <div class="form-group">
  158. <label class="form-label">地块名称<span class="required">*</span></label>
  159. <input type="text" name="fieldName" class="form-input" required>
  160. </div>
  161. <div class="form-group">
  162. <label class="form-label">地块编号</label>
  163. <input type="text" name="fieldCode" class="form-input" disabled>
  164. </div>
  165. <div class="form-group">
  166. <label class="form-label">所属农场<span class="required">*</span></label>
  167. <select name="farmId" class="form-input" required>
  168. <option value="">请选择农场</option>
  169. <option value="1">智慧农场一号</option>
  170. <option value="2">智慧农场二号</option>
  171. <option value="3">智慧农场三号</option>
  172. <option value="4">有机蔬菜基地</option>
  173. <option value="5">生态果园基地</option>
  174. </select>
  175. </div>
  176. <div class="form-group">
  177. <label class="form-label">所属区域<span class="required">*</span></label>
  178. <select name="fieldArea" class="form-input" required>
  179. <option value="">请选择区域</option>
  180. <option value="1">东区</option>
  181. <option value="2">西区</option>
  182. <option value="3">南区</option>
  183. <option value="4">北区</option>
  184. </select>
  185. </div>
  186. <div class="form-group">
  187. <label class="form-label">地块类型<span class="required">*</span></label>
  188. <select name="fieldType" class="form-input" required>
  189. <option value="">请选择类型</option>
  190. <option value="1">水田</option>
  191. <option value="2">旱地</option>
  192. <option value="3">果园</option>
  193. <option value="4">菜地</option>
  194. <option value="5">其他</option>
  195. </select>
  196. </div>
  197. <div class="form-group">
  198. <label class="form-label">面积(亩)<span class="required">*</span></label>
  199. <input type="number" name="fieldSize" class="form-input" required>
  200. </div>
  201. <div class="form-group">
  202. <label class="form-label">负责人</label>
  203. <select name="manager" class="form-input">
  204. <option value="">请选择负责人</option>
  205. <option value="1">张三</option>
  206. <option value="2">李四</option>
  207. <option value="3">王五</option>
  208. <option value="4">赵六</option>
  209. </select>
  210. </div>
  211. <div class="form-group">
  212. <label class="form-label">种植作物</label>
  213. <select name="crops" class="form-input">
  214. <option value="">请选择作物</option>
  215. <optgroup label="粮食作物">
  216. <option value="101">水稻</option>
  217. <option value="102">小麦</option>
  218. <option value="103">玉米</option>
  219. <option value="104">大豆</option>
  220. <option value="105">高粱</option>
  221. <option value="106">谷子</option>
  222. </optgroup>
  223. <optgroup label="经济作物">
  224. <option value="201">棉花</option>
  225. <option value="202">油菜</option>
  226. <option value="203">花生</option>
  227. <option value="204">芝麻</option>
  228. <option value="205">甘蔗</option>
  229. <option value="206">烟草</option>
  230. <option value="207">茶叶</option>
  231. <option value="208">药材</option>
  232. </optgroup>
  233. <optgroup label="果树作物">
  234. <option value="301">葡萄</option>
  235. <option value="302">苹果</option>
  236. <option value="303">梨</option>
  237. <option value="304">桃</option>
  238. <option value="305">柑橘</option>
  239. <option value="306">枣</option>
  240. <option value="307">猕猴桃</option>
  241. <option value="308">石榴</option>
  242. <option value="309">杏</option>
  243. </optgroup>
  244. <optgroup label="蔬菜作物">
  245. <option value="401">叶菜类</option>
  246. <option value="402">根茎类</option>
  247. <option value="403">瓜果类</option>
  248. <option value="404">豆类</option>
  249. <option value="405">茄果类</option>
  250. <option value="406">葱蒜类</option>
  251. </optgroup>
  252. <optgroup label="其他作物">
  253. <option value="901">饲料作物</option>
  254. <option value="902">观赏作物</option>
  255. <option value="903">食用菌</option>
  256. <option value="999">其他</option>
  257. </optgroup>
  258. </select>
  259. </div>
  260. <div class="form-group">
  261. <label class="form-label">土壤类型</label>
  262. <select name="soilType" class="form-input">
  263. <option value="">请选择</option>
  264. <option value="1">黏土</option>
  265. <option value="2">沙质土</option>
  266. <option value="3">壤土</option>
  267. <option value="4">沙壤土</option>
  268. <option value="5">其他</option>
  269. </select>
  270. </div>
  271. <div class="form-group">
  272. <label class="form-label">灌溉方式</label>
  273. <select name="irrigationType" class="form-input">
  274. <option value="">请选择</option>
  275. <option value="1">喷灌</option>
  276. <option value="2">滴灌</option>
  277. <option value="3">微喷灌</option>
  278. <option value="4">漫灌</option>
  279. <option value="5">其他</option>
  280. </select>
  281. </div>
  282. <div class="form-group">
  283. <label class="form-label">使用状态</label>
  284. <select name="status" class="form-input">
  285. <option value="1">使用中</option>
  286. <option value="2">维护中</option>
  287. <option value="0">未使用</option>
  288. <option value="3">闲置中</option>
  289. <option value="4">待开发</option>
  290. </select>
  291. </div>
  292. </div>
  293. <div class="form-group mt-4">
  294. <label class="form-label">地块描述</label>
  295. <textarea name="description" class="form-input" rows="4"></textarea>
  296. </div>
  297. <div class="footer-actions">
  298. <button type="button" class="btn btn-outline" onclick="history.back()">取消</button>
  299. <button type="submit" class="btn btn-primary">保存</button>
  300. </div>
  301. </form>
  302. </div>
  303. </div>
  304. <script>
  305. document.addEventListener('DOMContentLoaded', function() {
  306. // 获取URL参数
  307. const urlParams = new URLSearchParams(window.location.search);
  308. const fieldId = urlParams.get('id');
  309. // 获取表单元素
  310. const form = document.getElementById('fieldForm');
  311. // 模拟获取地块数据
  312. const mockFieldData = {
  313. fieldName: '西区蔬菜园B',
  314. fieldCode: 'FK20230002',
  315. farmId: '4', // 有机蔬菜基地
  316. fieldArea: '2', // 西区
  317. fieldType: '4', // 菜地
  318. fieldSize: '85',
  319. manager: '2', // 李四
  320. crops: '401', // 叶菜类
  321. soilType: '2', // 沙质土
  322. irrigationType: '2', // 滴灌
  323. status: '1', // 使用中
  324. description: '这是一个示例地块描述。'
  325. };
  326. // 填充表单数据
  327. if (form) {
  328. Object.keys(mockFieldData).forEach(key => {
  329. const input = form.elements[key];
  330. if (input) {
  331. input.value = mockFieldData[key];
  332. }
  333. });
  334. }
  335. // 表单提交处理
  336. form.onsubmit = function(e) {
  337. e.preventDefault();
  338. // 表单验证
  339. const requiredFields = form.querySelectorAll('[required]');
  340. let isValid = true;
  341. requiredFields.forEach(field => {
  342. if (!field.value.trim()) {
  343. field.style.borderColor = '#f44336';
  344. isValid = false;
  345. } else {
  346. field.style.borderColor = '#ddd';
  347. }
  348. });
  349. if (!isValid) {
  350. alert('请填写必填项');
  351. return;
  352. }
  353. // 模拟保存成功
  354. alert('地块信息保存成功');
  355. history.back();
  356. };
  357. });
  358. </script>
  359. </body>
  360. </html>