Browse Source

fit:现场专项大屏调整,左右tab不联动切换,补充通报期数(含督察通报表单与对应问题清单)

main
pengwei 6 months ago
parent
commit
3c96eb5e13
  1. 1
      src/api/rightsComfort/supervision.ts
  2. 29
      src/api/screen/subScreen/subOneSupervisionNotify.ts
  3. 9
      src/api/superviseReport/superviseReport.ts
  4. 283
      src/views/datav/SceneInsp.vue
  5. 863
      src/views/datav/subonedatav/SubOneSceneInsp.vue

1
src/api/rightsComfort/supervision.ts

@ -8,6 +8,7 @@ export function getListData(query){
}) })
} }
//获取数据详情 //获取数据详情
export function getDetail(id){ export function getDetail(id){
return request.get({ return request.get({

29
src/api/screen/subScreen/subOneSupervisionNotify.ts

@ -33,34 +33,9 @@ export function getSubOneSupervisionMap(departId, times) {
}); });
} }
export function getSubOneYellowBetDrug(departId, times) { export function getSubOneYellowBetDrug(departId, times,type) {
return request.get({ return request.get({
url: `/datav/sub1/supervisonNotify/getSubOneYellowBetDrug?departId=${departId}&beginTime=${times[0]}&endTime=${times[1]}` url: `/datav/sub1/supervisonNotify/getSubOneYellowBetDrug?departId=${departId}&beginTime=${times[0]}&endTime=${times[1]}&type=${type}`
});
}
export function getSubOneGunController(departId, times) {
return request.get({
url: `/datav/sub1/supervisonNotify/getSubOneGunController?departId=${departId}&beginTime=${times[0]}&endTime=${times[1]}`
});
}
export function getSubOneCompanyProblem(departId, times) {
return request.get({
url: `/datav/sub1/supervisonNotify/getSubOneCompanyProblem?departId=${departId}&beginTime=${times[0]}&endTime=${times[1]}`
});
}
export function getSubOneHandleCase(departId, times) {
return request.get({
url: `/datav/sub1/supervisonNotify/getSubOneHandleCase?departId=${departId}&beginTime=${times[0]}&endTime=${times[1]}`
});
}
export function getSubOneCheckBeer(departId, times) {
return request.get({
url: `/datav/sub1/supervisonNotify/getSubOneCheckBeer?departId=${departId}&beginTime=${times[0]}&endTime=${times[1]}`
}); });
} }

9
src/api/superviseReport/superviseReport.ts

@ -9,6 +9,15 @@ export function getListData(query) {
query query
}); });
} }
//获取分县
export function getSubListData(query){
return request.get({
url:'/supervise/report/subQueryPage',
query: query
})
}
/** /**
* *
* */ * */

283
src/views/datav/SceneInsp.vue

@ -21,7 +21,7 @@
class="descriptions_content" class="descriptions_content"
> >
{{ {{
fxsjRankOverview.proTotal leftOverview.proTotal
}} }}
</div> </div>
<div class="descriptions_label"> <div class="descriptions_label">
@ -37,7 +37,7 @@
class="descriptions_content" class="descriptions_content"
> >
{{ {{
fxsjRankOverview.processingNumber leftOverview.processingNumber
}} }}
</div> </div>
<div class="descriptions_label"> <div class="descriptions_label">
@ -53,7 +53,7 @@
class="descriptions_content" class="descriptions_content"
> >
{{ {{
fxsjRankOverview.completedNumber leftOverview.completedNumber
}} }}
</div> </div>
<div class="descriptions_label"> <div class="descriptions_label">
@ -69,7 +69,7 @@
class="descriptions_content" class="descriptions_content"
> >
{{ {{
fxsjRankOverview.completedRate leftOverview.completedRate
}}% }}%
</div> </div>
<div class="descriptions_label"> <div class="descriptions_label">
@ -100,7 +100,7 @@
class="descriptions_content" class="descriptions_content"
> >
{{ {{
jsdwRankOverview.proTotal leftOverview.proTotal
}} }}
</div> </div>
<div class="descriptions_label"> <div class="descriptions_label">
@ -116,7 +116,7 @@
class="descriptions_content" class="descriptions_content"
> >
{{ {{
jsdwRankOverview.processingNumber leftOverview.processingNumber
}} }}
</div> </div>
<div class="descriptions_label"> <div class="descriptions_label">
@ -132,7 +132,7 @@
class="descriptions_content" class="descriptions_content"
> >
{{ {{
jsdwRankOverview.completedNumber leftOverview.completedNumber
}} }}
</div> </div>
<div class="descriptions_label"> <div class="descriptions_label">
@ -148,7 +148,7 @@
class="descriptions_content" class="descriptions_content"
> >
{{ {{
jsdwRankOverview.completedRate leftOverview.completedRate
}}% }}%
</div> </div>
<div class="descriptions_label"> <div class="descriptions_label">
@ -188,34 +188,34 @@
<datav-statistic <datav-statistic
:value="overview.problemNumber" :value="overview.problemNumber"
title="通报问题数" title="通报问题数"
style="width: 20%" style="width: 16.66%"
/>
<datav-statistic
:value="overview.reportNumber"
title="通报期数"
style="width: 16.66%"
@click="handleShow"
/> />
<datav-statistic <datav-statistic
:value="overview.processingNumber" :value="overview.processingNumber"
title="办理中" title="办理中"
style="width: 20%" style="width: 16.66%"
/> />
<datav-statistic <datav-statistic
:value="overview.completedNumber" :value="overview.completedNumber"
title="已办结" title="已办结"
style="width: 20%" style="width: 16.66%"
/> />
<datav-statistic <datav-statistic
:value="overview.departNumber" :value="overview.departNumber"
title="问责单位数" title="问责单位数"
style="width: 20%" style="width: 16.66%"
/> />
<datav-statistic <datav-statistic
:value="overview.personNumber" :value="overview.personNumber"
title="问责人次" title="问责人次"
style="width: 20%" style="width: 16.66%"
/> />
<!-- <datav-statistic-->
<!-- :value="overview.completedRate"-->
<!-- value-unit="%"-->
<!-- title="办结率"-->
<!-- style="width: 16.66%"-->
<!-- />-->
</div> </div>
<v-charts <v-charts
style="height: 450px" style="height: 450px"
@ -286,7 +286,7 @@
class="descriptions_content" class="descriptions_content"
> >
{{ {{
fxsjYellowBetOverview.proTotal rightOverview.proTotal
}} }}
</div> </div>
<div <div
@ -304,7 +304,7 @@
class="descriptions_content" class="descriptions_content"
> >
{{ {{
fxsjYellowBetOverview.processingNumber rightOverview.processingNumber
}} }}
</div> </div>
<div <div
@ -322,7 +322,7 @@
class="descriptions_content" class="descriptions_content"
> >
{{ {{
fxsjYellowBetOverview.completedNumber rightOverview.completedNumber
}} }}
</div> </div>
<div <div
@ -340,7 +340,7 @@
class="descriptions_content" class="descriptions_content"
> >
{{ {{
fxsjYellowBetOverview.completedRate rightOverview.completedRate
}}% }}%
</div> </div>
<div <div
@ -376,7 +376,7 @@
class="descriptions_content" class="descriptions_content"
> >
{{ {{
jsdwYellowBetOverview.proTotal rightOverview.proTotal
}} }}
</div> </div>
<div <div
@ -394,7 +394,7 @@
class="descriptions_content" class="descriptions_content"
> >
{{ {{
jsdwYellowBetOverview.processingNumber rightOverview.processingNumber
}} }}
</div> </div>
<div <div
@ -412,7 +412,7 @@
class="descriptions_content" class="descriptions_content"
> >
{{ {{
jsdwYellowBetOverview.completedNumber rightOverview.completedNumber
}} }}
</div> </div>
<div <div
@ -430,7 +430,7 @@
class="descriptions_content" class="descriptions_content"
> >
{{ {{
jsdwYellowBetOverview.completeRate rightOverview.completeRate
}}% }}%
</div> </div>
<div <div
@ -482,6 +482,162 @@
</el-scrollbar> </el-scrollbar>
<file-preview :files="files" v-model:show="filePreviewShow" /> <file-preview :files="files" v-model:show="filePreviewShow" />
<el-dialog v-model="show" width="70vw" title="通报报告" >
<div class="table-container" v-loading="loading">
<el-table
:data="listData"
ref="tableRef"
style="width: 100%"
>
<el-table-column prop="reportName" label="督察报告名称"></el-table-column>
<el-table-column prop="crtTime" label="创建时间" >
<template #default="{row}">
{{ timeFormat(row.crtTime) }}
</template>
</el-table-column>
<el-table-column prop="superviseNumber" label="督察问题数">
<template #default="{row}">
<el-button type="primary" link @click="handleNegativeTable(row)">{{row.superviseNumber}}</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="flex end mt-8">
<el-pagination
@size-change="getReportList"
@current-change="getReportList"
: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"
/>
</div>
</el-dialog>
<!-- 督察报告关联问题-->
<el-dialog :title="`督察报告关联问题`" v-model="negativeShow" width="90vw" >
<el-table :data="negativeTable" v-loading="loading">
<el-table-column
label="问题录入时间"
prop="crtTime"
width="150"
sortable="custom"
/>
<el-table-column
label="问题发现时间"
prop="discoveryTime"
width="150"
sortable="custom"
/>
<el-table-column
label="问题来源"
prop="problemSources"
width="110"
show-overflow-tooltip
/>
<el-table-column
label="业务类别"
prop="businessTypeName"
width="110"
/>
<el-table-column
label="问题内容"
prop="thingDesc"
show-overflow-tooltip
/>
<el-table-column label="办理单位" show-overflow-tooltip>
<template #default="{ row }">
<span
>{{ row.handleSecondDepartName
}}{{ row.handleThreeDepartName }}</span
>
</template>
</el-table-column>
<el-table-column
label="是否属实"
prop="checkStatusName"
width="100"
align="center"
/>
<el-table-column
label="流程限时"
width="150"
align="center"
v-if="remainingTimeFlag"
>
<template #default="{ row }">
<countdown
:time="row.remainingDuration"
v-if="
row.remainingDuration &&
row.processingStatus !==
ProcessingStatus.COMPLETED
"
/>
<el-tag
v-else-if="row.handleTimeout"
type="danger"
effect="dark"
>办结超时
{{ formatTimeText(row.handleTimeout) }}</el-tag
>
</template>
</el-table-column>
<el-table-column label="办理状态" width="110">
<template #default="{ row }">
<el-tag
:type="
row.processingStatus ===
ProcessingStatus.COMPLETED
? 'success'
: 'primary'
"
v-if="row.processingStatus"
>{{
getDictLable(
dict.processingStatus,
row.processingStatus
)
}}</el-tag
>
</template>
</el-table-column>
<el-table-column
label="当前处理对象"
prop="currentProcessingObject"
show-overflow-tooltip
>
<template #default="{ row }">
<span
v-if="
row.processingStatus ===
ProcessingStatus.COMPLETED
"
></span
>
<span v-else>{{
row.currentProcessingObject
}}</span>
</template>
</el-table-column>
</el-table>
<div class="flex end mt-8">
<el-pagination
@size-change="getNegativePageFun"
@current-change="getNegativePageFun"
:page-sizes="[10, 20, 50, 100]"
v-model:page-size="negativeQuery.size"
v-model:current-page="negativeQuery.current"
layout="total, sizes, prev, pager, next"
:total="negativeTotal"
>
</el-pagination>
</div>
</el-dialog>
</template> </template>
<script setup> <script setup>
@ -504,15 +660,21 @@ import { mapOrgNameMapping } from "@/enums/orgMapping.js";
import useCatchStore from "@/stores/modules/catch"; import useCatchStore from "@/stores/modules/catch";
import { onMounted } from "vue"; import { onMounted } from "vue";
import {getListData,getNegativePageByQuery} from "@/api/superviseReport/superviseReport";
import {timeFormat,formatTimeText, getDictLable, getInvolveProblem} from "@/utils/util";
import {ProcessingStatus} from "@/enums/flowEnums";
const catchStore = useCatchStore(); const catchStore = useCatchStore();
const dict = catchStore.getDicts(["specialSupervision"]); const dict = catchStore.getDicts(["specialSupervision","suspectProblem","processingStatus"]);
console.log('dict',dict) const show =ref(false)
const dictData = computed(()=>{ const dictData = computed(()=>{
return dict?.specialSupervision?.filter((s)=>s.dictLabel !== '枪支管理') return dict?.specialSupervision?.filter((s)=>s.dictLabel !== '枪支管理')
}) })
// region // region
const time = ref([ const time = ref([
moment().startOf("year").format("YYYY-MM-DD"), moment().startOf("year").format("YYYY-MM-DD"),
@ -534,12 +696,13 @@ const overview = ref({
personNumber: 0, personNumber: 0,
completedRate: 0, completedRate: 0,
}); // }); //
const leftOverview = ref({});
const fxsjRankOverview = ref({}); // const fxsjRankOverview = ref({}); //
const jsdwRankOverview = ref({}); // const jsdwRankOverview = ref({}); //
const fxsjChangedRankList = ref([]); // const fxsjChangedRankList = ref([]); //
const jsdwChangedRankList = ref([]); // const jsdwChangedRankList = ref([]); //
const wtlxList = ref([]); // const wtlxList = ref([]); //
const rightOverview = ref({});
const fxsjYellowBetOverview = ref({ const fxsjYellowBetOverview = ref({
proTotal: 0, proTotal: 0,
processingNumber: 0, processingNumber: 0,
@ -790,6 +953,7 @@ const proTrend = ref({
// region // region
const getChangedRankData = async () => { const getChangedRankData = async () => {
const res = await getChangedRank(time.value); const res = await getChangedRank(time.value);
leftOverview.value =res.overview;
fxsjRankOverview.value = res.fxsjRankOverview; fxsjRankOverview.value = res.fxsjRankOverview;
jsdwRankOverview.value = res.jsdwRankOverview; jsdwRankOverview.value = res.jsdwRankOverview;
fxsjChangedRankList.value = res.fxsjChangedRankList; fxsjChangedRankList.value = res.fxsjChangedRankList;
@ -846,6 +1010,7 @@ const getSupervisionTrendData = async () => {
}; };
const getYellowBetDrugData = async () => { const getYellowBetDrugData = async () => {
const res = await getYellowBetDrug(time.value, zxdcProRankTab.value); const res = await getYellowBetDrug(time.value, zxdcProRankTab.value);
rightOverview.value = res.overView;
fxsjYellowBetOverview.value = res.countyOverview; fxsjYellowBetOverview.value = res.countyOverview;
jsdwYellowBetOverview.value = res.bureauOverview; jsdwYellowBetOverview.value = res.bureauOverview;
fxsjYellowBetRankList.value = res.countyRankList; fxsjYellowBetRankList.value = res.countyRankList;
@ -1114,6 +1279,64 @@ function handlePerviewFile(msg) {
} }
} }
const handleShow =()=>{
show.value=true
getReportList()
}
const tableRef = ref(null)
const query = ref({
current: 1,
size: 10,
departBranch:false
})
const listData = ref([]);
const total = ref(0);
const loading = ref(false);
/**
* 获取表单数据
* */
const getReportList =async ()=>{
loading.value=true
try{
const res = await getListData(query.value);
listData.value=res.records;
total.value = res.total;
loading.value = false
}catch (e) {
loading.value = false
}
}
//
const negativeShow = ref(false)
const negativeTable = ref();
const negativeQuery = ref({
current: 1,
size: 10,
departBranch:false
})
const negativeTotal = ref(0);
const negativeLoging = ref(false);
const handleNegativeTable =async (row)=>{
if(row.superviseNumber > 0){
try{
negativeLoging.value=true;
await getNegativePageFun(row);
negativeShow.value = true;
}catch (e){
console.log("督察问题获取失败")
negativeLoging.value=false;
}
}
}
const getNegativePageFun = async (row)=>{
negativeQuery.value.id =row.id;
const res = await getNegativePageByQuery(row);
negativeTable.value =res.records;
negativeTotal.value = res.total;
negativeLoging.value=false;
}
</script> </script>

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

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save