From beacba1950b70ec504a77df013474040a69e4cf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=83=B3?= <826276471@qq.com> Date: Fri, 14 Mar 2025 17:33:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=9C=9F=E5=9C=B0=E5=88=86=E7=B1=BB?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=AF=B9=E6=8E=A5=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/apis/baseInfo.js | 50 ++- .../src/assets/template/土地模版表.xlsx | Bin 0 -> 10648 bytes .../src/router/modules/lands.js | 2 +- .../component/landCassification/index.vue | 356 +++++++++++++----- .../src/views/dict/component/region/index.vue | 4 +- .../inputSuppliesManage/common/SubMenu.vue | 46 +++ .../inputSuppliesManage/common/TypeMenu.vue | 74 ++++ .../material/fertilizer/index.vue | 68 +++- .../material/pesticide/index.vue | 81 +++- .../component/landsManage/index.vue | 115 ++++-- 10 files changed, 660 insertions(+), 136 deletions(-) create mode 100644 sub-government-affairs-service/src/assets/template/土地模版表.xlsx create mode 100644 sub-government-affairs-service/src/views/inputSuppliesManage/common/SubMenu.vue create mode 100644 sub-government-affairs-service/src/views/inputSuppliesManage/common/TypeMenu.vue diff --git a/sub-government-affairs-service/src/apis/baseInfo.js b/sub-government-affairs-service/src/apis/baseInfo.js index 032eb6d..ddca6c8 100644 --- a/sub-government-affairs-service/src/apis/baseInfo.js +++ b/sub-government-affairs-service/src/apis/baseInfo.js @@ -1,4 +1,5 @@ import request from '@/utils/axios'; +import { method } from 'lodash'; //基础信息维护——字典项管理 @@ -73,8 +74,6 @@ export function delPlanCrop(params) { // #endregion -// #region - export function savePlanStage(data) { return request('land-resource/baseInfo/stageTypeSave', { method: 'POST', @@ -83,6 +82,7 @@ export function savePlanStage(data) { } /* ------ 土壤类型 ------ */ +// #region /* 获取土壤类型列表 */ export function getSoilType(params) { @@ -114,9 +114,53 @@ export function delSoilType(id) { } /* 导出土壤类型 */ export function exportSoilType() { - return request('/land-resource/baseInfo/soilTypeExport', { + return request('/land-resource/baseInfo/soilTypeExport/', { method: 'GET', responseType: 'blob', }); } // #endregion + +/* ------ 土地类型 ------ */ +// #region +/* 新增土地类型 */ +export function landTypeSave(data) { + return request('land-resource/baseInfo/landTypeSave', { + method: 'POST', + data, + }); +} +/* 土地类型树 */ +export function getLandTypeTree(params) { + return request('land-resource/baseInfo/landTree', { + params, + }); +} +/* 土地类型列表 */ +export function getLandType(params) { + return request('land-resource/baseInfo/landType', { + params, + }); +} +/* 土地类型导出 */ +export function exportLandType(params) { + return request('land-resource/baseInfo/landTypeExport', { + params, + responseType: 'blob', + }); +} +/* 土地类型删除 */ +export function delLandType(id) { + return request(`land-resource/baseInfo/landTypeDelete/${id}`, { + method: 'DELETE', + }); +} +/* 土地类型编辑 */ +export function editLandType(data) { + return request('land-resource/baseInfo/landTypeEdit', { + method: 'PUT', + data, + }); +} + +// #endregion diff --git a/sub-government-affairs-service/src/assets/template/土地模版表.xlsx b/sub-government-affairs-service/src/assets/template/土地模版表.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..92e040d6b0001ad34f96ab802792028a3a9f5504 GIT binary patch literal 10648 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 import('@/views/landManage/component/landsManage/index.vue'), - meta: { title: '土地管理', icon: 'Document' }, + meta: { title: '土地信息登记', icon: 'Document' }, }, { path: '/sub-government-affairs-service/plantPlan', diff --git a/sub-government-affairs-service/src/views/dict/component/landCassification/index.vue b/sub-government-affairs-service/src/views/dict/component/landCassification/index.vue index b2bef4e..54b1255 100644 --- a/sub-government-affairs-service/src/views/dict/component/landCassification/index.vue +++ b/sub-government-affairs-service/src/views/dict/component/landCassification/index.vue @@ -2,10 +2,24 @@
- - + + + + - + - + diff --git a/sub-government-affairs-service/src/views/dict/component/region/index.vue b/sub-government-affairs-service/src/views/dict/component/region/index.vue index 09f8c35..dbee06a 100644 --- a/sub-government-affairs-service/src/views/dict/component/region/index.vue +++ b/sub-government-affairs-service/src/views/dict/component/region/index.vue @@ -2,7 +2,7 @@
- + - + + + + + + + + + + diff --git a/sub-government-affairs-service/src/views/inputSuppliesManage/common/TypeMenu.vue b/sub-government-affairs-service/src/views/inputSuppliesManage/common/TypeMenu.vue new file mode 100644 index 0000000..bb07ce8 --- /dev/null +++ b/sub-government-affairs-service/src/views/inputSuppliesManage/common/TypeMenu.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/sub-government-affairs-service/src/views/inputSuppliesManage/material/fertilizer/index.vue b/sub-government-affairs-service/src/views/inputSuppliesManage/material/fertilizer/index.vue index 0e05b52..090d236 100644 --- a/sub-government-affairs-service/src/views/inputSuppliesManage/material/fertilizer/index.vue +++ b/sub-government-affairs-service/src/views/inputSuppliesManage/material/fertilizer/index.vue @@ -1,16 +1,72 @@ - + diff --git a/sub-government-affairs-service/src/views/inputSuppliesManage/material/pesticide/index.vue b/sub-government-affairs-service/src/views/inputSuppliesManage/material/pesticide/index.vue index 35b7864..5df6487 100644 --- a/sub-government-affairs-service/src/views/inputSuppliesManage/material/pesticide/index.vue +++ b/sub-government-affairs-service/src/views/inputSuppliesManage/material/pesticide/index.vue @@ -1,15 +1,84 @@ - + diff --git a/sub-government-affairs-service/src/views/landManage/component/landsManage/index.vue b/sub-government-affairs-service/src/views/landManage/component/landsManage/index.vue index faf2f5e..124e854 100644 --- a/sub-government-affairs-service/src/views/landManage/component/landsManage/index.vue +++ b/sub-government-affairs-service/src/views/landManage/component/landsManage/index.vue @@ -27,8 +27,8 @@ {{ row.isUpload != '1' ? '是' : '否' }} + @@ -60,22 +66,28 @@ import CustomCard from '@/components/CustomCard'; import { CRUD_OPTIONS } from '@/config'; import { useUserStore } from '@/store/modules/user'; import { getLandsList, exportLands, delLand, saveLand, importLands } from '@/apis/land.js'; +import { getLandTypeTree } from '@/apis/baseInfo'; import { ElMessage } from 'element-plus'; import useLandHook from './useLandHook'; import Attrs from './common/Attrs.vue'; +import { getAssetsFile, downloadFile } from '@/utils'; +import { useApp } from '@/hooks'; -const { landType, landsType, landClassificationType, handleIficationType } = useLandHook(); +const app = useApp(); +const { landType, landsType } = useLandHook(); const { VITE_APP_BASE_API } = import.meta.env; const UserStore = useUserStore(); onMounted(() => { getList(); + getLandTree(); }); const params = ref({ zoom: 10, }); const local_ = ref([102.833669, 24.88149, '昆明市']); const local = ref(JSON.parse(JSON.stringify(local_.value))); +const landTreeDic = ref([]); /* --------------- data --------------- */ // #region const loading = ref(false); @@ -127,7 +139,7 @@ const option = reactive({ label: '农用地分类', prop: 'landClassificationType', select: 'select', - dicData: landClassificationType, + dicData: landTreeDic, addDisplay: false, display: false, editDisplay: false, @@ -166,6 +178,9 @@ const option = reactive({ addDisplay: false, display: false, editDisplay: false, + render: ({ row }) => { + return row.soilType; + }, }, { label: '是否上传附件', @@ -219,9 +234,9 @@ const option = reactive({ }, { label: '用地分类', - prop: 'landClassificationType', - type: 'select', - dicData: landClassificationType, + prop: 'landTypeId', + type: 'cascader', + dicData: landTreeDic, viewDisplay: false, rules: [ { @@ -233,7 +248,7 @@ const option = reactive({ }, { label: '用地分类', - prop: 'landClassificationTypeView', + prop: 'landClassificationType', addDisplay: false, }, { @@ -288,9 +303,29 @@ const option = reactive({ label: '产权人', prop: 'owner', }, + { + label: '土壤类型', + prop: 'soilTypeId', + type: 'select', + viewDisplay: false, + dicUrl: `${VITE_APP_BASE_API}/land-resource/baseInfo/soilTypePage`, + dicQuery: { + current: 1, + size: 9999, + }, + dicHeaders: { + authorization: UserStore.token, + }, + dicFormatter: (res) => res.data.records ?? [], + props: { + value: 'id', + label: 'soilType', + }, + }, { label: '土壤类型', prop: 'soilType', + addDisplay: false, }, ], }, @@ -369,6 +404,7 @@ const attrs = ref([]); const landOwnerAttrs = ref([]); const landAttrs = ref([]); const rowData = ref([]); +const importExcelRef = ref(); // #endregion /* --------------- methods --------------- */ @@ -390,7 +426,6 @@ async function getList() { data.value.forEach((v) => { v.isTransfer = v.landTransfer || 1; v.isTransferView = v.landTransfer == 1 ? '否' : '是'; - v.landClassificationTypeView = handleIficationType(v.handleIficationType); v.coordinateView = v.coordinate; }); pageData.value.total = total; @@ -421,24 +456,6 @@ async function handleResetSearch() { await getList(); } const attrNames = reactive(landsType.map((v) => v.label)); -function handleImport() { - let inp = document.createElement('input'); - inp.type = 'file'; - inp.onchange = fileUp; - document.body.appendChild(inp); - inp.click(); - document.body.removeChild(inp); -} -async function fileUp(e) { - let formData = new FormData(); - formData.append('file', e.target.files[0]); - formData.append('landType', landType.value); - const res = await importLands(formData); - if (res.code == 200) { - ElMessage.success('导入成功'); - getList(); - } -} async function handleExport() { let res = await exportLands({ landType: landType.value, @@ -500,7 +517,6 @@ function handleCloseFrom(done) { local.value = JSON.parse(JSON.stringify(local_.value)); done(); } - async function handleRowSave(val, done, loading) { let data = JSON.parse(JSON.stringify(val)); data.isDraftsSave = 0; @@ -521,6 +537,7 @@ async function handleRowSave(val, done, loading) { data.landCertificateUrl = landOwnerUrls.join(); data.landUrl = landUrls.join(); data.villageCode = data.villageCode[data.villageCode.length - 1] || ''; + data.landTypeId = data.landTypeId[data.landTypeId.length - 1]; if (local.value.length != 0) { data.coordinate = `${local.value[0]}E,${local.value[1]}N`; } @@ -534,6 +551,50 @@ async function handleRowSave(val, done, loading) { done(); } } +// 导入 +const onUpload = () => { + importExcelRef?.value && importExcelRef.value.show(); +}; +const onDownloadExcel = (url) => { + downloadFile(url, `土地模版表.xlsx`); +}; +const onUploadExcel = (formData) => { + formData.append('landType', landType.value); + importLands(formData) + .then((res) => { + if (res.status === 200) { + app.$message.success('导入成功!'); + } + }) + .catch((err) => { + app.$message.error('导入失败!'); + importExcelRef.value.clear(); + }) + .finally(() => { + importExcelRef.value.hide(); + }); +}; +async function getLandTree() { + let res = await getLandTypeTree(); + if (res.code == 200) { + landTreeDic.value = newTree(res.data, 0); + console.log('landTreeDic', landTreeDic.value); + } +} +function newTree(arr, i) { + arr.forEach((v) => { + if (i == 0) { + v.value = v.id; + v.label = v.prentLandType; + v.disabled = !v.children || !v.children.length; + } else { + v.value = v.id; + v.label = v.childLandCategory; + } + if (v.children) v.children = newTree(v.children, i + 1); + }); + return arr; +} // #endregion