刘妍 2024-08-29 10:06:49 +08:00
commit f3dac9e0fd
13 changed files with 1238 additions and 5 deletions

View File

@ -18,7 +18,25 @@ enum Api {
LoadTaskIllegalDetailList = '/api/DroneCaseInfoSatellite/LoadTaskIllegalDetailList',
// 图斑详情
GetCaseInfoById = '/api/DroneCaseInfoSatellite/GetCaseInfoById',
/****************************************************************************************************************************/
// 图斑填报
LoadReportingTaskList = '/api/DroneCaseInfoMinerals/LoadReportingTaskList',
// 填报审核
LoadReportingAuditTaskList = '/api/DroneCaseInfoMinerals/LoadReportingAuditTaskList',
// 图斑查处
LoadExaminingTaskList = '/api/DroneCaseInfoMinerals/LoadExaminingTaskList',
// 查处审核
LoadExaminingAuditTaskList = '/api/DroneCaseInfoMinerals/LoadExaminingAuditTaskList',
// 图斑整改
LoadRectifyingTaskList = '/api/DroneCaseInfoMinerals/LoadRectifyingTaskList',
// 整改审核
LoadRectifyingAuditTaskList = '/api/DroneCaseInfoMinerals/LoadRectifyingAuditTaskList',
// 图斑调整
LoadModifyingTaskList = '/api/DroneCaseInfoMinerals/LoadModifyingTaskList',
}
export function LoadCaiKuangTaskList(params) {
return defHttp.get({ url: Api.LoadCaiKuangTaskList, params });
}
@ -48,4 +66,28 @@ export function LoadReformCaseCount(params) {
}
export function GetCaseInfoById(params?: { id: string }) {
return defHttp.get({ url: Api.GetCaseInfoById, params });
}
/****************************************************************************************************************************/
export function LoadReportingTaskList(params){
return defHttp.get({ url: Api.LoadReportingTaskList, params });
}
export function LoadReportingAuditTaskList(params){
return defHttp.get({ url: Api.LoadReportingAuditTaskList, params });
}
export function LoadExaminingTaskList(params){
return defHttp.get({ url: Api.LoadExaminingTaskList, params });
}
export function LoadExaminingAuditTaskList(params){
return defHttp.get({ url: Api.LoadExaminingAuditTaskList, params });
}
export function LoadRectifyingTaskList(params){
return defHttp.get({ url: Api.LoadRectifyingTaskList, params });
}
export function LoadRectifyingAuditTaskList(params){
return defHttp.get({ url: Api.LoadRectifyingAuditTaskList, params });
}
export function LoadModifyingTaskList(params){
return defHttp.get({ url: Api.LoadModifyingTaskList, params });
}

View File

@ -79,8 +79,20 @@ export const orderUtils = {
}
export const usePageRequestUrl = {
'patternfilling': '/api/DroneCaseInfoSingle/LoadTasklList',
'fillingaudit': '/api/DroneCaseInfoMinerals/LoadReportingAuditTaskList',
'patternexamining': '/api/DroneCaseInfoMinerals/LoadExaminingTaskList',
'examiningaudit': '/api/DroneCaseInfoMinerals/LoadExaminingAuditTaskList',
'patternrectification': '/api/DroneCaseInfoMinerals/LoadRectifyingTaskList',
'rectificationaudit': '/api/DroneCaseInfoMinerals/LoadRectifyingAuditTaskList',
'patternadjust': '/api/DroneCaseInfoMinerals/LoadModifyingTaskList',
}
export const usePageGetSearchItem = {
'patternfilling': ["year", "tubanlaiyuan", "typename", "countyid", "streetid", "nowStatus", "time", "caseNo"],
'fillingaudit': ["year", "tubanlaiyuan", "typename", "countyid", "caseNo"],
'patternexamining': ["year", "tubanlaiyuan", "register", "countyid", "caseNo"],
'examiningaudit': ["year", "tubanlaiyuan", "register", "countyid", "caseNo"],
'patternrectification': ["year", "tubanlaiyuan", "countyid", "caseNo"],
'rectificationaudit': ["year", "tubanlaiyuan", "countyid", "caseNo"],
'patternadjust': ["year", "tubanlaiyuan", "countyid", "caseNo"],
}
export const smallInput:any = []
export const smallInput:any = ['fillingaudit','patternexamining','examiningaudit']

View File

@ -0,0 +1,151 @@
<template>
<div class="out-div">
<SearchComponent
:usePage="'examiningaudit'"
:screenData="screenData"
@screenDataChange="screenDataChange"
@search="search"
@resetScreenData="resetScreenData"/>
<SortComponent
:sortData="sortData"
:screenData="screenData"
@changeSort="changeSort"
@collectChange="collectChange"/>
<ShowListComponent
:usePage="'examiningaudit'"
:dataList="dataList"
:screenData="screenData"
:sortData="sortData"
:pageData="pageData"
:total="total"
@changeTask="changeTask"
@query="query"
@flipChange="flipChange"/>
<PaginationComponent
:pageData="pageData"
:total="total"
@changePageData="changePageData"/>
</div>
</template>
<script setup lang="ts">
import { ref, onMounted, defineEmits } from "vue"
import SearchComponent from '@/components/illegalmining/SearchComponent/index.vue'
import SortComponent from '@/components/illegalmining/SortComponent/index.vue'
import ShowListComponent from '@/components/illegalmining/ShowListComponent/index.vue'
import PaginationComponent from '@/components/illegalmining/PaginationComponent/index.vue'
import dayjs from 'dayjs';
import { LoadExaminingAuditTaskList } from '@/api/illegalmining/index'
const emits = defineEmits(['changeLoading','changeTask'])
const screenData = ref({
year: '',
tubanlaiyuan: '',
register: '',
countyid:'',
caseNo: '',
type: '',
})
const sortData = ref({
sortType: null,
order: null,
})
const pageData = ref({
page: 1,
limit: 10,
})
const total = ref(0)
const dataList = ref([])
onMounted(() => {
query()
})
const query = () => {
let params = {
...pageData.value,
...sortData.value,
}
Object.keys(screenData.value).forEach(key => {
switch(key){
case 'time':
if(screenData.value[key]){
params['startTime'] = dayjs(screenData.value[key][0]).format('YYYY-MM-DD')
params['endTime'] = dayjs(screenData.value[key][1]).format('YYYY-MM-DD')
}
break
case 'nowStatus':
if(screenData.value[key].length > 0){
params['nowStatus'] = screenData.value[key].join(',')
}
break
default:
if(screenData.value[key] !== null && screenData.value[key] !== undefined && screenData.value[key] !== ''){
params[key] = screenData.value[key]
}
break
}
})
emits('changeLoading',true)
LoadExaminingAuditTaskList(params).then(res => {
console.log(res)
dataList.value = res.items
total.value = res.total
}).finally(() => {
emits('changeLoading',false)
})
}
const screenDataChange = (value, type) => {
console.log(value,type)
screenData.value[type] = value
}
const search = () => {
query()
console.log(screenData.value)
}
const changeSort = (sortType, order) => {
sortData.value.sortType = sortType
sortData.value.order = order
query()
}
const collectChange = (type) => {
screenData.value.type = type
pageData.value.page = 1
query()
}
const resetScreenData = () => {
screenData.value = {
year: '',
tubanlaiyuan: '',
register: '',
countyid:'',
caseNo: '',
type: screenData.value.type,
}
query()
}
const changePageData = (page, limit) => {
pageData.value.page = page
pageData.value.limit = limit
query()
}
const changeTask = (id) => {
emits('changeTask',id)
}
const flipChange = (list, totalNumber, page) => {
dataList.value = list
total.value = totalNumber
pageData.value.page = page
}
</script>
<style lang="scss" scoped>
.out-div{
height: 100%;
display: flex;
flex-direction: column;
// background-color: aqua;
}
</style>

View File

@ -0,0 +1,86 @@
<template>
<div class="curb-spot-city">
<div class="show-list">
<a-spin :spinning="spinning">
<MapList
@changeLoading="changeLoading"
@changeTask="changeTask"/>
</a-spin>
</div>
<MapboxMap
:mapConfig="mapConfig"
@mapOnLoad="onMapboxLoad"
ref="MapboxComponent"
/>
</div>
</template>
<script setup lang="ts">
import { ref, defineAsyncComponent, onMounted } from "vue"
const MapboxMap = defineAsyncComponent(() => import('@/components/MapboxMaps/MapComponent.vue'));
import { getGeom, getConfig } from '@/api/sys/layerManagement';
import { message } from 'ant-design-vue'
import MapList from './MapList/index.vue'
const spinning = ref(false)
const mapConfig = ref({ isShowMap: false });
const MapboxComponent = ref();
const changeLoading = (value: boolean) => {
spinning.value = value
}
function onMapboxLoad(): void {
getConfig({ code: 'mapsetting' }).then((res) => {
mapConfig.value = JSON.parse(res.codeValue);
});
}
function changeTask(val) {
let getGeomPrams = {
TableName: 'drone_shp_data ',
FieldName: 'gid',
FieldValue: val?.split(','),
page: 1,
limit: 999,
key: null,
};
if (val) {
getGeom(getGeomPrams).then((res) => {
let geoms:any[] = [];
if (res) {
if (res.items?.length > 0) {
res.items.forEach((item, index) => {
let geom = {
key: item.gid,
mapgeom: item.geometry,
};
geoms.push(geom);
});
}
MapboxComponent.value.handlerDraw('Details', geoms, false);
} else {
message.error('当前数据没有图斑!');
}
});
} else {
message.error('当前数据没有图斑!');
}
}
</script>
<style lang="scss" scoped>
.curb-spot-city {
height: 100%;
display: flex;
.show-list {
width: 590px;
background: #efefef;
:deep(.ant-spin-nested-loading) {
height: 100%;
width: 590px;
}
:deep(.ant-spin-container) {
height: 100%;
}
}
}
</style>

View File

@ -0,0 +1,151 @@
<template>
<div class="out-div">
<SearchComponent
:usePage="'fillingaudit'"
:screenData="screenData"
@screenDataChange="screenDataChange"
@search="search"
@resetScreenData="resetScreenData"/>
<SortComponent
:sortData="sortData"
:screenData="screenData"
@changeSort="changeSort"
@collectChange="collectChange"/>
<ShowListComponent
:usePage="'fillingaudit'"
:dataList="dataList"
:screenData="screenData"
:sortData="sortData"
:pageData="pageData"
:total="total"
@changeTask="changeTask"
@query="query"
@flipChange="flipChange"/>
<PaginationComponent
:pageData="pageData"
:total="total"
@changePageData="changePageData"/>
</div>
</template>
<script setup lang="ts">
import { ref, onMounted, defineEmits } from "vue"
import SearchComponent from '@/components/illegalmining/SearchComponent/index.vue'
import SortComponent from '@/components/illegalmining/SortComponent/index.vue'
import ShowListComponent from '@/components/illegalmining/ShowListComponent/index.vue'
import PaginationComponent from '@/components/illegalmining/PaginationComponent/index.vue'
import dayjs from 'dayjs';
import { LoadReportingAuditTaskList } from '@/api/illegalmining/index'
const emits = defineEmits(['changeLoading','changeTask'])
const screenData = ref({
year: '',
tubanlaiyuan: '',
typename: '',
countyid:'',
caseNo: '',
type: '',
})
const sortData = ref({
sortType: null,
order: null,
})
const pageData = ref({
page: 1,
limit: 10,
})
const total = ref(0)
const dataList = ref([])
onMounted(() => {
query()
})
const query = () => {
let params = {
...pageData.value,
...sortData.value,
}
Object.keys(screenData.value).forEach(key => {
switch(key){
case 'time':
if(screenData.value[key]){
params['startTime'] = dayjs(screenData.value[key][0]).format('YYYY-MM-DD')
params['endTime'] = dayjs(screenData.value[key][1]).format('YYYY-MM-DD')
}
break
case 'nowStatus':
if(screenData.value[key].length > 0){
params['nowStatus'] = screenData.value[key].join(',')
}
break
default:
if(screenData.value[key] !== null && screenData.value[key] !== undefined && screenData.value[key] !== ''){
params[key] = screenData.value[key]
}
break
}
})
emits('changeLoading',true)
LoadReportingAuditTaskList(params).then(res => {
console.log(res)
dataList.value = res.items
total.value = res.total
}).finally(() => {
emits('changeLoading',false)
})
}
const screenDataChange = (value, type) => {
console.log(value,type)
screenData.value[type] = value
}
const search = () => {
query()
console.log(screenData.value)
}
const changeSort = (sortType, order) => {
sortData.value.sortType = sortType
sortData.value.order = order
query()
}
const collectChange = (type) => {
screenData.value.type = type
pageData.value.page = 1
query()
}
const resetScreenData = () => {
screenData.value = {
year: '',
tubanlaiyuan: '',
typename: '',
countyid:'',
caseNo: '',
type: screenData.value.type,
}
query()
}
const changePageData = (page, limit) => {
pageData.value.page = page
pageData.value.limit = limit
query()
}
const changeTask = (id) => {
emits('changeTask',id)
}
const flipChange = (list, totalNumber, page) => {
dataList.value = list
total.value = totalNumber
pageData.value.page = page
}
</script>
<style lang="scss" scoped>
.out-div{
height: 100%;
display: flex;
flex-direction: column;
// background-color: aqua;
}
</style>

View File

@ -0,0 +1,86 @@
<template>
<div class="curb-spot-city">
<div class="show-list">
<a-spin :spinning="spinning">
<MapList
@changeLoading="changeLoading"
@changeTask="changeTask"/>
</a-spin>
</div>
<MapboxMap
:mapConfig="mapConfig"
@mapOnLoad="onMapboxLoad"
ref="MapboxComponent"
/>
</div>
</template>
<script setup lang="ts">
import { ref, defineAsyncComponent, onMounted } from "vue"
const MapboxMap = defineAsyncComponent(() => import('@/components/MapboxMaps/MapComponent.vue'));
import { getGeom, getConfig } from '@/api/sys/layerManagement';
import { message } from 'ant-design-vue'
import MapList from './MapList/index.vue'
const spinning = ref(false)
const mapConfig = ref({ isShowMap: false });
const MapboxComponent = ref();
const changeLoading = (value: boolean) => {
spinning.value = value
}
function onMapboxLoad(): void {
getConfig({ code: 'mapsetting' }).then((res) => {
mapConfig.value = JSON.parse(res.codeValue);
});
}
function changeTask(val) {
let getGeomPrams = {
TableName: 'drone_shp_data ',
FieldName: 'gid',
FieldValue: val?.split(','),
page: 1,
limit: 999,
key: null,
};
if (val) {
getGeom(getGeomPrams).then((res) => {
let geoms:any[] = [];
if (res) {
if (res.items?.length > 0) {
res.items.forEach((item, index) => {
let geom = {
key: item.gid,
mapgeom: item.geometry,
};
geoms.push(geom);
});
}
MapboxComponent.value.handlerDraw('Details', geoms, false);
} else {
message.error('当前数据没有图斑!');
}
});
} else {
message.error('当前数据没有图斑!');
}
}
</script>
<style lang="scss" scoped>
.curb-spot-city {
height: 100%;
display: flex;
.show-list {
width: 590px;
background: #efefef;
:deep(.ant-spin-nested-loading) {
height: 100%;
width: 590px;
}
:deep(.ant-spin-container) {
height: 100%;
}
}
}
</style>

View File

@ -0,0 +1,149 @@
<template>
<div class="out-div">
<SearchComponent
:usePage="'patternadjust'"
:screenData="screenData"
@screenDataChange="screenDataChange"
@search="search"
@resetScreenData="resetScreenData"/>
<SortComponent
:sortData="sortData"
:screenData="screenData"
@changeSort="changeSort"
@collectChange="collectChange"/>
<ShowListComponent
:usePage="'patternadjust'"
:dataList="dataList"
:screenData="screenData"
:sortData="sortData"
:pageData="pageData"
:total="total"
@changeTask="changeTask"
@query="query"
@flipChange="flipChange"/>
<PaginationComponent
:pageData="pageData"
:total="total"
@changePageData="changePageData"/>
</div>
</template>
<script setup lang="ts">
import { ref, onMounted, defineEmits } from "vue"
import SearchComponent from '@/components/illegalmining/SearchComponent/index.vue'
import SortComponent from '@/components/illegalmining/SortComponent/index.vue'
import ShowListComponent from '@/components/illegalmining/ShowListComponent/index.vue'
import PaginationComponent from '@/components/illegalmining/PaginationComponent/index.vue'
import dayjs from 'dayjs';
import { LoadModifyingTaskList } from '@/api/illegalmining/index'
const emits = defineEmits(['changeLoading','changeTask'])
const screenData = ref({
year: '',
tubanlaiyuan: '',
countyid:'',
caseNo: '',
type: '',
})
const sortData = ref({
sortType: null,
order: null,
})
const pageData = ref({
page: 1,
limit: 10,
})
const total = ref(0)
const dataList = ref([])
onMounted(() => {
query()
})
const query = () => {
let params = {
...pageData.value,
...sortData.value,
}
Object.keys(screenData.value).forEach(key => {
switch(key){
case 'time':
if(screenData.value[key]){
params['startTime'] = dayjs(screenData.value[key][0]).format('YYYY-MM-DD')
params['endTime'] = dayjs(screenData.value[key][1]).format('YYYY-MM-DD')
}
break
case 'nowStatus':
if(screenData.value[key].length > 0){
params['nowStatus'] = screenData.value[key].join(',')
}
break
default:
if(screenData.value[key] !== null && screenData.value[key] !== undefined && screenData.value[key] !== ''){
params[key] = screenData.value[key]
}
break
}
})
emits('changeLoading',true)
LoadModifyingTaskList(params).then(res => {
console.log(res)
dataList.value = res.items
total.value = res.total
}).finally(() => {
emits('changeLoading',false)
})
}
const screenDataChange = (value, type) => {
console.log(value,type)
screenData.value[type] = value
}
const search = () => {
query()
console.log(screenData.value)
}
const changeSort = (sortType, order) => {
sortData.value.sortType = sortType
sortData.value.order = order
query()
}
const collectChange = (type) => {
screenData.value.type = type
pageData.value.page = 1
query()
}
const resetScreenData = () => {
screenData.value = {
year: '',
tubanlaiyuan: '',
countyid:'',
caseNo: '',
type: screenData.value.type,
}
query()
}
const changePageData = (page, limit) => {
pageData.value.page = page
pageData.value.limit = limit
query()
}
const changeTask = (id) => {
emits('changeTask',id)
}
const flipChange = (list, totalNumber, page) => {
dataList.value = list
total.value = totalNumber
pageData.value.page = page
}
</script>
<style lang="scss" scoped>
.out-div{
height: 100%;
display: flex;
flex-direction: column;
// background-color: aqua;
}
</style>

View File

@ -0,0 +1,86 @@
<template>
<div class="curb-spot-city">
<div class="show-list">
<a-spin :spinning="spinning">
<MapList
@changeLoading="changeLoading"
@changeTask="changeTask"/>
</a-spin>
</div>
<MapboxMap
:mapConfig="mapConfig"
@mapOnLoad="onMapboxLoad"
ref="MapboxComponent"
/>
</div>
</template>
<script setup lang="ts">
import { ref, defineAsyncComponent, onMounted } from "vue"
const MapboxMap = defineAsyncComponent(() => import('@/components/MapboxMaps/MapComponent.vue'));
import { getGeom, getConfig } from '@/api/sys/layerManagement';
import { message } from 'ant-design-vue'
import MapList from './MapList/index.vue'
const spinning = ref(false)
const mapConfig = ref({ isShowMap: false });
const MapboxComponent = ref();
const changeLoading = (value: boolean) => {
spinning.value = value
}
function onMapboxLoad(): void {
getConfig({ code: 'mapsetting' }).then((res) => {
mapConfig.value = JSON.parse(res.codeValue);
});
}
function changeTask(val) {
let getGeomPrams = {
TableName: 'drone_shp_data ',
FieldName: 'gid',
FieldValue: val?.split(','),
page: 1,
limit: 999,
key: null,
};
if (val) {
getGeom(getGeomPrams).then((res) => {
let geoms:any[] = [];
if (res) {
if (res.items?.length > 0) {
res.items.forEach((item, index) => {
let geom = {
key: item.gid,
mapgeom: item.geometry,
};
geoms.push(geom);
});
}
MapboxComponent.value.handlerDraw('Details', geoms, false);
} else {
message.error('当前数据没有图斑!');
}
});
} else {
message.error('当前数据没有图斑!');
}
}
</script>
<style lang="scss" scoped>
.curb-spot-city {
height: 100%;
display: flex;
.show-list {
width: 590px;
background: #efefef;
:deep(.ant-spin-nested-loading) {
height: 100%;
width: 590px;
}
:deep(.ant-spin-container) {
height: 100%;
}
}
}
</style>

View File

@ -0,0 +1,151 @@
<template>
<div class="out-div">
<SearchComponent
:usePage="'patternexamining'"
:screenData="screenData"
@screenDataChange="screenDataChange"
@search="search"
@resetScreenData="resetScreenData"/>
<SortComponent
:sortData="sortData"
:screenData="screenData"
@changeSort="changeSort"
@collectChange="collectChange"/>
<ShowListComponent
:usePage="'patternexamining'"
:dataList="dataList"
:screenData="screenData"
:sortData="sortData"
:pageData="pageData"
:total="total"
@changeTask="changeTask"
@query="query"
@flipChange="flipChange"/>
<PaginationComponent
:pageData="pageData"
:total="total"
@changePageData="changePageData"/>
</div>
</template>
<script setup lang="ts">
import { ref, onMounted, defineEmits } from "vue"
import SearchComponent from '@/components/illegalmining/SearchComponent/index.vue'
import SortComponent from '@/components/illegalmining/SortComponent/index.vue'
import ShowListComponent from '@/components/illegalmining/ShowListComponent/index.vue'
import PaginationComponent from '@/components/illegalmining/PaginationComponent/index.vue'
import dayjs from 'dayjs';
import { LoadExaminingTaskList } from '@/api/illegalmining/index'
const emits = defineEmits(['changeLoading','changeTask'])
const screenData = ref({
year: '',
tubanlaiyuan: '',
register: '',
countyid:'',
caseNo: '',
type: '',
})
const sortData = ref({
sortType: null,
order: null,
})
const pageData = ref({
page: 1,
limit: 10,
})
const total = ref(0)
const dataList = ref([])
onMounted(() => {
query()
})
const query = () => {
let params = {
...pageData.value,
...sortData.value,
}
Object.keys(screenData.value).forEach(key => {
switch(key){
case 'time':
if(screenData.value[key]){
params['startTime'] = dayjs(screenData.value[key][0]).format('YYYY-MM-DD')
params['endTime'] = dayjs(screenData.value[key][1]).format('YYYY-MM-DD')
}
break
case 'nowStatus':
if(screenData.value[key].length > 0){
params['nowStatus'] = screenData.value[key].join(',')
}
break
default:
if(screenData.value[key] !== null && screenData.value[key] !== undefined && screenData.value[key] !== ''){
params[key] = screenData.value[key]
}
break
}
})
emits('changeLoading',true)
LoadExaminingTaskList(params).then(res => {
console.log(res)
dataList.value = res.items
total.value = res.total
}).finally(() => {
emits('changeLoading',false)
})
}
const screenDataChange = (value, type) => {
console.log(value,type)
screenData.value[type] = value
}
const search = () => {
query()
console.log(screenData.value)
}
const changeSort = (sortType, order) => {
sortData.value.sortType = sortType
sortData.value.order = order
query()
}
const collectChange = (type) => {
screenData.value.type = type
pageData.value.page = 1
query()
}
const resetScreenData = () => {
screenData.value = {
year: '',
tubanlaiyuan: '',
register: '',
countyid:'',
caseNo: '',
type: screenData.value.type,
}
query()
}
const changePageData = (page, limit) => {
pageData.value.page = page
pageData.value.limit = limit
query()
}
const changeTask = (id) => {
emits('changeTask',id)
}
const flipChange = (list, totalNumber, page) => {
dataList.value = list
total.value = totalNumber
pageData.value.page = page
}
</script>
<style lang="scss" scoped>
.out-div{
height: 100%;
display: flex;
flex-direction: column;
// background-color: aqua;
}
</style>

View File

@ -0,0 +1,86 @@
<template>
<div class="curb-spot-city">
<div class="show-list">
<a-spin :spinning="spinning">
<MapList
@changeLoading="changeLoading"
@changeTask="changeTask"/>
</a-spin>
</div>
<MapboxMap
:mapConfig="mapConfig"
@mapOnLoad="onMapboxLoad"
ref="MapboxComponent"
/>
</div>
</template>
<script setup lang="ts">
import { ref, defineAsyncComponent, onMounted } from "vue"
const MapboxMap = defineAsyncComponent(() => import('@/components/MapboxMaps/MapComponent.vue'));
import { getGeom, getConfig } from '@/api/sys/layerManagement';
import { message } from 'ant-design-vue'
import MapList from './MapList/index.vue'
const spinning = ref(false)
const mapConfig = ref({ isShowMap: false });
const MapboxComponent = ref();
const changeLoading = (value: boolean) => {
spinning.value = value
}
function onMapboxLoad(): void {
getConfig({ code: 'mapsetting' }).then((res) => {
mapConfig.value = JSON.parse(res.codeValue);
});
}
function changeTask(val) {
let getGeomPrams = {
TableName: 'drone_shp_data ',
FieldName: 'gid',
FieldValue: val?.split(','),
page: 1,
limit: 999,
key: null,
};
if (val) {
getGeom(getGeomPrams).then((res) => {
let geoms:any[] = [];
if (res) {
if (res.items?.length > 0) {
res.items.forEach((item, index) => {
let geom = {
key: item.gid,
mapgeom: item.geometry,
};
geoms.push(geom);
});
}
MapboxComponent.value.handlerDraw('Details', geoms, false);
} else {
message.error('当前数据没有图斑!');
}
});
} else {
message.error('当前数据没有图斑!');
}
}
</script>
<style lang="scss" scoped>
.curb-spot-city {
height: 100%;
display: flex;
.show-list {
width: 590px;
background: #efefef;
:deep(.ant-spin-nested-loading) {
height: 100%;
width: 590px;
}
:deep(.ant-spin-container) {
height: 100%;
}
}
}
</style>

View File

@ -35,8 +35,7 @@ import SortComponent from '@/components/illegalmining/SortComponent/index.vue'
import ShowListComponent from '@/components/illegalmining/ShowListComponent/index.vue'
import PaginationComponent from '@/components/illegalmining/PaginationComponent/index.vue'
import dayjs from 'dayjs';
// TODO
import { getLoadDroneCaseInfoDetail } from '@/api/tiankongdi/index';
import { LoadReportingTaskList } from '@/api/illegalmining/index'
const emits = defineEmits(['changeLoading','changeTask'])
@ -92,8 +91,7 @@ const query = () => {
}
})
emits('changeLoading',true)
// TODO
getLoadDroneCaseInfoDetail(params).then(res => {
LoadReportingTaskList(params).then(res => {
console.log(res)
dataList.value = res.items
total.value = res.total

View File

@ -0,0 +1,149 @@
<template>
<div class="out-div">
<SearchComponent
:usePage="'patternrectification'"
:screenData="screenData"
@screenDataChange="screenDataChange"
@search="search"
@resetScreenData="resetScreenData"/>
<SortComponent
:sortData="sortData"
:screenData="screenData"
@changeSort="changeSort"
@collectChange="collectChange"/>
<ShowListComponent
:usePage="'patternrectification'"
:dataList="dataList"
:screenData="screenData"
:sortData="sortData"
:pageData="pageData"
:total="total"
@changeTask="changeTask"
@query="query"
@flipChange="flipChange"/>
<PaginationComponent
:pageData="pageData"
:total="total"
@changePageData="changePageData"/>
</div>
</template>
<script setup lang="ts">
import { ref, onMounted, defineEmits } from "vue"
import SearchComponent from '@/components/illegalmining/SearchComponent/index.vue'
import SortComponent from '@/components/illegalmining/SortComponent/index.vue'
import ShowListComponent from '@/components/illegalmining/ShowListComponent/index.vue'
import PaginationComponent from '@/components/illegalmining/PaginationComponent/index.vue'
import dayjs from 'dayjs';
import { LoadRectifyingTaskList } from '@/api/illegalmining/index'
const emits = defineEmits(['changeLoading','changeTask'])
const screenData = ref({
year: '',
tubanlaiyuan: '',
countyid:'',
caseNo: '',
type: '',
})
const sortData = ref({
sortType: null,
order: null,
})
const pageData = ref({
page: 1,
limit: 10,
})
const total = ref(0)
const dataList = ref([])
onMounted(() => {
query()
})
const query = () => {
let params = {
...pageData.value,
...sortData.value,
}
Object.keys(screenData.value).forEach(key => {
switch(key){
case 'time':
if(screenData.value[key]){
params['startTime'] = dayjs(screenData.value[key][0]).format('YYYY-MM-DD')
params['endTime'] = dayjs(screenData.value[key][1]).format('YYYY-MM-DD')
}
break
case 'nowStatus':
if(screenData.value[key].length > 0){
params['nowStatus'] = screenData.value[key].join(',')
}
break
default:
if(screenData.value[key] !== null && screenData.value[key] !== undefined && screenData.value[key] !== ''){
params[key] = screenData.value[key]
}
break
}
})
emits('changeLoading',true)
LoadRectifyingTaskList(params).then(res => {
console.log(res)
dataList.value = res.items
total.value = res.total
}).finally(() => {
emits('changeLoading',false)
})
}
const screenDataChange = (value, type) => {
console.log(value,type)
screenData.value[type] = value
}
const search = () => {
query()
console.log(screenData.value)
}
const changeSort = (sortType, order) => {
sortData.value.sortType = sortType
sortData.value.order = order
query()
}
const collectChange = (type) => {
screenData.value.type = type
pageData.value.page = 1
query()
}
const resetScreenData = () => {
screenData.value = {
year: '',
tubanlaiyuan: '',
countyid:'',
caseNo: '',
type: screenData.value.type,
}
query()
}
const changePageData = (page, limit) => {
pageData.value.page = page
pageData.value.limit = limit
query()
}
const changeTask = (id) => {
emits('changeTask',id)
}
const flipChange = (list, totalNumber, page) => {
dataList.value = list
total.value = totalNumber
pageData.value.page = page
}
</script>
<style lang="scss" scoped>
.out-div{
height: 100%;
display: flex;
flex-direction: column;
// background-color: aqua;
}
</style>

View File

@ -0,0 +1,86 @@
<template>
<div class="curb-spot-city">
<div class="show-list">
<a-spin :spinning="spinning">
<MapList
@changeLoading="changeLoading"
@changeTask="changeTask"/>
</a-spin>
</div>
<MapboxMap
:mapConfig="mapConfig"
@mapOnLoad="onMapboxLoad"
ref="MapboxComponent"
/>
</div>
</template>
<script setup lang="ts">
import { ref, defineAsyncComponent, onMounted } from "vue"
const MapboxMap = defineAsyncComponent(() => import('@/components/MapboxMaps/MapComponent.vue'));
import { getGeom, getConfig } from '@/api/sys/layerManagement';
import { message } from 'ant-design-vue'
import MapList from './MapList/index.vue'
const spinning = ref(false)
const mapConfig = ref({ isShowMap: false });
const MapboxComponent = ref();
const changeLoading = (value: boolean) => {
spinning.value = value
}
function onMapboxLoad(): void {
getConfig({ code: 'mapsetting' }).then((res) => {
mapConfig.value = JSON.parse(res.codeValue);
});
}
function changeTask(val) {
let getGeomPrams = {
TableName: 'drone_shp_data ',
FieldName: 'gid',
FieldValue: val?.split(','),
page: 1,
limit: 999,
key: null,
};
if (val) {
getGeom(getGeomPrams).then((res) => {
let geoms:any[] = [];
if (res) {
if (res.items?.length > 0) {
res.items.forEach((item, index) => {
let geom = {
key: item.gid,
mapgeom: item.geometry,
};
geoms.push(geom);
});
}
MapboxComponent.value.handlerDraw('Details', geoms, false);
} else {
message.error('当前数据没有图斑!');
}
});
} else {
message.error('当前数据没有图斑!');
}
}
</script>
<style lang="scss" scoped>
.curb-spot-city {
height: 100%;
display: flex;
.show-list {
width: 590px;
background: #efefef;
:deep(.ant-spin-nested-loading) {
height: 100%;
width: 590px;
}
:deep(.ant-spin-container) {
height: 100%;
}
}
}
</style>