Browse Source

Merge remote-tracking branch 'origin/master'

main
sjh 1 year ago
parent
commit
e58d1bf79c
  1. 1
      src/components/datav/chart-bar.vue
  2. 2
      src/components/datav/header.vue
  3. 8
      src/components/negative/add.vue
  4. 18
      src/views/datav/CaseVerif.vue
  5. 178
      src/views/datav/MailVisits.vue
  6. 261
      src/views/datav/RightsComfort.vue
  7. 36
      src/views/datav/VideoInsp.vue

1
src/components/datav/chart-bar.vue

@ -130,6 +130,7 @@ function getColor(val) {
.bar-item_content { .bar-item_content {
.bar-item_content-bar { .bar-item_content-bar {
height: 13px; height: 13px;
} }
} }
} }

2
src/components/datav/header.vue

@ -16,7 +16,7 @@
</router-link> </router-link>
<!-- <router-link to="/datav/jwpy" v-slot="{ isActive }">--> <!-- <router-link to="/datav/jwpy" v-slot="{ isActive }">-->
<div @click="goToBaidu"> <div @click="goToBaidu">
<router-link to="/" v-slot="{ isActive }"> <router-link to="" v-slot="{ isActive }">
<span>民意感知</span> <span>民意感知</span>
<img :src="isActive ? Img2 : Img1" alt=""/> <img :src="isActive ? Img2 : Img1" alt=""/>
</router-link> </router-link>

8
src/components/negative/add.vue

@ -37,7 +37,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item-ext <el-form-item
label="业务类别" label="业务类别"
prop="businessTypeCode" prop="businessTypeCode"
:rules="{ :rules="{
@ -86,7 +86,7 @@
:value="item.dictValue" :value="item.dictValue"
/> />
</el-select> </el-select>
</el-form-item-ext> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row v-if="form.problemSourcesCode === ProblemSources.ZXDC"> <el-row v-if="form.problemSourcesCode === ProblemSources.ZXDC">
@ -141,7 +141,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item-ext <el-form-item
label="涉嫌问题" label="涉嫌问题"
content="梳理出13个业务类别和18种涉嫌问题这个结合事情的简要描述来判断一般情况下可与问题来源对应<br /> content="梳理出13个业务类别和18种涉嫌问题这个结合事情的简要描述来判断一般情况下可与问题来源对应<br />
信访投诉督察支队<br /> 信访投诉督察支队<br />
@ -185,7 +185,7 @@
:value="item.dictValue" :value="item.dictValue"
/> />
</el-select> </el-select>
</el-form-item-ext> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">

18
src/views/datav/CaseVerif.vue

@ -122,7 +122,7 @@
</datav-card> </datav-card>
<datav-card> <datav-card>
<datav-tabs> <datav-tabs>
<datav-tab-item label="停职处理情况" name="1"> <datav-tab-item label="禁闭处理情况" name="1">
<div class="mb-40"> <div class="mb-40">
<v-charts <v-charts
style="height: 340px" style="height: 340px"
@ -543,13 +543,15 @@ const option4 = {
color: "#fff", color: "#fff",
}, },
data: [ data: [
{value: 311, name: "其他"}, {value: 14, name: "工作饮酒"},
{value: 735, name: "违反公安部“九个一律”"}, {value: 11, name: "违规办案"},
{value: 580, name: "违反保密工作纪律"}, {value: 3, name: "涉嫌违纪"},
{value: 484, name: "涉嫌泄露国家、警务秘密"}, {value: 2, name: "违反“三个规定”"},
{value: 300, name: "违反“三个规定”"}, {value: 12, name: "违反生活纪律、工作纪律"},
{value: 300, name: "违反生活纪律"}, {value: 8, name: "违规接受管理服务对象宴请"},
{value: 11, name: "涉嫌违纪违法"}, {value: 2, name: "酒后驾车、涉嫌违法"},
{value: 2, name: "执法乱作为"},
{value: 3, name: "为落实请示报告制度"},
], ],
}, },
], ],

178
src/views/datav/MailVisits.vue

@ -7,7 +7,7 @@
<el-col :span="6"> <el-col :span="6">
<datav-card title="初访重访情况"> <datav-card title="初访重访情况">
<el-row class="mb-32"> <el-row class="mb-32">
<el-col :span="8"> <el-col :span="12">
<div class="descriptions_cell text-center"> <div class="descriptions_cell text-center">
<div class="descriptions_content"> <div class="descriptions_content">
{{ overview.firstMail }} {{ overview.firstMail }}
@ -17,7 +17,7 @@
</div> </div>
</div> </div>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="12">
<div class="descriptions_cell text-center"> <div class="descriptions_cell text-center">
<div class="descriptions_content"> <div class="descriptions_content">
{{ overview.secondMail }} {{ overview.secondMail }}
@ -27,16 +27,6 @@
</div> </div>
</div> </div>
</el-col> </el-col>
<el-col :span="8">
<div class="descriptions_cell text-center">
<div class="descriptions_content">
{{ overview.leaderReceiveMail }}
</div>
<div class="descriptions_label">
领导接访
</div>
</div>
</el-col>
</el-row> </el-row>
<datav-card> <datav-card>
<datav-tabs v-model="activeTab"> <datav-tabs v-model="activeTab">
@ -65,15 +55,6 @@
/> />
</el-scrollbar> </el-scrollbar>
</datav-tab-item> </datav-tab-item>
<datav-tab-item label="领导接访" name="3">
<el-scrollbar height="300px">
<datav-chart-bar
:data="fxsjLeaderViewMailList"
:max="11"
size="large"
/>
</el-scrollbar>
</datav-tab-item>
</datav-tabs> </datav-tabs>
</datav-tab-item> </datav-tab-item>
<datav-tab-item label="部委支队" name="2"> <datav-tab-item label="部委支队" name="2">
@ -98,15 +79,6 @@
/> />
</el-scrollbar> </el-scrollbar>
</datav-tab-item> </datav-tab-item>
<datav-tab-item label="领导接访" name="3">
<el-scrollbar height="300px">
<datav-chart-bar-mail
:data="bwzdLeaderViewMailList"
:max="11"
size="large"
/>
</el-scrollbar>
</datav-tab-item>
</datav-tabs> </datav-tabs>
</datav-tab-item> </datav-tab-item>
</datav-tabs> </datav-tabs>
@ -208,109 +180,32 @@
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<datav-card title="缠访集访情况"> <datav-card title="领导接访情况">
<el-row class="mb-32">
<el-col :span="8">
<div class="descriptions_cell text-center">
<div class="descriptions_content">
{{ overview.leaderViewMail }}
</div>
<div class="descriptions_label">
领导督办
</div>
</div>
</el-col>
<el-col :span="8">
<div class="descriptions_cell text-center">
<div class="descriptions_content">
{{ overview.tangleMail }}
</div>
<div class="descriptions_label">
缠访闹访
</div>
</div>
</el-col>
<el-col :span="8">
<div class="descriptions_cell text-center">
<div class="descriptions_content">
{{ overview.massMail }}
</div>
<div class="descriptions_label">
群体集访
</div>
</div>
</el-col>
</el-row>
<datav-card> <datav-card>
<datav-tabs v-model="activeTabRight"> <datav-tabs
v-model="activeTabRight"
type="bottom-button"
>
<datav-tab-item label="分县市局" name="1"> <datav-tab-item label="分县市局" name="1">
<datav-tabs <el-scrollbar height="450px">
v-model="activeMailTabRight" <datav-chart-bar
type="bottom-button" :data="fxsjLeaderViewMailList"
> size="large"
<datav-tab-item label="领导督办" name="1"> :labelWidth="50"
<el-scrollbar height="300px"> sub-title="数量"
<datav-chart-bar-mail />
:data="xx" </el-scrollbar>
size="large"
/>
</el-scrollbar>
</datav-tab-item>
<datav-tab-item label="缠访闹访" name="2">
<el-scrollbar height="300px">
<datav-chart-bar-mail
:data="xx"
:max="11"
size="large"
/>
</el-scrollbar>
</datav-tab-item>
<datav-tab-item label="群体集访" name="3">
<el-scrollbar height="300px">
<datav-chart-bar-mail
:data="xx"
:max="11"
size="large"
/>
</el-scrollbar>
</datav-tab-item>
</datav-tabs>
</datav-tab-item> </datav-tab-item>
<datav-tab-item label="部委支队" name="2"> <datav-tab-item label="部委支队" name="2">
<datav-tabs <el-scrollbar height="450px">
v-model="activeMailTabRight" <datav-chart-bar
type="bottom-button" :data="bwzdLeaderViewMailList"
> :max="11"
<datav-tab-item label="领导督办" name="1"> :labelWidth="50"
<el-scrollbar height="300px"> size="large"
<datav-chart-bar-mail sub-title="数量"
:data="xx" />
size="large" </el-scrollbar>
/>
</el-scrollbar>
</datav-tab-item>
<datav-tab-item label="缠访闹访" name="2">
<el-scrollbar height="300px">
<datav-chart-bar-mail
:data="xx"
:max="11"
size="large"
/>
</el-scrollbar>
</datav-tab-item>
<datav-tab-item label="群体集访" name="3">
<el-scrollbar height="300px">
<datav-chart-bar-mail
:data="xx"
:max="11"
size="large"
/>
</el-scrollbar>
</datav-tab-item>
</datav-tabs>
</datav-tab-item> </datav-tab-item>
</datav-tabs> </datav-tabs>
</datav-card> </datav-card>
@ -577,6 +472,22 @@ const time = ref([
moment().format("YYYY-MM-DD"), moment().format("YYYY-MM-DD"),
]); ]);
const temp1=[{
label:'张三',
value: '1'
}]
const temp2=[{
label:'李四',
value: '1'
}]
/** /**
* 信访趋势 * 信访趋势
* @type {Ref<UnwrapRef<string>, UnwrapRef<string> | string>} * @type {Ref<UnwrapRef<string>, UnwrapRef<string> | string>}
@ -799,13 +710,6 @@ const colors = [
} }
/*
<!-- <datav-tab-item label="局长信箱" name="3">-->
<!-- <v-charts-->
<!-- style="width: 105%; height: 300px; "-->
<!-- :option="option1"-->
<!-- autoresize-->
<!-- />-->
<!-- </datav-tab-item>-->*/
</style> </style>

261
src/views/datav/RightsComfort.vue

@ -149,7 +149,89 @@ const hitPersonNumber = ref(28.1);
const comfortMoney = ref(0.0); const comfortMoney = ref(0.0);
const punishmentSituationList = ref([]); const punishmentSituationList = ref([]);
const comfortSituationList = ref([]); const comfortSituationList = ref([]);
let gobalTempMapVoList = [
{
"name": "岳麓分局",
"totalCase": 23,
"victimPer": "暂无",
"comfortPer": "19",
"hitPro": "暂无",
"comfortMon": "暂无",
},
{
"name": "芙蓉分局",
"totalCase": 20,
"victimPer": "暂无",
"comfortPer": "12",
"hitPro": "暂无",
"comfortMon": "暂无",
},
{
"name": "天心分局",
"totalCase": 20,
"victimPer": "暂无",
"comfortPer": "23",
"hitPro": "暂无",
"comfortMon": "暂无",
},
{
"name": "雨花分局",
"totalCase": 19,
"victimPer": "暂无",
"comfortPer": "16",
"hitPro": "暂无",
"comfortMon": "暂无",
},
{
"name": "浏阳市局",
"totalCase": 17,
"victimPer": "暂无",
"comfortPer": "30",
"hitPro": "暂无",
"comfortMon": "暂无",
},
{
"name": "宁乡市局",
"totalCase": 11,
"victimPer": "暂无",
"comfortPer": "0",
"hitPro": "暂无",
"comfortMon": "暂无",
},
{
"name": "开福分局",
"totalCase": 11,
"victimPer": "暂无",
"comfortPer": "4",
"hitPro": "暂无",
"comfortMon": "暂无",
},
{
"name": "望城分局",
"totalCase": 9,
"victimPer": "暂无",
"comfortPer": "0",
"hitPro": "暂无",
"comfortMon": "暂无",
},
{
"name": "长沙县局",
"totalCase": 9,
"victimPer": "暂无",
"comfortPer": "0",
"hitPro": "暂无",
"comfortMon": "暂无",
},
{
"name": "高新分局",
"totalCase": 4,
"victimPer": "暂无",
"comfortPer": "7",
"hitPro": "暂无",
"comfortMon": "暂无",
},
];
function getData() { function getData() {
getRightsComfortData(time.value).then((data) => { getRightsComfortData(time.value).then((data) => {
console.log('Received data:', data); // console.log('Received data:', data); //
@ -167,29 +249,65 @@ watch(time, () => {
onMounted(() => { onMounted(() => {
getData(); getData();
}); });
const option = { const option = ref({
geo: { geo: {
// registerMap''
map: "changsha", map: "changsha",
},
},
tooltip: {
trigger: 'item',
formatter: function (params) {
console.log(params)
const dataItem = gobalTempMapVoList.find(item => item.name.includes(params.name.substring(0, 2)));
if (dataItem) {
return `
<div class="tooltip">
<div class="tooltip-title">${dataItem.name}</div>
<div class="tooltip-content">
<ul class="tooltip-ul" >
<li>维权案件总数 <span>${dataItem.totalCase}</span></li>
<li>受侵害人数 <span>${dataItem.victimPer}</span></li>
<li>抚慰人数 <span>${dataItem.comfortPer}</span></li>
<li>打击处理人数 <span>${dataItem.hitPro}</span></li>
<li>抚慰金额 <span>${dataItem.comfortMon}</span></li>
</ul>
</div>
</div>`;
} else {
return `<div class="tooltip">
<div class="tooltip-title">${dataItem.name}</div>
<div class="tooltip-content">
<ul class="tooltip-ul"">
<li>维权案件数 <span>0</span></li>
<li>抚慰人数 <span>0</span></li>
</ul>
</div>
</div>`;
}
},
// backgroundColor: "#031577", //
// borderColor: "#0A2F86",
// borderWidth: 0, // 1
// borderRadius: 3, // 3
// shadowBlur: 0, // 8
// shadowOffsetX: 0, // 0
// shadowOffsetY: 0, // 6
},
visualMap: { visualMap: {
type: "piecewise", type: "piecewise",
bottom: 10, bottom: 10,
pieces: [ pieces: [
{gte: 85, lte: 100, label: "数据数高于1000"}, { min: 0, max: 500, label: "问题数低于500" }, { min: 501, max: 1000, label: "问题数介于500-1000" }, { min: 1001, label: "问题数高于1000" },
{gte: 65, lte: 85, label: "问题数低于1000"},
{gte: 0, lte: 65, label: "问题数低于500"},
], ],
right: 10, // right: 10,
realtime: false, realtime: false,
orient: "horizontal", // orient: "horizontal",
textStyle: { textStyle: {
color: "#fff", // color: "#fff",
}, },
calculable: true, calculable: true,
inRange: { inRange: {
color: ["#4987F6", "#F6A149", "#D34343"], color: ["#4987F6", "#F6A149", "#D34343",],
}, },
}, },
series: [ series: [
@ -198,23 +316,28 @@ const option = {
type: "map", type: "map",
map: "changsha", map: "changsha",
hoverAnimation: true, hoverAnimation: true,
emphasis: {
areaColor: "#FFD700", //
borderColor: "#FF0000", //
borderWidth: 4 //
},
label: { label: {
show: true, show: true,
color: "white", color: "white",
}, },
itemStyle: { itemStyle: {
normal: { normal: {
areaColor: "#02215E", // areaColor: "#02215E",
borderColor: "#1773c3",
}, },
}, },
}, emphasis: {
areaColor: "#FFD700", //
borderColor: "#FF0000", //
borderWidth: 4 //
},
data: gobalTempMapVoList.map(item => ({
name: item.name,
value: item.totalPro // totalPro value
}))
}
], ],
}; })
const option1 = ref({ const option1 = ref({
xAxis: { xAxis: {
@ -501,6 +624,108 @@ const colors = [
]; ];
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import "@/style/datav.scss"; @import "@/style/datav.scss";
:deep() {
//
.tooltip {
position: relative;
width: 169.88px;
height: 170px;
background: linear-gradient(180deg, rgba(1, 4, 87, 0.8) 0%, rgba(3, 21, 119, 0.8) 100%);
border: 1px solid #4E8FFF;
margin: -10px -10px -10px -10px;
}
//
.tooltip-title {
width: 169.88px;
height: 43px;
background: linear-gradient(180deg, rgba(1, 4, 87, 0.8) 0%, rgba(3, 21, 119, 0.8) 100%);
display: flex;
justify-content: center; /* 水平居中 */
align-items: center; /* 垂直居中 */
text-align: center; /* 水平居中 */
font-weight: 400;
font-size: 16px;
color: #FFFFFF;
line-height: 22px;
border-bottom: 1px solid #253755; /* 设置下边框 */
}
.tooltip-content {
width: 170px;
height: 132px;
//font-size: 11px;
margin-top: -12px;
background: linear-gradient(180deg, #010457 0%, #031577 100%);
}
.tooltip-content ul {
list-style-type: none; /* 移除默认的小圆点 */
padding: 0;
}
.tooltip-content ul li {
margin-left: 5px;
height: 25px;
color: #597AE9;
font-size: 13px;
}
// span
.tooltip-ul span {
float: right;
width: 50px;
text-align: right;
margin-right: 35px;
color: #fff;
font-size: 13px;
}
/* 小尖角 */
.tooltip::before {
content: '';
position: absolute;
top: 90px; /* 调整尖角的垂直位置 */
left: -10px; /* 调整尖角的水平位置 */
width: 0;
height: 0;
//border-top: 10px solid red; /* */
//border-bottom: 10px solid green; /* */
//border-right: 10px solid blue; /* */
}
}
.test {
width: 95px;
height: 25px;
background: #1C3472;
}
.gobal-dropdown-container {
position: absolute;
right: 20px;
top: 15px;
}
.my-gobal-yearselect {
font-size: 14px;
padding-top: 6px;
padding-left: 20px;
width: 90px;
color: #fff;
}
</style> </style>

36
src/views/datav/VideoInsp.vue

@ -111,43 +111,43 @@
<div class="message message-error"> <div class="message message-error">
<div class="message-title">待处理</div> <div class="message-title">待处理</div>
<div> <div>
宁乡-灰汤所-办公-值班室湖南省长沙市宁乡市公安局灰汤派出所值班室民警不在岗 芙蓉-定王台-办案区-问室 湖南省长沙市公安局芙蓉分局定王台派出所 &emsp; 民警单人询的违规问题
</div> </div>
<div class="message-footer flex between"> <div class="message-footer flex between">
<span>灰汤派出所</span> <span>芙蓉分局定王台派出所</span>
<span>2024-09-26 09:00:13</span> <span>2024-11-11 19:16</span>
</div> </div>
</div> </div>
<div class="message message-info"> <div class="message message-info">
<div class="message-title">待处理</div> <div class="message-title">待处理</div>
<div> <div>
宁乡-灰汤所-办公-值班室湖南省长沙市宁乡市公安局灰汤派出所值班室民警不在岗 望城-管理中心-办案区-询问室湖南省长沙市望城区公安局法制大队&emsp; 民警单人询的违规问题
</div> </div>
<div class="message-footer flex between"> <div class="message-footer flex between">
<span>灰汤派出所</span> <span>望城区公安局法制大队</span>
<span>2024-09-26 09:00:13</span> <span>2024-11-18 11:12</span>
</div> </div>
</div> </div>
<div class="message"> <div class="message">
<div class="message-title">待处理</div> <div class="message-title">待处理</div>
<div> <div>
宁乡-灰汤所-办公-值班室湖南省长沙市宁乡市公安局灰汤派出所值班室民警不在岗 执法办案中心-询问室7湖南省长沙市公安局芙蓉分局蓉园派出所 &emsp;同时讯问多名嫌疑对象
</div> </div>
<div class="message-footer flex between"> <div class="message-footer flex between">
<span>灰汤派出所</span> <span>芙蓉分局蓉园派出所</span>
<span>2024-09-26 09:00:13</span> <span>2024-11-14 10:00</span>
</div> </div>
</div> </div>
<div class="message message-error"> <div class="message">
<div class="message-title">待处理</div> <div class="message-title">待处理</div>
<div> <div>
宁乡-灰汤所-办公-值班室湖南省长沙市宁乡市公安局灰汤派出所值班室民警不在岗 开福-直属-执法办案管理-讯询问室湖南省长沙市公安局开福分局法制大队 &emsp;民警单人询的违规问题
</div> </div>
<div class="message-footer flex between"> <div class="message-footer flex between">
<span>灰汤派出所</span> <span>开福分局法制大队</span>
<span>2024-09-26 09:00:13</span> <span>2024-11-15 15:51</span>
</div>
</div> </div>
</div>
</el-scrollbar> </el-scrollbar>
</datav-card> </datav-card>
<datav-card title="问题类型占比"> <datav-card title="问题类型占比">

Loading…
Cancel
Save