| | |
| | | <el-form-item label="图斑类型" prop="region"> |
| | | <el-select v-model="ruleForm.region" placeholder="请选择图斑类型"> |
| | | <el-option |
| | | v-for="item in spotTypeOption" |
| | | v-for="item in allspotTypeOption" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | |
| | | :title="spotDetailsTitle" |
| | | :detailid="detailid" |
| | | :detailList="detailList" |
| | | :spotTypeOption="spotTypeOption" |
| | | :spotTypeOption="allspotTypeOption" |
| | | ></SpotDetails> |
| | | |
| | | </basic-container> |
| | | </template> |
| | | <script setup> |
| | |
| | | tableMapListApi, |
| | | exportExcel, |
| | | patchDeleteApi, |
| | | listOfSpotTypesApi, |
| | | } from '@/api/patchManagement/index'; |
| | | import { getRegionTreeAll } from '@/api/job/task'; |
| | | import { ref, computed, watch } from 'vue'; |
| | |
| | | import patchDetails from '@/views/resource/components/patchDetails.vue'; |
| | | import SpotDetails from '@/views/resource/components/spotDetails.vue'; |
| | | const spotDetailsTitle = ref(''); |
| | | const detailList = ref('') |
| | | const detailList = ref(''); |
| | | const store = useStore(); |
| | | const router = useRouter(); |
| | | const ruleFormRef = ref(null); |
| | |
| | | const query = ref({}); |
| | | const loading = ref(true); |
| | | const box = ref(false); |
| | | |
| | | const page = ref({ |
| | | pageSize: 20, |
| | | currentPage: 1, |
| | | total: 0, |
| | | lotTypeId: '', |
| | | createUser: '', |
| | | areaCode:'', |
| | | fileName:'' |
| | | areaCode: '', |
| | | fileName: '', |
| | | }); |
| | | |
| | | const selectionList = ref([]); |
| | | |
| | | const option = ref({ |
| | | align: 'center', |
| | | align: 'center', |
| | | headerAlign: 'center', |
| | | addBtn: false, |
| | | tip: false, |
| | |
| | | prop: 'file_name', |
| | | span: 24, |
| | | search: true, |
| | | overHidden: true, |
| | | showOverflowTooltip: true, |
| | | overHidden: true, |
| | | showOverflowTooltip: true, |
| | | searchSpan: 4, |
| | | rules: [{ required: true, message: '请输入文件名称', trigger: 'blur' }], |
| | | }, |
| | |
| | | label: '行政区划', |
| | | prop: 'areaName', |
| | | span: 24, |
| | | width:180, |
| | | width: 180, |
| | | searchLabelWidth: 100, |
| | | search: true, |
| | | searchSpan: 4, |
| | |
| | | |
| | | const ids = computed(() => selectionList.value.map(ele => ele.id).join(',')); |
| | | // 获取行政区划 |
| | | const regionalData = ref([]) |
| | | const regionalData = ref([]); |
| | | const requestDockInfo = () => { |
| | | getRegionTreeAll({ parentCode: userAreaCode.value }).then(res => { |
| | | const rawData = res.data.data ? [res.data.data] : []; |
| | | regionalData.value = rawData; |
| | | getRegionTreeAll({ parentCode: userAreaCode.value }).then(res => { |
| | | const rawData = res.data.data ? [res.data.data] : []; |
| | | regionalData.value = rawData; |
| | | const filterTree = nodes => { |
| | | return nodes.filter(node => { |
| | | const nodeCodeStr = node.id.toString(); |
| | |
| | | }); |
| | | }; |
| | | deptTreeData.value = filterTree(rawData); |
| | | onLoad(page.value); |
| | | onLoad(page.value); |
| | | }); |
| | | }; |
| | | // 获取搜索数据 |
| | |
| | | uniqueMap.set(key, value); |
| | | } |
| | | }); |
| | | const creatorOptionuniqueMap = new Map(); |
| | | const creatorOptionuniqueMap = new Map(); |
| | | res.data.data.user_names.forEach(item => { |
| | | const [key, value] = Object.entries(item)[0]; |
| | | if (!creatorOptionuniqueMap.has(key)) { |
| | |
| | | })); |
| | | regionalScope.value = res.data.data.area_codes; |
| | | requestDockInfo(); |
| | | |
| | | |
| | | }); |
| | | }; |
| | | const allspotTypeOption = ref([]); |
| | | // 获取上传图斑类型 |
| | | const getlistOfSpotTypesApi = () => { |
| | | const searchparams = { |
| | | current: 1, |
| | | size: 9999, |
| | | }; |
| | | listOfSpotTypesApi(searchparams).then(res => { |
| | | allspotTypeOption.value = res.data.data.records.map(item => ({ |
| | | label: item.patches_type, |
| | | value: item.id, |
| | | })); |
| | | }); |
| | | }; |
| | | // ===== watch ===== |
| | |
| | | }; |
| | | |
| | | const rowDel = row => { |
| | | |
| | | ElMessageBox.confirm('确定将选择数据删除?', '提示', { |
| | | ElMessageBox.confirm('确定将选择数据删除?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | }) |
| | | .then(() => patchDeleteApi(row.id)) // 直接传递ID |
| | | .then(() => { |
| | | onLoad(page.value) |
| | | ElMessage.success('操作成功!') |
| | | }) |
| | | .then(() => patchDeleteApi(row.id)) // 直接传递ID |
| | | .then(() => { |
| | | onLoad(page.value); |
| | | ElMessage.success('操作成功!'); |
| | | }); |
| | | }; |
| | | |
| | | const searchReset = () => { |
| | | page.value.areaCode='' |
| | | page.value.createUser='' |
| | | page.value.fileName='' |
| | | page.value.lotTypeId ='' |
| | | page.value.currentPage=1 |
| | | page.value.pageSize=20 |
| | | page.value.areaCode = ''; |
| | | page.value.createUser = ''; |
| | | page.value.fileName = ''; |
| | | page.value.lotTypeId = ''; |
| | | page.value.currentPage = 1; |
| | | page.value.pageSize = 20; |
| | | onLoad(page.value); |
| | | }; |
| | | |
| | |
| | | page.value.currentPage = 1; |
| | | page.value.lotTypeId = params.patches_type_desc; |
| | | page.value.createUser = params.user_name; |
| | | page.value.fileName=params.file_name |
| | | page.value.areaCode=params.areaName |
| | | page.value.createUser= params.user_name |
| | | page.value.fileName = params.file_name; |
| | | page.value.areaCode = params.areaName; |
| | | page.value.createUser = params.user_name; |
| | | onLoad(page.value); |
| | | done(); |
| | | }; |
| | |
| | | current: pageInfo.currentPage, |
| | | size: pageInfo.pageSize, |
| | | lotTypeId: pageInfo.lotTypeId, |
| | | fileName:pageInfo.fileName, |
| | | areaCode:pageInfo.areaCode, |
| | | createUser:pageInfo.createUser |
| | | fileName: pageInfo.fileName, |
| | | areaCode: pageInfo.areaCode, |
| | | createUser: pageInfo.createUser, |
| | | }; |
| | | loading.value = true; |
| | | spotManagementTableApi(searchparams).then(res => { |
| | | const d = res.data.data; |
| | | page.value.total = d.total; |
| | | data.value = d.records |
| | | .map(i=>({ |
| | | data.value = d.records.map(i => ({ |
| | | ...i, |
| | | dataFrom:i.date_from === 0? '本地上传':'国土调查云', |
| | | areaName: findAreaName(i.area_code) |
| | | dataFrom: i.date_from === 0 ? '本地上传' : '国土调查云', |
| | | areaName: findAreaName(i.area_code), |
| | | })); |
| | | loading.value = false; |
| | | selectionClear(); |
| | | }); |
| | | }; |
| | | const findAreaName = (areaCode) => { |
| | | const findAreaName = areaCode => { |
| | | const nodes = regionalData.value; |
| | | if (!nodes || nodes.length === 0) return areaCode; |
| | | |
| | | const normalizeCode = (code) => { |
| | | const normalizeCode = code => { |
| | | if (!code) return ''; |
| | | const strCode = String(code).replace(/0+$/, ''); |
| | | return strCode.length >= 6 ? strCode : ''; |
| | |
| | | const findInTree = (treeNodes, needFullPath = false, parentPath = []) => { |
| | | for (const node of treeNodes) { |
| | | const currentPath = [...parentPath, node.name]; |
| | | |
| | | |
| | | if (normalizeCode(node.id) === targetCode) { |
| | | return needFullPath ? currentPath.join('/') : node.name; |
| | | } |
| | |
| | | detailid.value = row.id; |
| | | uploadPatchDialog.value = true; |
| | | spotDetailsTitle.value = type === 'detail' ? '图斑详情' : '图斑编辑'; |
| | | detailList.value = row |
| | | detailList.value = row; |
| | | }; |
| | | |
| | | // 跳转至图斑类型管理页面 |
| | |
| | | if (!selectionList.value.length) { |
| | | return ElMessage.warning('请选择需要导出的数据'); |
| | | } |
| | | exportExcel(selectionList.value?.map(i => i.id).join(',')).then(res => { |
| | | const a = selectionList.value.map(i => Number(i.id)); |
| | | exportExcel(a).then(res => { |
| | | const elink = document.createElement('a'); |
| | | elink.download = new Date().getTime() + '.xls'; |
| | | elink.style.display = 'none'; |
| | |
| | | if (!['kmz', 'kml', 'zip'].includes(fileSuffix)) { |
| | | return ElMessage.error('请上传zip/kmz/kml格式的文件'); |
| | | } |
| | | |
| | | |
| | | let data = new FormData(); |
| | | let type = t === '3' ? '' : t; |
| | | const params = { |
| | |
| | | fileName: ruleForm.name, |
| | | LotTypeId: ruleForm.region, |
| | | }; |
| | | |
| | | |
| | | Object.keys(params).forEach(key => { |
| | | data.append(key, params[key]); |
| | | }); |
| | | |
| | | |
| | | uploadManagementApi(data).then(res => { |
| | | if (res.data.code !== 0) { |
| | | return ElMessage.error('上传失败'); |
| | | } |
| | | |
| | | |
| | | ElMessage.success('上传成功'); |
| | | |
| | | |
| | | box.value = false; |
| | | |
| | | ruleForm.name = ''; |
| | | ruleForm.region = ''; |
| | | |
| | | |
| | | if (ruleFormRef.value) { |
| | | ruleFormRef.value.resetFields(); |
| | | } |
| | | |
| | | |
| | | searchReset(); |
| | | }); |
| | | }; |
| | | provide('searchReset', searchReset); |
| | | onMounted(() => { |
| | | getsearchManagementApi(); |
| | | |
| | | getlistOfSpotTypesApi(); |
| | | }); |
| | | </script> |
| | | |