From c0465448e3f9b9ee962aac9e206ffc9ae0981387 Mon Sep 17 00:00:00 2001
From: mk <2403457699@qq.com>
Date: Wed, 19 Mar 2025 14:14:36 +0800
Subject: [PATCH 1/2] =?UTF-8?q?12345=E4=BA=8B=E4=BB=B6=E5=88=86=E6=9E=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../modules/shequzhili/analysis/index.vue | 1944 +++++++++--------
1 file changed, 1044 insertions(+), 900 deletions(-)
diff --git a/src/views/modules/shequzhili/analysis/index.vue b/src/views/modules/shequzhili/analysis/index.vue
index 38b2800af..819a87000 100644
--- a/src/views/modules/shequzhili/analysis/index.vue
+++ b/src/views/modules/shequzhili/analysis/index.vue
@@ -27,13 +27,13 @@
-
事件统计
+ 镇街办件情况总览
-
{{ analysisList.responseRate}}%
+
98%
响应率

@@ -43,7 +43,7 @@
-
{{ analysisList.returnRate? analysisList.returnRate:0}}%
+
98%
办结率

@@ -53,7 +53,7 @@
-
{{ analysisList.resolveRate? analysisList.resolveRate:0}}%
+
98%
最终解决率

@@ -63,7 +63,7 @@
-
{{ analysisList.satisfiedRate? analysisList.satisfiedRate:0}}%
+
98%
最终满意率

@@ -74,13 +74,12 @@
-
派件/派件
+
派件/派件
{{ analysisList.total }}
-
- 收件数
+
收件数
@@ -95,7 +94,7 @@
-
办理
+
办理

@@ -114,7 +113,7 @@
-
办结
+
办结

@@ -128,12 +127,12 @@
content="在统计时段内所有“未办结”状态的事件数" placement="top">
-->
-
{{ analysisList.inTimeResolveNum?analysisList.inTimeResolveNum:"0"}}
+
{{ analysisList.total }}
按时办结数
-
{{ analysisList.total?analysisList.total:"0"}}
+
{{ analysisList.total }}
超期办结数
@@ -142,11 +141,11 @@
-
退件/不合规申请件
+
退件/不合规申请件

-
{{ analysisList.returnTotal }}
+
{{ analysisList.total }}
退件数
@@ -156,7 +155,7 @@
content="在统计时段内进行“退件”操作且未超过退件时限的事件数" placement="top">
-
{{ analysisList.overTimeTotal }}
+
{{ analysisList.total }}
超期退件数
@@ -172,16 +171,16 @@
-
退件/不合规申请件
+
退件/不合规申请件

-
{{ analysisList.tackleWarehouseTotal }}
+
{{ analysisList.total }}
攻坚事件数
-
{{ analysisList.sensitiveTotal }}
+
{{ analysisList.total }}
敏感渠道来源件数
@@ -197,11 +196,11 @@
-
+
-
+
-
+
{{ scope.row.proportion }}%
@@ -213,7 +212,7 @@
-
+
{{ item.label }}
@@ -224,18 +223,18 @@
-
+
-
+
{{ scope.row.totalRate }}%
-
-
-
@@ -264,35 +263,65 @@
-
+
-
-
-
社区工单量统计
-
-
+
+
-
+
-
+
{{ scope.row.totalRate }}%
-
-
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
-
+
存在主要问题
@@ -309,7 +338,7 @@
- 查看
+ 查看
@@ -318,9 +347,6 @@
➤ 同一人员重复投诉
-
- {{ scope.row.name? scope.row.name:"匿名"}}
-
- 查看
+ 查看
@@ -363,7 +389,7 @@
- 查看
+ 查看
@@ -382,7 +408,7 @@
- 查看
+ 查看
@@ -433,7 +459,7 @@
+ v-if="summarizeDialog" @close="handleCloseSummarizeDialog" center>
@@ -447,369 +473,380 @@ import eventInfo from "../../shequzhili/event/cpts/event-info.vue";
import { requestPost, requestGet } from "@/js/dai/request";
import nextTick from "dai-js/tools/nextTick";
import { mapGetters } from "vuex";
-import axios from "axios";
import * as echarts from "echarts";
import util from "@js/util.js";
import TableRow from './TableRow.vue';
import mobileList from "./mobileList";
import areaNoSameList from "./areaNoSameList";
import addComplainList from "./addComplainList";
+import echartsAffairs from "./cpts/echarts-affairs.vue";
import markDown from "./markDown.vue";
-
export default {
- components: {TableRow,formList,eventInfo,areaSameList,mobileList,areaNoSameList,addComplainList,markDown},
+ components: { TableRow, formList, eventInfo, areaSameList, mobileList, areaNoSameList, addComplainList, echartsAffairs ,markDown},
data() {
- return {
- starttime:"",
- endtime:"",
- level:1,
- tableList:[],
- communityList:[],
- departmentList:[],
- searchH: 20,
- formData: {
- queryDateStart: "",
- queryDateEnd: "",
- },
-
- agencyLevel:'',
-
- orgData: {
- id: "",
- level: "agency",
- },
- analysisList:{},
-
- // 内容字段
- report:{
- streetName:"",
- overallOperation:"",
- geoStatis:"",
- departHotline:"",
- hotDemand:"",
- },
-
- addressData:[],
- mobileData:[],
- addressMobileData:[],
- addComplainData:[],
-
- eventCategorys:[],
-
- categoryPie: {},
- communityChart: {},
- departChart: {},
- hotlineChart: {},
-
- categoryCountShow:false,
- communityCountShow:false,
- departCountShow:false,
- subCategoryCountShow:false,
-
- showFormList: false,
- showFormDetail: false,
- showAreaSameEventList: false,
- showMobileEventList: false,
- showAreaNoSameEventList: false,
- showAddEventList: false,
-
- recId: "",
- departId:"",
- communityId:"",
-
- eventId: "",
- eventDetailData: {},
- pageType: "info",
-
- mergeObj: {},
- mergeArr: ['address'],
-
-
-
+ return {
+ selectedIndex: 0,
+ titleList: [
+ {
+ value: 0,
+ label: '部门科室办件情况'
+ },
+ {
+ value: 1,
+ label: '社区办件情况'
+ },
+ ],
+ starttime: "",
+ endtime: "",
+ level: 1,
+ tableList: [],
+ communityList: [],
+ departmentList: [],
+ searchH: 20,
+ formData: {
+ queryDateStart: "",
+ queryDateEnd: "",
+ },
+ agencyLevel: '',
+ orgData: {
+ id: "",
+ level: "agency",
+ },
+ analysisList: {},
+ // 内容字段
+ report: {
+ streetName: "",
+ overallOperation: "",
+ geoStatis: "",
+ departHotline: "",
+ hotDemand: "",
+ },
+ addressData: [
+ ],
+ mobileData: [],
+ addressMobileData: [],
+ addComplainData: [],
+ eventCategorys: [],
+ categoryPie: {},
+ communityChart: {},
+ departChart: {},
+ hotlineChart: {},
+ categoryCountShow: false,
+ communityCountShow: false,
+ departCountShow: false,
+ subCategoryCountShow: false,
+ showFormList: false,
+ showFormDetail: false,
+ showAreaSameEventList: false,
+ showMobileEventList: false,
+ showAreaNoSameEventList: false,
+ showAddEventList: false,
+ recId: "",
+ departId: "",
+ communityId: "",
+ eventId: "",
+ eventDetailData: {},
+ pageType: "info",
+ mergeObj: {},
+ mergeArr: ['address'],
+ categoryPieOption: {
+ tooltip: {
+ trigger: 'item'
+ },
+ legend: {
+ type: 'scroll',
+ bottom: 0,
+ },
+ series: [
+ {
+ name: '数量',
+ type: 'pie',
+ radius: '80%',
+ data: [
- categoryPieOption:{
- tooltip: {
- trigger: 'item'
- },
- legend: {
- type: 'scroll',
- bottom: 0,
- },
- series: [
- {
- name: '数量',
- type: 'pie',
- radius: '80%',
- data: [
-
- ],
- emphasis: {
- itemStyle: {
- shadowBlur: 10,
- shadowOffsetX: 0,
- shadowColor: 'rgba(0, 0, 0, 0.5)'
- }
- }
+ ],
+ emphasis: {
+ itemStyle: {
+ shadowBlur: 10,
+ shadowOffsetX: 0,
+ shadowColor: 'rgba(0, 0, 0, 0.5)'
}
- ]
- },
+ }
+ }
+ ]
+ },
- communityOption : {
- color: ['#5470C6', '#91CC75'],
- tooltip: {
- trigger: 'axis',
- axisPointer: {
- type: 'cross'
- }
- },
- grid: {
- right: '20%'
+ communityOption: {
+ color: ['#5470C6', '#91CC75'],
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: {
+ type: 'cross'
+ }
+ },
+ grid: {
+ right: '20%'
+ },
+ toolbox: {
+ feature: {
+ dataView: { show: true, readOnly: false },
+ restore: { show: true },
+ saveAsImage: { show: true }
+ }
+ },
+ legend: {
+ data: ['数量', '占比']
+ },
+ xAxis: [
+ {
+ type: 'category',
+ axisTick: {
+ alignWithLabel: true
},
- toolbox: {
- feature: {
- dataView: { show: true, readOnly: false },
- restore: { show: true },
- saveAsImage: { show: true }
+ data: [],
+ }
+ ],
+ yAxis: [
+ {
+ type: 'value',
+ name: '数量',
+ position: 'right',
+ alignTicks: true,
+ axisLine: {
+ show: true,
+ lineStyle: {
+ color: '#91CC75'
}
},
- legend: {
- data: ['数量', '占比']
- },
- xAxis: [
- {
- type: 'category',
- axisTick: {
- alignWithLabel: true
- },
- data: [],
- }
- ],
- yAxis: [
- {
- type: 'value',
- name: '数量',
- position: 'right',
- alignTicks: true,
- axisLine: {
- show: true,
- lineStyle: {
- color: '#91CC75'
- }
- },
- axisLabel: {
- formatter: '{value} 件'
- }
- },
- {
- type: 'value',
- name: '占比',
- position: 'left',
- alignTicks: true,
- axisLine: {
- show: true,
- lineStyle: {
- color: '#5470C6'
- }
- },
- axisLabel: {
- formatter: '{value} %'
- }
+ axisLabel: {
+ formatter: '{value} 件'
+ }
+ },
+ {
+ type: 'value',
+ name: '占比',
+ position: 'left',
+ alignTicks: true,
+ axisLine: {
+ show: true,
+ lineStyle: {
+ color: '#5470C6'
}
- ],
- series: [
- {
- name: '数量',
- type: 'bar',
- barWidth: 36, // 设置柱子宽度
- data: [
-
- ]
- },
- {
- name: '占比',
- type: 'line',
- yAxisIndex: 1,
- data: [
+ },
+ axisLabel: {
+ formatter: '{value} %'
+ }
+ }
+ ],
+ series: [
+ {
+ name: '数量',
+ type: 'bar',
+ barWidth: 36, // 设置柱子宽度
+ data: [
- ]
- }
]
},
+ {
+ name: '占比',
+ type: 'line',
+ yAxisIndex: 1,
+ data: [
- departOption : {
- color: ['#5470C6', '#91CC75'],
- tooltip: {
- trigger: 'axis',
- axisPointer: {
- type: 'cross'
- }
- },
- grid: {
- right: '20%'
+ ]
+ }
+ ]
+ },
+
+ departOption: {
+ color: ['#5470C6', '#91CC75'],
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: {
+ type: 'cross'
+ }
+ },
+ grid: {
+ right: '20%'
+ },
+ toolbox: {
+ feature: {
+ dataView: { show: true, readOnly: false },
+ restore: { show: true },
+ saveAsImage: { show: true }
+ }
+ },
+ legend: {
+ data: ['数量', '占比']
+ },
+ xAxis: [
+ {
+ type: 'category',
+ axisTick: {
+ alignWithLabel: true
},
- toolbox: {
- feature: {
- dataView: { show: true, readOnly: false },
- restore: { show: true },
- saveAsImage: { show: true }
+ data: [],
+ }
+ ],
+ yAxis: [
+ {
+ type: 'value',
+ name: '占比',
+ position: 'right',
+ alignTicks: true,
+ axisLine: {
+ show: true,
+ lineStyle: {
+ color: '#5470C6'
}
},
- legend: {
- data: ['数量', '占比']
- },
- xAxis: [
- {
- type: 'category',
- axisTick: {
- alignWithLabel: true
- },
- data: [],
+ axisLabel: {
+ formatter: '{value} %'
+ }
+ },
+ {
+ type: 'value',
+ name: '数量',
+ position: 'left',
+ alignTicks: true,
+ axisLine: {
+ show: true,
+ lineStyle: {
+ color: '#00264D'
}
- ],
- yAxis: [
- {
- type: 'value',
- name: '占比',
- position: 'right',
- alignTicks: true,
- axisLine: {
- show: true,
- lineStyle: {
- color: '#5470C6'
- }
- },
- axisLabel: {
- formatter: '{value} %'
- }
- },
- {
- type: 'value',
- name: '数量',
- position: 'left',
- alignTicks: true,
- axisLine: {
- show: true,
- lineStyle: {
- color: '#00264D'
- }
- },
- axisLabel: {
- formatter: '{value} 件'
+ },
+ axisLabel: {
+ formatter: '{value} 件'
+ }
+ }
+ ],
+ series: [
+ {
+ name: '数量',
+ type: 'bar',
+ barWidth: 36, // 设置柱子宽度
+ itemStyle: {
+ normal: {
+ // 定制显示(按顺序)
+ color: function (params) {
+ var colorList = ['#00BFFF', '#800080', '#008080', '#FF8C00', '#FF3333', '#6600CC', '#00FF00', '#4682B4', '#282828', '#FF4500'];
+ return colorList[params.dataIndex]
}
- }
- ],
- series: [
- {
- name: '数量',
- type: 'bar',
- barWidth: 36, // 设置柱子宽度
- itemStyle: {
- normal: {
- // 定制显示(按顺序)
- color: function(params) {
- var colorList = ['#00BFFF', '#800080', '#008080', '#FF8C00', '#FF3333', '#6600CC', '#00FF00', '#4682B4', '#282828', '#FF4500'];
- return colorList[params.dataIndex]
- }
- },
- },
- data: [
-
- ]
},
- {
- name: '占比',
- type: 'line',
- yAxisIndex: 1,
- data: [
+ },
+ data: [
- ]
- }
]
},
+ {
+ name: '占比',
+ type: 'line',
+ yAxisIndex: 1,
+ data: [
- hotlineChartOption: {
- tooltip: {
- trigger: 'axis'
- },
- legend: {
- data: ['工单数量'],
- bottom: '10%',
- icon: 'rect',
- itemWidth: 20,
- itemHeight: 5,
- itemGap: 20,
- },
- grid: {
- left: '3%',
- right: '4%',
- bottom: '25%',
- containLabel: true
- },
- toolbox: {},
-
-
- xAxis: {
- type: 'category',
- boundaryGap: true,
- data: [],
- },
- yAxis: {
- type: 'value',
- name: '单位(个)',
- min: 0,
- },
- series: [
- {
- name: '工单数量',
- type: 'bar',
- data: [],
- barWidth: 36, // 设置柱子宽度
- barCategoryGap: 0, // 设置柱子间的间隔为0
- itemStyle: {
- color: new echarts.graphic.LinearGradient(
- 0, 0, 0, 1,
- [
- { offset: 0, color: '#2c7cf2' }, // 从顶部开始
- { offset: 1, color: '#80b3ff' } // 到底部结束
- ]
- )
- },
- showBackground: true,
- backgroundStyle: {
- color: '#fafbfc',
- opacity: "0.5"
- }
- },
+ ]
+ }
+ ]
+ },
+
+ hotlineChartOption: {
+ tooltip: {
+ trigger: 'axis'
+ },
+ legend: {
+ data: ['工单数量'],
+ bottom: '10%',
+ icon: 'rect',
+ itemWidth: 20,
+ itemHeight: 5,
+ itemGap: 20,
+ },
+ grid: {
+ left: '3%',
+ right: '4%',
+ bottom: '25%',
+ containLabel: true
+ },
+ toolbox: {},
+
+
+ xAxis: {
+ type: 'category',
+ boundaryGap: true,
+ data: [],
+ },
+ yAxis: {
+ type: 'value',
+ name: '单位(个)',
+ min: 0,
+ },
+ series: [
+ {
+ name: '工单数量',
+ type: 'bar',
+ data: [],
+ barWidth: 36, // 设置柱子宽度
+ barCategoryGap: 0, // 设置柱子间的间隔为0
+ itemStyle: {
+ color: new echarts.graphic.LinearGradient(
+ 0, 0, 0, 1,
+ [
+ { offset: 0, color: '#2c7cf2' }, // 从顶部开始
+ { offset: 1, color: '#80b3ff' } // 到底部结束
]
+ )
},
+ showBackground: true,
+ backgroundStyle: {
+ color: '#fafbfc',
+ opacity: "0.5"
+ }
+ },
+ ]
+ },
summarizeDialog: false,
+ displayedText: '',
};
},
computed: {
- maxTableHeight() {
- const h = this.clientHeight - this.searchH - 330 + this.iframeHeight;
- const _h = this.clientHeight - 330 - this.searchH;
- return this.$store.state.inIframe ? h : _h;
- },
- ...mapGetters(["clientHeight", "iframeHeight"]),
+ maxTableHeight() {
+ const h = this.clientHeight - this.searchH - 330 + this.iframeHeight;
+ const _h = this.clientHeight - 330 - this.searchH;
+ return this.$store.state.inIframe ? h : _h;
+ },
+ ...mapGetters(["clientHeight", "iframeHeight"]),
+
},
watch: {},
- async mounted() {
+ mounted() {
this.user = this.$store.state.user;
this.agencyId = this.user.agencyId;
this.getLastMonthRange()
this.getOrgData();
this.agencyLevel = localStorage.getItem("level", this.orgData.level);
- this.getTableData();
+ this.getTableData();
// this.initEcharts();
- await this.EventCategoryAnalysis();
- await this.EventCate();
+ this.EventCategoryAnalysis();
+ this.EventCate();
this.getCategoryTree()
-
+ this.initChart("/actual/base/residentIntegrity/resiCategoryStats/byOrg/query4Org");
},
methods: {
- handelClickShowSummarize() {
+ regexChat(str) {
+ const regex = /"content":"(.*?)"/g;
+ const matches = [];
+ let match;
+ while ((match = regex.exec(str)) !== null) {
+ const formattedContent = match[1].replace(/\\n/g, '\\\\n');
+ console.log(formattedContent,'formattedContent');
+
+ matches.push(formattedContent);
+ }
+ const mergedContent = matches.join('');
+ return mergedContent;
+ },
+ handelClickShowSummarize() {
this.summarizeDialog = true;
},
@@ -817,16 +854,36 @@ export default {
this.displayedText = '';
},
initChart(url) {
+ this.$http.get(url).then(({ data: { data } }) => {
const chartDom = this.$refs.chart;
const myChart = echarts.init(chartDom);
- const departmentNames = this.selectedIndex === 0 ? this.departmentList : this.communityList;
- let xData = departmentNames.map(item => item.assignOrgName)
- let responseRate = departmentNames.map(item => item.responseRate)
- let assignOrgName = departmentNames.map(item => item.assignOrgName)
- console.log(assignOrgName,"dsfkljldsk");
- let returnRate = departmentNames.map(item => item.returnRate)
- let resolveRate = departmentNames.map(item => item.resolveRate)
- let satisfiedRate = departmentNames.map(item => item.satisfiedRate)
+ const departmentNames = [
+ { name: "部门A1", xiangying: "87.43", banjie: "64.22", zuizhong: "54", manyi: "200" },
+ { name: "部门A2", xiangying: "45.31", banjie: "85.49", zuizhong: "78", manyi: "180" },
+ { name: "部门A3", xiangying: "92.10", banjie: "48.56", zuizhong: "80", manyi: "250" },
+ { name: "部门A4", xiangying: "76.32", banjie: "92.78", zuizhong: "85", manyi: "190" },
+ { name: "部门A5", xiangying: "54.89", banjie: "77.34", zuizhong: "93", manyi: "210" },
+ { name: "部门A6", xiangying: "80.45", banjie: "61.23", zuizhong: "88", manyi: "170" },
+ { name: "部门A7", xiangying: "67.21", banjie: "90.12", zuizhong: "95", manyi: "220" },
+ { name: "部门A8", xiangying: "48.76", banjie: "85.45", zuizhong: "78", manyi: "160" },
+ { name: "部门A9", xiangying: "59.88", banjie: "73.67", zuizhong: "82", manyi: "230" },
+ { name: "部门A10", xiangying: "88.34", banjie: "68.4", zuizhong: "89", manyi: "240" },
+ { name: "部门A11", xiangying: "71.90", banjie: "80.1", zuizhong: "77", manyi: "195" },
+ { name: "部门A12", xiangying: "64.78", banjie: "94.0", zuizhong: "92", manyi: "260" },
+ { name: "部门A13", xiangying: "90.12", banjie: "79.3", zuizhong: "85", manyi: "280" },
+ { name: "部门A14", xiangying: "53.34", banjie: "88.67", zuizhong: "76", manyi: "275" },
+ { name: "部门A15", xiangying: "75.45", banjie: "69.87", zuizhong: "82", manyi: "245" },
+ { name: "部门A16", xiangying: "66.78", banjie: "71.45", zuizhong: "79", manyi: "210" },
+ { name: "部门A17", xiangying: "82.34", banjie: "95.23", zuizhong: "91", manyi: "265" },
+ { name: "部门A18", xiangying: "77.98", banjie: "84.65", zuizhong: "89", manyi: "255" },
+ { name: "部门A19", xiangying: "58.67", banjie: "75.34", zuizhong: "81", manyi: "190" },
+ { name: "部门A20", xiangying: "63.22", banjie: "72.34", zuizhong: "88", manyi: "285" }
+ ];
+ let xData = departmentNames.map(item => item.name)
+ let xiangying = departmentNames.map(item => item.xiangying)
+ let banjie = departmentNames.map(item => item.banjie)
+ let zuizhong = departmentNames.map(item => item.zuizhong)
+ let manyi = departmentNames.map(item => item.manyi)
const option = {
tooltip: { trigger: "axis" },
legend: {
@@ -844,11 +901,11 @@ export default {
},
series: [
{
- name: "响应率", type: "bar", barWidth: 20, data: responseRate, color: "#3B82F6"
+ name: "响应率", type: "bar", barWidth: 20, data: xiangying, color: "#3B82F6"
},
- { name: "按时办结率", type: "bar", barWidth: 20, data: returnRate, color: "#22C55E" },
- { name: "最终解决率", type: "bar", barWidth: 20, data: resolveRate, color: "#FACC15" },
- { name: "最终满意率", type: "bar", barWidth: 20, data: satisfiedRate, color: "#FB923C" },
+ { name: "按时办结率", type: "bar", barWidth: 20, data: banjie, color: "#22C55E" },
+ { name: "最终解决率", type: "bar", barWidth: 20, data: zuizhong, color: "#FACC15" },
+ { name: "最终满意率", type: "bar", barWidth: 20, data: manyi, color: "#FB923C" },
],
grid: { left: "3%", right: "4%", bottom: "10%", containLabel: true },
dataZoom: [
@@ -858,6 +915,9 @@ export default {
show: true,
start: 0, // 默认显示起点
end: 50, // 默认显示 50%
+ // height:normalFontSize(12),
+ // width:normalFontSize(112),
+ // xAxisIndex: [0], // 绑定 X 轴
handleSize: 0, // 隐藏手柄
backgroundColor: "transparent", // 背景透明
fillerColor: "transparent", // 选中部分透明
@@ -877,7 +937,8 @@ export default {
};
myChart.setOption(option);
window.addEventListener("resize", () => myChart.resize());
-
+ });
+
},
randomData() {
@@ -886,9 +947,9 @@ export default {
selectItem(index) {
this.selectedIndex = index; // 选中点击的项
if (index === 0) {
- this.initChart();
+ this.initChart("/actual/base/residentIntegrity/resiCategoryStats/byOrg/query4Org");
} else {
- this.initChart();
+ this.initChart("/actual/base/residentIntegrity/resiCategoryStats/byOrg/query4Org");
}
},
onEventNum(data) {
@@ -903,231 +964,230 @@ export default {
} else if (data == "3") {
this.$router.push({ name: 'workpiece', params: { params: data } });
}
- else{
+ else {
this.$router.push({ name: 'eventHandling' });
}
},
calculateRowspan(item) {
-
+
if (!item.children || !item.children.length) {
return 1;
}
-
+
},
- initEcharts() {
-
- if(this.categoryCountShow){
- this.categoryPie= echarts.init(document.getElementById("categoryPie"));
- this.categoryPie.setOption(this.categoryPieOption);
- let than = this;
- this.categoryPie.on("click", function (params) {
- than.handelClickChart(params);
- });
- }
+ initEcharts() {
+ if (this.categoryCountShow) {
+ this.categoryPie = echarts.init(document.getElementById("categoryPie"));
+ this.categoryPie.setOption(this.categoryPieOption);
+ let than = this;
+ this.categoryPie.on("click", function (params) {
+ than.handelClickChart(params);
+ });
+ }
- if(this.communityCountShow && this.agencyLevel!='community'){
- this.communityChart= echarts.init(document.getElementById("communityChart"));
- this.communityChart.setOption(this.communityOption);
- let than = this;
- this.communityChart.on("click", function (params) {
- than.handelClickCommunityChart(params);
- });
- }
+ if (this.communityCountShow && this.agencyLevel != 'community') {
+ this.communityChart = echarts.init(document.getElementById("communityChart"));
+ this.communityChart.setOption(this.communityOption);
+ let than = this;
+ this.communityChart.on("click", function (params) {
+ than.handelClickCommunityChart(params);
+ });
+ }
- if(this.departCountShow && this.agencyLevel!='community'){
- this.departChart= echarts.init(document.getElementById("departChart"));
- this.departChart.setOption(this.departOption);
- let than = this;
- this.departChart.on("click", function (params) {
- than.handelClickDepartChart(params);
- });
- }
+ if (this.departCountShow && this.agencyLevel != 'community') {
+ this.departChart = echarts.init(document.getElementById("departChart"));
+ this.departChart.setOption(this.departOption);
+ let than = this;
+ this.departChart.on("click", function (params) {
+ than.handelClickDepartChart(params);
+ });
+ }
- if(this.subCategoryCountShow){
- this.hotlineChart= echarts.init(document.getElementById("hotlineChart"));
- this.hotlineChart.setOption(this.hotlineChartOption);
- let than = this;
- this.hotlineChart.on("click", function (params) {
- than.handelClickChart(params);
- });
- }
+ if (this.subCategoryCountShow) {
+ this.hotlineChart = echarts.init(document.getElementById("hotlineChart"));
+ this.hotlineChart.setOption(this.hotlineChartOption);
+ let than = this;
+ this.hotlineChart.on("click", function (params) {
+ than.handelClickChart(params);
+ });
+ }
- window.addEventListener("resize", this.handleWindowResize);
+ window.addEventListener("resize", this.handleWindowResize);
- console.log("图表加载")
- },
- handleWindowResize() {
- if (this.categoryPie) {
- this.categoryPie.resize();
- }
- },
- handelClickChart(params) {
- this.hiddenAllDialog();
- this.showFormList = true;
- this.cleanSearchForm();
- this.recId = params.data.id;
- },
+ console.log("图表加载")
+ },
+ handleWindowResize() {
+ if (this.categoryPie) {
+ this.categoryPie.resize();
+ }
+ },
+ handelClickChart(params) {
+ this.hiddenAllDialog();
+ this.showFormList = true;
+ this.cleanSearchForm();
+ this.recId = params.data.id;
+ },
- handelClickCommunityChart(params) {
- this.hiddenAllDialog();
- this.showFormList = true;
- this.cleanSearchForm();
- this.communityId = params.data.id;
- },
+ handelClickCommunityChart(params) {
+ this.hiddenAllDialog();
+ this.showFormList = true;
+ this.cleanSearchForm();
+ this.communityId = params.data.id;
+ },
- handelClickDepartChart(params) {
- this.hiddenAllDialog();
- this.showFormList = true;
- this.cleanSearchForm();
- this.departId = params.data.id;
- },
- handleClose() {
- this.showFormList = false;
- },
+ handelClickDepartChart(params) {
+ this.hiddenAllDialog();
+ this.showFormList = true;
+ this.cleanSearchForm();
+ this.departId = params.data.id;
+ },
+ handleClose() {
+ this.showFormList = false;
+ },
- async handelClickDetail(row) {
- this.eventId = row.icEventId;
- const url = "/governance/icEvent/detail";
- const { data, code, msg } = await requestPost(url, {
- icEventId: this.eventId,
- });
- if (code != 0) {
- this.$message.error(msg);
- } else {
- this.eventDetailData = { ...data };
- this.pageType = "info";
- this.showFormList = true;
- this.showFormDetail = true;
- }
- },
-
+ async handelClickDetail(row) {
+ this.eventId = row.icEventId;
+ const url = "/governance/icEvent/detail";
+ const { data, code, msg } = await requestPost(url, {
+ icEventId: this.eventId,
+ });
+ if (code != 0) {
+ this.$message.error(msg);
+ } else {
+ this.eventDetailData = { ...data };
+ this.pageType = "info";
+ this.showFormList = true;
+ this.showFormDetail = true;
+ }
+ },
- // 查看
- async handleLook(row) {
- let { name,resiId } = row
- this.$store.dispatch('saveData', { name,resiId });
- this.$router.push({ name: 'jumin-huaxiang' });
- this.$store.state.contentTabs = this.$store.state.contentTabs.map(item => {
- if (item.name === "jumin-huaxiang") {
- return {...item, title: name };
- }
- return item;
- });
- },
+ // 查看
+ async handleLook(row) {
- handleClose() {
- this.hiddenAllDialog();
- this.pageType = "list";
- this.cleanSearchForm();
- this.getTableData();
- },
- handleOk() {
- this.hiddenAllDialog();
- this.pageType = "list";
- this.cleanSearchForm();
- this.pageNo = 1;
- this.getTableData();
- },
+ let { name, resiId } = row
+ this.$store.dispatch('saveData', { name, resiId });
+ this.$router.push({ name: 'jumin-huaxiang' });
+ this.$store.state.contentTabs = this.$store.state.contentTabs.map(item => {
+ if (item.name === "jumin-huaxiang") {
+ return { ...item, title: name };
+ }
+ return item;
+ });
+ },
- handleEditSuccess() {
- this.handleClose();
- this.getTableData();
- },
+ handleClose() {
+ this.hiddenAllDialog();
+ this.pageType = "list";
+ this.cleanSearchForm();
+ this.getTableData();
+ },
+ handleOk() {
+ this.hiddenAllDialog();
+ this.pageType = "list";
+ this.cleanSearchForm();
+ this.pageNo = 1;
+ this.getTableData();
+ },
+ handleEditSuccess() {
+ this.handleClose();
+ this.getTableData();
+ },
- //加载组织数据
- async getOrgData() {
- const url = "/gov/org/agency/maporg";
- let params = {
- orgId: "",
- level: "",
- };
- const { data, code, msg } = await requestPost(url, params);
+ //加载组织数据
+ async getOrgData() {
+ const url = "/gov/org/agency/maporg";
+ let params = {
+ orgId: "",
+ level: "",
+ };
- if (code === 0) {
- this.orgData = data;
- } else {
- this.$message.error(msg);
- }
- },
+ const { data, code, msg } = await requestPost(url, params);
- // 搜索事件
- handleSearch(val) {
- this.communityList= [];
- this.departmentList=[];
-
- console.log(this.formData);
- // 清空数据
- this.cleanReportData();
- this.getTableData();
- // await this.initEcharts();
- this.EventCategoryAnalysis();
- this.EventCate();
- this.getCategoryTree()
- },
- //事件类型统计
- async getCategoryTree(){
- if(this.formData.queryDateStart&&this.formData.queryDateEnd){
- this.starttime=this.formData.queryDateStart,
- this.endtime=this.formData.queryDateEnd
- }else{{
+ if (code === 0) {
+ this.orgData = data;
+ } else {
+ this.$message.error(msg);
+ }
+ },
+
+ // 搜索事件
+ handleSearch(val) {
+ this.communityList = [];
+ this.departmentList = [];
+
+ console.log(this.formData);
+ // 清空数据
+ this.cleanReportData();
+ this.getTableData();
+ // await this.initEcharts();
+ this.EventCategoryAnalysis();
+ this.EventCate();
+ this.getCategoryTree()
+ },
+ //事件类型统计
+ async getCategoryTree() {
+ if (this.formData.queryDateStart && this.formData.queryDateEnd) {
+ this.starttime = this.formData.queryDateStart,
+ this.endtime = this.formData.queryDateEnd
+ } else {
+ {
this.getLastMonthRange()
}
- }
- const url = "/governance/icEvent/getCategoryTree";
- let param = {
- startDate:this.starttime,
- endDate:this.endtime,
- usableFlag:true
- }
- const { data, code, msg } = await requestPost(url, param);
- if (code === 0) {
- this.tableList=data
- // this.tableList=this.flattenTree(data);
- console.log(this.tableList);
- console.log(this.tableList,"lksdjfklj s");
- } else {
- this.$message.error(msg);
- }
- },
- formatDate1(date) {
- // 获取年份、月份和日期
- const year = date.getFullYear();
- const month = (date.getMonth() + 1).toString().padStart(2, '0');
- const day = date.getDate().toString().padStart(2, '0');
- const hours = date.getHours().toString().padStart(2, '0');
- const minutes = date.getMinutes().toString().padStart(2, '0');
- const seconds = date.getSeconds().toString().padStart(2, '0');
-
- return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
-
-
-},
- //获取前一个月的日期
- getLastMonthRange() {
- const now = new Date();
- const startOfYear = new Date(now.getFullYear(), 0, 1); // 当前年份的1月1日
- const endOfYear = new Date(now.getFullYear(), 11, 31); // 当前年份的12月31日
-
- startOfYear.setHours(0, 0, 0, 0);
- endOfYear.setHours(23, 59, 59, 999);
-
- this.formData.queryDateStart =this.formatDate1(startOfYear),
- this.formData.queryDateEnd=this.formatDate1(endOfYear)
- console.log(this.formData.queryDateEnd);
-},
- //对部门进行统计
- async EventCate(){
- const url = "/governance/icEvent/EventCategoryAnalysis";
- // 对社区,部门进行更改
- if(this.formData.queryDateStart&&this.formData.queryDateEnd){
- this.starttime=this.formData.queryDateStart,
- this.endtime=this.formData.queryDateEnd
- }else{{
+ }
+ const url = "/governance/icEvent/getCategoryTree";
+ let param = {
+ startDate: this.starttime,
+ endDate: this.endtime,
+ usableFlag: true
+ }
+ const { data, code, msg } = await requestPost(url, param);
+ if (code === 0) {
+ this.tableList = data
+ // this.tableList=this.flattenTree(data);
+ } else {
+ this.$message.error(msg);
+ }
+ },
+ formatDate1(date) {
+ // 获取年份、月份和日期
+ const year = date.getFullYear();
+ const month = (date.getMonth() + 1).toString().padStart(2, '0');
+ const day = date.getDate().toString().padStart(2, '0');
+ const hours = date.getHours().toString().padStart(2, '0');
+ const minutes = date.getMinutes().toString().padStart(2, '0');
+ const seconds = date.getSeconds().toString().padStart(2, '0');
+
+ return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+
+
+ },
+ //获取前一个月的日期
+ getLastMonthRange() {
+ const now = new Date();
+ const startOfYear = new Date(now.getFullYear(), 0, 1); // 当前年份的1月1日
+ const endOfYear = new Date(now.getFullYear(), 11, 31); // 当前年份的12月31日
+
+ startOfYear.setHours(0, 0, 0, 0);
+ endOfYear.setHours(23, 59, 59, 999);
+
+ this.formData.queryDateStart = this.formatDate1(startOfYear),
+ this.formData.queryDateEnd = this.formatDate1(endOfYear)
+ console.log(this.formData.queryDateEnd);
+ },
+ //对部门进行统计
+ async EventCate() {
+ const url = "/governance/icEvent/EventCategoryAnalysis";
+ // 对社区,部门进行更改
+ if (this.formData.queryDateStart && this.formData.queryDateEnd) {
+ this.starttime = this.formData.queryDateStart,
+ this.endtime = this.formData.queryDateEnd
+ } else {
+ {
this.getLastMonthRange()
}
}
@@ -1138,6 +1198,7 @@ export default {
}
const { data, code, msg } = await requestPost(url, param);
if (code === 0) {
+
data.map(item => {
if (item.assignOrgType == "duty") {
this.departmentList.push(item)
@@ -1145,7 +1206,6 @@ export default {
this.communityList.push(item)
}
})
- this.initChart();
} else {
this.$message.error(msg);
}
@@ -1164,314 +1224,333 @@ export default {
let level4 = newLevelKeys[3] || null;
let level5 = newLevelKeys[4] || null;
- if (level2) level1 = null;
- if (level3) level2 = null;
- if (level4) level3 = null;
- if (level5) level4 = null;
-
- let flattenedNode = {
- ...node,
- level1: level1,
- level2: level2,
- level3: level3,
- level4: level4,
- level5: level5
- };
-
- delete flattenedNode.children;
- result.push(flattenedNode);
-
- if (node.children && node.children.length > 0) {
- console.log(node,"node");
- result = result.concat(this.flattenTree(node.children, newLevelKeys));
- }
- });
- console.log( result);
- return result;
-},
- // 对总数做出统计
- async EventCategoryAnalysis(){
- const url = "/governance/icEvent/EventCategoryAnalysis";
- if(this.formData.queryDateStart&&this.formData.queryDateEnd){
- this.starttime=this.formData.queryDateStart,
- this.endtime=this.formData.queryDateEnd
- }else{{
- this.getLastMonthRange()
- }
+ if (level2) level1 = null;
+ if (level3) level2 = null;
+ if (level4) level3 = null;
+ if (level5) level4 = null;
+
+ let flattenedNode = {
+ ...node,
+ level1: level1,
+ level2: level2,
+ level3: level3,
+ level4: level4,
+ level5: level5
+ };
+
+ delete flattenedNode.children;
+ result.push(flattenedNode);
+
+ if (node.children && node.children.length > 0) {
+ console.log(node, "node");
+ result = result.concat(this.flattenTree(node.children, newLevelKeys));
}
- let params = {
- startDate: this.starttime,
- endDate:this.endtime,
- usableFlag:false
+ });
+ console.log(result);
+ return result;
+ },
+ // 对总数做出统计
+ async EventCategoryAnalysis() {
+ const url = "/governance/icEvent/EventCategoryAnalysis";
+ if (this.formData.queryDateStart && this.formData.queryDateEnd) {
+ this.starttime = this.formData.queryDateStart,
+ this.endtime = this.formData.queryDateEnd
+ } else {
+ {
+ this.getLastMonthRange()
}
- const { data, code, msg } = await requestPost(url, params);
- if (code === 0) {
- console.log(data);
- this.analysisList = data[0];
- console.log(this.analysisList);
- } else {
- this.$message.error(msg);
- }
- },
- cleanReportData(){
- console.log("刷新数据");
- this.report={}
- this.addressData=[]
- this.mobileData=[]
- this.addressMobileData=[]
- this.addComplainData=[]
- this.eventCategorys=[]
+ }
+ let params = {
+ startDate: this.starttime,
+ endDate: this.endtime,
+ usableFlag: false
+ }
+ const { data, code, msg } = await requestPost(url, params);
+ if (code === 0) {
+ this.analysisList = data[0];
+ console.log(this.analysisList);
+ } else {
+ this.$message.error(msg);
+ }
+ },
+ cleanReportData() {
+ console.log("刷新数据");
+ this.report = {}
+ this.addressData = []
+ this.mobileData = []
+ this.addressMobileData = []
+ this.addComplainData = []
+ this.eventCategorys = []
- this.categoryPieOption.series[0].data=[];
+ this.categoryPieOption.series[0].data = [];
- this.communityOption.xAxis[0].data=[];
- this.communityOption.series[0].data=[];
- this.communityOption.series[1].data=[];
+ this.communityOption.xAxis[0].data = [];
+ this.communityOption.series[0].data = [];
+ this.communityOption.series[1].data = [];
- this.departOption.xAxis[0].data=[];
- this.departOption.series[0].data=[];
- this.departOption.series[1].data=[];
+ this.departOption.xAxis[0].data = [];
+ this.departOption.series[0].data = [];
+ this.departOption.series[1].data = [];
- this.hotlineChartOption.xAxis.data=[];
- this.hotlineChartOption.series[0].data=[];
- },
+ this.hotlineChartOption.xAxis.data = [];
+ this.hotlineChartOption.series[0].data = [];
+ },
- // 导出
- exportReport() {
- this.$message.info('功能即将开通,敬请期待')
- },
+ // 导出
+ exportReport() {
+ this.$message.info('功能即将开通,敬请期待')
+ },
- // 获取分类
- async getTableData() {
- const url = '/governance/dwdEvent/report';
- const {formData } = this;
- const { data, code, internalMsg } = await requestPost(url, {
- ...formData
- });
- if (code != 0) {
- this.$message.info(internalMsg);
- return;
- }
- if (!data) {
- return;
- }
+ // 获取分类
+ async getTableData() {
+ const url = '/governance/dwdEvent/report';
+ const { formData } = this;
+ const { data, code, internalMsg } = await requestPost(url, {
+ ...formData
+ });
+ if (code != 0) {
+ this.$message.info(internalMsg);
+ return;
+ }
+ if (!data) {
+ return;
+ }
- this.report = data;
-
- this.tableLoading = true;
-
- //获取分类
- Object.keys(this.report.categoryCount).forEach((key) => {
- const category = this.report.categoryCount[key];
-
- const jsonObject = {
- id: category.id,
- name: category.name,
- value: category.count
- };
- this.categoryPieOption.series[0].data.push(jsonObject);
-
- });
-
- // 获取社区
- Object.keys(this.report.communityCount).forEach((key) => {
- const community = this.report.communityCount[key];
-
- this.communityOption.xAxis[0].data.push(community.name);
-
- const recObject = {
- id: community.id,
- value: community.count
- };
- this.communityOption.series[0].data.push(recObject);
-
- this.communityOption.series[1].data.push(community.count/this.report.totalEvent*100);
-
- });
-
- // 获取科室
- Object.keys(this.report.departCount).forEach((key) => {
- const depart = this.report.departCount[key];
-
- this.departOption.xAxis[0].data.push(depart.name);
- const recObject = {
- id: depart.id,
- value: depart.count/this.report.totalEvent*100
- };
- this.departOption.series[0].data.push(recObject);
-
-
- this.departOption.series[1].data.push(depart.count);
-
- });
-
- // 获取热点诉求及区域分析
- Object.keys(this.report.subCategoryCount).forEach((key) => {
- const subcategory = this.report.subCategoryCount[key];
- this.hotlineChartOption.xAxis.data.push(subcategory.name);
-
- const recObject = {
- id: subcategory.id,
- value: subcategory.count
- };
- this.hotlineChartOption.series[0].data.push(recObject);
- });
-
- this.addressData = this.report.addressEvent
- ? this.report.addressEvent.map(item => {
- return item;
- })
- : [];
- this.mobileData = this.report.mobileEvent
- ? this.report.mobileEvent.filter(item =>item.mobile !== '******')
- : [];
-
- this.addressMobileData = this.report.addressMobileEvents
- ? this.report.addressMobileEvents.map(item => {
- return item;
- })
- : [];
- this.addComplainData = this.report.awoEvents
- ? this.report.awoEvents.map(item => {
- return item;
- })
- : [];
-
- this.eventCategorys = this.report.eventCategorys
- ? this.report.eventCategorys.map(item => {
- return item;
- })
- : [];
-
- // 合并行
- this.getSpanArr(this.addressMobileData);
-
- if (this.report && this.report.categoryCount && Object.keys(this.report.categoryCount).length > 0) {
- this.categoryCountShow = true;
- }
+ this.report = data;
- if (this.report && this.report.communityCount && Object.keys(this.report.communityCount).length > 0) {
- this.communityCountShow = true;
- }
+ this.tableLoading = true;
- if (this.report && this.report.departCount && Object.keys(this.report.departCount).length > 0) {
- this.departCountShow = true;
- }
+ //获取分类
+ Object.keys(this.report.categoryCount).forEach((key) => {
+ const category = this.report.categoryCount[key];
- if (this.report && this.report.subCategoryCount && Object.keys(this.report.subCategoryCount).length > 0) {
- this.subCategoryCountShow = true;
- }
- },
+ const jsonObject = {
+ id: category.id,
+ name: category.name,
+ value: category.count
+ };
+ this.categoryPieOption.series[0].data.push(jsonObject);
- clickEventCategorys(row, column){
- this.hiddenAllDialog();
- this.showFormList = true;
- this.recId = row.categoryId;
- },
+ });
+
+ // 获取社区
+ Object.keys(this.report.communityCount).forEach((key) => {
+ const community = this.report.communityCount[key];
+
+ this.communityOption.xAxis[0].data.push(community.name);
+
+ const recObject = {
+ id: community.id,
+ value: community.count
+ };
+ this.communityOption.series[0].data.push(recObject);
+
+ this.communityOption.series[1].data.push(community.count / this.report.totalEvent * 100);
+
+ });
+
+ // 获取科室
+ Object.keys(this.report.departCount).forEach((key) => {
+ const depart = this.report.departCount[key];
+
+ this.departOption.xAxis[0].data.push(depart.name);
+ const recObject = {
+ id: depart.id,
+ value: depart.count / this.report.totalEvent * 100
+ };
+ this.departOption.series[0].data.push(recObject);
+
+
+ this.departOption.series[1].data.push(depart.count);
+
+ });
+
+ // 获取热点诉求及区域分析
+ Object.keys(this.report.subCategoryCount).forEach((key) => {
+ const subcategory = this.report.subCategoryCount[key];
+ this.hotlineChartOption.xAxis.data.push(subcategory.name);
+
+ const recObject = {
+ id: subcategory.id,
+ value: subcategory.count
+ };
+ this.hotlineChartOption.series[0].data.push(recObject);
+ });
+
+ this.addressData = this.report.addressEvent
+ ? this.report.addressEvent.map(item => {
+ return item;
+ })
+ : [];
+ this.mobileData = this.report.mobileEvent
+ ? this.report.mobileEvent.filter(item => item.mobile !== '******')
+ : [];
+
+ this.addressMobileData = this.report.addressMobileEvents
+ ? this.report.addressMobileEvents.map(item => {
+ return item;
+ })
+ : [];
+ this.addComplainData = this.report.awoEvents
+ ? this.report.awoEvents.map(item => {
+ return item;
+ })
+ : [];
+
+ this.eventCategorys = this.report.eventCategorys
+ ? this.report.eventCategorys.map(item => {
+ return item;
+ })
+ : [];
+
+ // 合并行
+ this.getSpanArr(this.addressMobileData);
+
+ if (this.report && this.report.categoryCount && Object.keys(this.report.categoryCount).length > 0) {
+ this.categoryCountShow = true;
+ }
+
+ if (this.report && this.report.communityCount && Object.keys(this.report.communityCount).length > 0) {
+ this.communityCountShow = true;
+ }
+
+ if (this.report && this.report.departCount && Object.keys(this.report.departCount).length > 0) {
+ this.departCountShow = true;
+ }
+
+ if (this.report && this.report.subCategoryCount && Object.keys(this.report.subCategoryCount).length > 0) {
+ this.subCategoryCountShow = true;
+ }
+ },
+
+ clickEventCategorys(row, column) {
+ this.hiddenAllDialog();
+ this.showFormList = true;
+ this.recId = row.categoryId;
+ },
clickAddressData(row, column) {
- console.log(row,"sdfkjlsdfkljdsf");
this.hiddenAllDialog();
this.showFormList = true;
this.recId = row.categoryId;
this.address = row.address;
},
- handelMoreAddressData(){
- this.hiddenAllDialog();
- this.cleanSearchForm();
- this.showAreaSameEventList = true;
- },
- handelMoreMobileData(){
- this.hiddenAllDialog();
- this.cleanSearchForm();
- this.showMobileEventList = true;
- },
- handelMoreAddressMobileData(){
- this.hiddenAllDialog();
- this.cleanSearchForm();
- this.showAreaNoSameEventList = true;
- },
- handelMoreAddComplainData(){
- this.hiddenAllDialog();
- this.cleanSearchForm();
- this.showAddEventList = true;
- },
+ handelMoreAddressData() {
+ this.hiddenAllDialog();
+ this.cleanSearchForm();
+ this.showAreaSameEventList = true;
+ },
+ handelMoreMobileData() {
+ this.hiddenAllDialog();
+ this.cleanSearchForm();
+ this.showMobileEventList = true;
+ },
+ handelMoreAddressMobileData() {
+ this.hiddenAllDialog();
+ this.cleanSearchForm();
+ this.showAreaNoSameEventList = true;
+ },
+ handelMoreAddComplainData() {
+ this.hiddenAllDialog();
+ this.cleanSearchForm();
+ this.showAddEventList = true;
+ },
- clickMobileData(row, column){
- this.hiddenAllDialog();
- this.showFormList = true;
- this.cleanSearchForm();
- this.mobile = row.mobile;
- },
+ clickMobileData(row, column) {
+ this.hiddenAllDialog();
+ this.showFormList = true;
+ this.cleanSearchForm();
+ this.mobile = row.mobile;
+ },
- clickAddressMobileData(row, column){
- this.hiddenAllDialog();
- this.showFormList = true;
- this.cleanSearchForm();
- this.address = row.address;
- },
- clickAwoFlagData(row, column){
- this.hiddenAllDialog();
- this.$refs.awoList.open(row)
- },
+ clickAddressMobileData(row, column) {
+ this.hiddenAllDialog();
+ this.showFormList = true;
+ this.cleanSearchForm();
+ this.address = row.address;
+ },
+ clickAwoFlagData(row, column) {
+ this.hiddenAllDialog();
+ this.$refs.awoList.open(row)
+ },
- cleanSearchForm(){
- this.departId ='';
- this.eventId = "";
- this.recId ='';
- this.address ='';
- this.mobile ='';
- this.awo_flag ='';
- },
+ cleanSearchForm() {
+ this.departId = '';
+ this.eventId = "";
+ this.recId = '';
+ this.address = '';
+ this.mobile = '';
+ this.awo_flag = '';
+ },
- hiddenAllDialog(){
- this.showFormList = false;
- this.showFormDetail = false;
- this.showAreaSameEventList = false;
- this.showMobileEventList = false;
- this.showAreaNoSameEventList = false;
- this.showAddEventList = false;
- },
+ hiddenAllDialog() {
+ this.showFormList = false;
+ this.showFormDetail = false;
+ this.showAreaSameEventList = false;
+ this.showMobileEventList = false;
+ this.showAreaNoSameEventList = false;
+ this.showAddEventList = false;
+ },
- getSpanArr(data) {
- this.mergeArr.forEach((key, index1) => {
- let count = 0; // 用来记录需要合并行的起始位置
- this.mergeObj[key] = []; // 记录每一列的合并信息
- data.forEach((item, index) => {
- // index == 0表示数据为第一行,直接 push 一个 1
- if(index === 0) {
- this.mergeObj[key].push(1);
- } else {
- // 判断当前行是否与上一行其值相等 如果相等 在 count 记录的位置其值 +1 表示当前行需要合并 并push 一个 0 作为占位
- if(item[key] === data[index - 1][key]) {
- this.mergeObj[key][count] += 1;
- this.mergeObj[key].push(0);
- } else {
- // 如果当前行和上一行其值不相等
- count = index; // 记录当前位置
- this.mergeObj[key].push(1); // 重新push 一个 1
- }
- }
- })
- })
- },
- // 默认接受四个值 { 当前行的值, 当前列的值, 行的下标, 列的下标 }
- objectSpanMethod({ row, column, rowIndex, columnIndex }) {
- // 判断列的属性
- if(this.mergeArr.indexOf(column.property) !== -1) {
- // 判断其值是不是为0
- if(this.mergeObj[column.property][rowIndex]) {
- return [this.mergeObj[column.property][rowIndex], 1]
- } else {
- // 如果为0则为需要合并的行
- return [0, 0];
- }
+ getSpanArr(data) {
+ this.mergeArr.forEach((key, index1) => {
+ let count = 0; // 用来记录需要合并行的起始位置
+ this.mergeObj[key] = []; // 记录每一列的合并信息
+ data.forEach((item, index) => {
+ // index == 0表示数据为第一行,直接 push 一个 1
+ if (index === 0) {
+ this.mergeObj[key].push(1);
+ } else {
+ // 判断当前行是否与上一行其值相等 如果相等 在 count 记录的位置其值 +1 表示当前行需要合并 并push 一个 0 作为占位
+ if (item[key] === data[index - 1][key]) {
+ this.mergeObj[key][count] += 1;
+ this.mergeObj[key].push(0);
+ } else {
+ // 如果当前行和上一行其值不相等
+ count = index; // 记录当前位置
+ this.mergeObj[key].push(1); // 重新push 一个 1
}
+ }
+ })
+ })
+ },
+ // 默认接受四个值 { 当前行的值, 当前列的值, 行的下标, 列的下标 }
+ objectSpanMethod({ row, column, rowIndex, columnIndex }) {
+ // 判断列的属性
+ if (this.mergeArr.indexOf(column.property) !== -1) {
+ // 判断其值是不是为0
+ if (this.mergeObj[column.property][rowIndex]) {
+ return [this.mergeObj[column.property][rowIndex], 1]
+ } else {
+ // 如果为0则为需要合并的行
+ return [0, 0];
}
+ }
+ },
+ getLastWeekDateRange() {
+ const today = new Date();
+ const dayOfWeek = today.getDay();
+ const startOfLastWeek = new Date(today);
+ const endOfLastWeek = new Date(today);
+ startOfLastWeek.setDate(today.getDate() - dayOfWeek - 6);
+ endOfLastWeek.setDate(today.getDate() - dayOfWeek);
+ const formatDate = (date) => {
+ const year = date.getFullYear();
+ const month = String(date.getMonth() + 1).padStart(2, '0');
+ const day = String(date.getDate()).padStart(2, '0');
+ return `${year}-${month}-${day}`;
+ };
+ return {
+ queryDateStart: formatDate(startOfLastWeek),
+ queryDateEnd: formatDate(endOfLastWeek),
+ };
+ },
+
},
+
props: {},
};
@@ -1480,37 +1559,14 @@ export default {
@import "@/assets/scss/modules/management/list-main.scss";
@import "@/assets/scss/modules/shequzhili/event-info.scss";
@import "./css/index.scss";
-.header {
- background: url("@/assets/img/AI/渐变背景.png") no-repeat;
- height: 68px;
- background-size: 100% 100%;
- /* 固定背景图片的宽度和高度 */
- display: flex;
- align-items: center;
- padding-left: 30px;
- margin: 10px 10px 0;
- div {
- background: url("@/assets/img/AI/文字背景.png") no-repeat;
- height: 34px;
- line-height: 30px;
- background-size: 100% 100%;
- /* 固定背景图片的宽度和高度 */
- letter-spacing: 2px;
- }
-
- img {
- width: 55px;
- height: 55px;
- margin-right: 10px;
- }
-}
table {
width: 100%;
border-collapse: collapse;
}
-th, td {
+th,
+td {
width: 40px;
height: 20px;
border: 1px solid #ccc;
@@ -1533,60 +1589,148 @@ thead {
#categoryPie {
- width: 100%;
- flex: 1;
+ width: 100%;
+ flex: 1;
}
#communityChart {
- width: 100%;
- flex: 1;
+ width: 100%;
+ flex: 1;
}
#departChart {
- width: 100%;
- flex: 1;
+ width: 100%;
+ flex: 1;
}
#hotlineChart {
- width: 100%;
- flex: 1;
+ width: 100%;
+ flex: 1;
}
.centered-title {
- text-align: center; /* 将文本水平居中对齐 */
- font-size: 28px; /* 设置标题字体大小 */
- font-weight: bold; /* 设置标题加粗 */
- color: #333; /* 设置标题颜色 */
- margin-bottom: 20px; /* 设置标题与下方内容的间距 */
+ text-align: center;
+ /* 将文本水平居中对齐 */
+ font-size: 28px;
+ /* 设置标题字体大小 */
+ font-weight: bold;
+ /* 设置标题加粗 */
+ color: #333;
+ /* 设置标题颜色 */
+ margin-bottom: 20px;
+ /* 设置标题与下方内容的间距 */
}
.no-data {
display: flex;
justify-content: center;
align-items: center;
- height: 200px; /* 调整高度以适应你的需要 */
- color: #888; /* 灰色字体颜色 */
- font-size: 20px; /* 字体大小 */
+ height: 200px;
+ /* 调整高度以适应你的需要 */
+ color: #888;
+ /* 灰色字体颜色 */
+ font-size: 20px;
+ /* 字体大小 */
}
.arrow-container {
position: relative;
- width: 100px; /* 调整箭头容器的宽度 */
- height: 100px; /* 调整箭头容器的高度 */
+ width: 100px;
+ /* 调整箭头容器的宽度 */
+ height: 100px;
+ /* 调整箭头容器的高度 */
+}
+
+.header {
+ background: url("@/assets/img/AI/渐变背景.png") no-repeat;
+ height: 68px;
+ background-size: 100% 100%;
+ /* 固定背景图片的宽度和高度 */
+ display: flex;
+ align-items: center;
+ padding-left: 30px;
+ margin: 10px 10px 0;
+
+ div {
+ background: url("@/assets/img/AI/文字背景.png") no-repeat;
+ height: 34px;
+ line-height: 30px;
+ background-size: 100% 100%;
+ /* 固定背景图片的宽度和高度 */
+ letter-spacing: 2px;
+ }
+
+ img {
+ width: 55px;
+ height: 55px;
+ margin-right: 10px;
+ }
+}
+
+.chatContent {
+ width: 100%;
+ /* 限制最大宽度,确保换行 */
+ word-wrap: break-word;
+ // /* 确保长文本换行 */
+ overflow-wrap: break-word;
+ white-space: pre-wrap;
+ /* 保持空格和换行 */
+ max-height: 480px;
+ overflow-y: scroll;
+}
+
+.flex {
+ display: flex;
+ justify-content: center;
+ flex-direction: column;
+ align-items: center;
}
.arrow {
width: 0;
height: 0;
border-style: solid;
- border-width: 20px 0 20px 34.6px; /* 通过调整这里的数值可以改变箭头的大小 */
- border-color: transparent transparent transparent #007bff; /* 改变箭头颜色 */
+ border-width: 20px 0 20px 34.6px;
+ /* 通过调整这里的数值可以改变箭头的大小 */
+ border-color: transparent transparent transparent #007bff;
+ /* 改变箭头颜色 */
position: absolute;
top: 50%;
transform: translateY(-50%);
}
-
-
-
\ No newline at end of file
+.f-align_item {
+ cursor: pointer;
+ font-size: 16px;
+ margin-right: 20px;
+ line-height: 32px;
+}
+
+.f-align_item.active {
+ line-height: 32px;
+ color: #427ee0;
+ /* 点击时的文字颜色 */
+ font-weight: bold;
+ border-bottom: 2px solid #427ee0;
+ margin-right: 20px
+ /* 点击时的下划线 */
+}
+
+.f-align_item span {
+ color: black;
+ /* 默认文字颜色 */
+}
+
+.chart-container {
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.chart {
+ width: 100%;
+ height: 350px;
+}
+
\ No newline at end of file
From aa465d81e26713d7f7a62a6f288402775bb26bc3 Mon Sep 17 00:00:00 2001
From: mk <2403457699@qq.com>
Date: Wed, 19 Mar 2025 14:22:00 +0800
Subject: [PATCH 2/2] =?UTF-8?q?bug#1933=E3=80=811931=E3=80=811930=E6=A0=B7?=
=?UTF-8?q?=E5=BC=8F=E7=BB=86=E8=8A=82=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../base/smartExcel/cpts/excel-upload-data.vue | 16 ++++++++--------
.../base/smartExcel/cpts/export-process-two.vue | 5 +++--
2 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/src/views/modules/base/smartExcel/cpts/excel-upload-data.vue b/src/views/modules/base/smartExcel/cpts/excel-upload-data.vue
index 18565e228..1ad191098 100644
--- a/src/views/modules/base/smartExcel/cpts/excel-upload-data.vue
+++ b/src/views/modules/base/smartExcel/cpts/excel-upload-data.vue
@@ -2,20 +2,20 @@