Browse Source

fix:1、信访投诉大屏中央数字跳转带时间2、修复初访重访&群众集访数据不准确&添加筛选条件(国家信访、公安部信访)3、信访投诉占比饼图4、追责问责情况占比饼图数据绑定

main
pengwei 9 months ago
parent
commit
63e1d07815
  1. 9
      src/api/screen/mail.ts
  2. 22
      src/utils/util.ts
  3. 22
      src/views/data/Gabxf.vue
  4. 20
      src/views/data/Gjxf.vue
  5. 17
      src/views/data/Mail12337.vue
  6. 16
      src/views/data/Mailbox.vue
  7. 61
      src/views/datav/MailVisits.vue
  8. 23
      src/views/work/Query.vue

9
src/api/screen/mail.ts

@ -33,3 +33,12 @@ export function getEntanglementAndMassMail(times) {
url: `/datav/mailVisits/getEntanglementAndMassMail?beginTime=${times[0]}&endTime=${times[1]}`
});
}
//追责问责情况
export function getResultCount(times){
return request.get({
url:`/datav/mailVisits/getResultCount?beginTime=${times[0]}&endTime=${times[1]}`
})
}

22
src/utils/util.ts

@ -124,14 +124,24 @@ export const timeFormat = (dateTime: number, fmt = 'yyyy-mm-dd') => {
return fmt
}
/**
*
* */
export const getYearTime = ()=>{
const end = timeFormat(new Date(),'yyyy-mm-dd hh:MM:ss');
const currentYear = new Date().getFullYear();
const start = new Date(currentYear, 0, 1);
return [timeFormat(start,'yyyy-mm-dd hh:MM:ss'),end]
}
export const timeDiffSeconds = (dateStr1: string, dateStr2: string, fmt: string) => {
return moment(dateStr1, fmt).diff(moment(dateStr2, fmt), 'seconds')
}
/**
*
* @param seconds
* @returns
*
* @param seconds
* @returns
*/
export const formatTimeText = (seconds: number) => {
if (!seconds || seconds <= 0) {
@ -281,8 +291,8 @@ export function validatorIdCard(rule: object, code: string, callback: any) {
/**
*
* @param {*} phonenumber
* @returns
* @param {*} phonenumber
* @returns
*/
export function validatorPhone(rule: object, phonenumber: string, callback: any) {
if (!phonenumber) {
@ -385,4 +395,4 @@ export function getGenderFromIdCode(idCode) {
export function disabledDate(time) {
return time.getTime() < moment("1949-10-01", "YYYY-MM-DD").valueOf();
}
}

22
src/views/data/Gabxf.vue

@ -3,7 +3,7 @@
<header>
<el-form :label-width="114">
<el-row>
<el-col :span="6">
<el-form-item label="登记时间">
<date-time-range-picker-ext
@ -359,7 +359,7 @@
</el-dialog>
</template>
<script setup>
import { BASE_PATH } from "@/api/request";
import {
importPetitionComplaint,
listPetitionComplaint,
@ -368,16 +368,19 @@ import {
import { ProblemSources, DistributionState } from "@/enums/dictEnums";
import feedback from "@/utils/feedback";
import { getDictLable } from "@/utils/util";
import { getDictLable,getYearTime } from "@/utils/util";
import useCatchStore from "@/stores/modules/catch";
const route = useRoute()
const catchStore = useCatchStore();
const dict = catchStore.getDicts([
"distributionState",
"initialPetition"
]);
const query = ref({
size: 10,
current: 1,
@ -388,12 +391,23 @@ const query = ref({
const list = ref([]);
const total = ref(0);
function getList() {
listPetitionComplaint(query.value).then((data) => {
list.value = data.records;
total.value = data.total;
});
}
//
watch(()=>route.query.toString(),
()=>{
if(route.query.open){
query.value.createTime=getYearTime()
}
getList()
},{immediate:true,deep:true})
function reset() {
query.value = {
size: 10,
@ -450,4 +464,4 @@ function handleDetail(row) {
}
</script>
<style lang="scss" scoped>
</style>
</style>

20
src/views/data/Gjxf.vue

@ -358,12 +358,12 @@ import {
} from "@/api/data/petitionComplaint";
import { ProblemSources, DistributionState } from "@/enums/dictEnums";
import feedback from "@/utils/feedback";
import { getDictLable } from "@/utils/util";
import { getDictLable ,getYearTime} from "@/utils/util";
import useCatchStore from "@/stores/modules/catch";
const catchStore = useCatchStore();
const dict = catchStore.getDicts(["distributionState", "initialPetition"]);
const route = useRoute()
const query = ref({
size: 10,
current: 1,
@ -371,15 +371,29 @@ const query = ref({
problemSourcesCode: ProblemSources.GJXFPT,
});
const list = ref([]);
const total = ref(0);
function getList() {
listPetitionComplaint(query.value).then((data) => {
list.value = data.records;
total.value = data.total;
});
}
//
watch(()=>route.query.toString(),
()=>{
if(route.query.open){
query.value.createTime=getYearTime()
}
getList()
},{immediate:true,deep:true})
function reset() {
query.value = {
size: 10,
@ -431,4 +445,4 @@ function handleDetail(row) {
}
</script>
<style lang="scss" scoped>
</style>
</style>

17
src/views/data/Mail12337.vue

@ -33,7 +33,7 @@
<el-col :span="6">
<el-form-item label="登记时间">
<date-time-range-picker-ext
v-model="query.discoverTime"
v-model="query.discoveryTime"
/>
</el-form-item>
</el-col>
@ -613,7 +613,7 @@ import { getIdByOriginId } from "@/api/work/negative";
import { ProblemSources, DistributionState } from "@/enums/dictEnums";
import feedback from "@/utils/feedback";
import { getDictLable } from "@/utils/util";
import { getDictLable ,getYearTime} from "@/utils/util";
import useCatchStore from "@/stores/modules/catch";
import {
@ -632,7 +632,7 @@ const dict = catchStore.getDicts([
"businessType",
]);
const router = useRouter();
const route = useRoute();
const query = ref({
size: 10,
@ -642,9 +642,18 @@ const query = ref({
const list = ref([]);
const total = ref(0);
//
watch(()=>route.query.toString(),
()=>{
if(route.query.open){
query.value.createTime=getYearTime()
}
getList()
},{immediate:true,deep:true})
function getList() {
listPetitionComplaint12337(query.value).then((data) => {
list.value = data.records;
total.value = data.total;
});
@ -787,4 +796,4 @@ function handleDetail(row) {
activeRow.value = row;
detailShow.value = true;
}
</script>
</script>

16
src/views/data/Mailbox.vue

@ -151,9 +151,9 @@ import {
listMailbox
} from "@/api/data/mailbox";
import feedback from "@/utils/feedback";
import { getDictLable } from "@/utils/util";
import { getDictLable, getYearTime} from "@/utils/util";
import useCatchStore from "@/stores/modules/catch";
const route = useRoute()
const catchStore = useCatchStore();
const dict = catchStore.getDicts(["distributionState"]);
@ -165,6 +165,16 @@ const query = ref({
const list = ref([]);
const total = ref(0);
//
// watch(()=>route.query.toString(),
// ()=>{
// if(route.query.open){
// query.value.createTime=getYearTime()
// }
// getList()
// },{immediate:true,deep:true})
function getList() {
listMailbox(query.value).then((data) => {
list.value = data.records;
@ -193,4 +203,4 @@ function handleAction(row) {
</script>
<style lang="scss" scoped>
</style>
</style>

61
src/views/datav/MailVisits.vue

@ -77,7 +77,7 @@
</datav-tab-item>
</datav-tabs>
</datav-tab-item>
<datav-tab-item label="部委支队" name="2">
<datav-tab-item label="局属单位" name="2">
<datav-tabs
v-model="bwzdActiveTab"
type="bottom-button"
@ -116,7 +116,7 @@
</datav-card>
<datav-card title="信访问题类型">
<datav-card title="信访投诉占比">
<v-charts
style="height: 300px"
:option="option2"
@ -139,32 +139,32 @@
:value="overview.manageMail"
title="局长信箱"
style="width: 20%"
@click="open('/data/Mailbox')"
@click="open('/query?open=Mailbox')"
/>
<datav-statistic
:value="overview.totalMail"
title="信访总数"
style="width: 20%"
@click="open('/query')"
/>
<datav-statistic
:value="overview.countryMail"
title="国家信访"
style="width: 20%"
@click="open('/data/gjxf')"
@click="open('/data/gjxf?open=view')"
/>
<datav-statistic
:value="overview.policeMail"
title="公安部信访"
style="width: 20%"
@click="open('/data/gabxf')"
@click="open('/data/gabxf?open=view')"
/>
<datav-statistic
:value="overview.numberMail"
title="12337信访"
style="width: 20%"
@click="open('/data/mail12337')"
@click="open('/query?open=12337')"
/>
</div>
@ -277,7 +277,7 @@
</datav-tab-item>
</datav-tabs>
</datav-tab-item>
<datav-tab-item label="部委支队" name="2">
<datav-tab-item label="局属单位" name="2">
<datav-tabs
type="bottom-button"
>
@ -336,7 +336,8 @@ import {
getEntanglementAndMassMail,
getFirstAndRepeatMail,
getMailMapIcon,
getMailTrend
getMailTrend,
getResultCount
} from "@/api/screen/mail.ts";
import {mapOrgNameMapping} from "@/enums/orgMapping.js";
@ -788,7 +789,7 @@ const countryTrend = ref({
},
],
});
const option2 = {
const option2 = ref({
series: [
{
type: "pie",
@ -796,23 +797,15 @@ const option2 = {
label: {
color: "#fff",
},
data: [
{value: 1282, name: "不作为"},
{value: 426, name: "求助咨询"},
{value: 284, name: "乱作为"},
{value: 131, name: "其他"},
{value: 95, name: "违法违纪违规"},
{value: 72, name: "慢作为"},
{value: 24, name: "意见建议"},
{value: 5, name: "纪律作风"},
],
data: [],
},
],
tooltip: {
trigger: "item",
},
};
const option3 = {
});
const option3 =ref( {
tooltip: {
trigger: "item",
},
@ -824,19 +817,27 @@ const option3 = {
color: "#fff",
},
data: [
{value: 10, name: "通报批评"},
{value: 2, name: "责令检查"},
{value: 1, name: "诫勉谈话"},
{value: 1, name: "批评教育"},
],
},
],
};
});
// endregion
// region
//
const getResultCountData = async (timeValue = time.value)=>{
const res = await getResultCount(timeValue);
let resultCountArray = []
Object.keys(res).forEach(s=>{
resultCountArray.push({name:s,value:res[s]})
})
option3.value.series[0].data=resultCountArray;
}
getResultCountData();
// region
const getFirstAndRepeatMailData = async (timeValue = time.value) => {
const res = await getFirstAndRepeatMail(timeValue)
fxjsFirstAndRepeatOverview.value = res.fxjsFirstAndRepeatOverview;
@ -853,6 +854,10 @@ const getFirstAndRepeatMailData = async (timeValue = time.value) => {
const getAllMailCountData = async (timeValue = time.value) => {
const res = await getAllMailCount(timeValue)
overview.value = res.overview;
option2.value.series[0].data= [{value:overview.value.manageMail,name:"局长信箱"},
{value:overview.value.countryMail,name:"国家信访"},
{value:overview.value.policeMail,name:"公安部信访"},
{value:overview.value.numberMail,name:"12337信访"},]
}

23
src/views/work/Query.vue

@ -818,7 +818,7 @@ import {
updateNegative,
transferTodo,
} from "@/api/work/negative";
import { getDictLable, formatTimeText, getInvolveProblem } from "@/utils/util";
import { getDictLable, formatTimeText, getInvolveProblem ,getYearTime} from "@/utils/util";
import feedback from "@/utils/feedback";
import { ProcessingStatus } from "@/enums/flowEnums";
@ -851,7 +851,7 @@ const list = ref([]);
const total = ref(0);
const loading = ref(true);
function getList() {
function getList() {
loading.value = true;
listNegative(query.value).then((data) => {
list.value = data.records;
@ -894,7 +894,7 @@ watch(
}
);
function updateQuery() {
async function updateQuery() {
if (route.query.processingStatus) {
query.value.processingStatus = [route.query.processingStatus];
}
@ -904,6 +904,21 @@ function updateQuery() {
moment().endOf("day").format("YYYY-MM-DD HH:mm:ss"),
];
}
//12337
if(route.query.open && route.query.open === '12337'){
query.value.crtTime =getYearTime()
query.value.problemSourcesCode = ['24']
await nextTick()
}
//
if(route.query.open && route.query.open === 'Mailbox'){
query.value.crtTime =getYearTime()
query.value.problemSourcesCode = ['23']
await nextTick()
}
if (route.query.extensionFlag === "true") {
query.value.extensionFlag = true;
query.value.processingStatus = ['signing', 'processing', 'approval'];
@ -993,4 +1008,4 @@ const remainingTimeFlag = ref(true);
}
}
}
</style>
</style>

Loading…
Cancel
Save