Browse Source

Merge remote-tracking branch 'origin/master'

main
kami 1 year ago
parent
commit
2c1f18983d
  1. 2
      package.json
  2. 38
      src/api/data/basicScreen.ts
  3. BIN
      src/assets/images/defaultPhoto.jpg
  4. 12
      src/components/datav/header.vue
  5. 6
      src/router/routes.ts
  6. 29
      src/views/datav/Gobal.vue
  7. 138
      src/views/datav/Jwpy.vue
  8. 2
      src/views/datav/SceneInsp.vue
  9. 70
      src/views/sensitivePerception/RiskPersonnel.vue

2
package.json

@ -35,7 +35,7 @@
"baidu-map-vue3": "^0.4.9",
"crypto-js": "^4.2.0",
"echarts": "^5.4.3",
"element-plus": "^2.5.1",
"element-plus": "^2.8.8",
"install": "^0.13.0",
"lodash": "^4.17.21",
"moment": "^2.30.1",

38
src/api/data/basicScreen.ts

@ -26,9 +26,47 @@ export function getGobalRecentlyTrendByMonth(year) {
}
/**
*
* @param year
*/
export function getOrganizationRank(times) {
return request.get({
url: `/datav/dataGobalScreen/getOrganizationRank?beginTime=${times[0]}&endTime=${times[1]}`
});
}
/**
*
* @param year
*/
export function getBusinessRate(times) {
return request.get({
url: `/datav/dataGobalScreen/getBusinessRate?beginTime=${times[0]}&endTime=${times[1]}`
});
}
/**
*
* @param year
*/
export function getStrongProblemRate(times) {
return request.get({
url: `/datav/dataGobalScreen/getStrongProblemRate?beginTime=${times[0]}&endTime=${times[1]}`
});
}
/**
*
* @param year
*/
export function getProblemBusinessRate(times) {
return request.get({
url: `/datav/dataGobalScreen/getProblemBusinessRate?beginTime=${times[0]}&endTime=${times[1]}`
});
}

BIN
src/assets/images/defaultPhoto.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

12
src/components/datav/header.vue

@ -14,14 +14,10 @@
<span>案件核查</span>
<img :src="isActive ? Img2 : Img1" alt=""/>
</router-link>
<!-- <router-link to="/datav/jwpy" v-slot="{ isActive }">-->
<div @click="goToBaidu">
<router-link to="" v-slot="{ isActive }">
<span>民意感知</span>
<img :src="Img1" alt=""/>
</router-link>
</div>
<router-link to="/datav/jwpy" v-slot="{ isActive }">
<span>民意感知</span>
<img :src="isActive ? Img2 : Img1" alt=""/>
</router-link>
</nav>
<h1>
<router-link to="/datav/gobal">

6
src/router/routes.ts

@ -52,11 +52,11 @@ export const routes = [
},
{
path: '/datav/jwpy',
// component: () => import('@/views/datav/Jwpy.vue'),
beforeEnter: (to, from, next) => {
component: () => import('@/views/datav/Jwpy.vue'),
/* beforeEnter: (to, from, next) => {
window.open('www.baidu.com', '_blank');
next(false); // 阻止路由的正常内部跳转
}
}*/
},
{
path: '/datav/lmgz',

29
src/views/datav/Gobal.vue

@ -141,7 +141,12 @@ import changshaMap from "@/assets/data/changsha.json";
import * as echarts from "echarts/core";
import moment from "moment/moment";
import {getCaseVerifData} from "@/api/datav";
import {getAllGobalCount, getGobalRecentlyTrendByMonth} from "@/api/data/basicScreen.ts";
import {
getAllGobalCount,
getBusinessRate,
getGobalRecentlyTrendByMonth,
getOrganizationRank, getProblemBusinessRate, getStrongProblemRate
} from "@/api/data/basicScreen.ts";
// region
const activeOrgTab = ref("1");
const fxsjlist = ref([]); //
@ -396,28 +401,36 @@ const time = ref([
]);
function getData() {
getAllGobalCount(time.value).then((res) => {
overview.value = res.overview;
getOrganizationRank(time.value).then((res) => {
fxsjlist.value = res.fxsjlist;
jsdwlist.value = res.jsdwlist;
});
getBusinessRate(time.value).then((res) => {
ywzblist.value = res.ywzblist;
wtlxlist.value = res.wtlxlist;
tcwtlist.value = res.tcwtlist;
});
getAllGobalCount(time.value).then((res) => {
overview.value = res.overview;
gobalTempMapVoList = res.gobalTempMapVoList;
});
getGobalRecentlyTrendByMonth(new Date().getFullYear()).then((res) => {
proTrend.value.xAxis.data = res.monthList;
proTrend.value.series[0].data = res.totalList;
});
getStrongProblemRate(time.value).then((res) => {
tcwtlist.value = res.tcwtlist;
});
getProblemBusinessRate(time.value).then((res) => {
wtlxlist.value = res.wtlxlist;
});
}
watch(time, () => {
onMounted(() => {
getData();
});
onMounted(() => {
watch(time, () => {
getData();
});
const colors = [
{
color: "linear-gradient( 270deg, #FB002D 0%, #822232 100%)",

138
src/views/datav/Jwpy.vue

@ -93,7 +93,27 @@
</el-container>
</div>
</datav-card>
<datav-card title="业务满意率"></datav-card>
<div style="background-color:#04144E; ">
<h3 style="color: white">业务满意率</h3>
<el-table
:data="tableData"
height="300"
:summary-cell-style="summaryCellStyle"
:summary-method="getSummaries"
:style="{ width: '100%', marginTop: '20px', fontSize: fontSize + 'px' }"
:header-cell-style="headerCellStyle"
:row-style="tableRowStyle"
:show-summary='true'
>
<el-table-column prop="id" label="单项业务"/>
<el-table-column prop="name" label="有效数"/>
<el-table-column prop="amount1" label="基本满意数"/>
<el-table-column prop="amount2" label="不满意数"/>
<el-table-column prop="amount3" label="满意率"/>
<el-table-column prop="amount3" label="同比"/>
</el-table>
</div>
</el-col>
<el-col :span="12">
@ -405,6 +425,61 @@ const option3 = {
}
}]
};
const fontSize = ref(11)
const headerCellStyle = ref({
fontSize: '11px', /* 设置表头字体大小 */
color: '#24D2EE', /* 设置表头字体颜色 */
backgroundColor: '#04144E', /* 设置表头背景颜色 */
height: '15px', /* 设置表头高度 */
padding: '0 0 0 0', /* 设置表头内边距 */
});
const tableRowStyle = (row) => {
return {
backgroundColor: '#04144E',
color: "#FFFFFF"
};
};
//
const summaryCellStyle = () => {
return {
backgroundColor: '#04144E',
color: "#FFFFFF"
};
};
//
const getSummaries = (param) => {
const {columns, data} = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '总计';
return;
}
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return prev + curr;
} else {
return prev;
}
}, 0);
sums[index] += '';
} else {
sums[index] = 'N/A';
}
});
return sums;
};
// region
const overview = ref({
total: 0,
@ -485,7 +560,51 @@ const colors = [
},
];
const tableData = [
{
id: '12987122',
name: 'Tom',
amount1: '234',
amount2: '3.2',
amount3: 10,
}, {
id: '12987122',
name: 'Tom',
amount1: '234',
amount2: '3.2',
amount3: 10,
}, {
id: '12987122',
name: 'Tom',
amount1: '234',
amount2: '3.2',
amount3: 10,
}, {
id: '12987122',
name: 'Tom',
amount1: '234',
amount2: '3.2',
amount3: 10,
}, {
id: '12987122',
name: 'Tom',
amount1: '234',
amount2: '3.2',
amount3: 10,
}, {
id: '12987122',
name: 'Tom',
amount1: '234',
amount2: '3.2',
amount3: 10,
}, {
id: '12987122',
name: 'Tom',
amount1: '234',
amount2: '3.2',
amount3: 10,
},
]
</script>
@ -519,5 +638,20 @@ const colors = [
height: 118px;
}
.custom-footer-row {
background-color:#FB3131;
font-weight: bold;
color: #333;
}
.custom-footer-cell {
text-align: center;
padding: 10px;
}
</style>

2
src/views/datav/SceneInsp.vue

@ -472,7 +472,7 @@ const option = ref({
<li>整改中 <span>${dataItem.changing}</span></li>
<li>已整改 <span>${dataItem.changed}</span></li>
<li>涉及单位数 <span>${dataItem.relationOrg}</span></li>
<li>整改率 <span>${dataItem.changedRate}</span></li>
<li>整改率 <span>${dataItem.changedRate}%</span></li>
</ul>
</div>
</div>`;

70
src/views/sensitivePerception/RiskPersonnel.vue

@ -146,27 +146,48 @@
</div>
<el-dialog title="风险人员详情" v-model="show" width="80vw" top="2vh">
<h5>风险人员基本情况</h5>
<el-row>
<el-col :span="5"></el-col>
<el-col :span="12">
<div class="row" style="--label-width: 60px">
<div class="col col-8">
<label>姓名</label>
<span>{{ activeRow.name }}</span>
</div>
<div class="col col-8">
<label>性别</label>
<span>{{ getGender(activeRow.gender) }}</span>
</div>
<div class="col col-8">
<label>身份证号</label>
<span>{{ activeRow.idCode }}</span>
</div>
<div class="col col-8">
<label>年龄</label>
<span>{{ activeRow.age }}</span>
<el-col :span="1"></el-col>
<el-col :span="18">
<el-col :span="18">
<div class="col col-20">
<div class="person-photo">
<img src="@/assets/images/defaultPhoto.jpg" />
</div>
<div class="row" style="height: 100%">
<div class="col col-6">
<label>姓名</label>
<span>{{ activeRow.name }}</span>
</div>
<div class="col col-8">
<label>性别</label>
<span>{{ getGender(activeRow.gender) }}</span>
</div>
<div class="col col-10">
<label>身份证号</label>
<span>{{ activeRow.idCode }}</span>
</div>
<div class="row" style="width: 100%">
<div class="col col-6">
<label>年龄</label>
<span>{{ activeRow.age }}</span>
</div>
<div class="col col-8">
<label>管控单位</label>
<span>{{ activeRow.controlDepartName }}</span>
</div>
<div class="col col-10">
<label>电话</label>
<span>{{ activeRow.mobileNumber }}</span>
</div>
</div>
</div>
</div>
</el-col>
</el-col>
<el-col :span="5">
<div class="flex center column text-center">
@ -179,9 +200,7 @@
</el-row>
<div style="min-height: 50vh">
<div v-for="(item, index) in personal.riskClueList" :key="index">
<div>
<span class="text-primary">{{ item.riskName }}</span>
</div>
<h5>{{ item.riskName }}</h5>
<el-table :data="item.clues" max-height="300">
<el-table-column
label="发生时间"
@ -468,4 +487,13 @@ function getGender(val) {
font-size: 124px;
color: #fff;
}
.person-photo {
text-align: center;
margin-bottom: 10px;
}
.person-photo img {
max-height: 100%;
width: 200px;
}
</style>

Loading…
Cancel
Save