种植基地-分页查询、删除接口对接
This commit is contained in:
		
							parent
							
								
									38f508e043
								
							
						
					
					
						commit
						512a2c9286
					
				| @ -3,7 +3,7 @@ import request from '@/utils/axios'; | |||||||
| 
 | 
 | ||||||
| // 新增(POST)
 | // 新增(POST)
 | ||||||
| export function createLandInspection(data) { | export function createLandInspection(data) { | ||||||
|   return request('land-resource/landInspection/save', { |   return request('/land-resource/landInspection/save', { | ||||||
|     method: 'POST', |     method: 'POST', | ||||||
|     data, |     data, | ||||||
|   }); |   }); | ||||||
| @ -11,7 +11,7 @@ export function createLandInspection(data) { | |||||||
| 
 | 
 | ||||||
| // 删除(DELETE)
 | // 删除(DELETE)
 | ||||||
| export function deleteLandInspection(id) { | export function deleteLandInspection(id) { | ||||||
|   return request(`land-resource/landInspection/${id}`, { |   return request(`/land-resource/landInspection/${id}`, { | ||||||
|     method: 'DELETE', |     method: 'DELETE', | ||||||
|   }); |   }); | ||||||
| } | } | ||||||
| @ -32,14 +32,14 @@ export function updateLandInspectionStatus(data = {}) { | |||||||
| } | } | ||||||
| // 查询详情(GET)
 | // 查询详情(GET)
 | ||||||
| export function getLandInspectionDetail(id) { | export function getLandInspectionDetail(id) { | ||||||
|   return request(`land-resource/landInspection/${id}`, { |   return request(`/land-resource/landInspection/${id}`, { | ||||||
|     method: 'GET', |     method: 'GET', | ||||||
|   }); |   }); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // 查询列表 admin (GET)
 | // 查询列表 admin (GET)
 | ||||||
| export function fetchLandInspectionList(params = {}) { | export function fetchLandInspectionList(params = {}) { | ||||||
|   return request('land-resource/landInspection/page', { |   return request('/land-resource/landInspection/page', { | ||||||
|     method: 'GET', |     method: 'GET', | ||||||
|     params, |     params, | ||||||
|   }); |   }); | ||||||
|  | |||||||
							
								
								
									
										48
									
								
								sub-government-affairs-service/src/apis/planting/base.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								sub-government-affairs-service/src/apis/planting/base.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,48 @@ | |||||||
|  | // 种植基地管理 (base)
 | ||||||
|  | import request from '@/utils/axios'; | ||||||
|  | 
 | ||||||
|  | // 新增(POST)
 | ||||||
|  | export function createBase(data) { | ||||||
|  |   return request('/inputGoods/plantationInfo', { | ||||||
|  |     method: 'POST', | ||||||
|  |     data, | ||||||
|  |   }); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 删除(DELETE)
 | ||||||
|  | export function deleteBase(id) { | ||||||
|  |   return request(`/inputGoods/plantationInfo/${id}`, { | ||||||
|  |     method: 'DELETE', | ||||||
|  |   }); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 批量删除(DELETE)
 | ||||||
|  | export function deleteBaseBatch(data) { | ||||||
|  |   return request(`/inputGoods/plantationInfo`, { | ||||||
|  |     method: 'DELETE', | ||||||
|  |     data, | ||||||
|  |   }); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 修改(PUT)
 | ||||||
|  | export function updateBase(data = {}) { | ||||||
|  |   return request('/inputGoods/plantationInfo', { | ||||||
|  |     method: 'PUT', | ||||||
|  |     data, | ||||||
|  |   }); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 查询列表(GET)
 | ||||||
|  | export function fetchBaseList(params = {}) { | ||||||
|  |   return request('/inputGoods/plantationInfo/page', { | ||||||
|  |     method: 'GET', | ||||||
|  |     params, | ||||||
|  |   }); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 查询详情(GET)
 | ||||||
|  | export function getBaseDetail(id) { | ||||||
|  |   return request(`/inputGoods/plantationInfo/${id}`, { | ||||||
|  |     method: 'GET', | ||||||
|  |   }); | ||||||
|  | } | ||||||
| @ -0,0 +1 @@ | |||||||
|  | // 种植批次管理
 | ||||||
							
								
								
									
										1
									
								
								sub-government-affairs-service/src/apis/planting/crop.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								sub-government-affairs-service/src/apis/planting/crop.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | // 作物基础数据API
 | ||||||
| @ -0,0 +1 @@ | |||||||
|  | // 统一导出入口
 | ||||||
							
								
								
									
										1
									
								
								sub-government-affairs-service/src/apis/planting/task.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								sub-government-affairs-service/src/apis/planting/task.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | // 农事作业管理
 | ||||||
| @ -10,11 +10,12 @@ | |||||||
|         <el-button @click="handleReset">重置</el-button> |         <el-button @click="handleReset">重置</el-button> | ||||||
|       </el-form-item> |       </el-form-item> | ||||||
|     </el-form> |     </el-form> | ||||||
|     <!-- 功能区域 --> |     <!-- 功能区域 - 只在开发环境显示 --> | ||||||
|     <section class="function-bar"> |     <section v-if="showAddButton" class="function-bar"> | ||||||
|       <el-button type="primary" @click="handleAdd">新增</el-button> |       <el-button type="primary" @click="handleAdd">新增</el-button> | ||||||
|     </section> |     </section> | ||||||
|     <!-- 表格区域 --> |     <!-- 表格区域 --> | ||||||
|  |     <div class="table-container"> | ||||||
|       <TableComponent |       <TableComponent | ||||||
|         :loading="loading" |         :loading="loading" | ||||||
|         :columns="columns" |         :columns="columns" | ||||||
| @ -25,13 +26,13 @@ | |||||||
|         :show-pagination="true" |         :show-pagination="true" | ||||||
|         :show-border="true" |         :show-border="true" | ||||||
|         :show-sort="true" |         :show-sort="true" | ||||||
|       style="max-height: calc(100vh - 220px)" |  | ||||||
|         @page-change="handlePageChange" |         @page-change="handlePageChange" | ||||||
|       > |       > | ||||||
|         <template #action="scope"> |         <template #action="scope"> | ||||||
|           <custom-table-operate :actions="actions" :data="scope" /> |           <custom-table-operate :actions="actions" :data="scope" /> | ||||||
|         </template> |         </template> | ||||||
|       </TableComponent> |       </TableComponent> | ||||||
|  |     </div> | ||||||
| 
 | 
 | ||||||
|     <!-- 详情/编辑对话框 --> |     <!-- 详情/编辑对话框 --> | ||||||
|     <el-dialog :key="dialogTitle" v-model="visible" :title="dialogTitle" width="60%" align-center :draggable="true"> |     <el-dialog :key="dialogTitle" v-model="visible" :title="dialogTitle" width="60%" align-center :draggable="true"> | ||||||
| @ -43,8 +44,8 @@ | |||||||
|             <el-row :gutter="20"> |             <el-row :gutter="20"> | ||||||
|               <el-col :span="12"> |               <el-col :span="12"> | ||||||
|                 <!-- 基地编码 --> |                 <!-- 基地编码 --> | ||||||
|                 <el-form-item label="基地编码" prop="baseCode"> |                 <el-form-item label="基地编码" prop="code"> | ||||||
|                   <el-input v-model="formData.baseCode" :readonly="isReadonly" clearable /> |                   <el-input v-model="formData.code" :readonly="isReadonly" clearable /> | ||||||
|                 </el-form-item> |                 </el-form-item> | ||||||
| 
 | 
 | ||||||
|                 <!-- 所属行政区域 --> |                 <!-- 所属行政区域 --> | ||||||
| @ -89,8 +90,8 @@ | |||||||
| 
 | 
 | ||||||
|               <el-col :span="12"> |               <el-col :span="12"> | ||||||
|                 <!-- 基地名称 --> |                 <!-- 基地名称 --> | ||||||
|                 <el-form-item label="基地名称" prop="baseName"> |                 <el-form-item label="基地名称" prop="name"> | ||||||
|                   <el-input v-model="formData.baseName" :readonly="isReadonly" clearable /> |                   <el-input v-model="formData.name" :readonly="isReadonly" clearable /> | ||||||
|                 </el-form-item> |                 </el-form-item> | ||||||
| 
 | 
 | ||||||
|                 <!-- 所属网格 --> |                 <!-- 所属网格 --> | ||||||
| @ -104,7 +105,7 @@ | |||||||
|                     <el-input v-model="formData.longitude" placeholder="经度" :readonly="isReadonly" style="width: 45%" /> |                     <el-input v-model="formData.longitude" placeholder="经度" :readonly="isReadonly" style="width: 45%" /> | ||||||
|                     <span style="margin: 0 5px">,</span> |                     <span style="margin: 0 5px">,</span> | ||||||
|                     <el-input v-model="formData.latitude" placeholder="纬度" :readonly="isReadonly" style="width: 45%" /> |                     <el-input v-model="formData.latitude" placeholder="纬度" :readonly="isReadonly" style="width: 45%" /> | ||||||
|                     <el-button v-if="!isReadonly" type="primary" link @click="handleSelectOnMap"> 地图选取 </el-button> |                     <!-- <el-button v-if="!isReadonly" type="primary" link @click="handleSelectOnMap"> 地图选取 </el-button> --> | ||||||
|                   </div> |                   </div> | ||||||
|                 </el-form-item> |                 </el-form-item> | ||||||
| 
 | 
 | ||||||
| @ -225,7 +226,9 @@ | |||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
| <script setup> | <script setup> | ||||||
| import { ref, onMounted } from 'vue'; | import { ref, onMounted, computed } from 'vue'; | ||||||
|  | import { ElMessage, ElMessageBox } from 'element-plus'; | ||||||
|  | import { createBase, updateBase, deleteBase, deleteBaseBatch, fetchBaseList, getBaseDetail } from '@/apis/planting/base'; | ||||||
| import { mockData } from './mockData'; | import { mockData } from './mockData'; | ||||||
| 
 | 
 | ||||||
| // ==================== 常量定义 ==================== | // ==================== 常量定义 ==================== | ||||||
| @ -234,7 +237,9 @@ const DIALOG_TITLE = { | |||||||
|   EDIT: '编辑基地信息', |   EDIT: '编辑基地信息', | ||||||
|   ADD: '新增基地信息', |   ADD: '新增基地信息', | ||||||
| }; | }; | ||||||
| 
 | // 获取环境变量 | ||||||
|  | const env = import.meta.env.VITE_MODE; | ||||||
|  | console.log('环境变量:', env); | ||||||
| // ==================== 状态管理 ==================== | // ==================== 状态管理 ==================== | ||||||
| const loading = ref(false); | const loading = ref(false); | ||||||
| const visible = ref(false); | const visible = ref(false); | ||||||
| @ -244,13 +249,7 @@ const activeFormTab = ref('basic'); | |||||||
| 
 | 
 | ||||||
| // 表单数据 | // 表单数据 | ||||||
| const searchForm = ref({}); | const searchForm = ref({}); | ||||||
| const formData = ref({ | const formData = ref({}); | ||||||
|   gridName: '', |  | ||||||
|   gridAreaCode: '', |  | ||||||
|   scope: '', |  | ||||||
|   scopeImg: '', |  | ||||||
|   note: '', |  | ||||||
| }); |  | ||||||
| const initialFormData = { ...formData.value }; | const initialFormData = { ...formData.value }; | ||||||
| 
 | 
 | ||||||
| // 分页数据 | // 分页数据 | ||||||
| @ -265,27 +264,27 @@ const tableData = ref([]); | |||||||
| 
 | 
 | ||||||
| // ==================== 表格配置 ==================== | // ==================== 表格配置 ==================== | ||||||
| const columns = ref([ | const columns = ref([ | ||||||
|   { label: '基地编码', prop: 'baseCode' }, |   { label: '基地编码', prop: 'code' }, | ||||||
|   { label: '基地名称', prop: 'baseName' }, |   { label: '基地名称', prop: 'name' }, | ||||||
|   { label: '所属行政区域', prop: 'regionName' }, |   { label: '所属行政区域', prop: 'regionName' }, | ||||||
|   { label: '所属网格', prop: 'gridName' }, |   { label: '所属网格', prop: 'gridName' }, | ||||||
|   { label: '具体位置', prop: 'adress' }, |   { label: '具体位置', prop: 'location' }, | ||||||
|   { |   { | ||||||
|     label: '经纬度', |     label: '经纬度', | ||||||
|     prop: 'coordinate', |     prop: 'coordinate', | ||||||
|     formatter: (row) => `${row.longitude}, ${row.latitude}`, |     // formatter: (row) => `${row.longitude}, ${row.latitude}`, | ||||||
|   }, |   }, | ||||||
|   { label: '气候条件', prop: 'weather' }, |   { label: '气候条件', prop: 'climate' }, | ||||||
|   { label: '海拔(米)', prop: 'altitude' }, |   { label: '海拔(米)', prop: 'altitude' }, | ||||||
|   { |   { | ||||||
|     label: '面积(亩)', |     label: '面积(亩)', | ||||||
|     prop: 'area', |     prop: 'area', | ||||||
|     formatter: (row, column, cellValue) => `${Number(cellValue).toFixed(2)} 亩`, |     formatter: (row, column, cellValue) => `${Number(cellValue).toFixed(2)} 亩`, | ||||||
|   }, |   }, | ||||||
|   { label: '使用状态', prop: 'status' }, |   { label: '使用状态', prop: 'statusName' }, | ||||||
|   { label: '经营主体代码', prop: 'businessCode' }, |   { label: '经营主体代码', prop: 'businessId' }, | ||||||
|   { label: '经营主体类型', prop: 'businessType' }, |   { label: '经营主体类型', prop: 'businessTypeName' }, | ||||||
|   { label: '经营主体名称', prop: 'businessSubjectName' }, |   { label: '经营主体名称', prop: 'businessName' }, | ||||||
|   { label: '创建时间', prop: 'createTime' }, |   { label: '创建时间', prop: 'createTime' }, | ||||||
|   { |   { | ||||||
|     label: '操作', |     label: '操作', | ||||||
| @ -319,13 +318,23 @@ onMounted(() => { | |||||||
|   getData(); |   getData(); | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
|  | // ==================== 计算属性 ==================== | ||||||
|  | const showAddButton = computed(() => { | ||||||
|  |   return env === 'DEV'; | ||||||
|  | }); | ||||||
|  | 
 | ||||||
| // ==================== 数据获取 ==================== | // ==================== 数据获取 ==================== | ||||||
| const getData = async () => { | const getData = async () => { | ||||||
|   loading.value = true; |   loading.value = true; | ||||||
|   try { |   try { | ||||||
|     await new Promise((resolve) => setTimeout(resolve, 300)); |     const res = await fetchBaseList({ | ||||||
|     tableData.value = mockData; |       ...searchForm.value, | ||||||
|     pageData.value.total = tableData.value.length; |       current: pageData.value.currentPage, | ||||||
|  |       size: pageData.value.pageSize, | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|  |     tableData.value = res.data.records || []; | ||||||
|  |     pageData.value.total = res.data.total || 0; | ||||||
|   } finally { |   } finally { | ||||||
|     loading.value = false; |     loading.value = false; | ||||||
|   } |   } | ||||||
| @ -360,8 +369,12 @@ const handleEdit = (row) => { | |||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| const handleDelete = async (id) => { | const handleDelete = async (id) => { | ||||||
|   console.log('删除', id); |   await ElMessageBox.confirm('确定删除该基地信息吗?', '提示', { | ||||||
|   // 实际删除逻辑 |     type: 'warning', | ||||||
|  |   }); | ||||||
|  |   await deleteBase(id); | ||||||
|  |   ElMessage.success('删除成功'); | ||||||
|  |   getData(); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| const resetForm = () => { | const resetForm = () => { | ||||||
| @ -387,10 +400,24 @@ const submitAll = () => { | |||||||
| 
 | 
 | ||||||
| <style scoped lang="scss"> | <style scoped lang="scss"> | ||||||
| .custom-page { | .custom-page { | ||||||
|  |   display: flex; | ||||||
|  |   flex-direction: column; | ||||||
|  |   height: calc(100vh - 150px); | ||||||
|   .search-bar { |   .search-bar { | ||||||
|  |     flex-shrink: 0; | ||||||
|     margin-bottom: 20px; |     margin-bottom: 20px; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  |   .table-container { | ||||||
|  |     flex: 1; | ||||||
|  |     min-height: 0; /* 解决flex容器内滚动问题 */ | ||||||
|  |     display: flex; | ||||||
|  |     flex-direction: column; | ||||||
|  |     :deep(.el-table) { | ||||||
|  |       flex: 1; | ||||||
|  |       overflow: auto; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|   .tabs-wrapper { |   .tabs-wrapper { | ||||||
|     width: 100%; |     width: 100%; | ||||||
|     display: flex; |     display: flex; | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user