Browse Source

fix:1、县局大屏优化(补充民意感知、优化显示情况)2、禁闭管理优化

main
pengwei 5 months ago
parent
commit
5656c98059
  1. 4
      src/components/datav/chart-bar.vue
  2. 2
      src/components/datav/subOne/subOneHeader.vue
  3. 4
      src/router/routes.ts
  4. 2
      src/views/datav/CaseVerif.vue
  5. 14
      src/views/datav/Jwpy.vue
  6. 8
      src/views/datav/VideoInsp.vue
  7. 6
      src/views/datav/subonedatav/SubOneGlobal.vue
  8. 1137
      src/views/datav/subonedatav/SubOneJwpy.vue
  9. 2
      src/views/datav/subonedatav/SubOneSceneInsp.vue
  10. 39
      src/views/rightsComfort/Supervision.vue
  11. 41
      src/views/work/Confinement.vue

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

@ -30,7 +30,7 @@
placement="top-start"
>
<div class="popover_content">
<p> <span class="popover_border" style="background-color: #63e700"></span>市局下发问题数<span style="font-weight: 800">{{item.cityNumber }}</span></p>
<p> <span class="popover_border" style="background-color: #67e010"></span>市局下发问题数<span style="font-weight: 800">{{item.cityNumber }}</span></p>
<p> <span class="popover_border" style="background-color: #399372"></span>二级机构下发问题数<span style="font-weight: 800">{{item.countyNumber}}</span></p>
</div>
<template #reference>
@ -40,7 +40,7 @@
:style="{
width: `${(item.cityNumber / (item.denominator?item.denominator:item.value) ) * 100}%`,
background: `#63e700`,
background: `#67e010`,
}"
>

2
src/components/datav/subOne/subOneHeader.vue

@ -22,7 +22,7 @@
</router-link>
</h1>
<nav class="flex right">
<router-link :to="`/datav/sceneInsp?departId=`+ deptId" v-slot="{ isActive }">
<router-link :to="`/datav/subOneJwpy?departId=`+ deptId" v-slot="{ isActive }">
<span>民意感知</span>
<img :src="isActive ? Img2 : Img1" alt=""/>
</router-link>

4
src/router/routes.ts

@ -91,6 +91,10 @@ export const routes = [
path: '/datav/subOneMailVisits',
component: () => import('@/views/datav/subonedatav/SubOneMailVisits.vue'),
},
{
path:'/datav/subOneJwpy',
component:()=>import('@/views/datav/subonedatav/SubOneJwpy.vue')
},
{
path: '/datav/subOneRightsComfort',
component: () => import('@/views/datav/subonedatav/SubOneRightsComfort.vue'),

2
src/views/datav/CaseVerif.vue

@ -104,7 +104,7 @@
/>
<datav-card title="查处问题趋势">
<v-charts
style="height: 320px"
style="height: 250px"
:option="proTrend"
autoresize
ref="caseVerifProTrend"

14
src/views/datav/Jwpy.vue

@ -77,10 +77,10 @@
:row-style="tableRowStyleTableData2"
:show-summary='false'
>
<el-table-column prop="OrganizeName" label="单位名称" />
<el-table-column prop="FinalRP" label="滿意度" width="66px"/>
<el-table-column prop="TBRp" label="上期满意度" width="66px"/>
<el-table-column prop="TBRpts" label="同比上期" width="66px">
<el-table-column prop="OrganizeName" label="单位名称" />
<el-table-column prop="FinalRP" label="滿意度" width="80px"/>
<el-table-column prop="TBRp" label="上期满意度" width="80px"/>
<el-table-column prop="TBRpts" label="同比上期" width="80px">
<template v-slot="scope">
<span :style="getCellStyle(scope.row.TBRpts)">{{ scope.row.TBRpts }}</span>
</template>
@ -120,7 +120,7 @@
</p>
</el-row>
</div>
<el-row justify="center" :gutter="20" class="mt-16">
<el-row justify="center" :gutter="20" style="margin-bottom: 10px" class="mt-16">
<el-col :span="4">
<el-select v-if="!isSelectVisible" v-model="selectYear" placeholder="请选择" @change="handleYearChange">
@ -209,7 +209,7 @@
class="map-option"
/>
<datav-card title="不满意样本趋势" sub-title="不满意样本" >
<div style="height: 420px">
<div style="height: 300px">
<v-charts
:option="option2"
autoresize
@ -248,7 +248,7 @@
</datav-card>
<div style="background-color:#04144E; ">
<datav-card title="项目下发情况">
<div style="height: 560px">
<div style="height: 465px">
<v-charts
:option="option4"
autoresize

8
src/views/datav/VideoInsp.vue

@ -58,7 +58,7 @@
ref="videoProRank"
>
<datav-tab-item label="分县市局" name="1">
<el-scrollbar height="400px">
<el-scrollbar height="360px">
<datav-chart-bar
:data="fxsjRankList"
size="large"
@ -119,7 +119,7 @@
/>
<datav-card title="问题趋势">
<v-charts
style="height: 250px"
style="height: 300px"
:option="proTrend"
autoresize
ref="videoProTrend"
@ -178,7 +178,7 @@
</datav-card>
<datav-card title="问题涉及方面分布">
<v-charts
style="height: 300px"
style="height: 350px"
:option="ProblemTypeRateChart"
autoresize
ref="videoProblemTypeRate"
@ -713,7 +713,7 @@ onMounted(() => {
setInterval(()=>{
activeVideoIndex.value = (parseInt(activeVideoIndex.value) % videos.value.length + 1) || 0
activeUrl.value=videos?.value[parseInt(activeVideoIndex.value) % videos.value.length - 1].videoUrl;
},3000)
},6000)

6
src/views/datav/subonedatav/SubOneGlobal.vue

@ -492,6 +492,11 @@ const getSubOneProblemBusinessRateData = async (departId = currentDepartId, time
wtlxlist.value = res.wtlxlist;
}
const getData = () => {
if(route.query.departId == null){
currentDepartId=userStore.user.departId;
console.log(userStore)
}
console.log('currentDepartId',currentDepartId)
getOrganizationProRankData(currentDepartId, time.value);
getBusinessRateData(currentDepartId, time.value);
getAllGlobalCountData(currentDepartId, time.value);
@ -584,6 +589,7 @@ const subOneWtlxzbCircularAnimation = () => {
subOneWtlxPieCircularIntervalId = setInterval(subOneWtlxzbCircularAnimation, 2000);
onMounted(() => {
getData();
setupEventListeners();
selectedYear.value= currentYear.toString()

1137
src/views/datav/subonedatav/SubOneJwpy.vue

File diff suppressed because it is too large Load Diff

2
src/views/datav/subonedatav/SubOneSceneInsp.vue

@ -113,7 +113,7 @@
<el-scrollbar height="350px">
<datav-chart-bar
:data="jsdwChangedRankList"
size="small"
size="large"
title="整改率排名"
sub-title="已办结/问题数"
unit="%"

39
src/views/rightsComfort/Supervision.vue

@ -7,7 +7,7 @@ import feedback from "@/utils/feedback";
//
const catchStore = useCatchStore();
const dict = catchStore.getDicts(["personType","injurySeverity","formsOfTort"]);
const dict = catchStore.getDicts(["personType","injurySeverity","formsOfTort","occurrenceStage","investigatingPolice","situation"]);
let InfringerHandleDict = reactive([
{
dictValue:"刑事追究",
@ -294,7 +294,13 @@ watch(()=>activeName,()=>{
trigger: ['blur'],
}"
label="案发环节">
<el-input v-model="detailData.rpcApplyVo.incidentLinkName"></el-input>
<el-select v-model="detailData.rpcApplyVo.incidentLinkName">
<el-option v-for="(item,i) in dict.occurrenceStage"
:key="key"
:value="item.dictValue"
:label="item.dictLabel"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
@ -308,7 +314,7 @@ watch(()=>activeName,()=>{
label="案发警种">
<el-select
v-model="detailData.rpcApplyVo.policeJob" >
<el-option v-for="(item,key) in dict.personType"
<el-option v-for="(item,key) in dict.investigatingPolice"
:key="key"
:value="item.dictValue"
:label="item.dictLabel"
@ -492,7 +498,14 @@ watch(()=>activeName,()=>{
trigger: ['blur'],
}"
label="打击处理情况">
<el-input v-model="infringer.defendHandleWayName" ></el-input>
<el-select v-model="infringer.defendHandleWayName">
<el-option v-for="(item,key) in dict.situation"
:key="key"
:value="item.dictValue"
:label="item.dictLabel"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
@ -550,14 +563,17 @@ watch(()=>activeName,()=>{
<el-col :span="12">
<el-form-item
label="案发环节">
{{detailData.rpcApplyVo.incidentLinkName}}
{{ getDictLable(
dict.occurrenceStage,
detailData.rpcApplyVo.incidentLinkName
) }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="案发警种">
{{ getDictLable(
dict.personType,
dict.investigatingPolice,
detailData.rpcApplyVo.policeJob
) }}
</el-form-item>
@ -684,20 +700,17 @@ watch(()=>activeName,()=>{
</el-col>
<el-col :span="12">
<el-form-item label="打击处理情况">
{{infringer.defendHandleWayName}}
{{ getDictLable(
dict.situation,
people.injurySeverity
) }}
</el-form-item>
</el-col>
</el-row>
</div>
</div>
</el-form>
<footer class="flex end">
<el-button type="primary" @click="handleSumbit" size="large"
>维权上报
</el-button>
<el-button type="danger" @click="isTrueFun(detailData)" size="large">无效维权</el-button>
</footer>
</el-dialog>
</template>

41
src/views/work/Confinement.vue

@ -197,6 +197,7 @@ const getConfinementFilesFun = async (id) => {
* */
const handleDetail = (row) => {
formData.value = row;
formData.value.files=[];
getConfinementFilesFun(row.id)
let {birthTime, gender, age} = extractInfoFromID(row.idCode)
formData.value.gender = gender
@ -218,6 +219,7 @@ const handleDel = async (row) => {
* */
const handleUpDate = (row) => {
formData.value = row;
formData.value.files=[];
getConfinementFilesFun(row.id)
let {birthTime, gender, age} = extractInfoFromID(row.idCode)
formData.value.gender = gender
@ -316,6 +318,7 @@ onMounted(() => {
<template>
<div class="container">
<!--查询条件-->
<header>
<el-form>
@ -464,21 +467,21 @@ onMounted(() => {
<div class="flex v-center">
<el-button
type="primary"
text
link
@click="handleDetail(row)"
>详情
</el-button
>
<el-button
type="primary"
text
link
@click="handleUpDate(row)"
>
编辑
</el-button>
<el-button
type="danger"
text
link
@click="handleDel(row)"
>
删除
@ -487,6 +490,19 @@ onMounted(() => {
</template>
</el-table-column>
</el-table>
</div>
<div class="flex end mt-8">
<el-pagination
@size-change="getList"
@current-change="getList"
:page-sizes="[10, 20, 50]"
v-model:page-size="query.size"
v-model:current-page="query.current"
layout="total, sizes, prev, pager, next"
:total="total"
>
</el-pagination>
</div>
</main>
<!-- 编辑表单-->
@ -510,6 +526,7 @@ onMounted(() => {
<el-row :gutter="20">
<el-col :span="6">姓名</el-col>
<el-col :span="6">警号</el-col>
<el-col :span="6">单位</el-col>
</el-row>
</template>
<el-option v-for="(item,key) in users" :key="key" :label="item.name"
@ -517,6 +534,7 @@ onMounted(() => {
<el-row :gutter="20">
<el-col :span="6">{{item.name}}</el-col>
<el-col :span="6">{{item.empNo}}</el-col>
<el-col :span="6">{{item.departShortName}}</el-col>
</el-row>
</el-option>
</el-select>
@ -677,7 +695,7 @@ onMounted(() => {
<el-form-item label="开始日期" prop="startTime">
<el-date-picker
v-model="formData.startTime"
type="datetime"
type="date"
placeholder="请选择"
value-format="YYYY-MM-DD HH:mm"
time-format="HH:mm"
@ -690,7 +708,7 @@ onMounted(() => {
<el-form-item label="结束日期" prop="endTime">
<el-date-picker
v-model="formData.endTime"
type="datetime"
type="date"
placeholder="请选择"
value-format="YYYY-MM-DD HH:mm"
time-format="HH:mm"
@ -764,28 +782,28 @@ onMounted(() => {
<el-col :span="12">
<el-form-item label="出生日期" prop="birthTime">
{{ timeFormat(formData.birthTime) || '/' }}
{{formData.birthTime ? timeFormat(formData.birthTime) : '/' }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="入党(团)时间" prop="joinPartyTime">
{{formData.joinPartyTime ? timeFormat(formData.joinPartyTime) : '/' }}
{{ timeFormat(formData.joinPartyTime) || '/' }}
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="参加工作时间" prop="joinWorkTime">
{{formData.joinWorkTime ? timeFormat(formData.joinWorkTime) : '/' }}
{{ timeFormat(formData.joinWorkTime) || '/' }}
</el-form-item>
</el-col>
<el-col :span="12" label="参加公安工作时间" prop="joinPoliceTime">
<el-form-item label="参加公安工作时间" prop="joinPoliceTime">
{{formData.joinPoliceTime ? timeFormat(formData.joinPoliceTime) : '/' }}
{{ timeFormat(formData.joinPoliceTime) || '/' }}
</el-form-item>
</el-col>
@ -852,13 +870,14 @@ onMounted(() => {
<el-row>
<el-col :span="12">
<el-form-item label="开始日期" prop="startTime">
{{ timeFormat(formData.startTime) || '/' }}
{{formData.startTime ? timeFormat(formData.startTime) : '/' }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="结束日期" prop="endTime">
{{formData.endTime ? timeFormat(formData.endTime) : '/' }}
{{ timeFormat(formData.endTime) || '/' }}
</el-form-item>
</el-col>
</el-row>

Loading…
Cancel
Save