刘妍 2024-07-17 17:23:30 +08:00
commit e6b1d537cc
9 changed files with 117 additions and 94 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

View File

@ -198,10 +198,10 @@
} else if (dataIndex == 'measure_name') { } else if (dataIndex == 'measure_name') {
// //
switch (recordValue) { switch (recordValue) {
case 0: case '0':
result = '拆除复耕'; result = '拆除复耕';
break; break;
case 1: case '1':
result = '补办手续'; result = '补办手续';
break; break;
} }

View File

@ -117,10 +117,10 @@
<a-modal v-model:open="open" title="导出表格类型" :footer="null"> <a-modal v-model:open="open" title="导出表格类型" :footer="null">
<div v-if="showRecordList"> <div v-if="showRecordList">
<a-button class="exportbutton" @click="handleExport('chuantou_execl')"> <a-button class="exportbutton" @click="handleExport('chuantou_execl')">
案件信息execl 统计明细案件信息execl
</a-button> </a-button>
<a-button class="exportbutton" @click="handleExport('chuantou_shp')"> <a-button class="exportbutton" @click="handleExport('chuantou_shp')">
图斑信息shp 统计明细矢量数据shp
</a-button> </a-button>
</div> </div>
<div v-else> <div v-else>
@ -314,7 +314,6 @@
function handleTabChange(e) { function handleTabChange(e) {
currentListQuery.listQuery = tablist[e].listQuery; currentListQuery.listQuery = tablist[e].listQuery;
} }
// 穿 // 穿
function handleCloseRecordList() { function handleCloseRecordList() {
showRecordList.value = false; showRecordList.value = false;
@ -345,7 +344,7 @@
// 穿-execl // 穿-execl
url = VITE_GLOB_API_URL + '/api/DroneCaseInfoSingle/ExprotCaseListByType'; url = VITE_GLOB_API_URL + '/api/DroneCaseInfoSingle/ExprotCaseListByType';
fileName = fileName =
'案件信息 ' + '统计明细案件信息 ' +
tablist[activeKey.value].countyname + tablist[activeKey.value].countyname +
'_' + '_' +
tablist[activeKey.value].label + tablist[activeKey.value].label +
@ -355,7 +354,7 @@
// 穿-shp // 穿-shp
url = VITE_GLOB_API_URL + '/api/DroneCaseInfoSingle/ExportShapefile'; url = VITE_GLOB_API_URL + '/api/DroneCaseInfoSingle/ExportShapefile';
fileName = fileName =
'图斑信息 ' + '统计明细矢量数据 ' +
tablist[activeKey.value].countyname + tablist[activeKey.value].countyname +
'_' + '_' +
tablist[activeKey.value].label + tablist[activeKey.value].label +

View File

@ -81,7 +81,7 @@
<div class="info-data-label">下发</div> <div class="info-data-label">下发</div>
<div class="info-data-data">{{item.totaltask}}</div> <div class="info-data-data">{{item.totaltask}}</div>
</div> </div>
<div <!-- <div
style=" style="
width: 1px; width: 1px;
margin-right: 15px; margin-right: 15px;
@ -89,12 +89,12 @@
background-color: #ededed; background-color: #ededed;
height: 15px; height: 15px;
" "
></div> ></div> -->
<div class="info-data-item"> <div class="info-data-item">
<div class="info-data-label">接收</div> <div class="info-data-label">接收</div>
<div class="info-data-data">{{item.receivetask}}</div> <div class="info-data-data">{{item.receivetask}}</div>
</div> </div>
<div <!-- <div
style=" style="
width: 1px; width: 1px;
margin-right: 15px; margin-right: 15px;
@ -102,12 +102,12 @@
background-color: #ededed; background-color: #ededed;
height: 15px; height: 15px;
" "
></div> ></div> -->
<div class="info-data-item"> <div class="info-data-item">
<div class="info-data-label">非粮化</div> <div class="info-data-label">非粮化</div>
<div class="info-data-data">{{ item.nonfoodcase }}</div> <div class="info-data-data">{{ item.nonfoodcase }}</div>
</div> </div>
<div <!-- <div
style=" style="
width: 1px; width: 1px;
margin-right: 15px; margin-right: 15px;
@ -115,12 +115,12 @@
background-color: #ededed; background-color: #ededed;
height: 15px; height: 15px;
" "
></div> ></div> -->
<div class="info-data-item"> <div class="info-data-item">
<div class="info-data-label">拆除复耕</div> <div class="info-data-label">拆除复耕</div>
<div class="info-data-data">{{ item.rehabilitationcase }}</div> <div class="info-data-data">{{ item.rehabilitationcase }}</div>
</div> </div>
<div <!-- <div
style=" style="
width: 1px; width: 1px;
margin-right: 15px; margin-right: 15px;
@ -128,7 +128,7 @@
background-color: #ededed; background-color: #ededed;
height: 15px; height: 15px;
" "
></div> ></div> -->
<div class="info-data-item"> <div class="info-data-item">
<div class="info-data-label">补办手续</div> <div class="info-data-label">补办手续</div>
<div class="info-data-data">{{ item.makeupcase }}</div> <div class="info-data-data">{{ item.makeupcase }}</div>
@ -252,15 +252,15 @@
height: 61px; height: 61px;
display: flex; display: flex;
align-items: center; align-items: center;
padding-left: 2px; // padding-left: 2px;
// justify-content: space-between; // justify-content: space-between;
// margin-top: 10px; // margin-top: 10px;
.info-data-item { .info-data-item {
display: flex; display: flex;
align-items: center; align-items: center;
// flex: 1; flex: 1;
justify-content: center; justify-content: center;
// border-right: 1px solid #EDEDED; border-right: 1px solid #EDEDED;
.info-data-label { .info-data-label {
font-family: Alibaba PuHuiTi; font-family: Alibaba PuHuiTi;
font-weight: 400; font-weight: 400;

View File

@ -4,7 +4,6 @@
<template #toolbar> <template #toolbar>
<PermissionBtn @btn-event="onBtnClicked" /> <PermissionBtn @btn-event="onBtnClicked" />
</template> </template>
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'"> <template v-if="column.key === 'action'">
<TableAction <TableAction
@ -25,7 +24,7 @@
图斑汇总统计报表execl 图斑汇总统计报表execl
</a-button> </a-button>
<a-button class="exportbutton" @click="handleExport('shp')"> <a-button class="exportbutton" @click="handleExport('shp')">
图斑汇总统计信息shp 图斑汇总矢量数据shp
</a-button> </a-button>
</div> </div>
</a-modal> </a-modal>
@ -102,9 +101,8 @@
url = VITE_GLOB_API_URL + '/api/DroneCaseInfoSingle/ExportCaseInfoTuBanList'; url = VITE_GLOB_API_URL + '/api/DroneCaseInfoSingle/ExportCaseInfoTuBanList';
fileName = '图斑汇总统计报表' + new Date().getTime() + '.xls'; fileName = '图斑汇总统计报表' + new Date().getTime() + '.xls';
} else if (exportType == 'shp') { } else if (exportType == 'shp') {
url = VITE_GLOB_API_URL + '/api/DroneCaseInfoSingle/ExportCaseInfoTuBanList'; url = VITE_GLOB_API_URL + '/api/DroneCaseInfoSingle/ExportCaseInfoShapefile';
fileName = '图斑汇总统计信息' + new Date().getTime() + '.shp'; fileName = '图斑汇总矢量数据' + new Date().getTime() + '.shp';
return;
} }
axios({ axios({
method: 'post', method: 'post',

View File

@ -70,17 +70,17 @@
<div class="info-data-label">下发</div> <div class="info-data-label">下发</div>
<div class="info-data-data">{{item.totaltask}}</div> <div class="info-data-data">{{item.totaltask}}</div>
</div> </div>
<div style="width: 1px;margin-right:27px;margin-left:31px;background-color:#EDEDED;height: 15px;"></div> <!-- <div style="width: 1px;margin-right:27px;margin-left:31px;background-color:#EDEDED;height: 15px;"></div> -->
<div class="info-data-item"> <div class="info-data-item">
<div class="info-data-label">接收</div> <div class="info-data-label">接收</div>
<div class="info-data-data">{{item.receivetask}}</div> <div class="info-data-data">{{item.receivetask}}</div>
</div> </div>
<div style="width: 1px;margin-right:15px;margin-left:30px;background-color:#EDEDED;height: 15px;"></div> <!-- <div style="width: 1px;margin-right:15px;margin-left:30px;background-color:#EDEDED;height: 15px;"></div> -->
<div class="info-data-item"> <div class="info-data-item">
<div class="info-data-label">举证合法</div> <div class="info-data-label">举证合法</div>
<div class="info-data-data">{{item.legalcase}}</div> <div class="info-data-data">{{item.legalcase}}</div>
</div> </div>
<div style="width: 1px;margin-right:18px;margin-left:17px;background-color:#EDEDED;height: 15px;"></div> <!-- <div style="width: 1px;margin-right:18px;margin-left:17px;background-color:#EDEDED;height: 15px;"></div> -->
<div class="info-data-item"> <div class="info-data-item">
<div class="info-data-label">举证其他</div> <div class="info-data-label">举证其他</div>
<div class="info-data-data">{{item.ilegalcase}}</div> <div class="info-data-data">{{item.ilegalcase}}</div>
@ -111,6 +111,7 @@
<style lang="less" scoped> <style lang="less" scoped>
.screen-div { .screen-div {
width:590px;
padding: 22px 12px 14px 13px; padding: 22px 12px 14px 13px;
.screen-row { .screen-row {
display: flex; display: flex;
@ -190,15 +191,15 @@
height: 61px; height: 61px;
display: flex; display: flex;
align-items: center; align-items: center;
padding-left: 27px; // padding-left: 27px;
// justify-content: space-between; // justify-content: space-between;
// margin-top: 10px; // margin-top: 10px;
.info-data-item{ .info-data-item{
display: flex; display: flex;
align-items: center; align-items: center;
// flex: 1; flex: 1;
justify-content: center; justify-content: center;
// border-right: 1px solid #EDEDED; border-right: 1px solid #EDEDED;
.info-data-label{ .info-data-label{
font-family: Alibaba PuHuiTi; font-family: Alibaba PuHuiTi;
font-weight: 400; font-weight: 400;

View File

@ -101,6 +101,7 @@
year: year.value, year: year.value,
tubanlaiyuan: patchSource.value, tubanlaiyuan: patchSource.value,
picihao: batch.value, picihao: batch.value,
illegal: 1,
}); });
dataList.value = data; dataList.value = data;
} }

View File

@ -2,7 +2,10 @@
<div class="subject"> <div class="subject">
<div class="subject_header"> <div class="subject_header">
<div class="subject_header_title"> <div class="subject_header_title">
<span> {{ t('sys.subject.header_title') }}</span> <span>
<img src="/subject/subject_logo.png" />
{{ t('sys.subject.header_title') }}
</span>
</div> </div>
<div class="subject_header_adminAndLogout"> <div class="subject_header_adminAndLogout">
<img src="/subject/subject_header_admin.png" /> <img src="/subject/subject_header_admin.png" />
@ -20,46 +23,45 @@
:id="item.id" :id="item.id"
class="subject_box_btn_div" class="subject_box_btn_div"
@click="getHome(item)" @click="getHome(item)"
:style="{
'background-image': `url(${index % 2 == 0 ? '/subject/subject_btn_1.png' : '/subject/subject_btn_2.png'})`,
'background-size': 'cover',
'background-repeat': 'no-repeat',
}"
> >
<img
class="subject_box_btn_div_bg"
src="/subject/subject_btn_1.png"
v-if="index % 2 == 0"
/>
<img class="subject_box_btn_div_bg" src="/subject/subject_btn_2.png" v-else />
<img class="subject_box_btn_div_url" :src="getImageUrl(item.imgUrl)" /> <img class="subject_box_btn_div_url" :src="getImageUrl(item.imgUrl)" />
<span <span
class="subject_box_btn_div_span" class="subject_box_btn_div_span"
:style="{ height: `${23 * spanWrap}px` }" :style="{ height: `${28 * spanWrap + 8}px` }"
v-html="renderedTitle(item.title)" v-html="renderedTitle(item.title)"
/> />
<img <img
class="subject_box_btn_div_line" class="subject_box_btn_div_line"
src="/subject/subject_line.png" src="/subject/subject_line.png"
:style="{ :style="{
top: `${12 * getWrap(item.title) - 313 - 12 * (spanWrap - 1)}px`, top: `${14 * getWrap(item.title) - 14 * (spanWrap - 1) - 8}px`,
}" }"
/> />
<div class="circle arc1"></div> <div class="circle arc1" :style="{ top: `${-125 - 28 * spanWrap}px` }" />
<div class="circle arc2"></div> <div class="circle arc2" :style="{ top: `${-251 - 28 * spanWrap}px` }" />
<div class="circle arc3"></div> <div class="circle arc3" :style="{ top: `${-377 - 28 * spanWrap}px` }" />
<div class="circle arc4"></div> <div class="circle arc4" :style="{ top: `${-503 - 28 * spanWrap}px` }" />
</div> </div>
</div> </div>
<div class="subject_box_overflow"> <div class="subject_box_overflow">
<Icon <Icon
v-if="list.length > 7" v-if="list.length > 14"
style="font-size: 31px" style="font-size: 31px"
class="subject_box_overflow_icon1" class="subject_box_overflow_icon1"
icon="ant-design:right-outlined" icon="ant-design:up-outlined"
@click="scrollToElement('right')" @click="scrollToElement('top')"
/> />
<Icon <Icon
v-if="list.length > 7" v-if="list.length > 14"
style="font-size: 31px" style="font-size: 31px"
class="subject_box_overflow_icon2" class="subject_box_overflow_icon2"
icon="ant-design:left-outlined" icon="ant-design:down-outlined"
@click="scrollToElement('left')" @click="scrollToElement('bottom')"
/> />
</div> </div>
</div> </div>
@ -98,8 +100,8 @@
const res: any = await getSpecialData(); const res: any = await getSpecialData();
// //
res?.forEach((item) => { res?.forEach((item) => {
if (Math.ceil(item.title.length / 10) > spanWrap.value) { if (Math.ceil(item.title.length / 6) > spanWrap.value) {
spanWrap.value = Math.ceil(item.title.length / 10); spanWrap.value = Math.ceil(item.title.length / 6);
} }
}); });
list.value = res; list.value = res;
@ -130,22 +132,28 @@
// //
const scrollToElement = async (type) => { const scrollToElement = async (type) => {
if (contentArea.value) { if (contentArea.value) {
if (type == 'left' && contentArea.value.scrollLeft != 0) { if (type == 'top' && contentArea.value.scrollTop != 0) {
contentArea.value.scrollLeft = contentArea.value.scrollLeft - 245; contentArea.value.scrollTop = contentArea.value.scrollTop - 344;
} }
if (type == 'right' && contentArea.value.scrollLeft != contentArea.value.scrollWidth) { if (type == 'bottom' && contentArea.value.scrollTop != contentArea.value.scrollHeight) {
contentArea.value.scrollLeft = contentArea.value.scrollLeft + 245; contentArea.value.scrollTop = contentArea.value.scrollTop + 344;
} }
} }
}; };
// //
async function getHome(item) { async function getHome(item) {
console.log(window.innerWidth);
if (!item.isDevelop) { if (!item.isDevelop) {
message.warn('暂未开放!'); message.warn(item.title + '系统暂未开放!');
return; return;
} }
if (item.isExternal) { if (item.isExternal) {
if (item.linkOrApi) {
window.location.href = item.linkOrApi; window.location.href = item.linkOrApi;
} else {
message.warn('系统外部链接未配置!');
return;
}
} else { } else {
if (!item.linkOrApi) { if (!item.linkOrApi) {
item.linkOrApi = PageEnum.WELCOME_HOME; item.linkOrApi = PageEnum.WELCOME_HOME;
@ -163,11 +171,11 @@
} }
// //
function renderedTitle(name) { function renderedTitle(name) {
return name.replace(/\s/g, '<br />'); return `${name.replace(/\s/g, '<br />')}`;
} }
// //
function getWrap(name) { function getWrap(name) {
return Math.ceil(name.length / 10); return Math.ceil(name.length / 6);
} }
// 退 // 退
function handleLoginOut() { function handleLoginOut() {
@ -196,7 +204,18 @@
width: 100%; width: 100%;
&_title { &_title {
position: relative;
top: -5px;
span { span {
img {
position: relative;
top: 3px;
width: 78px;
height: 71px;
margin-right: 10px;
}
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
text-align: center; text-align: center;
@ -205,8 +224,10 @@
height: 82px; height: 82px;
font-family: 068-SSZhengYaTi; font-family: 068-SSZhengYaTi;
font-weight: 400; font-weight: 400;
font-size: 44px; font-size: 42px;
color: #ffffff; color: #ffffff;
font-weight: 900 !important;
letter-spacing: 2px;
} }
} }
@ -244,18 +265,23 @@
display: flex; display: flex;
&_btn { &_btn {
position: relative; align-items: center;
top: 190px;
left: 100px;
height: 400px;
width: 1720px;
display: flex; display: flex;
overflow-x: auto; flex-wrap: wrap;
overflow-y: hidden; position: relative;
top: 50px;
left: 110px;
height: 688px;
width: calc(100vw - 220px);
display: flex;
overflow-x: hidden;
overflow-y: auto;
&_div { &_div {
flex: 0 0 auto;
margin-right: 20px; margin-right: 20px;
width: 225px; margin-bottom: 20px;
width: 220px;
height: 324px; height: 324px;
transition: all 0.3s ease; transition: all 0.3s ease;
@ -289,41 +315,39 @@
&_url { &_url {
position: relative; position: relative;
top: -300px; top: 0px;
left: 17px; left: 11px;
width: 191px; width: 191px;
height: 191px; height: 191px;
} }
&_line {
position: relative;
left: 48px;
width: 128px;
height: 7px;
}
&_span { &_span {
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
text-align: center; text-align: center;
justify-content: center; justify-content: center;
position: relative; position: relative;
top: -300px; // top: -300px;
left: 8px; left: 12px;
width: 210px; width: 190px;
height: 4px;
// //
font-size: 20px; font-size: 28px;
font-family: 068-SSZhengYaTi; font-family: 'Microsoft YaHei';
color: #ffffff; color: #ffffff;
text-shadow: 0px 2px 10px rgba(10, 30, 52, 0.48);
background: linear-gradient(0deg, #6da7ff 0%, #e2ebff 100%); background: linear-gradient(0deg, #6da7ff 0%, #e2ebff 100%);
-webkit-background-clip: text; -webkit-background-clip: text;
-webkit-text-fill-color: transparent; -webkit-text-fill-color: transparent;
background-clip: text; background-clip: text;
color: transparent; color: transparent;
font-weight: bold !important; font-weight: 900 !important;
}
&_line {
position: relative;
left: 42px;
width: 128px;
height: 7px;
} }
} }
} }
@ -333,7 +357,7 @@
top: 190px; top: 190px;
left: 100px; left: 100px;
height: 300px; height: 300px;
width: 100px; width: 110px;
&_icon1 { &_icon1 {
color: #006cff; color: #006cff;
@ -380,16 +404,16 @@
.arc1 { .arc1 {
position: relative; position: relative;
top: -442px; // top: -142px;
left: 114px; left: 108px;
clip-path: inset(0 55% 55% 0); clip-path: inset(0 55% 55% 0);
animation: rotateArc1 8s linear infinite; animation: rotateArc1 8s linear infinite;
} }
.arc2 { .arc2 {
position: relative; position: relative;
top: -568px; top: -268px;
left: 114px; left: 108px;
clip-path: inset(55% 0 0 55%); clip-path: inset(55% 0 0 55%);
transform: rotate(90deg); transform: rotate(90deg);
animation: rotateArc2 8s linear infinite; animation: rotateArc2 8s linear infinite;
@ -397,8 +421,8 @@
.arc3 { .arc3 {
position: relative; position: relative;
top: -694px; top: -394px;
left: 114px; left: 108px;
clip-path: inset(0 55% 55% 0); clip-path: inset(0 55% 55% 0);
transform: rotate(180deg); transform: rotate(180deg);
animation: rotateArc3 8s linear infinite; animation: rotateArc3 8s linear infinite;
@ -406,8 +430,8 @@
.arc4 { .arc4 {
position: relative; position: relative;
top: -820px; top: -520px;
left: 114px; left: 108px;
clip-path: inset(55% 0 0 55%); clip-path: inset(55% 0 0 55%);
transform: rotate(270deg); transform: rotate(270deg);
animation: rotateArc4 8s linear infinite; animation: rotateArc4 8s linear infinite;