diff --git a/src/api/farm/crop.js b/src/api/farm/crop.js
new file mode 100644
index 0000000..ef31795
--- /dev/null
+++ b/src/api/farm/crop.js
@@ -0,0 +1,54 @@
+import request from '@/utils/request'
+
+// 创建
+export function createCrop(data) {
+ return request({
+ url: '/farm/crop/create',
+ method: 'post',
+ data: data
+ })
+}
+
+// 更新
+export function updateCrop(data) {
+ return request({
+ url: '/farm/crop/update',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除
+export function deleteCrop(id) {
+ return request({
+ url: '/farm/crop/delete?id=' + id,
+ method: 'delete'
+ })
+}
+
+// 获得
+export function getCrop(id) {
+ return request({
+ url: '/farm/crop/get?id=' + id,
+ method: 'get'
+ })
+}
+
+// 获得分页
+export function getCropPage(query) {
+ return request({
+ url: '/farm/crop/page',
+ method: 'get',
+ params: query
+ })
+}
+
+// 导出 Excel
+export function exportCropExcel(query) {
+ return request({
+ url: '/farm/crop/export-excel',
+ method: 'get',
+ params: query,
+ responseType: 'blob'
+ })
+}
diff --git a/src/api/farm/cropRecord.js b/src/api/farm/cropRecord.js
new file mode 100644
index 0000000..08c16bc
--- /dev/null
+++ b/src/api/farm/cropRecord.js
@@ -0,0 +1,54 @@
+import request from '@/utils/request'
+
+// 创建
+export function createCropRecord(data) {
+ return request({
+ url: '/farm/crop-record/create',
+ method: 'post',
+ data: data
+ })
+}
+
+// 更新
+export function updateCropRecord(data) {
+ return request({
+ url: '/farm/crop-record/update',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除
+export function deleteCropRecord(id) {
+ return request({
+ url: '/farm/crop-record/delete?id=' + id,
+ method: 'delete'
+ })
+}
+
+// 获得
+export function getCropRecord(id) {
+ return request({
+ url: '/farm/crop-record/get?id=' + id,
+ method: 'get'
+ })
+}
+
+// 获得分页
+export function getCropRecordPage(query) {
+ return request({
+ url: '/farm/crop-record/page',
+ method: 'get',
+ params: query
+ })
+}
+
+// 导出 Excel
+export function exportCropRecordExcel(query) {
+ return request({
+ url: '/farm/crop-record/export-excel',
+ method: 'get',
+ params: query,
+ responseType: 'blob'
+ })
+}
diff --git a/src/views/farm/crop/index.vue b/src/views/farm/crop/index.vue
new file mode 100644
index 0000000..b8badd1
--- /dev/null
+++ b/src/views/farm/crop/index.vue
@@ -0,0 +1,240 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+ 新增
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.createTime) }}
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/farm/cropRecord/index.vue b/src/views/farm/cropRecord/index.vue
new file mode 100644
index 0000000..d13f9b0
--- /dev/null
+++ b/src/views/farm/cropRecord/index.vue
@@ -0,0 +1,277 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+ 新增
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+ {{cropList.find(t=>t.id == scope.row.cropId ).name}}
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.createTime) }}
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+ {{item.name}}
+
+
+
+
+
+ 出库
+ 入库
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+