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

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',
// 督办流程
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}) =>
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')}"
/>
</div>
<div class="screen-item">
<!-- <div class="screen-item">
<div class="screen-item-label">批次</div>
<a-select
allowClear
@ -20,7 +20,7 @@
:options="batchOptions"
@change="(value) => {emits('auditProgressScreenChange', value,'batch')}"
/>
</div>
</div> -->
</div>
</div>
<div class="data-list">

View File

@ -54,20 +54,102 @@ const props = defineProps(["showInfoData"])
console.log("showInfoData123",props.showInfoData);
const {
address,
area,
case_description,
case_name,
case_no,
createtime,
gengdi_area,
guotukongjianguihua_area,
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,
nongyongdi_area,
shengtaibaohuhongxian_area,
gengdi_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
function onMapboxLoad(){

View File

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

View File

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