土地资源管理
This commit is contained in:
		
							parent
							
								
									beb22c91f9
								
							
						
					
					
						commit
						1c56ca1d0f
					
				| @ -31,14 +31,14 @@ export default defineConfig(({ command, mode }) => { | |||||||
|         'Access-Control-Allow-Origin': '*', |         'Access-Control-Allow-Origin': '*', | ||||||
|       }, |       }, | ||||||
|       proxy: { |       proxy: { | ||||||
|         // 仅 Brand 模块走子应用 DevServer
 |         // // 仅 Brand 模块走子应用 DevServer
 | ||||||
|         '/api/brand': { |         // '/api/brand': {
 | ||||||
|           target: 'http://localhost:9526', |         //   target: 'http://localhost:9526',
 | ||||||
|           changeOrigin: true, |         //   changeOrigin: true,
 | ||||||
|           // 如果想去掉 /api/brand 前缀(比如子应用实际监听的是 /brand/...),
 |         //   // 如果想去掉 /api/brand 前缀(比如子应用实际监听的是 /brand/...),
 | ||||||
|           // 可以加一个 rewrite:
 |         //   // 可以加一个 rewrite:
 | ||||||
|           // rewrite: path => path.replace(/^\/api\/brand/, '/brand'),
 |         //   // rewrite: path => path.replace(/^\/api\/brand/, '/brand'),
 | ||||||
|         }, |         // },
 | ||||||
|         [VITE_APP_BASE_API]: { |         [VITE_APP_BASE_API]: { | ||||||
|           target: VITE_APP_BASE_URL, |           target: VITE_APP_BASE_URL, | ||||||
|           changeOrigin: true, |           changeOrigin: true, | ||||||
|  | |||||||
							
								
								
									
										54
									
								
								sub-government-affairs-service/src/apis/resource/member.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								sub-government-affairs-service/src/apis/resource/member.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,54 @@ | |||||||
|  | import request from '@/utils/axios'; | ||||||
|  | 
 | ||||||
|  | // 获取网格列表
 | ||||||
|  | export const GetGridList = (params = {}) => { | ||||||
|  |   return request('/land-resource/gridManage/page', { | ||||||
|  |     method: 'get', | ||||||
|  |     params, | ||||||
|  |   }); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | // 网格员管理 - 列表
 | ||||||
|  | export function GetMemberList(params = {}) { | ||||||
|  |   return request('/land-resource/grid-member/page', { | ||||||
|  |     method: 'GET', | ||||||
|  |     params, | ||||||
|  |   }); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 网格员管理 - 新增
 | ||||||
|  | export function AddMember(data = {}) { | ||||||
|  |   return request('/land-resource/grid-member', { | ||||||
|  |     method: 'POST', | ||||||
|  |     data, | ||||||
|  |   }); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 网格员管理 - 修改
 | ||||||
|  | export function UpdateMember(data = {}) { | ||||||
|  |   return request('/land-resource/grid-member', { | ||||||
|  |     method: 'PUT', | ||||||
|  |     data, | ||||||
|  |   }); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 网格员管理 - 删除
 | ||||||
|  | export function DeleteMember(id) { | ||||||
|  |   return request(`/land-resource/grid-member/${id}`, { | ||||||
|  |     method: 'DELETE', | ||||||
|  |   }); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // // 网格员管理 - 导出
 | ||||||
|  | // export function ExportMember() {
 | ||||||
|  | //   return request('/land-resource/grid-member/export', {
 | ||||||
|  | //     method: 'POST',
 | ||||||
|  | //   });
 | ||||||
|  | // }
 | ||||||
|  | export function ExportMember(data = {}) { | ||||||
|  |   return request('/land-resource/grid-member/export', { | ||||||
|  |     method: 'POST', | ||||||
|  |     data, | ||||||
|  |     responseType: 'blob', // 明确告诉 axios 返回 blob
 | ||||||
|  |   }); | ||||||
|  | } | ||||||
| @ -21,13 +21,13 @@ export default [ | |||||||
|         children: [ |         children: [ | ||||||
|           { |           { | ||||||
|             path: '/sub-government-affairs-service/add-grid', |             path: '/sub-government-affairs-service/add-grid', | ||||||
|             component: () => import('@/views/resource/grid/index.vue'), |             component: () => import('@/views/resource/grid/AddGrid.vue'), | ||||||
|             name: 'add', |             name: 'add', | ||||||
|             meta: { title: '新增网格', icon: '' }, |             meta: { title: '新增网格', icon: '' }, | ||||||
|           }, |           }, | ||||||
|           { |           { | ||||||
|             path: '/sub-government-affairs-service/add--grid-member', |             path: '/sub-government-affairs-service/add--grid-member', | ||||||
|             component: () => import('@/views/resource/grid/AddGridMember.vue'), |             component: () => import('@/views/resource/grid/GridMember.vue'), | ||||||
|             name: 'member', |             name: 'member', | ||||||
|             meta: { title: '新增网格员', icon: '' }, |             meta: { title: '新增网格员', icon: '' }, | ||||||
|           }, |           }, | ||||||
|  | |||||||
| @ -53,20 +53,20 @@ const state = reactive({ | |||||||
|     ...CRUD_OPTIONS, |     ...CRUD_OPTIONS, | ||||||
|     // addBtnText: '添加网格', |     // addBtnText: '添加网格', | ||||||
|     column: [ |     column: [ | ||||||
|       { |       // { | ||||||
|         label: '网格区', |       //   label: '网格区', | ||||||
|         prop: 'gridArea', |       //   prop: 'gridArea', | ||||||
|         search: true, |       //   search: true, | ||||||
|         width: 200, |       //   width: 200, | ||||||
|         addDisplay: false, |       //   addDisplay: false, | ||||||
|         editDisplay: false, |       //   editDisplay: false, | ||||||
|         viewDisplay: true, |       //   viewDisplay: true, | ||||||
|         rules: { |       //   rules: { | ||||||
|           required: true, |       //     required: true, | ||||||
|           message: '请输入', |       //     message: '请输入', | ||||||
|           trigger: 'blur', |       //     trigger: 'blur', | ||||||
|         }, |       //   }, | ||||||
|       }, |       // }, | ||||||
|       { |       { | ||||||
|         label: '网格名称', |         label: '网格名称', | ||||||
|         prop: 'gridName', |         prop: 'gridName', | ||||||
| @ -80,7 +80,7 @@ const state = reactive({ | |||||||
|       { |       { | ||||||
|         label: '网格区域', |         label: '网格区域', | ||||||
|         prop: 'gridAreaName', |         prop: 'gridAreaName', | ||||||
|         width: 300, |         // width: 300, | ||||||
|         display: false, |         display: false, | ||||||
|         rules: { |         rules: { | ||||||
|           required: true, |           required: true, | ||||||
| @ -117,24 +117,24 @@ const state = reactive({ | |||||||
|           trigger: 'blur', |           trigger: 'blur', | ||||||
|         }, |         }, | ||||||
|       }, |       }, | ||||||
|       { |       // { | ||||||
|         label: '网格管理员', |       //   label: '网格管理员', | ||||||
|         prop: 'gridManager', |       //   prop: 'gridManager', | ||||||
|         rules: { |       //   rules: { | ||||||
|           required: true, |       //     required: true, | ||||||
|           message: '请输入', |       //     message: '请输入', | ||||||
|           trigger: 'blur', |       //     trigger: 'blur', | ||||||
|         }, |       //   }, | ||||||
|       }, |       // }, | ||||||
|       { |       // { | ||||||
|         label: '联系方式', |       //   label: '联系方式', | ||||||
|         prop: 'contactInfo', |       //   prop: 'contactInfo', | ||||||
|         rules: { |       //   rules: { | ||||||
|           required: true, |       //     required: true, | ||||||
|           message: '请输入', |       //     message: '请输入', | ||||||
|           trigger: 'blur', |       //     trigger: 'blur', | ||||||
|         }, |       //   }, | ||||||
|       }, |       // }, | ||||||
|       { |       { | ||||||
|         label: '省', |         label: '省', | ||||||
|         prop: 'provinceCode', |         prop: 'provinceCode', | ||||||
| @ -172,7 +172,7 @@ const state = reactive({ | |||||||
|         span: 24, |         span: 24, | ||||||
|         rows: 4, |         rows: 4, | ||||||
|         overHidden: true, |         overHidden: true, | ||||||
|         width: 200, |         // width: 200, | ||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|         label: '创建时间', |         label: '创建时间', | ||||||
|  | |||||||
| @ -28,159 +28,99 @@ | |||||||
|     </avue-crud> |     </avue-crud> | ||||||
|   </div> |   </div> | ||||||
| </template> | </template> | ||||||
|  | 
 | ||||||
| <script setup> | <script setup> | ||||||
| import { reactive, ref } from 'vue'; | import { reactive, ref } from 'vue'; | ||||||
| import { useApp } from '@/hooks'; | import { useApp } from '@/hooks'; | ||||||
| import { CRUD_OPTIONS } from '@/config'; | import { CRUD_OPTIONS } from '@/config'; | ||||||
| import { isEmpty, downloadFile } from '@/utils'; | import { isEmpty, downloadFile } from '@/utils'; | ||||||
| import { useUserStore } from '@/store/modules/user'; | import { useUserStore } from '@/store/modules/user'; | ||||||
| import { compact } from 'lodash'; | 
 | ||||||
| import { GetEntityList, AddEntity, UpdateEntity, DeleteEntity, ExportEntity } from '@/apis/resource/grid'; | // 请根据你的项目路径替换为实际的接口路径 | ||||||
|  | import { GetGridList, GetMemberList, AddMember, UpdateMember, DeleteMember, ExportMember } from '@/apis/resource/member'; | ||||||
| 
 | 
 | ||||||
| const { VITE_APP_BASE_API } = import.meta.env; | const { VITE_APP_BASE_API } = import.meta.env; | ||||||
| const app = useApp(); | const app = useApp(); | ||||||
| const UserStore = useUserStore(); | const UserStore = useUserStore(); | ||||||
| const crudRef = ref(null); | const crudRef = ref(null); | ||||||
|  | 
 | ||||||
| const state = reactive({ | const state = reactive({ | ||||||
|   loading: false, |   loading: false, | ||||||
|   query: { |   query: { current: 1, size: 10 }, | ||||||
|     current: 1, |  | ||||||
|     size: 10, |  | ||||||
|   }, |  | ||||||
|   form: {}, |   form: {}, | ||||||
|   selection: [], |   selection: [], | ||||||
|  |   gridOptions: [], | ||||||
|   options: { |   options: { | ||||||
|     ...CRUD_OPTIONS, |     ...CRUD_OPTIONS, | ||||||
|     // addBtnText: '添加网格', |  | ||||||
|     column: [ |     column: [ | ||||||
|       { |       { | ||||||
|         label: '网格区', |         label: '网格员姓名', | ||||||
|         prop: 'gridArea', |         prop: 'memberName', | ||||||
|  |         searchLabelWidth: 100, | ||||||
|         search: true, |         search: true, | ||||||
|         width: 200, |  | ||||||
|         addDisplay: false, |  | ||||||
|         editDisplay: false, |  | ||||||
|         viewDisplay: true, |  | ||||||
|         rules: { |         rules: { | ||||||
|           required: true, |           required: true, | ||||||
|           message: '请输入', |           message: '请输入网格员姓名', | ||||||
|           trigger: 'blur', |           trigger: 'blur', | ||||||
|         }, |         }, | ||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|         label: '网格名称', |         label: '所属行政区域', | ||||||
|         prop: 'gridName', |  | ||||||
|         search: true, |  | ||||||
|         rules: { |  | ||||||
|           required: true, |  | ||||||
|           message: '请输入', |  | ||||||
|           trigger: 'blur', |  | ||||||
|         }, |  | ||||||
|       }, |  | ||||||
|       { |  | ||||||
|         label: '网格区域', |  | ||||||
|         prop: 'gridAreaName', |         prop: 'gridAreaName', | ||||||
|         width: 300, |         width: 300, | ||||||
|         display: false, |         searchLabelWidth: 110, | ||||||
|  |         search: true, | ||||||
|         rules: { |         rules: { | ||||||
|           required: true, |           required: true, | ||||||
|           message: '请输入', |           message: '请输入所属区域', | ||||||
|           trigger: 'blur', |           trigger: 'blur', | ||||||
|         }, |         }, | ||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|         label: '网格区域', |         label: '所属网格', | ||||||
|         prop: 'cities', |         prop: 'gridId', | ||||||
|         type: 'cascader', |         type: 'select', | ||||||
|         hide: true, |         width: 200, | ||||||
|         addDisplay: true, |         search: true, | ||||||
|         editDisplay: true, |         dicData: [], // 初始为空,将在mounted中填充 | ||||||
|         viewDisplay: false, |  | ||||||
|         // multiple: true, |  | ||||||
|         // checkStrictly: true, |  | ||||||
|         // collapseTags: true, |  | ||||||
|         // emitPath: false, |  | ||||||
|         // checkDescendants: false, |  | ||||||
|         props: { |         props: { | ||||||
|           label: 'areaName', |           label: 'gridName', | ||||||
|           value: 'areaCode', |           value: 'id', | ||||||
|           children: 'areaChildVOS', |  | ||||||
|         }, |         }, | ||||||
|         dicUrl: `${VITE_APP_BASE_API}/system/area/region?areaCode=530000`, |  | ||||||
|         dicHeaders: { |  | ||||||
|           authorization: UserStore.token, |  | ||||||
|         }, |  | ||||||
|         dicFormatter: (res) => res.data ?? [], |  | ||||||
|         rules: { |         rules: { | ||||||
|           required: true, |           required: true, | ||||||
|           message: '请选择', |           message: '请选择所属网格', | ||||||
|           trigger: 'blur', |           trigger: 'change', | ||||||
|         }, |         }, | ||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|         label: '网格管理员', |         label: '管理员标识', | ||||||
|         prop: 'gridManager', |         prop: 'adminFlag', | ||||||
|         rules: { |         type: 'radio', | ||||||
|           required: true, |         dicData: [ | ||||||
|           message: '请输入', |           { label: '是', value: '1' }, | ||||||
|           trigger: 'blur', |           { label: '否', value: '0' }, | ||||||
|         }, |         ], | ||||||
|  |         valueDefault: '0', | ||||||
|  |         hide: true, // 隐藏字段,如需显示可设置为false | ||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|         label: '联系方式', |         label: '电话号码', | ||||||
|         prop: 'contactInfo', |         prop: 'phone', | ||||||
|         rules: { |         rules: [ | ||||||
|           required: true, |           { required: true, message: '请输入电话号码', trigger: 'blur' }, | ||||||
|           message: '请输入', |           { pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号码' }, | ||||||
|           trigger: 'blur', |         ], | ||||||
|         }, |  | ||||||
|       }, |  | ||||||
|       { |  | ||||||
|         label: '省', |  | ||||||
|         prop: 'provinceCode', |  | ||||||
|         hide: true, |  | ||||||
|         display: false, |  | ||||||
|       }, |  | ||||||
|       { |  | ||||||
|         label: '市', |  | ||||||
|         prop: 'cityCode', |  | ||||||
|         hide: true, |  | ||||||
|         display: false, |  | ||||||
|       }, |  | ||||||
|       { |  | ||||||
|         label: '县/区', |  | ||||||
|         prop: 'gridAreaCode', |  | ||||||
|         hide: true, |  | ||||||
|         display: false, |  | ||||||
|       }, |  | ||||||
|       { |  | ||||||
|         label: '乡镇', |  | ||||||
|         prop: 'townCode', |  | ||||||
|         hide: true, |  | ||||||
|         display: false, |  | ||||||
|       }, |  | ||||||
|       { |  | ||||||
|         label: '乡镇', |  | ||||||
|         prop: 'village', |  | ||||||
|         hide: true, |  | ||||||
|         display: false, |  | ||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|         label: '备注', |         label: '备注', | ||||||
|         prop: 'note', |         prop: 'note', | ||||||
|         type: 'textarea', |         type: 'textarea', | ||||||
|         span: 24, |         span: 24, | ||||||
|         rows: 4, |         rows: 3, | ||||||
|         overHidden: true, |         overHidden: true, | ||||||
|         width: 200, |         width: 200, | ||||||
|       }, |       }, | ||||||
|       { |  | ||||||
|         label: '创建时间', |  | ||||||
|         prop: 'createTime', |  | ||||||
|         width: 200, |  | ||||||
|         hide: true, |  | ||||||
|         display: false, |  | ||||||
|       }, |  | ||||||
|     ], |     ], | ||||||
|     actions: [ |     actions: [ | ||||||
|       { |       { | ||||||
| @ -210,10 +150,9 @@ const state = reactive({ | |||||||
|   currentRow: {}, |   currentRow: {}, | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
| // 加载 |  | ||||||
| const loadData = () => { | const loadData = () => { | ||||||
|   state.loading = true; |   state.loading = true; | ||||||
|   GetEntityList(state.query) |   GetMemberList(state.query) | ||||||
|     .then((res) => { |     .then((res) => { | ||||||
|       if (res.code === 200) { |       if (res.code === 200) { | ||||||
|         const { current, size, total, records } = res.data; |         const { current, size, total, records } = res.data; | ||||||
| @ -233,60 +172,56 @@ const loadData = () => { | |||||||
|       state.loading = false; |       state.loading = false; | ||||||
|     }); |     }); | ||||||
| }; | }; | ||||||
| 
 |  | ||||||
| loadData(); | loadData(); | ||||||
| 
 | 
 | ||||||
| // 页数 | // 加载网格列表 | ||||||
|  | const loadGridOptions = async () => { | ||||||
|  |   try { | ||||||
|  |     const res = await GetGridList(); // 获取足够多的网格数据 | ||||||
|  |     if (res.code === 200) { | ||||||
|  |       state.options.column.find((item) => item.prop === 'gridId').dicData = res.data.records; | ||||||
|  |     } | ||||||
|  |   } catch (error) { | ||||||
|  |     app.$message.error('获取网格列表失败'); | ||||||
|  |   } | ||||||
|  | }; | ||||||
|  | loadGridOptions(); | ||||||
| const currentChange = (current) => { | const currentChange = (current) => { | ||||||
|   state.query.current = current; |   // state.query.current = current; | ||||||
|   loadData(); |   // loadData(); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| // 条数 |  | ||||||
| const sizeChange = (size) => { | const sizeChange = (size) => { | ||||||
|   state.query.size = size; |   // state.query.size = size; | ||||||
|   loadData(); |   // loadData(); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| // 搜索 |  | ||||||
| const searchChange = (params, done) => { | const searchChange = (params, done) => { | ||||||
|   if (done) done(); |   // if (done) done(); | ||||||
|   state.query = params; |   // state.query = params; | ||||||
|   state.query.current = 1; |   // state.query.current = 1; | ||||||
|   loadData(); |   // loadData(); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| // 刷新 |  | ||||||
| const refreshChange = () => { | const refreshChange = () => { | ||||||
|   loadData(); |   loadData(); | ||||||
|   app.$message.success('刷新成功'); |   app.$message.success('刷新成功'); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| // 选择 |  | ||||||
| const selectionChange = (rows) => { | const selectionChange = (rows) => { | ||||||
|   state.selection = rows; |   state.selection = rows; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| // 查看 |  | ||||||
| const rowView = (row) => { | const rowView = (row) => { | ||||||
|   crudRef.value.rowView(row); |   crudRef.value.rowView(row); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| const setCity = (row) => { | const rowEdit = (row) => { | ||||||
|   if (!isEmpty(row.cities)) { |   crudRef.value.rowEdit(row); | ||||||
|     row.provinceCode = row?.cities[0] ?? null; |  | ||||||
|     row.cityCode = row?.cities[1] ?? null; |  | ||||||
|     row.gridAreaCode = row?.cities[2] ?? null; |  | ||||||
|     row.townCode = row?.cities[3] ?? null; |  | ||||||
|     row.village = row?.cities[4] ?? null; |  | ||||||
|     // row.village = row?.cities.join(','); |  | ||||||
|   } |  | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| // 新增 |  | ||||||
| const rowSave = (row, done, loading) => { | const rowSave = (row, done, loading) => { | ||||||
|   setCity(row); |   AddMember(row) | ||||||
|   AddEntity(row) |  | ||||||
|     .then((res) => { |     .then((res) => { | ||||||
|       if (res.code === 200) { |       if (res.code === 200) { | ||||||
|         app.$message.success('添加成功!'); |         app.$message.success('添加成功!'); | ||||||
| @ -294,23 +229,12 @@ const rowSave = (row, done, loading) => { | |||||||
|         loadData(); |         loadData(); | ||||||
|       } |       } | ||||||
|     }) |     }) | ||||||
|     .catch((err) => { |     .catch((err) => app.$message.error(err.msg)) | ||||||
|       app.$message.error(err.msg); |     .finally(() => loading()); | ||||||
|     }) |  | ||||||
|     .finally(() => { |  | ||||||
|       loading(); |  | ||||||
|     }); |  | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| // 编辑 |  | ||||||
| const rowEdit = (row) => { |  | ||||||
|   const village = !isEmpty(row.village) ? row.village : []; |  | ||||||
|   row.cities = compact([row.provinceCode, row.cityCode, row.gridAreaCode ?? '', row.townCode ?? '', ...village]); |  | ||||||
|   crudRef.value.rowEdit(row); |  | ||||||
| }; |  | ||||||
| const rowUpdate = (row, index, done, loading) => { | const rowUpdate = (row, index, done, loading) => { | ||||||
|   setCity(row); |   UpdateMember(row) | ||||||
|   UpdateEntity(row) |  | ||||||
|     .then((res) => { |     .then((res) => { | ||||||
|       if (res.code === 200) { |       if (res.code === 200) { | ||||||
|         app.$message.success('更新成功!'); |         app.$message.success('更新成功!'); | ||||||
| @ -318,56 +242,48 @@ const rowUpdate = (row, index, done, loading) => { | |||||||
|         loadData(); |         loadData(); | ||||||
|       } |       } | ||||||
|     }) |     }) | ||||||
|     .catch((err) => { |     .catch((err) => app.$message.error(err.msg)) | ||||||
|       app.$message.error(err.msg); |     .finally(() => loading()); | ||||||
|     }) |  | ||||||
|     .finally(() => { |  | ||||||
|       loading(); |  | ||||||
|     }); |  | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| // 删除 |  | ||||||
| const rowDel = (row, index, done) => { | const rowDel = (row, index, done) => { | ||||||
|   if (isEmpty(row)) return; |   if (isEmpty(row)) return; | ||||||
|   app |   app | ||||||
|     .$confirm(`删除后信息将不可查看,确认要删除吗?`, '确定删除', { |     .$confirm(`确认删除该网格员吗?`, '提示', { | ||||||
|       confirmButtonText: '确定', |       confirmButtonText: '确定', | ||||||
|       cancelButtonText: '取消', |       cancelButtonText: '取消', | ||||||
|       type: 'warning', |       type: 'warning', | ||||||
|     }) |     }) | ||||||
|     .then(() => { |     .then(() => { | ||||||
|       DeleteEntity({ id: row.id }) |       DeleteMember(row.id) // 👈 只传 id | ||||||
|         .then((res) => { |         .then((res) => { | ||||||
|           if (res.code === 200) { |           if (res.code === 200) { | ||||||
|             app.$message.success('删除成功!'); |             app.$message.success('删除成功!'); | ||||||
|             loadData(); |             loadData(); | ||||||
|  |             done?.(); // 若使用 Table 的 inline 操作支持回调 | ||||||
|           } |           } | ||||||
|         }) |         }) | ||||||
|         .catch((err) => { |         .catch((err) => app.$message.error(err.msg || '删除失败')); | ||||||
|           app.$message.error(err.msg); |  | ||||||
|         }); |  | ||||||
|     }) |     }) | ||||||
|     .catch(() => {}); |     .catch(() => {}); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| // 导出 |  | ||||||
| const onExport = () => { | const onExport = () => { | ||||||
|   if (isEmpty(state.data)) { |   if (isEmpty(state.data)) { | ||||||
|     app.$message.error('当前暂时没有可供导出的数据!'); |     app.$message.error('当前暂时没有可供导出的数据!'); | ||||||
|     return; |     return; | ||||||
|   } |   } | ||||||
|   state.loading = true; |   state.loading = true; | ||||||
|   const fileName = '网格明细表'; | 
 | ||||||
|   ExportEntity(state.query) |   // 仅发送有效的查询条件 | ||||||
|  |   const { current, size, ...query } = state.query; | ||||||
|  | 
 | ||||||
|  |   ExportMember(query) | ||||||
|     .then((res) => { |     .then((res) => { | ||||||
|       if (res.status === 200) { |       downloadFile(res, '网格员明细表.xlsx', 'blob'); | ||||||
|         downloadFile(res.data, `${fileName}.xlsx`, 'blob'); |       app.$message.success('导出成功!'); | ||||||
|         app.$message.success('导出成功!'); |  | ||||||
|       } |  | ||||||
|     }) |  | ||||||
|     .catch((err) => { |  | ||||||
|       app.$message.error('导出失败!'); |  | ||||||
|     }) |     }) | ||||||
|  |     .catch(() => app.$message.error('导出失败!')) | ||||||
|     .finally(() => { |     .finally(() => { | ||||||
|       state.loading = false; |       state.loading = false; | ||||||
|     }); |     }); | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user