【图斑列表】市镇乡点击进入修改

dianlixunjian
Zhufu 2024-07-05 10:25:32 +08:00
parent 0b5562a51f
commit aa0ae18b64
5 changed files with 186 additions and 42 deletions

View File

@ -29,6 +29,8 @@ enum Api {
UpdateDroneCaseInfo = '/api/DroneCaseInfoSingle/UpdateDroneCaseInfo', UpdateDroneCaseInfo = '/api/DroneCaseInfoSingle/UpdateDroneCaseInfo',
// 督办流程 // 督办流程
Supervise = '/api/WFProcess/Supervise', Supervise = '/api/WFProcess/Supervise',
// 获取部门父级
LoadParents = '/api/Orgs/LoadParents',
} }
/** /**
@ -76,3 +78,6 @@ export const updateDroneCaseInfo = (params: updateCaseInfoParams) =>
export const updateSupervise = (params: {id:string,supervise: number}) => export const updateSupervise = (params: {id:string,supervise: number}) =>
defHttp.post({ url: `${Api.Supervise}?id=${params.id}&supervise=${params.supervise}`, params }); defHttp.post({ url: `${Api.Supervise}?id=${params.id}&supervise=${params.supervise}`, params });
export const getLoadParents = (params: {childId:Number}) =>
defHttp.get({ url: `${Api.LoadParents}?childId=${params.childId}`,});

View File

@ -11,7 +11,7 @@
@change="(value) => {emits('auditProgressScreenChange', value,'year')}" @change="(value) => {emits('auditProgressScreenChange', value,'year')}"
/> />
</div> </div>
<div class="screen-item"> <!-- <div class="screen-item">
<div class="screen-item-label">批次</div> <div class="screen-item-label">批次</div>
<a-select <a-select
allowClear allowClear
@ -20,7 +20,7 @@
:options="batchOptions" :options="batchOptions"
@change="(value) => {emits('auditProgressScreenChange', value,'batch')}" @change="(value) => {emits('auditProgressScreenChange', value,'batch')}"
/> />
</div> </div> -->
</div> </div>
</div> </div>
<div class="data-list"> <div class="data-list">

View File

@ -54,20 +54,102 @@ const props = defineProps(["showInfoData"])
console.log("showInfoData123",props.showInfoData); console.log("showInfoData123",props.showInfoData);
const { const {
address,
area,
case_description,
case_name,
case_no,
createtime,
gengdi_area,
guotukongjianguihua_area,
id, id,
case_no,
case_name,
case_description,
start_time,
end_time,
address,
lng,
lat,
typeid,
typename,
handle_status_id,
handle_status_name,
case_status_i,
case_status_name,
createtime,
createuser, drone_no,
deal_userid,
deal_username,
createusername,
is_delete,
countyid,
countyname,
streetid,
streetname,
communityid,
communityname,
remark,
is_closed,
area,
is_illegal,
close_user,
close_time,
identification_user,
identification_time,
is_intact,
close_userid,
identification_userid,
verifyuserid,
verifyuser,
verifytime,
is_improve,
improve_reason,
is_dispense,
dispense_userid,
dispense_time,
dispense_username,
verifystatus,
verifystatusname,
is_checked,
deal_time,
is_drawback,
examiner_id,
examiner_name,
examine_time,
measure_name,
casepic,
opinion,
result,
result_name,
opinion_name,
handletime,
handleuser,
handleusername,
is_assist,
measure_name_deal,
qita_use_to,
illegal_contact,
illegal_shenfenzhenghao,
investigation_type,
investigation_result,
registr_number,
is_build_complete,
actual_use_to,
transactor_id,
transactor_name,
transact_time,
geomid, geomid,
nongyongdi_area, nongyongdi_area,
shengtaibaohuhongxian_area, gengdi_area,
yongjiujibennongtian_area, yongjiujibennongtian_area,
zhongdianquyu_area zhongdianquyu_area,
shengtaibaohuhongxian_area,
guotukongjianguihua_area,
fujian,
jieshou_people,
jieshou_time,
pandingyijushuoming,
xiangmumc,
xiangmuzhuti,
weifaleixing,
yanshoubiao,
zhenggaifujian,
chaichufugenghoupic,
is_jieshou,
anjianzhaopian
} = props.showInfoData } = props.showInfoData
function onMapboxLoad(){ function onMapboxLoad(){

View File

@ -1,5 +1,5 @@
<template> <template>
<div class="content"> <div class="map-list-content">
<div class="rollback"> <div class="rollback">
<Icon <Icon
style="font-size: 20px; cursor: pointer" style="font-size: 20px; cursor: pointer"
@ -18,7 +18,7 @@
@change="(value) => emits('mapListScreenChange',value,'year')" @change="(value) => emits('mapListScreenChange',value,'year')"
/> />
</div> </div>
<div class="screen-item"> <!-- <div class="screen-item">
<div class="screen-item-label">批次</div> <div class="screen-item-label">批次</div>
<a-select <a-select
allowClear allowClear
@ -27,7 +27,7 @@
:options="batchOptions" :options="batchOptions"
@change="(value) => emits('mapListScreenChange',value,'batch')" @change="(value) => emits('mapListScreenChange',value,'batch')"
/> />
</div> </div> -->
<div class="screen-item"> <div class="screen-item">
<div class="screen-item-label">图斑号</div> <div class="screen-item-label">图斑号</div>
<a-input <a-input
@ -36,7 +36,7 @@
style="flex: 1;" style="flex: 1;"
@change="(value) => emits('mapListScreenChange',value.target.value,'mapNo')"/> @change="(value) => emits('mapListScreenChange',value.target.value,'mapNo')"/>
</div> </div>
<div class="screen-item" v-if="cityType.level === 0"> <!-- <div class="screen-item" >
<div class="screen-item-label">市级区划</div> <div class="screen-item-label">市级区划</div>
<a-select <a-select
disabled disabled
@ -46,8 +46,8 @@
:options="props.municipalAreaOptions" :options="props.municipalAreaOptions"
@change="(value) => emits('mapListScreenChange',value,'countyId')" @change="(value) => emits('mapListScreenChange',value,'countyId')"
/> />
</div> </div> -->
<div class="screen-item" v-if="cityType.level === 0"> <!-- <div class="screen-item">
<div class="screen-item-label">县级区划</div> <div class="screen-item-label">县级区划</div>
<a-select <a-select
allowClear allowClear
@ -55,29 +55,41 @@
v-model:value="props.infoScreenData.streetId" v-model:value="props.infoScreenData.streetId"
:options="props.countiesAreaOptions" :options="props.countiesAreaOptions"
@change="(value) => emits('mapListScreenChange',value,'streetId')" @change="(value) => emits('mapListScreenChange',value,'streetId')"
/> /> -->
</div> <!-- </div> -->
<div class="screen-item" v-if="cityType.level !== 0"> <div class="screen-item" v-if="props.cityType.level >= 0">
<div class="screen-item-label">县级区划</div> <div class="screen-item-label">县级区划</div>
<a-select <a-select
disabled :disabled="props.cityType.level >= 1"
allowClear allowClear
style="flex: 1;" style="flex: 1;"
v-model:value="props.infoScreenData.countyId" v-model:value="props.infoScreenData.countyId"
:options="props.municipalAreaOptions" :options="props.countiesAreaOptions"
@change="(value) => emits('mapListScreenChange',value,'countyId')" @change="(value) => emits('mapListScreenChange',value,'countyId')"
/> />
</div> </div>
<div class="screen-item" v-if="cityType.level !== 0"> <div class="screen-item" v-if="props.cityType.level >= 1">
<div class="screen-item-label">镇级区划</div> <div class="screen-item-label">镇级区划</div>
<a-select <a-select
:disabled="props.cityType.level >= 2"
allowClear allowClear
style="flex: 1;" style="flex: 1;"
v-model:value="props.infoScreenData.streetId" v-model:value="props.infoScreenData.streetId"
:options="props.countiesAreaOptions" :options="props.streetsAreaOptions"
@change="(value) => emits('mapListScreenChange',value,'streetId')" @change="(value) => emits('mapListScreenChange',value,'streetId')"
/> />
</div> </div>
<div class="screen-item" v-if="props.cityType.level >= 2">
<div class="screen-item-label">街道区划</div>
<a-select
:disabled="props.cityType.level >= 3"
allowClear
style="flex: 1;"
v-model:value="props.infoScreenData.communityId"
:options="props.communitiesAreaOptions"
@change="(value) => emits('mapListScreenChange',value,'communityId')"
/>
</div>
<div class="screen-item"> <div class="screen-item">
<div class="screen-item-label">图斑类型</div> <div class="screen-item-label">图斑类型</div>
<a-select <a-select
@ -229,7 +241,7 @@
import { ref, onMounted, defineEmits, defineProps, computed } from "vue" import { ref, onMounted, defineEmits, defineProps, computed } from "vue"
import { StarOutlined, StarFilled } from '@ant-design/icons-vue'; import { StarOutlined, StarFilled } from '@ant-design/icons-vue';
import Icon from '@/components/Icon/Icon.vue'; import Icon from '@/components/Icon/Icon.vue';
import { addCaseFavorite,getFavoriteCaseList, deleteFavoriteCase } from '@/api/bootstraps/index.ts'; import { addCaseFavorite,getCaseInfoById, deleteFavoriteCase } from '@/api/bootstraps/index.ts';
import { import {
batchOptions, batchOptions,
yearOptions, yearOptions,
@ -259,6 +271,8 @@ const props = defineProps([
"cityType", "cityType",
"municipalAreaOptions", "municipalAreaOptions",
"countiesAreaOptions", "countiesAreaOptions",
"streetsAreaOptions",
"communitiesAreaOptions",
"pageNo", "pageNo",
"pageSize", "pageSize",
"total", "total",
@ -329,14 +343,15 @@ const dataListSort = (type) => {
emits('infoDataListSort', type, order.value) emits('infoDataListSort', type, order.value)
} }
const showInfo = (item) => { const showInfo = (item) => {
console.log(item) getCaseInfoById({id:item.id}).then(res => {
showInfoData.value = item showInfoData.value = res
showInfoOpen.value = true showInfoOpen.value = true
})
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.content{ .map-list-content{
height: 100%; height: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;

View File

@ -22,6 +22,8 @@
:infoDataList="infoDataList" :infoDataList="infoDataList"
:municipalAreaOptions="municipalAreaOptions" :municipalAreaOptions="municipalAreaOptions"
:countiesAreaOptions="countiesAreaOptions" :countiesAreaOptions="countiesAreaOptions"
:streetsAreaOptions="streetsAreaOptions"
:communitiesAreaOptions="communitiesAreaOptions"
@infoDataListSort="infoDataListSort" @infoDataListSort="infoDataListSort"
@changeInfoPage="changeInfoPage" @changeInfoPage="changeInfoPage"
@getInfoList="getInfoList" @getInfoList="getInfoList"
@ -49,7 +51,7 @@ import mapboxgl, { Map } from 'mapbox-gl';
import { MapboxConfig, MapboxDefaultStyle } from '@/components/MapboxMaps/src/config.ts' import { MapboxConfig, MapboxDefaultStyle } from '@/components/MapboxMaps/src/config.ts'
import AuditProgress from './AuditProgress/index.vue' import AuditProgress from './AuditProgress/index.vue'
import MapList from './MapList/index.vue' import MapList from './MapList/index.vue'
import { getLoadDroneCaseInfoCount, getLoadDroneCaseInfoDetail } from '@/api/bootstraps/index.ts' import { getLoadDroneCaseInfoCount, getLoadDroneCaseInfoDetail, getLoadParents } from '@/api/bootstraps/index.ts'
import { batchOptions, yearOptions} from '@/views/demo/bootstraps/curbspotcity/util.ts' import { batchOptions, yearOptions} from '@/views/demo/bootstraps/curbspotcity/util.ts'
import { getChildrenTree } from '@/api/demo/system.ts' import { getChildrenTree } from '@/api/demo/system.ts'
import { getGeom,getConfig } from '@/api/sys/layerManagement'; import { getGeom,getConfig } from '@/api/sys/layerManagement';
@ -74,6 +76,7 @@ const infoScreenData = ref({
mapNo: '', mapNo: '',
countyId: '', countyId: '',
streetId: '', streetId: '',
communityId: '',
mapType: '', mapType: '',
illegalType: '', illegalType: '',
measure: '', measure: '',
@ -90,6 +93,12 @@ const municipalAreaOptions = ref([])
const countiesAreaOptions = ref([ const countiesAreaOptions = ref([
{ label: '全部', value: '' }, { label: '全部', value: '' },
]) ])
const streetsAreaOptions = ref([
{ label: '全部', value: '' },
])
const communitiesAreaOptions = ref([
{ label: '全部', value: '' },
])
const cityType = ref() const cityType = ref()
const spinning = ref(false) const spinning = ref(false)
const auditProgressScreenChange = (value, type) => { const auditProgressScreenChange = (value, type) => {
@ -129,6 +138,9 @@ const mapListScreenChange = (value, type) => {
case 'streetId': case 'streetId':
infoScreenData.value.streetId = value infoScreenData.value.streetId = value
break break
case 'communityId':
infoScreenData.value.communityId = value
break
case 'mapType': case 'mapType':
infoScreenData.value.mapType = value infoScreenData.value.mapType = value
if(value !== 1){ if(value !== 1){
@ -154,19 +166,49 @@ const mapListScreenChange = (value, type) => {
} }
} }
const changeShowInfo = async (value, item) => { const changeShowInfo = async (value, item) => {
if(item){ if(item){
cityType.value = item cityType.value = item
infoScreenData.value.countyId = item.areaid let childList = await getChildrenTree({parentId: item.areaid})
municipalAreaOptions.value = [{ label: item.areaname, value: item.areaid}] let params = {
getChildrenTree({parentId: item.areaid}).then(res => { childId : item.areaid
console.log(res) }
res.forEach(cityItem => { let parents = await getLoadParents(params)
countiesAreaOptions.value.push({ parents.forEach(parent => {
label: cityItem.name, switch(parent.level){
value: cityItem.id, case 1:
}) countiesAreaOptions.value.push({
}); label: parent.name,
value: parent.id,
})
infoScreenData.value.countyId = parent.id
childList.forEach(cityItem => {
streetsAreaOptions.value.push({
label: cityItem.name,
value: cityItem.id,
})
});
break
case 2:
streetsAreaOptions.value.push({
label: parent.name,
value: parent.id,
})
infoScreenData.value.streetId = parent.id
childList.forEach(cityItem => {
communitiesAreaOptions.value.push({
label: cityItem.name,
value: cityItem.id,
})
});
break
case 3:
communitiesAreaOptions.value.push({
label: parent.name,
value: parent.id,
})
infoScreenData.value.communityId = parent.id
break
}
}) })
await getInfoList() await getInfoList()
showInfo.value = value showInfo.value = value