“违法用地”模块持续监管新需求
parent
864fd87ba0
commit
44817bebf7
|
|
@ -30,7 +30,10 @@ enum Api {
|
||||||
// 判读-导出shp文件
|
// 判读-导出shp文件
|
||||||
ExportapprovalCaseInfoShapefile = 'ExportapprovalCaseInfoShapefile',
|
ExportapprovalCaseInfoShapefile = 'ExportapprovalCaseInfoShapefile',
|
||||||
// 查询是否有复提条件
|
// 查询是否有复提条件
|
||||||
IsReSubmit = '/api/DroneCaseInfoSingle/IsReSubmit'
|
IsReSubmit = '/api/DroneCaseInfoSingle/IsReSubmit',
|
||||||
|
LoadCaseInfoCXJG = '/api/DroneCaseInfoTask/LoadCaseInfoCXJG',
|
||||||
|
ImportCaseInfoCXJGShpData = '/api/DroneCaseInfoTask/ImportCaseInfoCXJGShpData',
|
||||||
|
DeleteCaseInfoCXJG = '/api/DroneCaseInfoTask/DeleteCaseInfoCXJG',
|
||||||
}
|
}
|
||||||
|
|
||||||
const typeObj = {
|
const typeObj = {
|
||||||
|
|
@ -149,9 +152,32 @@ export function ExportapprovalCaseInfoShapefile(type, params?){
|
||||||
responseType: 'blob',
|
responseType: 'blob',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export function IsReSubmit(params: { originalcaseno: string, subjectkey: string }){
|
export function IsReSubmit(params: { originalcaseno: string, subjectkey: string }){
|
||||||
return defHttp.get({
|
return defHttp.get({
|
||||||
url: Api.IsReSubmit,
|
url: Api.IsReSubmit,
|
||||||
params
|
params
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function loadCaseInfoCXJG(params: any){
|
||||||
|
return defHttp.get({
|
||||||
|
url: Api.LoadCaseInfoCXJG,
|
||||||
|
params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export function importCaseInfoCXJGShpData(params: {zipFilePath: string, srid: string}){
|
||||||
|
return defHttp.post({
|
||||||
|
url: `${Api.ImportCaseInfoCXJGShpData}?zipFilePath=${params.zipFilePath}&srid=${params.srid}`,
|
||||||
|
data: params,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function deleteCaseInfoCXJG (id: string) {
|
||||||
|
return defHttp.post({
|
||||||
|
url: Api.DeleteCaseInfoCXJG+'?id='+id,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -50,24 +50,27 @@ enum Api {
|
||||||
// 获取用户访问机构权限
|
// 获取用户访问机构权限
|
||||||
GetUserOrgs = '/api/Check/GetOrgs',
|
GetUserOrgs = '/api/Check/GetOrgs',
|
||||||
// 大屏下发线索统计
|
// 大屏下发线索统计
|
||||||
IssuedStatitical = "/api/DroneScreenDisplay/CaseOffenceXiaFa",
|
IssuedStatitical = '/api/DroneScreenDisplay/CaseOffenceXiaFa',
|
||||||
// 大屏核实新增统计
|
// 大屏核实新增统计
|
||||||
VerifyStatitical = "/api/DroneScreenDisplay/CaseOffenceCheckAdd",
|
VerifyStatitical = '/api/DroneScreenDisplay/CaseOffenceCheckAdd',
|
||||||
// 大屏整改剩余统计
|
// 大屏整改剩余统计
|
||||||
RectificationStatitical = "/api/DroneScreenDisplay/CaseOffenceModifyRemain",
|
RectificationStatitical = '/api/DroneScreenDisplay/CaseOffenceModifyRemain',
|
||||||
// 获取案件图片坐标、方位角信息
|
// 获取案件图片坐标、方位角信息
|
||||||
LoadCaseImgList = "/api/DroneCaseInfoSingle/LoadCaseImgList",
|
LoadCaseImgList = '/api/DroneCaseInfoSingle/LoadCaseImgList',
|
||||||
// 获取范围内影像服务信息
|
// 获取范围内影像服务信息
|
||||||
GetIntersects = "/api/GeoTiffManager/GetIntersects",
|
GetIntersects = '/api/GeoTiffManager/GetIntersects',
|
||||||
// 获取网络环境
|
// 获取网络环境
|
||||||
GetNetWorkEev = "/api/DroneCloudQuery/IsPublic",
|
GetNetWorkEev = '/api/DroneCloudQuery/IsPublic',
|
||||||
// 获取其他专题或历史线索图片
|
// 获取其他专题或历史线索图片
|
||||||
rebackzhuantipic = "/api/DroneCaseInfoSingle/rebackzhuantipic",
|
rebackzhuantipic = '/api/DroneCaseInfoSingle/rebackzhuantipic',
|
||||||
CopyImg = "/api/DroneCaseInfoSingle/CopyImg",
|
CopyImg = '/api/DroneCaseInfoSingle/CopyImg',
|
||||||
// 获取其他专题或历史线索附件
|
// 获取其他专题或历史线索附件
|
||||||
rebackzhuantifujian = "/api/DroneCaseInfoSingle/rebackzhuantifujian",
|
rebackzhuantifujian = '/api/DroneCaseInfoSingle/rebackzhuantifujian',
|
||||||
Copyfujian = "/api/DroneCaseInfoSingle/Copyfujian",
|
Copyfujian = '/api/DroneCaseInfoSingle/Copyfujian',
|
||||||
DroneCasePushToSdt="/api/DroneCaseInfoSingle/DroneCasePushToSdt",
|
DroneCasePushToSdt = '/api/DroneCaseInfoSingle/DroneCasePushToSdt',
|
||||||
|
// 查询图斑相交案件信息
|
||||||
|
GetHistoryCase = '/api/DroneCaseInfoSingle/GetHistoryCase',
|
||||||
|
GetHistoryCaseByCaseId = '/api/DroneCaseInfoSingle/GetHistoryCaseByCaseId',
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -135,23 +138,22 @@ export function getLoadTaskIllegalDetailList(params?: taskInfoParams) {
|
||||||
return defHttp.get({ url: Api.LoadTaskIllegalDetailList, params });
|
return defHttp.get({ url: Api.LoadTaskIllegalDetailList, params });
|
||||||
}
|
}
|
||||||
|
|
||||||
export function splitCase(params){
|
export function splitCase(params) {
|
||||||
return defHttp.post({ url: Api.SplitCase, data: params });
|
return defHttp.post({ url: Api.SplitCase, data: params });
|
||||||
}
|
}
|
||||||
|
|
||||||
export function recoverCase(params){
|
export function recoverCase(params) {
|
||||||
return defHttp.post({ url: Api.RecoverCase, data: params });
|
return defHttp.post({ url: Api.RecoverCase, data: params });
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getPolygonCenter(params){
|
export function getPolygonCenter(params) {
|
||||||
return defHttp.get({ url: Api.GetPolygonCenter, params });
|
return defHttp.get({ url: Api.GetPolygonCenter, params });
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getUserOrgs(params){
|
export function getUserOrgs(params) {
|
||||||
return defHttp.get({ url: Api.GetUserOrgs, params });
|
return defHttp.get({ url: Api.GetUserOrgs, params });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export function getIssuedStatitical(params) {
|
export function getIssuedStatitical(params) {
|
||||||
return defHttp.get({
|
return defHttp.get({
|
||||||
url: Api.IssuedStatitical,
|
url: Api.IssuedStatitical,
|
||||||
|
|
@ -173,49 +175,62 @@ export function getRectificationStatitical(params) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getLoadCaseImgList(params){
|
export function getLoadCaseImgList(params) {
|
||||||
return defHttp.get({
|
return defHttp.get({
|
||||||
url: Api.LoadCaseImgList,
|
url: Api.LoadCaseImgList,
|
||||||
params,
|
params,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getIntersectTif(params) {
|
||||||
export function getIntersectTif(params){
|
|
||||||
return defHttp.get({ url: Api.GetIntersects, params });
|
return defHttp.get({ url: Api.GetIntersects, params });
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getNetworkType(){
|
export function getNetworkType() {
|
||||||
return defHttp.get({ url: Api.GetNetWorkEev });
|
return defHttp.get({ url: Api.GetNetWorkEev });
|
||||||
}
|
}
|
||||||
export function rebackzhuantipic(params:{ zhuanti, CaseId }){
|
export function rebackzhuantipic(params: { zhuanti; CaseId }) {
|
||||||
return defHttp.get({
|
return defHttp.get({
|
||||||
url: Api.rebackzhuantipic,
|
url: Api.rebackzhuantipic,
|
||||||
params
|
params,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
export function CopyImg(params: { caseid, images}){
|
export function CopyImg(params: { caseid; images }) {
|
||||||
return defHttp.post({
|
return defHttp.post({
|
||||||
url: Api.CopyImg,
|
url: Api.CopyImg,
|
||||||
data:params,
|
data: params,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
export function rebackzhuantifujian(params:{ zhuanti, CaseId }){
|
export function rebackzhuantifujian(params: { zhuanti; CaseId }) {
|
||||||
return defHttp.get({
|
return defHttp.get({
|
||||||
url: Api.rebackzhuantifujian,
|
url: Api.rebackzhuantifujian,
|
||||||
params
|
params,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
export function Copyfujian(params:string[]){
|
export function Copyfujian(params: string[]) {
|
||||||
return defHttp.post({
|
return defHttp.post({
|
||||||
url: Api.Copyfujian,
|
url: Api.Copyfujian,
|
||||||
data:params,
|
data: params,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export function droneCasePushToSdt(params:any ){
|
export function droneCasePushToSdt(params: any) {
|
||||||
return defHttp.get({
|
return defHttp.get({
|
||||||
url: Api.DroneCasePushToSdt,
|
url: Api.DroneCasePushToSdt,
|
||||||
params
|
params,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getHistoryCase(params: string[]) {
|
||||||
|
return defHttp.post({
|
||||||
|
url: Api.GetHistoryCase,
|
||||||
|
data: params,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getHistoryCaseByCaseId(params: string[]) {
|
||||||
|
return defHttp.post({
|
||||||
|
url: Api.GetHistoryCaseByCaseId + '?caseid=' + params.caseid,
|
||||||
|
data: params,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -244,7 +244,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="item" v-if="props.infoData.close_user">
|
<div class="item" v-if="props.infoData.close_user">
|
||||||
<div class="label">关闭人:</div>
|
<div class="label">关闭人:</div>
|
||||||
<div class="item-value" style="flex: 2">
|
<div class="item-value" style="flex: 2">
|
||||||
|
|
@ -297,8 +297,28 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div style="width: 50%; height: 300px; margin-bottom: 10px">
|
<div class="map-history">
|
||||||
<MapboxMap @mapOnLoad="onMapboxLoad" ref="MapboxComponent" />
|
<div style="width: 50%; height: 300px; margin-bottom: 10px">
|
||||||
|
<MapboxMap @mapOnLoad="onMapboxLoad" ref="MapboxComponent" />
|
||||||
|
</div>
|
||||||
|
<div class="history-list" v-if="props.infoData.reboundcase == true">
|
||||||
|
<BasicTable class="w-4/4 xl:w-5/5" @register="registerTable">
|
||||||
|
<template #bodyCell="{ column, record }">
|
||||||
|
<template v-if="column.key === 'action'">
|
||||||
|
<TableAction
|
||||||
|
:actions="[
|
||||||
|
{
|
||||||
|
label: '查看',
|
||||||
|
onClick: () => {
|
||||||
|
handleView(record);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</BasicTable>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
<div class="button-div">
|
<div class="button-div">
|
||||||
|
|
@ -325,11 +345,31 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<a-modal
|
||||||
|
style="width: 100vw; top: 0px; left: 0px; margin: 0px; padding: 0px"
|
||||||
|
wrap-class-name="full-modal"
|
||||||
|
v-model:open="showInfoOpen"
|
||||||
|
title="详情"
|
||||||
|
:footer="null"
|
||||||
|
:maskClosable="true"
|
||||||
|
:destroyOnClose="true"
|
||||||
|
@cancel="showInfoOpen = false"
|
||||||
|
>
|
||||||
|
<div class="modal-content">
|
||||||
|
<NewShowInfoModal
|
||||||
|
v-if="
|
||||||
|
showInfoData.hasOwnProperty('biaozhu') && [0, 1, 2].includes(showInfoData['biaozhu'])
|
||||||
|
"
|
||||||
|
:showInfoData="showInfoData"
|
||||||
|
/>
|
||||||
|
<ShowInfoModal v-else :showInfoData="showInfoData" />
|
||||||
|
</div>
|
||||||
|
</a-modal>
|
||||||
</a-spin>
|
</a-spin>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { defineProps, ref, watch, onMounted, defineEmits, createVNode } from 'vue';
|
import { defineProps, ref, watch, onMounted, defineEmits, createVNode, computed } from 'vue';
|
||||||
import { PlusOutlined, CloseOutlined, ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
import { PlusOutlined, CloseOutlined, ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
||||||
import { Upload, message, Modal } from 'ant-design-vue';
|
import { Upload, message, Modal } from 'ant-design-vue';
|
||||||
import { uploadFile } from '@/api/formrender/index';
|
import { uploadFile } from '@/api/formrender/index';
|
||||||
|
|
@ -343,6 +383,11 @@
|
||||||
import { tubanbiaoqian1Options, tubanbiaoqian2Options } from './util';
|
import { tubanbiaoqian1Options, tubanbiaoqian2Options } from './util';
|
||||||
import { IsReSubmit } from '@/api/audit/index';
|
import { IsReSubmit } from '@/api/audit/index';
|
||||||
import { SubjectKeyObj } from '@/views/demo/audit/util';
|
import { SubjectKeyObj } from '@/views/demo/audit/util';
|
||||||
|
import { BasicTable, useTable, TableAction } from '@/components/Table';
|
||||||
|
import { getRoleListByPage, deleteRole } from '@/api/demo/system';
|
||||||
|
import ShowInfoModal from '@/views/demo/tiankongdi/curbspotcity/MapList/ShowInfoModal/index.vue';
|
||||||
|
import NewShowInfoModal from '@/views/demo/tiankongdi/curbspotcity/MapList/NewShowInfoModal/index.vue';
|
||||||
|
import { getCaseInfoById, getHistoryCase } from '@/api/tiankongdi/index';
|
||||||
|
|
||||||
const props = defineProps(['infoData', 'control', 'type', 'modalLoading']);
|
const props = defineProps(['infoData', 'control', 'type', 'modalLoading']);
|
||||||
const emits = defineEmits(['handleOk', 'closeModal', 'closeCase', 'reSubmit', 'changeLoading']);
|
const emits = defineEmits(['handleOk', 'closeModal', 'closeCase', 'reSubmit', 'changeLoading']);
|
||||||
|
|
@ -365,6 +410,55 @@
|
||||||
const caseDescription = ref(['', '']);
|
const caseDescription = ref(['', '']);
|
||||||
const { VITE_GLOB_INFO_IMAGE_URL, VITE_GLOB_GEOSERVER_PREFECTURE_CITY } = getAppEnvConfig();
|
const { VITE_GLOB_INFO_IMAGE_URL, VITE_GLOB_GEOSERVER_PREFECTURE_CITY } = getAppEnvConfig();
|
||||||
|
|
||||||
|
const showInfoOpen = ref(false);
|
||||||
|
const showInfoId = ref();
|
||||||
|
const showInfoData = ref();
|
||||||
|
const [registerTable, { reload, getSelectRows, setTableData }] = useTable({
|
||||||
|
dataSource: [],
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
title: '线索编号',
|
||||||
|
dataIndex: 'case_no',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '县',
|
||||||
|
dataIndex: 'countyname',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '镇',
|
||||||
|
dataIndex: 'streetname',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '状态',
|
||||||
|
dataIndex: 'handle_status_name',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
rowKey: 'Id',
|
||||||
|
striped: false,
|
||||||
|
rowSelection: {
|
||||||
|
type: 'checkbox',
|
||||||
|
},
|
||||||
|
// 序号列
|
||||||
|
showIndexColumn: false,
|
||||||
|
bordered: true,
|
||||||
|
pagination: false,
|
||||||
|
actionColumn: {
|
||||||
|
width: 100,
|
||||||
|
title: '操作',
|
||||||
|
dataIndex: 'action',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const handleView = (record) => {
|
||||||
|
console.log('record', record);
|
||||||
|
showInfoId.value = record.Id;
|
||||||
|
getDetailData();
|
||||||
|
};
|
||||||
|
function getDetailData() {
|
||||||
|
getCaseInfoById({ id: showInfoId.value }).then((res) => {
|
||||||
|
showInfoData.value = res;
|
||||||
|
showInfoOpen.value = true;
|
||||||
|
});
|
||||||
|
}
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
if (props.type == '违法用地') {
|
if (props.type == '违法用地') {
|
||||||
if (props.infoData.case_description) {
|
if (props.infoData.case_description) {
|
||||||
|
|
@ -479,13 +573,19 @@
|
||||||
originalcaseno: props.infoData.original_case_no,
|
originalcaseno: props.infoData.original_case_no,
|
||||||
subjectkey: SubjectKeyObj[props.type],
|
subjectkey: SubjectKeyObj[props.type],
|
||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
|
console.log(res);
|
||||||
if (res) {
|
if (res) {
|
||||||
|
let caseIds = [];
|
||||||
if (props.type == '违法用地') {
|
if (props.type == '违法用地') {
|
||||||
props.infoData.case_description = caseDescription.value.join('-');
|
props.infoData.case_description = caseDescription.value.join('-');
|
||||||
|
if(props.infoData.reboundcase == true && getSelectRows().length > 0){
|
||||||
|
caseIds = getSelectRows().map((item) => item.Id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
let params = {
|
let params = {
|
||||||
...props.infoData,
|
...props.infoData,
|
||||||
subject: props.type,
|
subject: props.type,
|
||||||
|
caseIds: caseIds,
|
||||||
};
|
};
|
||||||
emits('handleOk', params);
|
emits('handleOk', params);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -569,6 +669,11 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
MapboxComponent.value.handlerDraw('Details', geoms, false);
|
MapboxComponent.value.handlerDraw('Details', geoms, false);
|
||||||
|
if(props.infoData.reboundcase == true){
|
||||||
|
getHistoryCase(res.items).then((historyData) => {
|
||||||
|
setTableData(historyData);
|
||||||
|
});
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
geomsList.value = null;
|
geomsList.value = null;
|
||||||
message.error('当前数据没有线索!');
|
message.error('当前数据没有线索!');
|
||||||
|
|
@ -668,4 +773,17 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.map-history {
|
||||||
|
display: flex;
|
||||||
|
.history-list {
|
||||||
|
width: 50%;
|
||||||
|
height: 300px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
::v-deep .ant-table-container {
|
||||||
|
height: 280px;
|
||||||
|
}
|
||||||
|
::v-deep .ant-table-body {
|
||||||
|
height: 220px !important;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -142,6 +142,7 @@ function handleAudit(record) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const handleOk = async (params) => {
|
const handleOk = async (params) => {
|
||||||
|
console.log('params',params)
|
||||||
changeLoading(true)
|
changeLoading(true)
|
||||||
try {
|
try {
|
||||||
const { id, case_description } = infoData.value.info
|
const { id, case_description } = infoData.value.info
|
||||||
|
|
|
||||||
|
|
@ -87,13 +87,35 @@
|
||||||
>
|
>
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="handoff">
|
<div class="handoff">
|
||||||
<a-button type="primary" style="margin-right: 25px" @click="prevData">上一条</a-button>
|
<a-button type="primary" @click="prevData">上一条</a-button>
|
||||||
<a-button type="primary" @click="nextData">下一条</a-button>
|
<a-button type="primary" @click="nextData" style="margin: 0 25px">下一条</a-button>
|
||||||
|
<a-button type="primary" @click="historyView" v-if="showInfoData.reboundcase == true"
|
||||||
|
>往期线索</a-button
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
<NewShowInfoModal v-if="(showInfoData.hasOwnProperty('biaozhu') && [0, 1, 2].includes(showInfoData['biaozhu']))" :showInfoData="showInfoData" />
|
<NewShowInfoModal
|
||||||
|
v-if="
|
||||||
|
showInfoData.hasOwnProperty('biaozhu') && [0, 1, 2].includes(showInfoData['biaozhu'])
|
||||||
|
"
|
||||||
|
:showInfoData="showInfoData"
|
||||||
|
/>
|
||||||
<ShowInfoModal v-else :showInfoData="showInfoData" />
|
<ShowInfoModal v-else :showInfoData="showInfoData" />
|
||||||
</div>
|
</div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
<a-modal
|
||||||
|
style="width: 100vw; top: 0px; left: 0px; margin: 0px; padding: 0px"
|
||||||
|
wrap-class-name="full-modal"
|
||||||
|
v-model:open="historyVisible"
|
||||||
|
title="往期线索"
|
||||||
|
:footer="null"
|
||||||
|
:maskClosable="true"
|
||||||
|
:destroyOnClose="true"
|
||||||
|
@cancel="historyVisible = false"
|
||||||
|
>
|
||||||
|
<div class="modal-content">
|
||||||
|
<HistoryListModel :historyData="historyData" />
|
||||||
|
</div>
|
||||||
|
</a-modal>
|
||||||
</PageWrapper>
|
</PageWrapper>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
|
|
@ -113,6 +135,7 @@
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import { nowStatusOptions } from '@/utils/global';
|
import { nowStatusOptions } from '@/utils/global';
|
||||||
import { message } from 'ant-design-vue';
|
import { message } from 'ant-design-vue';
|
||||||
|
import HistoryListModel from '@/views/demo/tiankongdi/curbspotcity/MapList/HistoryListModel/index.vue';
|
||||||
|
|
||||||
const { VITE_GLOB_API_URL } = getAppEnvConfig();
|
const { VITE_GLOB_API_URL } = getAppEnvConfig();
|
||||||
|
|
||||||
|
|
@ -139,7 +162,7 @@
|
||||||
jibenArea2: null,
|
jibenArea2: null,
|
||||||
nowStatus: undefined,
|
nowStatus: undefined,
|
||||||
});
|
});
|
||||||
const newVersion = ref(dayjs('2025-07-28 23:59:59'))
|
const newVersion = ref(dayjs('2025-07-28 23:59:59'));
|
||||||
const tableData = ref([]);
|
const tableData = ref([]);
|
||||||
const tablePaginationRight = ref({
|
const tablePaginationRight = ref({
|
||||||
current: 1,
|
current: 1,
|
||||||
|
|
@ -151,6 +174,14 @@
|
||||||
showQuickJumper: true,
|
showQuickJumper: true,
|
||||||
total: 0,
|
total: 0,
|
||||||
});
|
});
|
||||||
|
// 往期线索展示
|
||||||
|
const historyVisible = ref(false);
|
||||||
|
const historyData = ref([]);
|
||||||
|
const historyView = () => {
|
||||||
|
console.log('record', showInfoData);
|
||||||
|
historyData.value = showInfoData.value;
|
||||||
|
historyVisible.value = true;
|
||||||
|
};
|
||||||
const [registerForm, { validate, getFieldsValue }] = useForm({
|
const [registerForm, { validate, getFieldsValue }] = useForm({
|
||||||
schemas: searchFormSchema,
|
schemas: searchFormSchema,
|
||||||
labelWidth: 100,
|
labelWidth: 100,
|
||||||
|
|
@ -261,8 +292,8 @@
|
||||||
querys.startTime = dayjs(querys.startTime).format('YYYY-MM-DD');
|
querys.startTime = dayjs(querys.startTime).format('YYYY-MM-DD');
|
||||||
querys.endTime = dayjs(querys.endTime).endOf('day').format('YYYY-MM-DD HH:mm:ss');
|
querys.endTime = dayjs(querys.endTime).endOf('day').format('YYYY-MM-DD HH:mm:ss');
|
||||||
}
|
}
|
||||||
if(querys.tubanlaiyuan && typeof(querys.tubanlaiyuan) == 'object'){
|
if (querys.tubanlaiyuan && typeof querys.tubanlaiyuan == 'object') {
|
||||||
querys.tubanlaiyuan = querys.tubanlaiyuan.join(',')
|
querys.tubanlaiyuan = querys.tubanlaiyuan.join(',');
|
||||||
}
|
}
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
await loadCaseInfoTuBanList(querys).then((res) => {
|
await loadCaseInfoTuBanList(querys).then((res) => {
|
||||||
|
|
|
||||||
|
|
@ -77,10 +77,17 @@
|
||||||
>
|
>
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="handoff">
|
<div class="handoff">
|
||||||
<a-button type="primary" style="margin-right: 25px" @click="prevData">上一条</a-button>
|
<a-button type="primary" @click="prevData">上一条</a-button>
|
||||||
<a-button type="primary" @click="nextData">下一条</a-button>
|
<a-button type="primary" @click="nextData" style="margin: 0 25px">下一条</a-button>
|
||||||
|
<a-button type="primary" @click="historyView" v-if="showInfoData.reboundcase == true"
|
||||||
|
>往期线索</a-button
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
<NewShowInfoModal :showInfoData="showInfoData" :showInfoRecord="showInfoRecord" :isAuditList="true"/>
|
<NewShowInfoModal
|
||||||
|
:showInfoData="showInfoData"
|
||||||
|
:showInfoRecord="showInfoRecord"
|
||||||
|
:isAuditList="true"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
<a-modal
|
<a-modal
|
||||||
|
|
@ -97,6 +104,20 @@
|
||||||
>
|
>
|
||||||
<UploadModal :allTableData="allTableData" />
|
<UploadModal :allTableData="allTableData" />
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
<a-modal
|
||||||
|
style="width: 100vw; top: 0px; left: 0px; margin: 0px; padding: 0px"
|
||||||
|
wrap-class-name="full-modal"
|
||||||
|
v-model:open="historyVisible"
|
||||||
|
title="往期线索"
|
||||||
|
:footer="null"
|
||||||
|
:maskClosable="true"
|
||||||
|
:destroyOnClose="true"
|
||||||
|
@cancel="historyVisible = false"
|
||||||
|
>
|
||||||
|
<div class="modal-content">
|
||||||
|
<HistoryListModel :historyData="historyData" />
|
||||||
|
</div>
|
||||||
|
</a-modal>
|
||||||
</PageWrapper>
|
</PageWrapper>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
|
|
@ -118,6 +139,7 @@
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import { nowStatusOptions } from '@/utils/global';
|
import { nowStatusOptions } from '@/utils/global';
|
||||||
import { message } from 'ant-design-vue';
|
import { message } from 'ant-design-vue';
|
||||||
|
import HistoryListModel from '@/views/demo/tiankongdi/curbspotcity/MapList/HistoryListModel/index.vue';
|
||||||
|
|
||||||
const { VITE_GLOB_API_URL } = getAppEnvConfig();
|
const { VITE_GLOB_API_URL } = getAppEnvConfig();
|
||||||
|
|
||||||
|
|
@ -157,6 +179,14 @@
|
||||||
showQuickJumper: true,
|
showQuickJumper: true,
|
||||||
total: 0,
|
total: 0,
|
||||||
});
|
});
|
||||||
|
// 往期线索展示
|
||||||
|
const historyVisible = ref(false);
|
||||||
|
const historyData = ref([]);
|
||||||
|
const historyView = () => {
|
||||||
|
console.log('record', showInfoData);
|
||||||
|
historyData.value = showInfoData.value;
|
||||||
|
historyVisible.value = true;
|
||||||
|
};
|
||||||
const [registerForm, { validate, getFieldsValue }] = useForm({
|
const [registerForm, { validate, getFieldsValue }] = useForm({
|
||||||
schemas: searchFormSchema,
|
schemas: searchFormSchema,
|
||||||
labelWidth: 100,
|
labelWidth: 100,
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,104 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<BasicTable class="w-4/4 xl:w-5/5" @register="registerTable">
|
||||||
|
<template #bodyCell="{ column, record }">
|
||||||
|
<template v-if="column.key === 'action'">
|
||||||
|
<TableAction
|
||||||
|
:actions="[
|
||||||
|
{
|
||||||
|
label: '查看',
|
||||||
|
onClick: () => {
|
||||||
|
handleView(record);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</BasicTable>
|
||||||
|
<a-modal
|
||||||
|
style="width: 100vw; top: 0px; left: 0px; margin: 0px; padding: 0px"
|
||||||
|
wrap-class-name="full-modal"
|
||||||
|
v-model:open="showInfoOpen"
|
||||||
|
title="详情"
|
||||||
|
:footer="null"
|
||||||
|
:maskClosable="true"
|
||||||
|
:destroyOnClose="true"
|
||||||
|
@cancel="showInfoOpen = false"
|
||||||
|
>
|
||||||
|
<div class="modal-content">
|
||||||
|
<NewShowInfoModal
|
||||||
|
v-if="
|
||||||
|
showInfoData.hasOwnProperty('biaozhu') && [0, 1, 2].includes(showInfoData['biaozhu'])
|
||||||
|
"
|
||||||
|
:showInfoData="showInfoData"
|
||||||
|
/>
|
||||||
|
<ShowInfoModal v-else :showInfoData="showInfoData" />
|
||||||
|
</div>
|
||||||
|
</a-modal>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { defineProps, ref, watch, onMounted, defineEmits, createVNode, computed } from 'vue';
|
||||||
|
import ShowInfoModal from '@/views/demo/tiankongdi/curbspotcity/MapList/ShowInfoModal/index.vue';
|
||||||
|
import NewShowInfoModal from '@/views/demo/tiankongdi/curbspotcity/MapList/NewShowInfoModal/index.vue';
|
||||||
|
import { getCaseInfoById } from '@/api/tiankongdi/index';
|
||||||
|
import { BasicTable, useTable, TableAction } from '@/components/Table';
|
||||||
|
import { getRoleListByPage, deleteRole } from '@/api/demo/system';
|
||||||
|
import { getHistoryCaseByCaseId } from '@/api/tiankongdi/index';
|
||||||
|
|
||||||
|
const props = defineProps(['historyData']);
|
||||||
|
const showInfoOpen = ref(false);
|
||||||
|
const showInfoId = ref();
|
||||||
|
const showInfoData = ref();
|
||||||
|
const [registerTable, { reload, getSelectRows, setTableData }] = useTable({
|
||||||
|
dataSource: [],
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
title: '线索编号',
|
||||||
|
dataIndex: 'case_no',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '县',
|
||||||
|
dataIndex: 'countyname',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '镇',
|
||||||
|
dataIndex: 'streetname',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '状态',
|
||||||
|
dataIndex: 'handle_status_name',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
rowKey: 'id',
|
||||||
|
striped: false,
|
||||||
|
// 序号列
|
||||||
|
showIndexColumn: true,
|
||||||
|
bordered: true,
|
||||||
|
pagination: false,
|
||||||
|
actionColumn: {
|
||||||
|
width: 100,
|
||||||
|
title: '操作',
|
||||||
|
dataIndex: 'action',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const getList = () => {
|
||||||
|
getHistoryCaseByCaseId({ caseid: props.historyData.id }).then((res) => {
|
||||||
|
setTableData(res);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const handleView = (record) => {
|
||||||
|
showInfoId.value = record.Id;
|
||||||
|
getDetailData();
|
||||||
|
};
|
||||||
|
function getDetailData() {
|
||||||
|
getCaseInfoById({ id: showInfoId.value }).then((res) => {
|
||||||
|
showInfoData.value = res;
|
||||||
|
showInfoOpen.value = true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
onMounted(() => {
|
||||||
|
getList();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
@ -265,13 +265,18 @@
|
||||||
<div class="handoff">
|
<div class="handoff">
|
||||||
<a-button
|
<a-button
|
||||||
type="primary"
|
type="primary"
|
||||||
style="margin-right: 25px;"
|
|
||||||
@click="prevData"
|
@click="prevData"
|
||||||
>上一条</a-button>
|
>上一条</a-button>
|
||||||
<a-button
|
<a-button
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="nextData"
|
@click="nextData"
|
||||||
|
style="margin: 0 25px;"
|
||||||
>下一条</a-button>
|
>下一条</a-button>
|
||||||
|
<a-button
|
||||||
|
type="primary"
|
||||||
|
@click="historyView"
|
||||||
|
v-if="showInfoData.reboundcase == true"
|
||||||
|
>往期线索</a-button>
|
||||||
</div>
|
</div>
|
||||||
<Audit
|
<Audit
|
||||||
v-if="handoffShow"
|
v-if="handoffShow"
|
||||||
|
|
@ -284,6 +289,20 @@
|
||||||
@closeModel="closeMolder"
|
@closeModel="closeMolder"
|
||||||
/>
|
/>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
<a-modal
|
||||||
|
style="width: 100vw; top: 0px; left: 0px; margin: 0px; padding: 0px"
|
||||||
|
wrap-class-name="full-modal"
|
||||||
|
v-model:open="historyVisible"
|
||||||
|
title="往期线索"
|
||||||
|
:footer="null"
|
||||||
|
:maskClosable="true"
|
||||||
|
:destroyOnClose="true"
|
||||||
|
@cancel="historyVisible = false"
|
||||||
|
>
|
||||||
|
<div class="modal-content">
|
||||||
|
<HistoryListModel :historyData="historyData" />
|
||||||
|
</div>
|
||||||
|
</a-modal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -311,6 +330,10 @@ import { getDetail } from '@/api/sys/WFSchemeInfo';
|
||||||
import { Audit } from '@/views/demo/workflow/task/process/page';
|
import { Audit } from '@/views/demo/workflow/task/process/page';
|
||||||
import { dataProcessing, tubanlaiyuanOptions } from '@/views/demo/tiankongdi/util.ts'
|
import { dataProcessing, tubanlaiyuanOptions } from '@/views/demo/tiankongdi/util.ts'
|
||||||
import {showDrawBack, drawBackSpan} from '@/views/demo/util'
|
import {showDrawBack, drawBackSpan} from '@/views/demo/util'
|
||||||
|
|
||||||
|
import HistoryListModel from '@/views/demo/tiankongdi/curbspotcity/MapList/HistoryListModel/index.vue';
|
||||||
|
|
||||||
|
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
const flowWfDataStore = flowStore();
|
const flowWfDataStore = flowStore();
|
||||||
const emits = defineEmits([
|
const emits = defineEmits([
|
||||||
|
|
@ -335,6 +358,7 @@ const props = defineProps([
|
||||||
"total",
|
"total",
|
||||||
"infoDataList"
|
"infoDataList"
|
||||||
])
|
])
|
||||||
|
console.log(props)
|
||||||
const order = ref(0) // 0: 不排序 1: 升序 2: 降序
|
const order = ref(0) // 0: 不排序 1: 升序 2: 降序
|
||||||
const landType = ref(0)
|
const landType = ref(0)
|
||||||
const orderMark = () => {
|
const orderMark = () => {
|
||||||
|
|
@ -379,6 +403,14 @@ const showInfoData = ref()
|
||||||
const streetsAreaOptions = ref([
|
const streetsAreaOptions = ref([
|
||||||
{ label: '全部', value: '' },
|
{ label: '全部', value: '' },
|
||||||
])
|
])
|
||||||
|
// 往期线索展示
|
||||||
|
const historyVisible = ref(false)
|
||||||
|
const historyData = ref([])
|
||||||
|
const historyView = () => {
|
||||||
|
console.log('record', showInfoData);
|
||||||
|
historyData.value = showInfoData.value;
|
||||||
|
historyVisible.value = true;
|
||||||
|
};
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getLoadStreet().then(res => {
|
getLoadStreet().then(res => {
|
||||||
|
|
@ -467,6 +499,9 @@ const showInfo = (item) => {
|
||||||
}
|
}
|
||||||
async function goAudit(record) {
|
async function goAudit(record) {
|
||||||
showDataId.value = record.id
|
showDataId.value = record.id
|
||||||
|
getCaseInfoById({id:showDataId.value}).then(res => {
|
||||||
|
showInfoData.value = res
|
||||||
|
})
|
||||||
let data = await getDetail({ code: record.processcode });
|
let data = await getDetail({ code: record.processcode });
|
||||||
let scheme = JSON.parse(data.scheme.content);
|
let scheme = JSON.parse(data.scheme.content);
|
||||||
let wfData = scheme.wfData;
|
let wfData = scheme.wfData;
|
||||||
|
|
@ -513,6 +548,9 @@ const prevData = async () => {
|
||||||
type.value = record.type;
|
type.value = record.type;
|
||||||
handoffShow.value = true
|
handoffShow.value = true
|
||||||
auditData.value = record;
|
auditData.value = record;
|
||||||
|
getCaseInfoById({id:showDataId.value}).then(res => {
|
||||||
|
showInfoData.value = res
|
||||||
|
})
|
||||||
}
|
}
|
||||||
const nextData = async () => {
|
const nextData = async () => {
|
||||||
if(nextShowDataId.value === 0){
|
if(nextShowDataId.value === 0){
|
||||||
|
|
@ -550,6 +588,9 @@ const nextData = async () => {
|
||||||
type.value = record.type;
|
type.value = record.type;
|
||||||
handoffShow.value = true
|
handoffShow.value = true
|
||||||
auditData.value = record;
|
auditData.value = record;
|
||||||
|
getCaseInfoById({id:showDataId.value}).then(res => {
|
||||||
|
showInfoData.value = res
|
||||||
|
})
|
||||||
}
|
}
|
||||||
const closeMolder = () => {
|
const closeMolder = () => {
|
||||||
emits('getInfoList')
|
emits('getInfoList')
|
||||||
|
|
|
||||||
|
|
@ -207,13 +207,18 @@
|
||||||
<div class="handoff">
|
<div class="handoff">
|
||||||
<a-button
|
<a-button
|
||||||
type="primary"
|
type="primary"
|
||||||
style="margin-right: 25px;"
|
|
||||||
@click="prevData"
|
@click="prevData"
|
||||||
>上一条</a-button>
|
>上一条</a-button>
|
||||||
<a-button
|
<a-button
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="nextData"
|
@click="nextData"
|
||||||
|
style="margin: 0 25px;"
|
||||||
>下一条</a-button>
|
>下一条</a-button>
|
||||||
|
<a-button
|
||||||
|
type="primary"
|
||||||
|
@click="historyView"
|
||||||
|
v-if="showInfoData.reboundcase == true"
|
||||||
|
>往期线索</a-button>
|
||||||
</div>
|
</div>
|
||||||
<Audit
|
<Audit
|
||||||
v-if="handoffShow"
|
v-if="handoffShow"
|
||||||
|
|
@ -226,6 +231,20 @@
|
||||||
@closeModel="closeMolder"
|
@closeModel="closeMolder"
|
||||||
/>
|
/>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
<a-modal
|
||||||
|
style="width: 100vw; top: 0px; left: 0px; margin: 0px; padding: 0px"
|
||||||
|
wrap-class-name="full-modal"
|
||||||
|
v-model:open="historyVisible"
|
||||||
|
title="往期线索"
|
||||||
|
:footer="null"
|
||||||
|
:maskClosable="true"
|
||||||
|
:destroyOnClose="true"
|
||||||
|
@cancel="historyVisible = false"
|
||||||
|
>
|
||||||
|
<div class="modal-content">
|
||||||
|
<HistoryListModel :historyData="historyData" />
|
||||||
|
</div>
|
||||||
|
</a-modal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -252,6 +271,9 @@ import { getDetail } from '@/api/sys/WFSchemeInfo';
|
||||||
import { Audit } from '@/views/demo/workflow/task/process/page';
|
import { Audit } from '@/views/demo/workflow/task/process/page';
|
||||||
import { dataProcessing, tubanlaiyuanOptions } from '@/views/demo/tiankongdi/util.ts'
|
import { dataProcessing, tubanlaiyuanOptions } from '@/views/demo/tiankongdi/util.ts'
|
||||||
import {showDrawBack, drawBackSpan} from '@/views/demo/util'
|
import {showDrawBack, drawBackSpan} from '@/views/demo/util'
|
||||||
|
import HistoryListModel from '@/views/demo/tiankongdi/curbspotcity/MapList/HistoryListModel/index.vue';
|
||||||
|
|
||||||
|
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
const flowWfDataStore = flowStore();
|
const flowWfDataStore = flowStore();
|
||||||
const emits = defineEmits([
|
const emits = defineEmits([
|
||||||
|
|
@ -318,7 +340,15 @@ const openCollect = computed(() => {
|
||||||
const streetsAreaOptions = ref([
|
const streetsAreaOptions = ref([
|
||||||
{ label: '全部', value: '' },
|
{ label: '全部', value: '' },
|
||||||
])
|
])
|
||||||
|
// 往期线索展示
|
||||||
|
const historyVisible = ref(false)
|
||||||
|
const historyData = ref([])
|
||||||
|
const showInfoData = ref()
|
||||||
|
const historyView = () => {
|
||||||
|
console.log('record', showInfoData);
|
||||||
|
historyData.value = showInfoData.value;
|
||||||
|
historyVisible.value = true;
|
||||||
|
};
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getLoadStreet().then(res => {
|
getLoadStreet().then(res => {
|
||||||
console.log(res)
|
console.log(res)
|
||||||
|
|
@ -396,6 +426,9 @@ const dataListSort = (type) => {
|
||||||
}
|
}
|
||||||
async function goAudit(record) {
|
async function goAudit(record) {
|
||||||
showDataId.value = record.id
|
showDataId.value = record.id
|
||||||
|
getCaseInfoById({id:showDataId.value}).then(res => {
|
||||||
|
showInfoData.value = res
|
||||||
|
})
|
||||||
let data = await getDetail({ code: record.processcode });
|
let data = await getDetail({ code: record.processcode });
|
||||||
let scheme = JSON.parse(data.scheme.content);
|
let scheme = JSON.parse(data.scheme.content);
|
||||||
let wfData = scheme.wfData;
|
let wfData = scheme.wfData;
|
||||||
|
|
@ -442,6 +475,9 @@ const prevData = async () => {
|
||||||
type.value = record.type;
|
type.value = record.type;
|
||||||
handoffShow.value = true
|
handoffShow.value = true
|
||||||
auditData.value = record;
|
auditData.value = record;
|
||||||
|
getCaseInfoById({id:showDataId.value}).then(res => {
|
||||||
|
showInfoData.value = res
|
||||||
|
})
|
||||||
}
|
}
|
||||||
const nextData = async () => {
|
const nextData = async () => {
|
||||||
if(nextShowDataId.value === 0){
|
if(nextShowDataId.value === 0){
|
||||||
|
|
@ -479,6 +515,9 @@ const nextData = async () => {
|
||||||
type.value = record.type;
|
type.value = record.type;
|
||||||
handoffShow.value = true
|
handoffShow.value = true
|
||||||
auditData.value = record;
|
auditData.value = record;
|
||||||
|
getCaseInfoById({id:showDataId.value}).then(res => {
|
||||||
|
showInfoData.value = res
|
||||||
|
})
|
||||||
}
|
}
|
||||||
const closeMolder = () => {
|
const closeMolder = () => {
|
||||||
emits('getInfoList')
|
emits('getInfoList')
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,188 @@
|
||||||
|
<template>
|
||||||
|
<PageWrapper dense contentFullHeight fixedHeight contentClass="flex">
|
||||||
|
<BasicTable class="w-4/4 xl:w-5/5" @register="registerTable">
|
||||||
|
<template #toolbar>
|
||||||
|
<!-- <a-button type="primary" @click="preview">预览</a-button> -->
|
||||||
|
<!-- <a-button type="primary" @click="showProgress">导入进度查询</a-button> -->
|
||||||
|
<!-- <a-button type="primary" @click="downloadTemplate">模板下载</a-button> -->
|
||||||
|
<a-upload :accept="'.zip'" :showUploadList="false" :custom-request="customRequest">
|
||||||
|
<a-button type="primary">导入</a-button>
|
||||||
|
</a-upload>
|
||||||
|
<a-button type="primary" @click="downloadSHP">SHP导出</a-button>
|
||||||
|
</template>
|
||||||
|
<template #bodyCell="{ column, record }">
|
||||||
|
<template v-if="column.key === 'action'">
|
||||||
|
<TableAction
|
||||||
|
:actions="[
|
||||||
|
{
|
||||||
|
// icon: 'ant-design:ellipsis-outlined',
|
||||||
|
label: '删除',
|
||||||
|
onClick: deleteOperation.bind(null, record),
|
||||||
|
},
|
||||||
|
]"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</BasicTable>
|
||||||
|
</PageWrapper>
|
||||||
|
</template>
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { ref, h } from 'vue';
|
||||||
|
import { BasicTable, useTable, TableAction } from '@/components/Table';
|
||||||
|
import { PageWrapper } from '@/components/Page';
|
||||||
|
import { uploadFile } from '@/api/formrender/index';
|
||||||
|
import {
|
||||||
|
loadCaseInfoCXJG,
|
||||||
|
importCaseInfoCXJGShpData,
|
||||||
|
deleteCaseInfoCXJG,
|
||||||
|
} from '@/api/audit/index';
|
||||||
|
import { getAppEnvConfig } from '@/utils/env';
|
||||||
|
import { Tag } from 'ant-design-vue';
|
||||||
|
import axios from 'axios';
|
||||||
|
import { useMessage } from '@/hooks/web/useMessage';
|
||||||
|
|
||||||
|
const { VITE_GLOB_API_URL } = getAppEnvConfig();
|
||||||
|
const { createConfirm, createMessage } = useMessage();
|
||||||
|
|
||||||
|
const picihao = ref();
|
||||||
|
const columns = [
|
||||||
|
{
|
||||||
|
title: '线索编号',
|
||||||
|
dataIndex: 'case_no',
|
||||||
|
width: 200,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '线索来源',
|
||||||
|
dataIndex: 'tubanlaiyuan',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '县',
|
||||||
|
dataIndex: 'countyname',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '镇',
|
||||||
|
dataIndex: 'streetname',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '村',
|
||||||
|
dataIndex: 'communityname',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '持续监管',
|
||||||
|
dataIndex: 'chixujianguan',
|
||||||
|
customRender: ({ record }) => {
|
||||||
|
const { chixujianguan } = record;
|
||||||
|
if (chixujianguan == 1) {
|
||||||
|
return h(Tag, { color: 'green' }, () => '是');
|
||||||
|
} else {
|
||||||
|
return h(Tag, { color: 'yellow' }, () => '否');
|
||||||
|
}
|
||||||
|
return h(Tag, {}, () => chixujianguan);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
];
|
||||||
|
const [registerTable, { reload, expandAll, getForm }] = useTable({
|
||||||
|
title: '',
|
||||||
|
api: loadCaseInfoCXJG,
|
||||||
|
columns,
|
||||||
|
rowKey: 'id',
|
||||||
|
// 序号列
|
||||||
|
showIndexColumn: false,
|
||||||
|
// 使用搜索表单
|
||||||
|
useSearchForm: true,
|
||||||
|
// 显示表格设置工具
|
||||||
|
showTableSetting: true,
|
||||||
|
bordered: true,
|
||||||
|
formConfig: {
|
||||||
|
labelWidth: 120,
|
||||||
|
schemas: [
|
||||||
|
{
|
||||||
|
field: 'caseno',
|
||||||
|
label: '线索编号',
|
||||||
|
component: 'Input',
|
||||||
|
colProps: { span: 8 },
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
// 搜索
|
||||||
|
handleSearchInfoFn(info) {
|
||||||
|
return info;
|
||||||
|
},
|
||||||
|
actionColumn: {
|
||||||
|
width: 80,
|
||||||
|
title: '操作',
|
||||||
|
dataIndex: 'action',
|
||||||
|
// slots: { customRender: 'action' },
|
||||||
|
fixed: undefined,
|
||||||
|
},
|
||||||
|
pagination: {
|
||||||
|
defaultPageSize: 15,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const customRequest = (file) => {
|
||||||
|
console.log('handleCustomRequest', file);
|
||||||
|
const formData = new FormData();
|
||||||
|
formData.append('files', file.file);
|
||||||
|
uploadFile(formData).then((res) => {
|
||||||
|
importCaseInfoCXJGShpData({
|
||||||
|
zipFilePath: res[0].filePath.replace(/\\/g, '/'),
|
||||||
|
srid: '4326',
|
||||||
|
}).then((resultRes) => {
|
||||||
|
console.log('resultRes', resultRes);
|
||||||
|
picihao.value = resultRes;
|
||||||
|
reload();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const deleteOperation = (record) => {
|
||||||
|
console.log('deleteOperation', record);
|
||||||
|
createConfirm({
|
||||||
|
iconType: 'info',
|
||||||
|
title: '删除',
|
||||||
|
content: '确定要删除当前线索吗',
|
||||||
|
onOk: async () => {
|
||||||
|
deleteCaseInfoCXJG(record.id).then((res) => {
|
||||||
|
if (res) {
|
||||||
|
createMessage.success('删除成功');
|
||||||
|
reload();
|
||||||
|
} else {
|
||||||
|
createMessage.error('删除失败');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const downloadSHP = () => {
|
||||||
|
axios({
|
||||||
|
method: 'post',
|
||||||
|
url: VITE_GLOB_API_URL + '/api/DroneCaseInfoSingle/ExportCaseInfoCXJGsqShapefile',
|
||||||
|
headers: {
|
||||||
|
'X-Token': localStorage.getItem('X-Token'),
|
||||||
|
},
|
||||||
|
responseType: 'blob',
|
||||||
|
}).then((res) => {
|
||||||
|
const elink = document.createElement('a');
|
||||||
|
elink.download = '图斑分割矢量数据' + new Date().getTime() + '.zip';
|
||||||
|
elink.style.display = 'none';
|
||||||
|
elink.href = URL.createObjectURL(res.data);
|
||||||
|
document.body.appendChild(elink);
|
||||||
|
elink.click();
|
||||||
|
URL.revokeObjectURL(elink.href);
|
||||||
|
document.body.removeChild(elink);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss">
|
||||||
|
.reSubmitInput {
|
||||||
|
border: 1px solid;
|
||||||
|
width: 100%;
|
||||||
|
height: 35px;
|
||||||
|
border-radius: 5px;
|
||||||
|
padding: 0px 10px;
|
||||||
|
border-color: #000;
|
||||||
|
transition: 0.2s;
|
||||||
|
&:focus {
|
||||||
|
border-color: #6db8ff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -45,6 +45,7 @@ export default defineApplicationConfig({
|
||||||
warmup: {
|
warmup: {
|
||||||
clientFiles: ['./index.html', './src/{views,components}/*'],
|
clientFiles: ['./index.html', './src/{views,components}/*'],
|
||||||
},
|
},
|
||||||
|
port: 5173,
|
||||||
},
|
},
|
||||||
define: {
|
define: {
|
||||||
'process.env': {
|
'process.env': {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,69 @@
|
||||||
|
// vite.config.ts
|
||||||
|
import { defineApplicationConfig } from "file:///E:/%E6%96%B0%E6%9E%B6%E6%9E%84%E9%A1%B9%E7%9B%AE/%E8%B4%A2%E6%BA%90%E4%B8%80%E4%BD%93%E5%8C%96/main/CaiYuanYiTiHua/internal/vite-config/dist/index.mjs";
|
||||||
|
var vite_config_default = defineApplicationConfig({
|
||||||
|
overrides: {
|
||||||
|
optimizeDeps: {
|
||||||
|
include: [
|
||||||
|
"echarts/core",
|
||||||
|
"echarts/charts",
|
||||||
|
"echarts/components",
|
||||||
|
"echarts/renderers",
|
||||||
|
"qrcode",
|
||||||
|
"@iconify/iconify",
|
||||||
|
"ant-design-vue/es/locale/zh_CN",
|
||||||
|
"ant-design-vue/es/locale/en_US",
|
||||||
|
"@/../lib/vform/designer.umd.js",
|
||||||
|
"jquery"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
build: {
|
||||||
|
/* 其他build生产打包配置省略 */
|
||||||
|
//...
|
||||||
|
target: "esnext",
|
||||||
|
// chunkSizeWarningLimit:1500,
|
||||||
|
commonjsOptions: {
|
||||||
|
include: /node_modules|lib/
|
||||||
|
//这里记得把lib目录加进来,否则生产打包会报错!!
|
||||||
|
}
|
||||||
|
},
|
||||||
|
server: {
|
||||||
|
proxy: {
|
||||||
|
"/basic-api": {
|
||||||
|
target: "http://localhost:3000",
|
||||||
|
changeOrigin: true,
|
||||||
|
ws: true,
|
||||||
|
rewrite: (path) => path.replace(new RegExp(`^/basic-api`), "")
|
||||||
|
// only https
|
||||||
|
// secure: false
|
||||||
|
},
|
||||||
|
"/upload": {
|
||||||
|
target: "http://localhost:3300/upload",
|
||||||
|
changeOrigin: true,
|
||||||
|
ws: true,
|
||||||
|
rewrite: (path) => path.replace(new RegExp(`^/upload`), "")
|
||||||
|
}
|
||||||
|
},
|
||||||
|
warmup: {
|
||||||
|
clientFiles: ["./index.html", "./src/{views,components}/*"]
|
||||||
|
},
|
||||||
|
port: 5173
|
||||||
|
},
|
||||||
|
define: {
|
||||||
|
"process.env": {
|
||||||
|
BASE_URL: "/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
css: {
|
||||||
|
preprocessorOptions: {
|
||||||
|
less: {
|
||||||
|
javascriptEnabled: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
plugins: []
|
||||||
|
}
|
||||||
|
});
|
||||||
|
export {
|
||||||
|
vite_config_default as default
|
||||||
|
};
|
||||||
|
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJFOlxcXFxcdTY1QjBcdTY3QjZcdTY3ODRcdTk4NzlcdTc2RUVcXFxcXHU4RDIyXHU2RTkwXHU0RTAwXHU0RjUzXHU1MzE2XFxcXG1haW5cXFxcQ2FpWXVhbllpVGlIdWFcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkU6XFxcXFx1NjVCMFx1NjdCNlx1Njc4NFx1OTg3OVx1NzZFRVxcXFxcdThEMjJcdTZFOTBcdTRFMDBcdTRGNTNcdTUzMTZcXFxcbWFpblxcXFxDYWlZdWFuWWlUaUh1YVxcXFx2aXRlLmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vRTovJUU2JTk2JUIwJUU2JTlFJUI2JUU2JTlFJTg0JUU5JUExJUI5JUU3JTlCJUFFLyVFOCVCNCVBMiVFNiVCQSU5MCVFNCVCOCU4MCVFNCVCRCU5MyVFNSU4QyU5Ni9tYWluL0NhaVl1YW5ZaVRpSHVhL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHsgZGVmaW5lQXBwbGljYXRpb25Db25maWcgfSBmcm9tICdAdmJlbi92aXRlLWNvbmZpZyc7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZUFwcGxpY2F0aW9uQ29uZmlnKHtcbiAgb3ZlcnJpZGVzOiB7XG4gICAgb3B0aW1pemVEZXBzOiB7XG4gICAgICBpbmNsdWRlOiBbXG4gICAgICAgICdlY2hhcnRzL2NvcmUnLFxuICAgICAgICAnZWNoYXJ0cy9jaGFydHMnLFxuICAgICAgICAnZWNoYXJ0cy9jb21wb25lbnRzJyxcbiAgICAgICAgJ2VjaGFydHMvcmVuZGVyZXJzJyxcbiAgICAgICAgJ3FyY29kZScsXG4gICAgICAgICdAaWNvbmlmeS9pY29uaWZ5JyxcbiAgICAgICAgJ2FudC1kZXNpZ24tdnVlL2VzL2xvY2FsZS96aF9DTicsXG4gICAgICAgICdhbnQtZGVzaWduLXZ1ZS9lcy9sb2NhbGUvZW5fVVMnLFxuICAgICAgICAnQC8uLi9saWIvdmZvcm0vZGVzaWduZXIudW1kLmpzJyxcbiAgICAgICAgJ2pxdWVyeScsXG4gICAgICBdLFxuICAgIH0sXG4gICAgYnVpbGQ6IHtcbiAgICAgIC8qIFx1NTE3Nlx1NEVENmJ1aWxkXHU3NTFGXHU0RUE3XHU2MjUzXHU1MzA1XHU5MTREXHU3RjZFXHU3NzAxXHU3NTY1ICovXG4gICAgICAvLy4uLlxuICAgICAgdGFyZ2V0OiAnZXNuZXh0JyxcbiAgICAgIC8vIGNodW5rU2l6ZVdhcm5pbmdMaW1pdDoxNTAwLFxuICAgICAgY29tbW9uanNPcHRpb25zOiB7XG4gICAgICAgIGluY2x1ZGU6IC9ub2RlX21vZHVsZXN8bGliLywgLy9cdThGRDlcdTkxQ0NcdThCQjBcdTVGOTdcdTYyOEFsaWJcdTc2RUVcdTVGNTVcdTUyQTBcdThGREJcdTY3NjVcdUZGMENcdTU0MjZcdTUyMTlcdTc1MUZcdTRFQTdcdTYyNTNcdTUzMDVcdTRGMUFcdTYyQTVcdTk1MTlcdUZGMDFcdUZGMDFcbiAgICAgIH0sXG4gICAgfSxcbiAgICBzZXJ2ZXI6IHtcbiAgICAgIHByb3h5OiB7XG4gICAgICAgICcvYmFzaWMtYXBpJzoge1xuICAgICAgICAgIHRhcmdldDogJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMCcsXG4gICAgICAgICAgY2hhbmdlT3JpZ2luOiB0cnVlLFxuICAgICAgICAgIHdzOiB0cnVlLFxuICAgICAgICAgIHJld3JpdGU6IChwYXRoKSA9PiBwYXRoLnJlcGxhY2UobmV3IFJlZ0V4cChgXi9iYXNpYy1hcGlgKSwgJycpLFxuICAgICAgICAgIC8vIG9ubHkgaHR0cHNcbiAgICAgICAgICAvLyBzZWN1cmU6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgICcvdXBsb2FkJzoge1xuICAgICAgICAgIHRhcmdldDogJ2h0dHA6Ly9sb2NhbGhvc3Q6MzMwMC91cGxvYWQnLFxuICAgICAgICAgIGNoYW5nZU9yaWdpbjogdHJ1ZSxcbiAgICAgICAgICB3czogdHJ1ZSxcbiAgICAgICAgICByZXdyaXRlOiAocGF0aCkgPT4gcGF0aC5yZXBsYWNlKG5ldyBSZWdFeHAoYF4vdXBsb2FkYCksICcnKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB3YXJtdXA6IHtcbiAgICAgICAgY2xpZW50RmlsZXM6IFsnLi9pbmRleC5odG1sJywgJy4vc3JjL3t2aWV3cyxjb21wb25lbnRzfS8qJ10sXG4gICAgICB9LFxuICAgICAgcG9ydDogNTE3MyxcbiAgICB9LFxuICAgIGRlZmluZToge1xuICAgICAgJ3Byb2Nlc3MuZW52Jzoge1xuICAgICAgICBCQVNFX1VSTDogJy8nLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNzczoge1xuICAgICAgcHJlcHJvY2Vzc29yT3B0aW9uczoge1xuICAgICAgICBsZXNzOiB7XG4gICAgICAgICAgamF2YXNjcmlwdEVuYWJsZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgcGx1Z2luczogW1xuICAgIF0sXG4gIH0sXG59KTtcbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBa1gsU0FBUywrQkFBK0I7QUFFMVosSUFBTyxzQkFBUSx3QkFBd0I7QUFBQSxFQUNyQyxXQUFXO0FBQUEsSUFDVCxjQUFjO0FBQUEsTUFDWixTQUFTO0FBQUEsUUFDUDtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsSUFDQSxPQUFPO0FBQUE7QUFBQTtBQUFBLE1BR0wsUUFBUTtBQUFBO0FBQUEsTUFFUixpQkFBaUI7QUFBQSxRQUNmLFNBQVM7QUFBQTtBQUFBLE1BQ1g7QUFBQSxJQUNGO0FBQUEsSUFDQSxRQUFRO0FBQUEsTUFDTixPQUFPO0FBQUEsUUFDTCxjQUFjO0FBQUEsVUFDWixRQUFRO0FBQUEsVUFDUixjQUFjO0FBQUEsVUFDZCxJQUFJO0FBQUEsVUFDSixTQUFTLENBQUMsU0FBUyxLQUFLLFFBQVEsSUFBSSxPQUFPLGFBQWEsR0FBRyxFQUFFO0FBQUE7QUFBQTtBQUFBLFFBRy9EO0FBQUEsUUFDQSxXQUFXO0FBQUEsVUFDVCxRQUFRO0FBQUEsVUFDUixjQUFjO0FBQUEsVUFDZCxJQUFJO0FBQUEsVUFDSixTQUFTLENBQUMsU0FBUyxLQUFLLFFBQVEsSUFBSSxPQUFPLFVBQVUsR0FBRyxFQUFFO0FBQUEsUUFDNUQ7QUFBQSxNQUNGO0FBQUEsTUFDQSxRQUFRO0FBQUEsUUFDTixhQUFhLENBQUMsZ0JBQWdCLDRCQUE0QjtBQUFBLE1BQzVEO0FBQUEsTUFDQSxNQUFNO0FBQUEsSUFDUjtBQUFBLElBQ0EsUUFBUTtBQUFBLE1BQ04sZUFBZTtBQUFBLFFBQ2IsVUFBVTtBQUFBLE1BQ1o7QUFBQSxJQUNGO0FBQUEsSUFDQSxLQUFLO0FBQUEsTUFDSCxxQkFBcUI7QUFBQSxRQUNuQixNQUFNO0FBQUEsVUFDSixtQkFBbUI7QUFBQSxRQUNyQjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsSUFDQSxTQUFTLENBQ1Q7QUFBQSxFQUNGO0FBQ0YsQ0FBQzsiLAogICJuYW1lcyI6IFtdCn0K
|
||||||
Loading…
Reference in New Issue