dianlixunjian
徐景良 2024-07-10 15:25:35 +08:00
commit 01a1ebfb33
10 changed files with 302 additions and 199 deletions

View File

@ -79,6 +79,7 @@ enum Api {
LoadCaseInfoIllegalList = '/api/DroneCaseInfoSingle/LoadCaseInfoIllegalList',
CaseOffence = '/api/DroneCaseInfoSingle/CaseOffence',
LoadCaseInfoListOffence = '/api/DroneCaseInfoSingle/LoadCaseInfoListOffence',
DealIllegalCaseInfo = '/api/DroneCaseInfoSingle/dealIllegalCaseInfo',
}
export const getPositionsTree = (params?: AccountParams) =>
@ -349,3 +350,9 @@ export const getCaseOffence = (params: ReportParams) =>
export const getLoadCaseInfoListOffence = (params: ReportParams) =>
defHttp.get<StatisticalListGetResultModel>({ url: Api.LoadCaseInfoListOffence, params });
export function dealIllegalCaseInfo(params) {
return defHttp.post({
url: Api.DealIllegalCaseInfo,
params,
});
}

View File

@ -34,7 +34,7 @@
</div>
</template>
<script lang="ts" setup>
import { computed, onMounted, ref } from 'vue';
import { computed, onMounted, ref, h } from 'vue';
import { Popover, Tabs, Badge } from 'ant-design-vue';
import { BellOutlined } from '@ant-design/icons-vue';
import { tabListData } from './data';
@ -54,7 +54,7 @@
const userInfo: any = userStore.getUserInfo;
const { prefixCls } = useDesign('header-notify');
const { createMessage } = useMessage();
const { createMessage, notification } = useMessage();
const listData = ref(tabListData);
const numberStyle = {};
const auditOpen = ref(false);
@ -94,8 +94,8 @@
// });
console.log(data);
let arr: any = [];
if (data.items && data.items.length > 0) {
data.items.forEach((item: any) => {
if (data && data.length > 0) {
data.forEach((item: any) => {
arr.push({
id: item.msgId,
title: item.content,
@ -110,7 +110,12 @@
//
async function start() {
try {
await signal.start();
await signal.start().then(() => {
signal
.invoke('SendInfo', userInfo.id.toString())
.catch((err) => console.error(err.toString()));
});
console.log('userInfo.id', userInfo.id);
console.log('SignalR Connected.连接成功');
} catch (err) {
console.log(err);
@ -120,18 +125,31 @@
signal.onclose(async () => {
await start();
});
//
signal.on('RevMsg', (user, message, time, id, issystem) => {
console.log('报警', user, message, time, id, issystem); //
notification.info({
message: '您有一条新消息',
description: () => {
const res = message + '\n' + time;
return h('pre', {}, res);
},
duration: 3,
});
getList();
// openModal(true, {
// user: user,
// message: message,
// time: time,
// id: id,
// issystem: issystem,
// });
});
onMounted(() => {
getList();
start();
});
//
signal.on('RevMsg', (user, message) => {
console.log('报警', user, message); //
openModal(true, {
user: user,
message: message,
});
});
</script>
<style lang="less">
@prefix-cls: ~'@{namespace}-header-notify';

View File

@ -25,9 +25,11 @@
import { BasicModal, useModalInner } from '@/components/Modal';
import { Look } from '@/views/demo/workflow/task/process/page';
const info = ref({});
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
setModalProps({ confirmLoading: false });
console.log(data);
info.value = data;
});
const auditOpen = ref(false);
const processId = ref('');

View File

@ -5,6 +5,6 @@ const { VITE_GLOB_API_URL } = getAppEnvConfig();
console.log(VITE_GLOB_API_URL);
export const signal = new signalR.HubConnectionBuilder()
.withUrl(VITE_GLOB_API_URL + '/chathub')
.withAutomaticReconnect([0, 2000, 10000, 30000])
.configureLogging(signalR.LogLevel.Information)
// .withAutomaticReconnect([0, 2000, 10000, 30000])
// .configureLogging(signalR.LogLevel.Information)
.build();

View File

@ -1,4 +1,5 @@
import { BasicColumn, FormSchema } from '@/components/Table';
import dayjs from 'dayjs';
// 无人机发现违法行为情况统计明细表-table
export const columns: BasicColumn[] = [
@ -10,7 +11,8 @@ export const columns: BasicColumn[] = [
{
title: '县区',
dataIndex: 'countyname',
width: 200,
width: 150,
// fixed: 'left',
},
{
title: '下发图斑',
@ -238,13 +240,14 @@ export const columns: BasicColumn[] = [
export const searchFormSchema: FormSchema[] = [
{
field: '[startTime, endTime]',
label: '年月范围',
label: '日期范围',
component: 'RangePicker',
colProps: { span: 8 },
componentProps: {
format: 'YYYY-MM',
picker: 'month',
placeholder: ['开始日期', '结束日期'],
defaultValue: [dayjs(dayjs(), 'YYYY-MM'), dayjs(dayjs(), 'YYYY-MM')]
},
},
];

View File

@ -1,5 +1,5 @@
<template>
<PageWrapper>
<div>
<BasicTable @register="registerTable">
<template #toolbar>
<PermissionBtn @btnEvent="buttonClick"></PermissionBtn>
@ -11,110 +11,121 @@
</template> -->
<!-- 下发图斑·宗数 -->
<template v-if="column.key === 'xftbzs'">
<template v-if="column.key === 'xftbzs' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record, 1)">{{ record.xftbzs }}</a>
</template>
<!-- 下发图斑·耕地面积 -->
<template v-if="column.key === 'xfgdmj'">
<template v-if="column.key === 'xfgdmj' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record, 1)">{{ record.xfgdmj }}</a>
</template>
<!-- 新增建设用地·合法·宗数 -->
<template v-if="column.key === 'hfzs'">
<template v-if="column.key === 'hfzs' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record, 2)">{{ record.hfzs }}</a>
</template>
<!-- 新增建设用地·合法·面积 -->
<template v-if="column.key === 'hfmj'">
<template v-if="column.key === 'hfmj' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record, 2)">{{ record.hfmj }}</a>
</template>
<!-- 新增建设用地·合法·耕地面积 -->
<template v-if="column.key === 'hfgdmj'">
<template v-if="column.key === 'hfgdmj' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record, 2)">{{ record.hfgdmj }}</a>
</template>
<!-- 新增建设用地·违法·宗数 -->
<template v-if="column.key === 'wfzs'">
<template v-if="column.key === 'wfzs' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record, 3)">{{ record.wfzs }}</a>
</template>
<!-- 新增建设用地·违法·面积 -->
<template v-if="column.key === 'wfmj'">
<template v-if="column.key === 'wfmj' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record, 3)">{{ record.wfmj }}</a>
</template>
<!-- 新增建设用地·违法·耕地面积 -->
<template v-if="column.key === 'wfgdmj'">
<template v-if="column.key === 'wfgdmj' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record, 3)">{{ record.wfgdmj }}</a>
</template>
<!-- 非新增建设用地·其他·宗数 -->
<template v-if="column.key === 'qtzs'">
<template v-if="column.key === 'qtzs' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record, 4)">{{ record.qtzs }}</a>
</template>
<!-- 非新增建设用地·其他·面积 -->
<template v-if="column.key === 'qtmj'">
<template v-if="column.key === 'qtmj' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record, 4)">{{ record.qtmj }}</a>
</template>
<!-- 非新增建设用地·其他·耕地面积 -->
<template v-if="column.key === 'qtgdmj'">
<template v-if="column.key === 'qtgdmj' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record, 4)">{{ record.qtgdmj }}</a>
</template>
<!-- 农业项目耕地·非粮化·宗数 -->
<template v-if="column.key === 'flhzs'">
<template v-if="column.key === 'flhzs' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record, 5)">{{ record.flhzs }}</a>
</template>
<!-- 农业项目耕地·非粮化·面积 -->
<template v-if="column.key === 'flhmj'">
<template v-if="column.key === 'flhmj' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record, 5)">{{ record.flhmj }}</a>
</template>
<!-- 农业项目耕地·非粮化·耕地面积 -->
<template v-if="column.key === 'flhgdmj'">
<template v-if="column.key === 'flhgdmj' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record, 5)">{{ record.flhgdmj }}</a>
</template>
<!-- 整改情况·补办手续·宗数 -->
<template v-if="column.key === 'bbsxzs'">
<template v-if="column.key === 'bbsxzs' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record, 6)">{{ record.bbsxzs }}</a>
</template>
<!-- 整改情况·补办手续·面积 -->
<template v-if="column.key === 'bbsxmj'">
<template v-if="column.key === 'bbsxmj' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record, 6)">{{ record.bbsxmj }}</a>
</template>
<!-- 整改情况·补办手续·耕地面积 -->
<template v-if="column.key === 'bbsxgdmj'">
<template v-if="column.key === 'bbsxgdmj' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record, 6)">{{ record.bbsxgdmj }}</a>
</template>
<!-- 整改情况·拆除·宗数 -->
<template v-if="column.key === 'cczs'">
<template v-if="column.key === 'cczs' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record, 7)">{{ record.cczs }}</a>
</template>
<!-- 整改情况·拆除·面积 -->
<template v-if="column.key === 'ccmj'">
<template v-if="column.key === 'ccmj' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record, 7)">{{ record.ccmj }}</a>
</template>
<!-- 整改情况·拆除·耕地面积 -->
<template v-if="column.key === 'ccgdmj'">
<template v-if="column.key === 'ccgdmj' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record, 7)">{{ record.ccgdmj }}</a>
</template>
<!-- 新增违法占用耕地情况计算·核实后新增违法耕地·宗数 -->
<template v-if="column.key === 'hshxzwfgdzs'">
<template v-if="column.key === 'hshxzwfgdzs' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record)">{{ record.hshxzwfgdzs }}</a>
</template>
<!-- 新增违法占用耕地情况计算·核实后新增违法耕地·耕地面积 -->
<template v-if="column.key === 'hshxzwfgdgdmj'">
<template v-if="column.key === 'hshxzwfgdgdmj' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record)">{{ record.hshxzwfgdgdmj }}</a>
</template>
<!-- 新增违法占用耕地情况计算·整改后剩余违法耕地·宗数 -->
<template v-if="column.key === 'zghsywfgdzs'">
<template v-if="column.key === 'zghsywfgdzs' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record)">{{ record.zghsywfgdzs }}</a>
</template>
<!-- 新增违法占用耕地情况计算·整改后剩余违法耕地·耕地面积 -->
<template v-if="column.key === 'zghsywfgdgdmj'">
<template v-if="column.key === 'zghsywfgdgdmj' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record)">{{ record.zghsywfgdgdmj }}</a>
</template>
</template>
</BasicTable>
<div class="data-preview-container" v-if="showRecordList">
<a-modal
v-model:open="showRecordList"
width="1500px"
:footer="null"
style="top: 100px"
@ok="handleOk"
>
<template #closeIcon>
<CloudDownloadOutlined id="closeIconButton" @click="exportList()" />
<MinusOutlined id="closeIconButton" @click="handleCloseRecordList()" />
<CloseOutlined id="closeIconButton" @click="handleCloseAllRecordList()" />
</template>
<a-tabs
v-model:activeKey="activeKey"
hide-add
@ -131,19 +142,8 @@
</a-tab-pane>
</a-tabs>
<RecordList :tablist="tablist" :currentListQuery="currentListQuery.listQuery"></RecordList>
<div class="data-preview-container-option">
<div @click="exportList()">
<CloudDownloadOutlined />
</div>
<div @click="handleCloseRecordList()">
<MinusOutlined />
</div>
<div @click="handleCloseAllRecordList()">
<CloseOutlined />
</div>
</div>
</div>
</PageWrapper>
</a-modal>
</div>
</template>
<script setup lang="ts">
@ -178,7 +178,6 @@
striped: false,
bordered: true,
showSummary: true,
summaryFunc: handleSummary,
canResize: false,
useSearchForm: true,
pagination: false,
@ -197,90 +196,6 @@
},
afterFetch: (res) => {},
});
//
function handleSummary(tableData: Recordable[]) {
let total: any = {
xftbzs: 0 as number,
xfgdmj: 0 as number,
hfzs: 0 as number,
hfmj: 0 as number,
hfgdmj: 0 as number,
wfzs: 0 as number,
wfmj: 0 as number,
wfgdmj: 0 as number,
qtzs: 0 as number,
qtmj: 0 as number,
qtgdmj: 0 as number,
flhzs: 0 as number,
flhmj: 0 as number,
flhgdmj: 0 as number,
bbsxzs: 0 as number,
bbsxmj: 0 as number,
bbsxgdmj: 0 as number,
cczs: 0 as number,
ccmj: 0 as number,
ccgdmj: 0 as number,
hshxzwfgdzs: 0 as number,
hshxzwfgdgdmj: 0 as number,
zghsywfgdzs: 0 as number,
zghsywfgdgdmj: 0 as number,
};
tableData.forEach((item) => {
total.xftbzs += item.xftbzs;
total.xfgdmj += item.xfgdmj;
total.hfzs += item.hfzs;
total.hfmj += item.hfmj;
total.hfgdmj += item.hfgdmj;
total.wfzs += item.wfzs;
total.wfmj += item.wfmj;
total.wfgdmj += item.wfgdmj;
total.qtzs += item.qtzs;
total.qtmj += item.qtmj;
total.qtgdmj += item.qtgdmj;
total.flhzs += item.flhzs;
total.flhmj += item.flhmj;
total.flhgdmj += item.flhgdmj;
total.bbsxzs += item.bbsxzs;
total.bbsxmj += item.bbsxmj;
total.bbsxgdmj += item.bbsxgdmj;
total.cczs += item.cczs;
total.ccmj += item.ccmj;
total.ccgdmj += item.ccgdmj;
total.hshxzwfgdzs += item.hshxzwfgdzs;
total.hshxzwfgdgdmj += item.hshxzwfgdgdmj;
total.zghsywfgdzs += item.zghsywfgdzs;
total.zghsywfgdgdmj += item.zghsywfgdgdmj;
});
return [
{
countyname: '合计',
xftbzs: total.xftbzs,
xfgdmj: total.xfgdmj,
hfzs: total.hfzs,
hfmj: total.hfmj,
hfgdmj: total.hfgdmj,
wfzs: total.wfzs,
wfmj: total.wfmj,
wfgdmj: total.wfgdmj,
qtzs: total.qtzs,
qtmj: total.qtmj,
qtgdmj: total.qtgdmj,
flhzs: total.flhzs,
flhmj: total.flhmj,
flhgdmj: total.flhgdmj,
bbsxzs: total.bbsxzs,
bbsxmj: total.bbsxmj,
bbsxgdmj: total.bbsxgdmj,
cczs: total.cczs,
ccmj: total.ccmj,
ccgdmj: total.ccgdmj,
hshxzwfgdzs: total.hshxzwfgdzs,
hshxzwfgdgdmj: total.hshxzwfgdgdmj,
zghsywfgdzs: total.zghsywfgdzs,
zghsywfgdgdmj: total.zghsywfgdgdmj,
},
];
}
const printOpen = ref<boolean>(false);
const showRecordList = ref<boolean>(false);
@ -367,24 +282,8 @@
}
</script>
<style>
.data-preview-container {
width: 100%;
height: calc(100% - 0px);
position: absolute;
padding: 30px 10px;
top: 0px;
left: 0px;
background: #fff;
}
.data-preview-container-option {
width: 120px;
height: 40px;
position: absolute;
top: 30px;
right: 0px;
}
.data-preview-container-option div {
width: 40px;
#closeIconButton {
width: 30px;
height: 40px;
line-height: 40px;
float: left;

View File

@ -26,12 +26,10 @@ export const columns: BasicColumn[] = [
{
title: '区县',
dataIndex: 'countyname',
width: 120,
},
{
title: '乡镇',
dataIndex: 'streetname',
width: 120,
},
{
title: '图斑编号',
@ -41,22 +39,18 @@ export const columns: BasicColumn[] = [
{
title: '下发时间',
dataIndex: 'identificationtime',
width: 120,
},
{
title: '图斑面积',
dataIndex: 'area',
width: 120,
},
{
title: '耕地面积',
dataIndex: 'gengdiarea',
width: 120,
},
{
title: '判定结果',
dataIndex: 'typename',
width: 120,
},
{
title: '当前状态',
@ -81,18 +75,51 @@ export const columns: BasicColumn[] = [
{
title: '处理方式',
dataIndex: 'resultname',
editRow: true,
editComponent: 'Select',
editComponentProps: {
options: [
{
label: '立案',
value: '立案',
},
{
label: '非立案',
value: '非立案',
},
{
label: '移交其他部门处理',
value: '移交其他部门处理',
},
{
label: '未处理',
value: '未处理',
},
],
},
fixed: 'right',
},
{
title: '立案号',
dataIndex: 'registrnumber',
editRow: true,
editComponent: 'Input',
fixed: 'right',
},
{
title: '违法联系人',
dataIndex: 'illegalcontact',
editRow: true,
editComponent: 'Input',
fixed: 'right',
},
{
title: '违法人身份证号',
dataIndex: 'illegalshenfenzhenghao',
editRow: true,
editComponent: 'Input',
fixed: 'right',
width: 160,
},
];

View File

@ -1,21 +1,12 @@
<template>
<div>
<BasicTable @register="registerTable" :searchInfo="searchInfo">
<BasicTable @register="registerTable">
<template #toolbar>
<PermissionBtn @btn-event="onBtnClicked" />
</template>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<TableAction
:actions="[
{
// icon: 'ant-design:ellipsis-outlined',
label: '查看',
onClick: viewAccount.bind(null, record),
},
]"
/>
<TableAction :actions="createActions(record)" />
</template>
</template>
</BasicTable>
@ -37,17 +28,19 @@
</template>
<script lang="ts" setup>
import { ref, reactive } from 'vue';
import { BasicTable, useTable, TableAction } from '@/components/Table';
import { loadCaseInfoIllegalList } from '@/api/demo/system';
import { BasicTable, useTable, TableAction, EditRecordRow } from '@/components/Table';
import { loadCaseInfoIllegalList, dealIllegalCaseInfo } from '@/api/demo/system';
import { PermissionBtn } from '@/components/PermissionBtn/index';
import { columns, searchFormSchema } from './illegaltreatment.data';
import { getAppEnvConfig } from '@/utils/env';
import axios from 'axios';
import ShowInfoModal from '@/views/demo/tiankongdi/curbspotcity/MapList/ShowInfoModal/index.vue';
import { getCaseInfoById } from '@/api/tiankongdi/index';
import { useMessage } from '@/hooks/web/useMessage';
import { cloneDeep } from 'lodash-es';
const { VITE_GLOB_API_URL } = getAppEnvConfig();
const { createMessage } = useMessage();
defineOptions({ name: 'RoleManagement' });
const searchInfo = reactive<Recordable>({
@ -56,11 +49,10 @@
const showInfoData = ref();
const showInfoOpen = ref(false);
const searchParams = ref();
const [registerTable, { reload, clearSelectedRowKeys }] = useTable({
const [registerTable] = useTable({
title: '违法处理',
api: loadCaseInfoIllegalList,
columns,
rowKey: 'id',
formConfig: {
labelWidth: 120,
showAdvancedButton: false,
@ -68,21 +60,94 @@
},
useSearchForm: true,
showTableSetting: true,
bordered: true,
tableSetting: { fullScreen: true },
//
handleSearchInfoFn(info) {
searchParams.value = info;
return info;
},
actionColumn: {
width: 80,
width: 120,
title: '操作',
dataIndex: 'action',
// slots: { customRender: 'action' },
fixed: 'right',
},
});
const currentEditKeyRef = ref('');
function createActions(record: EditRecordRow): ActionItem[] {
if (!record.editable) {
return [
{
label: '编辑',
disabled: currentEditKeyRef.value ? currentEditKeyRef.value !== record.Id : false,
onClick: handleEdit.bind(null, record),
},
{
// icon: 'ant-design:ellipsis-outlined',
label: '查看',
onClick: viewAccount.bind(null, record),
},
];
}
return [
{
label: '保存',
onClick: handleSave.bind(null, record),
},
{
label: '取消',
popConfirm: {
title: '是否取消编辑',
confirm: handleCancel.bind(null, record),
},
},
];
}
function handleEdit(record: EditRecordRow) {
console.log(record);
currentEditKeyRef.value = record.Id;
record.onEdit?.(true);
}
function handleCancel(record: EditRecordRow) {
currentEditKeyRef.value = '';
record.onEdit?.(false, false);
}
async function handleSave(record: EditRecordRow) {
console.log(record);
//
createMessage.loading({ content: '正在保存...', duration: 0, key: 'saving' });
const valid = await record.onValid?.();
console.log(valid);
if (valid) {
try {
const data = cloneDeep(record.editValueRefs);
console.log(data);
let querys = { ...data };
querys.id = record.Id;
console.log(querys);
//TODO
const res = await dealIllegalCaseInfo(querys);
console.log(res);
if (res) {
//
const pass = await record.onEdit?.(false, true);
if (pass) {
currentEditKeyRef.value = '';
}
createMessage.success({ content: '数据已保存', key: 'saving' });
}
} catch (error) {
createMessage.error({ content: '保存失败', key: 'saving' });
}
} else {
// const pass = await record.onEdit?.(false, true);
createMessage.error({ content: '请填写正确的数据', key: 'saving' });
}
}
//
function handleExport() {
let params = { ...searchParams.value };

View File

@ -25,17 +25,14 @@ export const columns: BasicColumn[] = [
{
title: '图斑来源',
dataIndex: 'tubanlaiyuan',
width: 120,
},
{
title: '区县',
dataIndex: 'countyname',
width: 120,
},
{
title: '乡镇',
dataIndex: 'streetname',
width: 120,
},
{
title: '图斑编号',
@ -45,22 +42,18 @@ export const columns: BasicColumn[] = [
{
title: '下发时间',
dataIndex: 'identificationtime',
width: 120,
},
{
title: '图斑面积',
dataIndex: 'area',
width: 120,
},
{
title: '耕地面积',
dataIndex: 'typeTuituCount',
width: 120,
},
{
title: '判定结果',
dataIndex: 'typename',
width: 120,
},
{
title: '当前状态',
@ -146,7 +139,8 @@ export const searchFormSchema: FormSchema[] = [
colProps: { span: 4 },
componentProps: {
options: [
{ label: '农用地', value: '农用地' },
{ label: '农用地违法', value: '农用地违法' },
{ label: '建设用地', value: '建设用地' },
{ label: '推堆土', value: '推堆土' },
],
},

View File

@ -36,7 +36,17 @@
<a-descriptions-item label="判读时间">{{ identification_time }}</a-descriptions-item>
<a-descriptions-item label="案件备注">{{ remark }}</a-descriptions-item>
<a-descriptions-item label="下发时间">{{ createtime }}</a-descriptions-item>
<a-descriptions-item label="案件图片">{{ anjianzhaopian }}</a-descriptions-item>
<a-descriptions-item label="案件图片">
<template v-for="(imageItem, imageIndex) in anjianzhaopianList" :key="imageIndex" >
<a-image
v-if="imageItem"
width="100px"
height="100px"
:src="`http://192.168.10.102:9023/${imageItem}`"
></a-image>
</template>
<!-- {{ anjianzhaopian }} -->
</a-descriptions-item>
</a-descriptions>
</a-tab-pane>
<a-tab-pane key="2" tab="线索填报" force-render>
@ -58,8 +68,30 @@
<a-descriptions-item label="违法联系人">{{ illegal_contact }}</a-descriptions-item>
<a-descriptions-item label="违法人身份证号">{{ illegal_shenfenzhenghao }}</a-descriptions-item>
<a-descriptions-item label="判定依据说明">{{ pandingyijushuoming }}</a-descriptions-item>
<a-descriptions-item label="附件">{{ fujian }}</a-descriptions-item>
<a-descriptions-item label="照片">{{ casepic }}</a-descriptions-item>
<a-descriptions-item label="附件">
<template v-for="(item, itemIndex) in fujianList" :key="itemIndex" >
<div v-if="item">
<Icon
:style="`font-size: 30px; cursor: pointer;`"
icon="ion:document-attach-outline"
@click="downLoadFile(item)"
/>
{{ item }}
</div>
</template>
<!-- {{ fujian }} -->
</a-descriptions-item>
<a-descriptions-item label="照片">
<template v-for="(imageItem, imageIndex) in casepicList" :key="imageIndex" >
<a-image
v-if="imageItem"
width="100px"
height="100px"
:src="`http://192.168.10.102:9023/${imageItem}`"
></a-image>
</template>
<!-- {{ casepic }} -->
</a-descriptions-item>
<a-descriptions-item label="填报人">{{ examiner_name }}</a-descriptions-item>
<a-descriptions-item label="填报时间">{{ examine_time }}</a-descriptions-item>
</a-descriptions>
@ -74,9 +106,43 @@
'word-break': 'break-all'
}">
<a-descriptions-item label="整改措施">{{ measure_name }}</a-descriptions-item>
<a-descriptions-item label="验收表">{{ yanshoubiao }}</a-descriptions-item>
<a-descriptions-item label="拆除复耕后照片">{{ chaichufugenghoupic }}</a-descriptions-item>
<a-descriptions-item label="附件">{{ zhenggaifujian }}</a-descriptions-item>
<a-descriptions-item label="验收表">
<template v-for="(item, itemIndex) in yanshoubiaoList" :key="itemIndex" >
<div v-if="item">
<Icon
:style="`font-size: 30px; cursor: pointer;`"
icon="ion:document-attach-outline"
@click="downLoadFile(item)"
/>
{{ item }}
</div>
</template>
<!-- {{ yanshoubiao }} -->
</a-descriptions-item>
<a-descriptions-item label="拆除复耕后照片">
<template v-for="(imageItem, imageIndex) in chaichufugenghoupicList" :key="imageIndex" >
<a-image
v-if="imageItem"
width="100px"
height="100px"
:src="`http://192.168.10.102:9023/${imageItem}`"
></a-image>
</template>
<!-- {{ chaichufugenghoupic }} -->
</a-descriptions-item>
<a-descriptions-item label="附件">
<template v-for="(item, itemIndex) in zhenggaifujianList" :key="itemIndex" >
<div v-if="item">
<Icon
:style="`font-size: 30px; cursor: pointer;`"
icon="ion:document-attach-outline"
@click="downLoadFile(item)"
/>
{{ item }}
</div>
</template>
<!-- {{ zhenggaifujian }} -->
</a-descriptions-item>
<a-descriptions-item label="办理人">{{ transactor_name }}</a-descriptions-item>
<a-descriptions-item label="办理时间">{{ transact_time }}</a-descriptions-item>
</a-descriptions>
@ -100,12 +166,13 @@
</template>
<script setup lang="ts">
import { defineProps,ref, } from "vue"
import { defineProps,ref,computed } from "vue"
import MapboxMap from '@/components/MapboxMaps/MapComponent.vue'
import {getConfig} from '@/api/sys/layerManagement'
import { getGeom } from '@/api/sys/layerManagement';
import { useMessage } from '@/hooks/web/useMessage';
const { createMessage } = useMessage();
import Icon from '@/components/Icon/Icon.vue';
const MapboxComponent = ref();
const mapConfig = ref({})
@ -217,6 +284,24 @@ const {
is_jieshou,
anjianzhaopian
} = props.showInfoData
const anjianzhaopianList = computed(() => {
return anjianzhaopian?anjianzhaopian.split(','):[]
})
const casepicList = computed(() => {
return casepic?casepic.split(','):[]
})
const chaichufugenghoupicList = computed(() => {
return chaichufugenghoupic?chaichufugenghoupic.split(','):[]
})
const fujianList = computed(() => {
return fujian?fujian.split(','):[]
})
const zhenggaifujianList = computed(() => {
return zhenggaifujian?zhenggaifujian.split(','):[]
})
const yanshoubiaoList = computed(() => {
return yanshoubiao?yanshoubiao.split(','):[]
})
function onMapboxLoad(){
changeTask();
@ -254,6 +339,9 @@ function changeTask() {
createMessage.error('当前数据没有图斑!');
}
}
const downLoadFile = (url) => {
window.open(`http://192.168.10.102:9023/${rul}`,'_self')
}
</script>