Merge branch 'main' of http://123.132.248.154:10000/HC_YFZX/CaiYuanYiTiHua
commit
69bfd69af2
|
|
@ -7,6 +7,7 @@ enum Api {
|
|||
DeleteEntitys = '/api/ImMsg/DeleteEntitys',
|
||||
ReadMsg = '/api/ImMsg/ReadMsg',
|
||||
GetLastList = '/api/ImMsg/GetLastList',
|
||||
GetInfoByContentId = '/api/ImMsg/GetInfoByContentId',
|
||||
}
|
||||
|
||||
export function loadSysImMsgList(params) {
|
||||
|
|
@ -37,3 +38,9 @@ export function getLastList(params) {
|
|||
url: Api.GetLastList + '?userId=' + params.userId,
|
||||
});
|
||||
}
|
||||
|
||||
export function getInfoByContentId(params) {
|
||||
return defHttp.get({
|
||||
url: Api.GetInfoByContentId + '?contentid=' + params.id,
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,6 +35,8 @@ enum Api {
|
|||
AddtaskFavorite = '/api/DroneCaseInfoSingle/AddtaskFavorite',
|
||||
// 审核列表删除收藏
|
||||
DeleteTaskCase = '/api/DroneCaseInfoSingle/DeleteTaskCase',
|
||||
// 获取当前账号可以看见的乡镇
|
||||
loadStreet = '/api/DroneCaseInfoSingle/loadStreet'
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -43,6 +45,9 @@ enum Api {
|
|||
export function getLoadTaskCount(params?: taskCountParams) {
|
||||
return defHttp.get<countModel>({ url: Api.LoadTaskCount, params });
|
||||
}
|
||||
export function getLoadStreet() {
|
||||
return defHttp.get({ url: Api.loadStreet });
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: getCaseFlowLog
|
||||
|
|
|
|||
|
|
@ -431,4 +431,27 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 整个滚动条的样式 */
|
||||
::-webkit-scrollbar {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
}
|
||||
|
||||
/* 滚动条轨道 */
|
||||
::-webkit-scrollbar-track {
|
||||
background: #f1f1f1;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
/* 滚动条滑块 */
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: #888;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
/* 当鼠标悬停在滚动条滑块上时的样式 */
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: #555;
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
<template #footer> </template>
|
||||
<Look ref="posRef" :processId="processId" />
|
||||
</a-modal>
|
||||
<Message @register="register" />
|
||||
<DetailModal @register="registerModal" />
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
|
|
@ -40,16 +40,18 @@
|
|||
import { tabListData } from './data';
|
||||
import { useDesign } from '@/hooks/web/useDesign';
|
||||
import { useMessage } from '@/hooks/web/useMessage';
|
||||
import { getLastList, loadSysImMsgList, readMsg } from '@/api/demo/message';
|
||||
import { getLastList, readMsg, getInfoByContentId } from '@/api/demo/message';
|
||||
import { useUserStore } from '@/store/modules/user';
|
||||
import { Look } from '@/views/demo/workflow/task/process/page';
|
||||
import { useModal } from '@/components/Modal';
|
||||
import NoticeList from './NoticeList.vue';
|
||||
import Message from './message.vue';
|
||||
import { signal } from '@/utils/signalR';
|
||||
import { getDetail } from '@/api/sys/WFSchemeInfo';
|
||||
import { flowStore } from '@/store/modules/flow';
|
||||
|
||||
const [register, { openModal }] = useModal();
|
||||
|
||||
const flowWfDataStore = flowStore();
|
||||
const [registerModal, { openModal }] = useModal();
|
||||
const userStore = useUserStore();
|
||||
const userInfo: any = userStore.getUserInfo;
|
||||
|
||||
|
|
@ -59,6 +61,9 @@
|
|||
const numberStyle = {};
|
||||
const auditOpen = ref(false);
|
||||
const processId = ref('');
|
||||
const taskId = ref('');
|
||||
const isRead: any = ref(0);
|
||||
const type = ref('');
|
||||
const count = computed(() => {
|
||||
let count = 0;
|
||||
for (let i = 0; i < listData.value.length; i++) {
|
||||
|
|
@ -68,17 +73,32 @@
|
|||
});
|
||||
|
||||
async function onNoticeClick(record) {
|
||||
console.log(record);
|
||||
// createMessage.success('你点击了通知,ID=' + record.id);
|
||||
// // 可以直接将其标记为已读(为标题添加删除线),此处演示的代码会切换删除线状态
|
||||
// record.titleDelete = !record.titleDelete;
|
||||
const index = listData.value[0].list.findIndex((item: any) => item.id === record.id);
|
||||
if (index !== -1) {
|
||||
listData.value[0].list.splice(index, 1);
|
||||
}
|
||||
if (record.contentId) {
|
||||
auditOpen.value = true;
|
||||
processId.value = record.contentId;
|
||||
const info = await getInfoByContentId({
|
||||
id: record.contentId,
|
||||
});
|
||||
if (info) {
|
||||
let data = await getDetail({ code: info.ProcessCode });
|
||||
let scheme = JSON.parse(data.scheme.content);
|
||||
let wfData = scheme.wfData;
|
||||
flowWfDataStore.setWfDataAll(wfData);
|
||||
auditOpen.value = true;
|
||||
processId.value = info.ProcessId;
|
||||
taskId.value = info.Id;
|
||||
type.value = info.Type;
|
||||
} else {
|
||||
openModal(true, {
|
||||
record,
|
||||
});
|
||||
}
|
||||
} else {
|
||||
openModal(true, {
|
||||
record,
|
||||
});
|
||||
}
|
||||
const data = await readMsg({
|
||||
id: record.msgId,
|
||||
|
|
@ -88,11 +108,6 @@
|
|||
const data = await getLastList({
|
||||
userId: userInfo.id,
|
||||
});
|
||||
// const data = await loadSysImMsgList({
|
||||
// page: 1,
|
||||
// limit: 10,
|
||||
// });
|
||||
console.log(data);
|
||||
let arr: any = [];
|
||||
if (data && data.length > 0) {
|
||||
data.forEach((item: any) => {
|
||||
|
|
@ -138,18 +153,14 @@
|
|||
duration: 3,
|
||||
});
|
||||
getList();
|
||||
// openModal(true, {
|
||||
// user: user,
|
||||
// message: message,
|
||||
// time: time,
|
||||
// id: id,
|
||||
// issystem: issystem,
|
||||
// });
|
||||
});
|
||||
onMounted(() => {
|
||||
getList();
|
||||
start();
|
||||
});
|
||||
function closeMolder() {
|
||||
auditOpen.value = false;
|
||||
}
|
||||
</script>
|
||||
<style lang="less">
|
||||
@prefix-cls: ~'@{namespace}-header-notify';
|
||||
|
|
|
|||
|
|
@ -1,40 +0,0 @@
|
|||
<template>
|
||||
<BasicModal
|
||||
@register="registerModal"
|
||||
v-bind="$attrs"
|
||||
title="新消息"
|
||||
okText="查看"
|
||||
cancelText="关闭"
|
||||
@ok="onNoticeClick"
|
||||
>
|
||||
Modal Info.
|
||||
</BasicModal>
|
||||
<a-modal
|
||||
width="100%"
|
||||
wrap-class-name="full-modal"
|
||||
v-model:open="auditOpen"
|
||||
title="详情"
|
||||
:destroyOnClose="true"
|
||||
>
|
||||
<template #footer> </template>
|
||||
<Look ref="posRef" :processId="processId" />
|
||||
</a-modal>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { ref } from 'vue';
|
||||
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('');
|
||||
async function onNoticeClick() {
|
||||
auditOpen.value = true;
|
||||
closeModal();
|
||||
}
|
||||
</script>
|
||||
|
|
@ -116,9 +116,9 @@
|
|||
|
||||
<a-modal
|
||||
v-model:open="showRecordList"
|
||||
width="1500px"
|
||||
width="1710px"
|
||||
:footer="null"
|
||||
style="top: 100px"
|
||||
style="top: 50px; left: 105px"
|
||||
@ok="handleOk"
|
||||
>
|
||||
<template #closeIcon>
|
||||
|
|
@ -192,8 +192,8 @@
|
|||
beforeFetch: (data) => {
|
||||
// 接口请求前 参数处理
|
||||
var temp = {
|
||||
startTime: dayjs(data.startTime).format('YYYY-MM'),
|
||||
endTime: dayjs(data.endTime).format('YYYY-MM'),
|
||||
startTime: dayjs(data.startTime).startOf('month').format('YYYY-MM-DD'),
|
||||
endTime: dayjs(data.endTime).endOf('month').format('YYYY-MM-DD'),
|
||||
};
|
||||
return temp;
|
||||
},
|
||||
|
|
@ -223,8 +223,8 @@
|
|||
const searchForm = reactive<searchListSchema>({
|
||||
AreaId: record.countyid,
|
||||
CaseType: CaseType,
|
||||
startTime: dayjs(searchParams.value?.startTime).format('YYYY-MM'),
|
||||
endTime: dayjs(searchParams.value?.endTime).format('YYYY-MM'),
|
||||
startTime: dayjs(searchParams.value?.startTime).startOf('month').format('YYYY-MM-DD'),
|
||||
endTime: dayjs(searchParams.value?.endTime).endOf('month').format('YYYY-MM-DD'),
|
||||
page: 1,
|
||||
limit: 10,
|
||||
});
|
||||
|
|
@ -299,8 +299,8 @@
|
|||
// 直接下载接口返回的二进制流
|
||||
function handleExport() {
|
||||
let params = {
|
||||
startTime: dayjs(searchParams.value?.startTime).format('YYYY-MM'),
|
||||
endTime: dayjs(searchParams.value?.endTime).format('YYYY-MM'),
|
||||
startTime: dayjs(searchParams.value?.startTime).startOf('month').format('YYYY-MM-DD'),
|
||||
endTime: dayjs(searchParams.value?.endTime).endOf('month').format('YYYY-MM-DD'),
|
||||
};
|
||||
axios({
|
||||
method: 'post',
|
||||
|
|
@ -331,7 +331,7 @@
|
|||
}
|
||||
};
|
||||
</script>
|
||||
<style>
|
||||
<style lang="less" scoped>
|
||||
#closeIconButton {
|
||||
width: 30px;
|
||||
height: 40px;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,45 @@
|
|||
<template>
|
||||
<BasicModal v-bind="$attrs" @register="registerModal" title="消息">
|
||||
<Description
|
||||
:collapseOptions="{ canExpand: true, helpMessage: 'help me' }"
|
||||
:column="1"
|
||||
:data="mockData"
|
||||
:schema="schema"
|
||||
/>
|
||||
</BasicModal>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { ref, computed, unref, h } from 'vue';
|
||||
import { Tag } from 'ant-design-vue';
|
||||
import { BasicModal, useModalInner } from '@/components/Modal';
|
||||
import { Description, DescItem, useDescription } from '@/components/Description';
|
||||
|
||||
defineOptions({ name: 'AccountModal' });
|
||||
const mockData = ref();
|
||||
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
|
||||
setModalProps({ confirmLoading: false });
|
||||
console.log(data);
|
||||
mockData.value = data.record;
|
||||
});
|
||||
const schema: DescItem[] = [
|
||||
{
|
||||
field: 'content',
|
||||
label: '内容',
|
||||
},
|
||||
{
|
||||
field: 'isRead',
|
||||
label: '状态',
|
||||
render: (curVal, data) => {
|
||||
const isRead = data.isRead;
|
||||
const enable = ~~isRead === 1;
|
||||
const color = enable ? 'green' : 'red';
|
||||
const text = enable ? '已读' : '未读';
|
||||
return h(Tag, { color: color }, () => text);
|
||||
},
|
||||
},
|
||||
{
|
||||
field: 'createDate',
|
||||
label: '创建时间',
|
||||
},
|
||||
];
|
||||
</script>
|
||||
|
|
@ -28,6 +28,7 @@
|
|||
<template #footer> </template>
|
||||
<Look ref="posRef" :processId="processId" />
|
||||
</a-modal>
|
||||
<DetailModal @register="registerModal" />
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
|
|
@ -44,8 +45,13 @@
|
|||
deleteEntitys,
|
||||
virtualDeleteEntitys,
|
||||
readMsg,
|
||||
getInfoByContentId,
|
||||
} from '@/api/demo/message';
|
||||
import { getDetail } from '@/api/sys/WFSchemeInfo';
|
||||
import { flowStore } from '@/store/modules/flow';
|
||||
import DetailModal from './DetailModal.vue';
|
||||
|
||||
const flowWfDataStore = flowStore();
|
||||
const { createConfirm, createMessage } = useMessage();
|
||||
const searchInfo = reactive<Recordable>({});
|
||||
const isDelete = ref(0);
|
||||
|
|
@ -68,7 +74,6 @@
|
|||
},
|
||||
// 搜索
|
||||
handleSearchInfoFn(info) {
|
||||
console.log(info);
|
||||
isDelete.value = info.isDelete;
|
||||
return info;
|
||||
},
|
||||
|
|
@ -82,10 +87,36 @@
|
|||
});
|
||||
const auditOpen = ref(false);
|
||||
const processId = ref('');
|
||||
const taskId = ref('');
|
||||
const isRead: any = ref(0);
|
||||
const type = ref('');
|
||||
const [registerModal, { openModal }] = useModal();
|
||||
|
||||
async function viewAccount(record: Recordable) {
|
||||
// 任务超期消息
|
||||
if (record.contentId) {
|
||||
auditOpen.value = true;
|
||||
processId.value = record.contentId;
|
||||
const info = await getInfoByContentId({
|
||||
id: record.contentId,
|
||||
});
|
||||
if (info) {
|
||||
let data = await getDetail({ code: info.ProcessCode });
|
||||
let scheme = JSON.parse(data.scheme.content);
|
||||
let wfData = scheme.wfData;
|
||||
flowWfDataStore.setWfDataAll(wfData);
|
||||
auditOpen.value = true;
|
||||
processId.value = info.ProcessId;
|
||||
taskId.value = info.Id;
|
||||
type.value = info.Type;
|
||||
} else {
|
||||
openModal(true, {
|
||||
record,
|
||||
});
|
||||
}
|
||||
} else {
|
||||
// 已读的消息
|
||||
openModal(true, {
|
||||
record,
|
||||
});
|
||||
}
|
||||
const data = await readMsg({
|
||||
id: record.msgId,
|
||||
|
|
@ -146,7 +177,6 @@
|
|||
function onBtnClicked(domId) {
|
||||
switch (domId) {
|
||||
case 'btnDelete':
|
||||
console.log(isDelete.value);
|
||||
if (isDelete.value == 1) {
|
||||
completelyDel();
|
||||
} else {
|
||||
|
|
@ -157,6 +187,9 @@
|
|||
break;
|
||||
}
|
||||
}
|
||||
function closeMolder() {
|
||||
auditOpen.value = false;
|
||||
}
|
||||
</script>
|
||||
<style lang="less">
|
||||
.full-modal {
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ export const columns: BasicColumn[] = [
|
|||
{
|
||||
title: '图斑编号',
|
||||
dataIndex: 'caseno',
|
||||
width: 160,
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '下发时间',
|
||||
|
|
@ -179,8 +179,9 @@ export const searchFormSchema: FormSchema[] = [
|
|||
{ label: '待接收', value: '待接收' },
|
||||
{ label: '待填报', value: '待填报' },
|
||||
{ label: '待整改', value: '待整改' },
|
||||
{ label: '待审核', value: '待审核' },
|
||||
{ label: '已完成', value: '已完成' },
|
||||
{ label: '市级审核', value: '市级审核' },
|
||||
{ label: '县级审核', value: '县级审核' },
|
||||
{ label: '已归档', value: '已归档' },
|
||||
],
|
||||
},
|
||||
colProps: { span: 4 },
|
||||
|
|
@ -199,9 +200,6 @@ export const searchFormSchema: FormSchema[] = [
|
|||
labelField: 'name',
|
||||
valueField: 'id',
|
||||
onChange: () => {
|
||||
const { reload } = tableAction;
|
||||
reload();
|
||||
// or
|
||||
formModel.streetid = '';
|
||||
},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ export const columns: BasicColumn[] = [
|
|||
{
|
||||
title: '图斑编号',
|
||||
dataIndex: 'caseno',
|
||||
width: 160,
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '下发时间',
|
||||
|
|
@ -53,7 +53,7 @@ export const columns: BasicColumn[] = [
|
|||
},
|
||||
{
|
||||
title: '判定结果',
|
||||
dataIndex: 'typename',
|
||||
dataIndex: 'isillegal',
|
||||
},
|
||||
{
|
||||
title: '当前状态',
|
||||
|
|
@ -133,15 +133,15 @@ export const searchFormSchema: FormSchema[] = [
|
|||
},
|
||||
},
|
||||
{
|
||||
field: 'typename',
|
||||
field: 'isIllegal',
|
||||
label: '判定结果',
|
||||
component: 'Select',
|
||||
colProps: { span: 4 },
|
||||
componentProps: {
|
||||
options: [
|
||||
{ label: '农用地违法', value: '农用地违法' },
|
||||
{ label: '建设用地', value: '建设用地' },
|
||||
{ label: '推堆土', value: '推堆土' },
|
||||
{ label: '合法', value: 0 },
|
||||
{ label: '违法', value: 1 },
|
||||
{ label: '其他', value: 2 },
|
||||
],
|
||||
},
|
||||
},
|
||||
|
|
@ -154,8 +154,9 @@ export const searchFormSchema: FormSchema[] = [
|
|||
{ label: '待接收', value: '待接收' },
|
||||
{ label: '待填报', value: '待填报' },
|
||||
{ label: '待整改', value: '待整改' },
|
||||
{ label: '待审核', value: '待审核' },
|
||||
{ label: '已完成', value: '已完成' },
|
||||
{ label: '市级审核', value: '市级审核' },
|
||||
{ label: '县级审核', value: '县级审核' },
|
||||
{ label: '已归档', value: '已归档' },
|
||||
],
|
||||
},
|
||||
colProps: { span: 4 },
|
||||
|
|
@ -174,9 +175,6 @@ export const searchFormSchema: FormSchema[] = [
|
|||
labelField: 'name',
|
||||
valueField: 'id',
|
||||
onChange: () => {
|
||||
const { reload } = tableAction;
|
||||
reload();
|
||||
// or
|
||||
formModel.streetid = '';
|
||||
},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -41,12 +41,49 @@
|
|||
@click="emits('showInfo', true, item)"
|
||||
v-if="dataList.length > 0"
|
||||
>
|
||||
<div class="name-div">
|
||||
<div class="name-div">
|
||||
<div class="item-mark"></div>
|
||||
<div class="item-label">{{ item.areaname }}</div>
|
||||
<div class="progress-div">
|
||||
<div class="progress-label progress-color">进度</div>
|
||||
<div class="progress-data" style="width:97px">
|
||||
<span style="color: #086DEC;">{{item.verificatedtask}}</span>/{{item.totaltask}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="progress-div">
|
||||
<div class="progress-label extended-color">超期</div>
|
||||
<div class="progress-data" style="width:50px">
|
||||
<span style="color: #D03542">{{item.overduetask}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="progress-div">
|
||||
<div class="progress-label reviewed-color" style="width:70px;">待审核</div>
|
||||
<div class="progress-data" style="width:50px">
|
||||
<span style="color: #EC7908;">{{item.verifytask}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="data-div">
|
||||
<span>{{ item.count }}</span>
|
||||
<div class="info-data-div">
|
||||
<div class="info-data-item">
|
||||
<div class="info-data-label">合法</div>
|
||||
<div class="info-data-data">{{item.legalcase}}</div>
|
||||
</div>
|
||||
<div class="info-data-item">
|
||||
<div class="info-data-label">其他</div>
|
||||
<div class="info-data-data">{{item.ilegalcase}}</div>
|
||||
</div>
|
||||
<div class="info-data-item">
|
||||
<div class="info-data-label">非粮化</div>
|
||||
<div class="info-data-data">{{item.nonfoodcase}}</div>
|
||||
</div>
|
||||
<div class="info-data-item">
|
||||
<div class="info-data-label">复耕</div>
|
||||
<div class="info-data-data">{{item.rehabilitationcase}}</div>
|
||||
</div>
|
||||
<div class="info-data-item">
|
||||
<div class="info-data-label">补手续</div>
|
||||
<div class="info-data-data">{{item.makeupcase}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else class="no-data">
|
||||
|
|
@ -58,10 +95,10 @@
|
|||
|
||||
<script setup lang="ts">
|
||||
import { ref, defineProps, defineEmits, toRefs } from 'vue';
|
||||
import { batchOptions, yearOptions } from '@/views/demo/tiankongdi/curbspotcity/util.ts';
|
||||
import { batchOptions, yearOptions,patchSourceOptions } from '@/views/demo/tiankongdi/curbspotcity/util.ts';
|
||||
import { Empty } from 'ant-design-vue';
|
||||
|
||||
const props = defineProps(['year', 'batch', 'dataList']);
|
||||
const props = defineProps(['year', 'batch', 'dataList','patchSource']);
|
||||
const emits = defineEmits(['auditProgressScreenChange', 'showInfo']);
|
||||
const simpleImage = Empty.PRESENTED_IMAGE_SIMPLE;
|
||||
</script>
|
||||
|
|
@ -73,23 +110,27 @@
|
|||
.screen-row {
|
||||
display: flex;
|
||||
.screen-item {
|
||||
flex: 1;
|
||||
font-family: Alibaba PuHuiTi;
|
||||
font-weight: 500;
|
||||
font-size: 17px;
|
||||
color: #000000;
|
||||
width: 50%;
|
||||
display: flex;
|
||||
.screen-item-label {
|
||||
width: 55px;
|
||||
width: 56px;
|
||||
padding-left: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 15px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.data-list {
|
||||
height: calc(100% - 52px);
|
||||
background: @component-background;
|
||||
margin-top: 10px;
|
||||
height: calc(100% - 62px);
|
||||
// background: darkgoldenrod;
|
||||
// background: @component-background;
|
||||
margin-top: 10px;
|
||||
padding: 0px 10px;
|
||||
.data-title {
|
||||
height: 40px;
|
||||
background: #bab9b7;
|
||||
|
|
@ -102,17 +143,58 @@
|
|||
}
|
||||
.show-data-list-content {
|
||||
.data-item {
|
||||
cursor: pointer;
|
||||
width: 100%;
|
||||
background: #fff;
|
||||
border-radius: 11px;
|
||||
padding: 10px;
|
||||
margin-bottom: 10px;
|
||||
.name-div {
|
||||
display: flex;
|
||||
display: flex;
|
||||
height: 50px;
|
||||
align-items: center;
|
||||
padding: 10px;
|
||||
justify-content: space-between;
|
||||
border-bottom: 1px solid #ececec;
|
||||
cursor: pointer;
|
||||
.name-div {
|
||||
display: flex;
|
||||
height: 50px;
|
||||
align-items: center;
|
||||
padding: 10px 0px;
|
||||
border-bottom: 1px solid #E5E5E5;
|
||||
}
|
||||
.info-data-div{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-top: 10px;
|
||||
.info-data-item{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex: 1;
|
||||
justify-content: center;
|
||||
border-right: 1px solid #EDEDED;
|
||||
.info-data-label{
|
||||
font-family: Alibaba PuHuiTi;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
color: #959494;
|
||||
display: flex;
|
||||
justify-content: end;
|
||||
flex: 1;
|
||||
padding-right: 5px;
|
||||
}
|
||||
.info-data-data{
|
||||
font-family: HarmonyOS Sans;
|
||||
font-weight: 500;
|
||||
font-size: 16px;
|
||||
color: #000000;
|
||||
line-height: 30px;
|
||||
flex: 1;
|
||||
display: flex;
|
||||
justify-content: start;
|
||||
padding-left: 5px;
|
||||
}
|
||||
}
|
||||
.info-data-item:nth-last-child(1){
|
||||
border-right: 0px;
|
||||
}
|
||||
}
|
||||
.data-div {
|
||||
font-weight: 500;
|
||||
|
|
@ -126,17 +208,52 @@
|
|||
margin-right: 7px;
|
||||
}
|
||||
.item-label {
|
||||
width: 100px;
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
margin-left: 5px;
|
||||
}
|
||||
.progress-div{
|
||||
display:flex;
|
||||
font-weight: 500;
|
||||
font-size: 16px;
|
||||
line-height: 30px;
|
||||
margin-right: 17px;
|
||||
.progress-label{
|
||||
font-family: Alibaba PuHuiTi;
|
||||
color: #FFFFFF;
|
||||
width: 50px;
|
||||
height: 27px;
|
||||
border-radius: 13px 0px 0px 13px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.progress-data{
|
||||
background: #EFEFEF;
|
||||
height: 27px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: 0px 0px 11px 0px;
|
||||
}
|
||||
.progress-color{
|
||||
background: #086DEC;
|
||||
}
|
||||
.extended-color{
|
||||
background: #D03542
|
||||
}
|
||||
.reviewed-color{
|
||||
background: #EC7908
|
||||
}
|
||||
}
|
||||
}
|
||||
.data-item:hover {
|
||||
background-color: rgba(8, 109, 236, 0.08);
|
||||
}
|
||||
.data-item:nth-child(2n) {
|
||||
background: #ececec;
|
||||
}
|
||||
// .data-item:nth-child(2n) {
|
||||
// background: #ececec;
|
||||
// }
|
||||
}
|
||||
}
|
||||
.no-data {
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
<a-descriptions-item label="案件备注">{{ remark }}</a-descriptions-item>
|
||||
<a-descriptions-item label="下发时间">{{ createtime }}</a-descriptions-item>
|
||||
<a-descriptions-item label="案件图片">
|
||||
<template v-for="(imageItem, imageIndex) in anjianzhaopianList" :key="imageIndex" >
|
||||
<template v-for="(imageItem, imageIndex) in casepicList" :key="imageIndex" >
|
||||
<a-image
|
||||
v-if="imageItem"
|
||||
width="100px"
|
||||
|
|
@ -58,11 +58,11 @@
|
|||
'min-width': '250px',
|
||||
'word-break': 'break-all'
|
||||
}">
|
||||
<a-descriptions-item label="判定结果">{{ is_illegal }}</a-descriptions-item>
|
||||
<a-descriptions-item label="判定结果">{{ getLabel('is_illegal',is_illegal) }}</a-descriptions-item>
|
||||
<a-descriptions-item label="项目名称">{{ xiangmumc }}</a-descriptions-item>
|
||||
<a-descriptions-item label="项目主体">{{ xiangmuzhuti }}</a-descriptions-item>
|
||||
<a-descriptions-item label="实际用途">{{ actual_use_to }}</a-descriptions-item>
|
||||
<a-descriptions-item label="违法类型">{{ weifaleixing }}</a-descriptions-item>
|
||||
<a-descriptions-item label="违法类型">{{ getLabel('weifaleixing',weifaleixing) }}</a-descriptions-item>
|
||||
<a-descriptions-item label="处理方式">{{ result_name }}</a-descriptions-item>
|
||||
<a-descriptions-item label="立案号">{{ registr_number }}</a-descriptions-item>
|
||||
<a-descriptions-item label="违法联系人">{{ illegal_contact }}</a-descriptions-item>
|
||||
|
|
@ -82,7 +82,7 @@
|
|||
<!-- {{ fujian }} -->
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="照片">
|
||||
<template v-for="(imageItem, imageIndex) in casepicList" :key="imageIndex" >
|
||||
<template v-for="(imageItem, imageIndex) in anjianzhaopianList" :key="imageIndex" >
|
||||
<a-image
|
||||
v-if="imageItem"
|
||||
width="100px"
|
||||
|
|
@ -173,6 +173,14 @@ import { getGeom } from '@/api/sys/layerManagement';
|
|||
import { useMessage } from '@/hooks/web/useMessage';
|
||||
const { createMessage } = useMessage();
|
||||
import Icon from '@/components/Icon/Icon.vue';
|
||||
import {
|
||||
mapTypeOptions,
|
||||
illegalTypeOptions,
|
||||
measureOptions,
|
||||
mapStatusOptions,
|
||||
markTypeOptions,
|
||||
illegalTypeList,
|
||||
} from '@/views/demo/tiankongdi/curbspotcity/util.ts'
|
||||
|
||||
const MapboxComponent = ref();
|
||||
const mapConfig = ref({})
|
||||
|
|
@ -306,7 +314,24 @@ const yanshoubiaoList = computed(() => {
|
|||
function onMapboxLoad(){
|
||||
changeTask();
|
||||
}
|
||||
|
||||
const getLabel = (type,value) => {
|
||||
let result:any[] = []
|
||||
let label = ''
|
||||
switch(type){
|
||||
case 'is_illegal':
|
||||
result = mapTypeOptions
|
||||
break;
|
||||
case 'weifaleixing':
|
||||
result = illegalTypeList
|
||||
break;
|
||||
}
|
||||
result.forEach(item => {
|
||||
if(item.value == value){
|
||||
label = item.label
|
||||
}
|
||||
})
|
||||
return label
|
||||
}
|
||||
function changeTask() {
|
||||
let getGeomPrams = {
|
||||
TableName: 'drone_shp_data ',
|
||||
|
|
@ -340,7 +365,7 @@ function changeTask() {
|
|||
}
|
||||
}
|
||||
const downLoadFile = (url) => {
|
||||
window.open(`http://192.168.10.102:9023/${rul}`,'_self')
|
||||
window.open(`http://192.168.10.102:9023/${url}`,"mozillaTab")
|
||||
}
|
||||
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -66,12 +66,13 @@
|
|||
allowClear
|
||||
style="flex: 1;"
|
||||
v-model:value="props.infoScreenData.streetId"
|
||||
:options="props.streetsAreaOptions"
|
||||
:options="streetsAreaOptions"
|
||||
@change="(value) => emits('mapListScreenChange',value,'streetId')"
|
||||
/>
|
||||
</div>
|
||||
<div class="screen-item" style="width:40%">
|
||||
<a-input
|
||||
<a-input
|
||||
placeholder="请输入图斑编号"
|
||||
style="flex:1;margin-left: 10px;"
|
||||
v-model:value="props.infoScreenData.mapNo"
|
||||
@change="(value) => emits('mapListScreenChange',value.target.value,'mapNo')"
|
||||
|
|
@ -104,11 +105,11 @@
|
|||
<div :style="`${showSortMark('gengdi_area',2)? 'color: #086DEC;': ''}`">▼</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sift-item" @click="dataListSort('CreateDate')">
|
||||
<div class="sift-item" @click="dataListSort('createtime')">
|
||||
<div class="sift-label">下发时间</div>
|
||||
<div class="sift-icon">
|
||||
<div :style="`${showSortMark('CreateDate',1)? 'color: #086DEC;': ''}`">▲</div>
|
||||
<div :style="`${showSortMark('CreateDate',2)? 'color: #086DEC;': ''}`">▼</div>
|
||||
<div :style="`${showSortMark('createtime',1)? 'color: #086DEC;': ''}`">▲</div>
|
||||
<div :style="`${showSortMark('createtime',2)? 'color: #086DEC;': ''}`">▼</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -140,12 +141,12 @@
|
|||
<div style="display:flex;">
|
||||
<a-input style="width:30%;"
|
||||
v-model:value="props.infoScreenData.mapAreaFirst"
|
||||
@change="(value) => emits('mapListScreenChange',value,'mapAreaFirst')"
|
||||
@change="(e) => emits('mapListScreenChange',e.target.value,'mapAreaFirst')"
|
||||
/>
|
||||
<span>---</span>
|
||||
<a-input style="width:30%;"
|
||||
v-model:value="props.infoScreenData.mapAreaLast"
|
||||
@change="(value) => emits('mapListScreenChange',value,'mapAreaLast')"
|
||||
@change="(e) => emits('mapListScreenChange',e.target.value,'mapAreaLast')"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -154,12 +155,12 @@
|
|||
<div style="display:flex;">
|
||||
<a-input style="width:30%;"
|
||||
v-model:value="props.infoScreenData.arableAreaFirst"
|
||||
@change="(value) => emits('mapListScreenChange',value,'arableAreaFirst')"
|
||||
@change="(e) => emits('mapListScreenChange',e.target.value,'arableAreaFirst')"
|
||||
/>
|
||||
<span>---</span>
|
||||
<a-input style="width:30%;"
|
||||
v-model:value="props.infoScreenData.arableAreaLast"
|
||||
@change="(value) => emits('mapListScreenChange',value,'arableAreaLast')"
|
||||
@change="(e) => emits('mapListScreenChange',e.target.value,'arableAreaLast')"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -288,7 +289,7 @@
|
|||
import { ref, onMounted, defineEmits, defineProps, computed, h } from "vue"
|
||||
import { StarOutlined, StarFilled, SearchOutlined, RollbackOutlined } from '@ant-design/icons-vue';
|
||||
import Icon from '@/components/Icon/Icon.vue';
|
||||
import { addCaseFavorite,addTaskFavorite,getCaseInfoById, deleteFavoriteCase,deleteTaskCase } from '@/api/tiankongdi/index.ts';
|
||||
import { addCaseFavorite,addTaskFavorite,getCaseInfoById, deleteFavoriteCase,deleteTaskCase,getLoadStreet, } from '@/api/tiankongdi/index.ts';
|
||||
import {
|
||||
batchOptions,
|
||||
yearOptions,
|
||||
|
|
@ -305,6 +306,7 @@ import { message } from "ant-design-vue";
|
|||
import ShowInfoModal from './ShowInfoModal/index.vue'
|
||||
import { flowStore } from '@/store/modules/flow';
|
||||
import { getDetail } from '@/api/sys/WFSchemeInfo';
|
||||
import { Audit } from '@/views/demo/workflow/task/process/page';
|
||||
const userStore = useUserStore()
|
||||
const flowWfDataStore = flowStore();
|
||||
const emits = defineEmits([
|
||||
|
|
@ -322,7 +324,6 @@ const props = defineProps([
|
|||
"cityType",
|
||||
"municipalAreaOptions",
|
||||
"countiesAreaOptions",
|
||||
"streetsAreaOptions",
|
||||
"communitiesAreaOptions",
|
||||
"pageNo",
|
||||
"pageSize",
|
||||
|
|
@ -354,7 +355,20 @@ const openCollect = computed(() => {
|
|||
return true
|
||||
})
|
||||
const showInfoData = ref()
|
||||
const streetsAreaOptions = ref([
|
||||
{ label: '全部', value: '' },
|
||||
])
|
||||
|
||||
onMounted(() => {
|
||||
getLoadStreet().then(res => {
|
||||
console.log(res)
|
||||
res.forEach(item => {
|
||||
streetsAreaOptions.value.push({
|
||||
label: item.Name,
|
||||
value: item.Id,
|
||||
})
|
||||
})
|
||||
})
|
||||
console.log('onMounted')
|
||||
})
|
||||
|
||||
|
|
@ -422,14 +436,14 @@ const showInfo = (item) => {
|
|||
})
|
||||
}
|
||||
async function goAudit(record) {
|
||||
showDataIndex.value = props.infoDataList.findIndex(item => item.taskeid === record.taskeid)
|
||||
showDataIndex.value = props.infoDataList.findIndex(item => item.taskid === record.taskid)
|
||||
let data = await getDetail({ code: record.processcode });
|
||||
let scheme = JSON.parse(data.scheme.content);
|
||||
let wfData = scheme.wfData;
|
||||
flowWfDataStore.setWfDataAll(wfData);
|
||||
auditOpen.value = true;
|
||||
processId.value = record.processid;
|
||||
taskId.value = record.taskeid;
|
||||
taskId.value = record.taskid;
|
||||
type.value = record.type;
|
||||
}
|
||||
const prevData = async () => {
|
||||
|
|
@ -450,7 +464,7 @@ const prevData = async () => {
|
|||
let wfData = scheme.wfData;
|
||||
flowWfDataStore.setWfDataAll(wfData);
|
||||
processId.value = record.processid;
|
||||
taskId.value = record.taskeid;
|
||||
taskId.value = record.taskid;
|
||||
type.value = record.type;
|
||||
handoffShow.value = true
|
||||
}
|
||||
|
|
@ -472,13 +486,19 @@ const nextData = async () => {
|
|||
let wfData = scheme.wfData;
|
||||
flowWfDataStore.setWfDataAll(wfData);
|
||||
processId.value = record.processid;
|
||||
taskId.value = record.taskeid;
|
||||
taskId.value = record.taskid;
|
||||
type.value = record.type;
|
||||
handoffShow.value = true
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.handoff{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
padding-right: 25px;
|
||||
}
|
||||
.full-modal {
|
||||
.ant-modal {
|
||||
min-width: 100vw;
|
||||
|
|
|
|||
|
|
@ -27,12 +27,11 @@ export const mapStatusOptions = [
|
|||
{ label: '待接收', value: 0 },
|
||||
{ label: '待填报', value: 1 },
|
||||
{ label: '待整改', value: 2 },
|
||||
{ label: '待审核', value: 3 },
|
||||
{ label: '已完成', value: 4 },
|
||||
]
|
||||
export const markTypeOptions = [
|
||||
{ label: '建设中', value: 0 },
|
||||
{ label: '已建成', value: 1 },
|
||||
{ label: '在建', value: '在建' },
|
||||
{ label: '已建成', value: '已建成' },
|
||||
{ label: '持续变化', value: '持续变化' },
|
||||
]
|
||||
export const patchSourceOptions = [
|
||||
{
|
||||
|
|
@ -53,4 +52,8 @@ export const isOverdueOptions = [
|
|||
label: '已超期',
|
||||
value: '已超期',
|
||||
},
|
||||
]
|
||||
export const illegalTypeList = [
|
||||
{ label: '非农化违法用地', value: 0 },
|
||||
{ label: '非粮化违法用地', value: 1 },
|
||||
]
|
||||
|
|
@ -8,7 +8,7 @@
|
|||
>
|
||||
<template v-for="item in settingList" :key="item.key">
|
||||
<TabPane :tab="item.name">
|
||||
<div :style="'display: flex; height:' + data.height">
|
||||
<div :style="' height:' + data.height">
|
||||
<component :is="tabs[item.component]" />
|
||||
</div>
|
||||
</TabPane>
|
||||
|
|
|
|||
|
|
@ -17,12 +17,12 @@
|
|||
ref="MapboxComponent"
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
<div :class="mapConfig?.isShowMap ? 'form-container' : ''">
|
||||
<a-layout>
|
||||
<a-layout>
|
||||
<a-layout-content>
|
||||
<a-tabs v-model:activeKey="activeName" @change="changeActive" type="card" >
|
||||
<a-tabs v-model:activeKey="activeName" @change="changeActive" type="card">
|
||||
<a-tab-pane
|
||||
key="form"
|
||||
:tab="
|
||||
|
|
@ -33,7 +33,11 @@
|
|||
v-if="formVisble"
|
||||
>
|
||||
<div>
|
||||
<ImagePreview v-if="isShowImagePreview" :globalImagePreviewUrl="globalImagePreviewUrl" @closeImagePreview="closeImagePreview"></ImagePreview>
|
||||
<ImagePreview
|
||||
v-if="isShowImagePreview"
|
||||
:globalImagePreviewUrl="globalImagePreviewUrl"
|
||||
@closeImagePreview="closeImagePreview"
|
||||
></ImagePreview>
|
||||
<FormViewer
|
||||
ref="formBoxRef"
|
||||
:formConfig="formConfig"
|
||||
|
|
@ -47,7 +51,6 @@
|
|||
v-if="formVisble"
|
||||
/>
|
||||
</div>
|
||||
|
||||
</a-tab-pane>
|
||||
<a-tab-pane key="flow" tab="流程模板" force-render>
|
||||
<div class="process-design" :style="'display: flex; height:' + designerData.height">
|
||||
|
|
@ -110,7 +113,6 @@
|
|||
</a-layout>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- 节点记录信息 -->
|
||||
<div class="info-box" v-if="designerData.nodeLogs.length > 0">
|
||||
<a-drawer v-model:open="infoOpen" class="custom-class" title="记录信息" placement="right">
|
||||
|
|
@ -138,7 +140,7 @@
|
|||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref, reactive, onBeforeMount, defineAsyncComponent,watch } from 'vue';
|
||||
import { ref, reactive, onBeforeMount, defineAsyncComponent, watch } from 'vue';
|
||||
import { FormViewer } from '@/components/FormViewer';
|
||||
import { ProcessViewer } from '@/components/ProcessViewer';
|
||||
import { PageWrapper } from '@/components/Page';
|
||||
|
|
@ -149,7 +151,7 @@
|
|||
import { auditInfo } from './page';
|
||||
import { getGeom } from '@/api/sys/layerManagement';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import ImagePreview from "@/components/Upload/src/components/image_preview.vue";
|
||||
import ImagePreview from '@/components/Upload/src/components/image_preview.vue';
|
||||
import { userFormFileStore } from '@/store/modules/formFileUrl';
|
||||
import { useMessage } from '@/hooks/web/useMessage';
|
||||
const { createMessage } = useMessage();
|
||||
|
|
@ -259,9 +261,14 @@
|
|||
if (data.process.isFinished == 1) {
|
||||
data.flowViewer.finishedTaskSet.forEach((finishElement) => {
|
||||
wfData.forEach((element) => {
|
||||
if (finishElement == element.id && element.type == 'bpmn:Task') {
|
||||
if (element.type == 'bpmn:StartEvent') {
|
||||
currentNode = element;
|
||||
}
|
||||
if (finishElement == element.id && element.type == 'bpmn:Task') {
|
||||
if (!element.isInherit) {
|
||||
currentNode = element;
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
mapConfig.value = currentNode.mapConfig;
|
||||
|
|
@ -431,34 +438,34 @@
|
|||
// tabStore.closeTabByKey('/dashboard/task_look_preview/detail?processId=' + processId, router);
|
||||
// }
|
||||
// 解析组件获取图斑组件
|
||||
const chooseLayer = ref<string>("")
|
||||
const geomfield = ref<string>("");
|
||||
const chooseLayer = ref<string>('');
|
||||
const geomfield = ref<string>('');
|
||||
|
||||
function findValue(obj, targetKey) {
|
||||
for (var key in obj) {
|
||||
if (typeof obj[key] === 'object') {
|
||||
// 如果当前值是对象,则递归调用findValue
|
||||
var result = findValue(obj[key], targetKey);
|
||||
if (result !== undefined && result == 'MapGeom') {
|
||||
return result;
|
||||
}
|
||||
} else if (key === targetKey && obj[key] == 'MapGeom') {
|
||||
// 如果当前键等于目标键,则返回对应的值
|
||||
chooseLayer.value = obj['mapSetData'].chooseLayer;
|
||||
geomfield.value = obj['field']
|
||||
return obj[key];
|
||||
}
|
||||
for (var key in obj) {
|
||||
if (typeof obj[key] === 'object') {
|
||||
// 如果当前值是对象,则递归调用findValue
|
||||
var result = findValue(obj[key], targetKey);
|
||||
if (result !== undefined && result == 'MapGeom') {
|
||||
return result;
|
||||
}
|
||||
} else if (key === targetKey && obj[key] == 'MapGeom') {
|
||||
// 如果当前键等于目标键,则返回对应的值
|
||||
chooseLayer.value = obj['mapSetData'].chooseLayer;
|
||||
geomfield.value = obj['field'];
|
||||
return obj[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getFormSuccess(formData){
|
||||
if(mapConfig.value.isShowMap){
|
||||
function getFormSuccess(formData) {
|
||||
if (mapConfig.value.isShowMap) {
|
||||
handlerShowGeomtrys(designerData.formCurrentNode, formData);
|
||||
}
|
||||
}
|
||||
|
||||
async function handlerShowGeomtrys(currentNode,formData) {
|
||||
findValue(currentNode.authFields,"component");
|
||||
async function handlerShowGeomtrys(currentNode, formData) {
|
||||
findValue(currentNode.authFields, 'component');
|
||||
let layer: string = chooseLayer.value;
|
||||
if (!layer) {
|
||||
createMessage.error('图斑未绑定图层服务!');
|
||||
|
|
@ -467,57 +474,55 @@
|
|||
let geomfiledValue = geomfield.value;
|
||||
let gids = '';
|
||||
try {
|
||||
geomfiledValue = geomfiledValue.toLowerCase();
|
||||
gids = formData[geomfiledValue];
|
||||
// 根据ids获取图斑
|
||||
if (gids) {
|
||||
try {
|
||||
let getGeomPrams = {
|
||||
TableName: layer,
|
||||
FieldName: 'gid',
|
||||
FieldValue: gids,
|
||||
page: 1,
|
||||
limit: 999,
|
||||
key: null,
|
||||
};
|
||||
getGeom(getGeomPrams).then((res) => {
|
||||
let geoms = [];
|
||||
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(status,mapgemoList.value, false);
|
||||
MapboxComponent.value.handlerDraw('Details', geoms, false);
|
||||
} else {
|
||||
createMessage.error('当前数据没有图斑!');
|
||||
geomfiledValue = geomfiledValue.toLowerCase();
|
||||
gids = formData[geomfiledValue];
|
||||
// 根据ids获取图斑
|
||||
if (gids) {
|
||||
try {
|
||||
let getGeomPrams = {
|
||||
TableName: layer,
|
||||
FieldName: 'gid',
|
||||
FieldValue: gids,
|
||||
page: 1,
|
||||
limit: 999,
|
||||
key: null,
|
||||
};
|
||||
getGeom(getGeomPrams).then((res) => {
|
||||
let geoms = [];
|
||||
if (res) {
|
||||
if (res.items?.length > 0) {
|
||||
res.items.forEach((item, index) => {
|
||||
let geom = {
|
||||
key: item.gid,
|
||||
mapgeom: item.geometry,
|
||||
};
|
||||
geoms.push(geom);
|
||||
});
|
||||
}
|
||||
});
|
||||
} catch (e) {
|
||||
createMessage.error('当前数据没有图斑!');
|
||||
}
|
||||
} else {
|
||||
// MapboxComponent.value.handlerDraw(status,mapgemoList.value, false);
|
||||
MapboxComponent.value.handlerDraw('Details', geoms, false);
|
||||
} else {
|
||||
createMessage.error('当前数据没有图斑!');
|
||||
}
|
||||
});
|
||||
} catch (e) {
|
||||
createMessage.error('当前数据没有图斑!');
|
||||
}
|
||||
} else {
|
||||
createMessage.error('当前数据没有图斑!');
|
||||
}
|
||||
} catch {
|
||||
createMessage.error('获取图斑数据失败!');
|
||||
}
|
||||
}
|
||||
function onMapboxLoad() {
|
||||
function onMapboxLoad() {}
|
||||
|
||||
}
|
||||
|
||||
// 图片预览
|
||||
// 图片预览
|
||||
const isShowImagePreview = ref<Boolean>(false);
|
||||
const closeImagePreview = ()=>{
|
||||
const closeImagePreview = () => {
|
||||
isShowImagePreview.value = false;
|
||||
}
|
||||
const globalImagePreviewUrl=ref<String>();
|
||||
};
|
||||
const globalImagePreviewUrl = ref<String>();
|
||||
const formFileStore = userFormFileStore();
|
||||
const formFileState = storeToRefs(formFileStore);
|
||||
watch(formFileState.url, (newValue, oldValue) => {
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@
|
|||
}
|
||||
});
|
||||
list.value = res;
|
||||
cardRotationLoop();
|
||||
// cardRotationLoop();
|
||||
}
|
||||
// 旋转动画
|
||||
async function cardRotationLoop() {
|
||||
|
|
@ -143,7 +143,7 @@
|
|||
// 跳转
|
||||
async function getHome(item) {
|
||||
if (!item.linkOrApi) {
|
||||
message.error('跳转链接为空!');
|
||||
message.warn('暂未开放!');
|
||||
return;
|
||||
}
|
||||
if (item.isExternal) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue