diff --git a/src/assets/images/shuju/overview/title-small-bg.png b/src/assets/images/shuju/overview/title-small-bg.png new file mode 100644 index 000000000..c03314d6a Binary files /dev/null and b/src/assets/images/shuju/overview/title-small-bg.png differ diff --git a/src/assets/scss/dataBoard/overview/index.scss b/src/assets/scss/dataBoard/overview/index.scss index c45e6ae61..5b348c199 100644 --- a/src/assets/scss/dataBoard/overview/index.scss +++ b/src/assets/scss/dataBoard/overview/index.scss @@ -32,7 +32,165 @@ width: 460px; } } - +.white{ + color: #fff; +} +.f-flex { + display: flex; + flex-wrap: nowrap; + } + .f-hflex { + display: flex; + flex-flow: column; + overflow: hidden; + } + .f-w50 { + width: 50% !important; + } + .f-flex1 { + flex: 1; + } + + .f-mean { + justify-content: space-around; + } + + .f-endpoint { + justify-content: space-between; + } + + .f-align_item { + align-items: center; + } + .f-pingfang{ + font-family: PingFang-SC-Regular; + } + // 字体大小 + .f-font12 { + font-size: 12px; + } + + .f-font14 { + font-size: 14px !important; + } + + .f-font16 { + font-size: 16px !important; + } + + .f-font18 { + font-size: 18px !important; + } + .f-font34 { + font-size: 34px !important; + font-style: italic; + font-weight: 500; + font-family: DIN Alternate; + } + .f-yellow{ + color: #FFB73C; + } + .f-green{ + color:#08EBAE; + } + .f-skyBlue{ + color: #7FCEFF; + } + .f-darkGray{ + color:#A3B9DA ; + } + //内边距 + .f-p0 { + padding: 0 !important; + } + .f-p10 { + padding: 10px; + } + .f-p16 { + padding: 16px; + } + + .f-p50 { + padding: 50px; + } + + .f-p30 { + padding: 30px; + } + // 外边距 + .f-right5 { + margin-right: 5px; + } + + .f-right24 { + margin-right: 24px; + } + + .f-bottom8 { + margin-bottom: 8px; + } + + .f-bottom16 { + margin-bottom: 16px; + } + .f-top2 { + margin-top: 2px; + } + + .f-top12 { + margin-top: 12px; + } + + .f-top24 { + margin-top: 24px !important; + } + .f-top32 { + margin-top: 32px !important; + } + .f-top40 { + margin-top: 40px !important; + } + + .f-top48 { + margin-top: 48px !important; + } + + .f-top8 { + margin-top: 8px !important; + } + + .f-bot8 { + margin-bottom: 8px; + } + + .f-bot24 { + margin-bottom: 24px !important; + } + + .f-top16 { + margin-top: 16px !important; + } + + .f-bot16 { + margin-bottom: 16px !important; + } + + .f-right8 { + margin-right: 8px !important; + } + .f-right10 { + margin-right: 10px !important; + } + .f-right16 { + margin-right: 16px !important; + } + .f-margin30 { + margin: 30px; + } + + .f-m0 { + margin: 0 !important; + } .m-map { position: relative; width: 100%; @@ -61,7 +219,7 @@ } .m-jdjs { - height: 318px; + height: 548px; padding: 0 16px; &-js { @@ -133,8 +291,10 @@ line-height: 24px; } } + } + @keyframes move { from { margin-top: -232px; diff --git a/src/assets/scss/modules/management/list-main.scss b/src/assets/scss/modules/management/list-main.scss index 6bdce451d..d5be753c7 100644 --- a/src/assets/scss/modules/management/list-main.scss +++ b/src/assets/scss/modules/management/list-main.scss @@ -120,7 +120,6 @@ } } -// 弹性盒子 .f-flex { display: flex; flex-wrap: nowrap; diff --git a/src/utils/jwTool.js b/src/utils/jwTool.js index 0da251e67..f4f36a584 100644 --- a/src/utils/jwTool.js +++ b/src/utils/jwTool.js @@ -1,8 +1,17 @@ +/* + * @Author: mk 2403457699@qq.com + * @Date: 2023-10-25 09:13:30 + * @LastEditors: mk 2403457699@qq.com + * @LastEditTime: 2023-11-10 16:43:33 + * @Description: satisfactionSource入参字符串报错 + * + * + */ import Vue from "vue"; const paramsFormat = function (params) { const data = { ...params }; - if (data.satisfactionSource) { + if (data.satisfactionSource && typeof data.satisfactionSource === "object") { data.satisfactionSource = data.satisfactionSource.join(","); } let strArray = []; diff --git a/src/views/dataBoard/overview/components/jdjs.vue b/src/views/dataBoard/overview/components/jdjs.vue index 92d3dceeb..addf782d0 100644 --- a/src/views/dataBoard/overview/components/jdjs.vue +++ b/src/views/dataBoard/overview/components/jdjs.vue @@ -1,5 +1,5 @@ diff --git a/src/views/dataBoard/overview/index.vue b/src/views/dataBoard/overview/index.vue index 95cfac18b..4ff19fb23 100644 --- a/src/views/dataBoard/overview/index.vue +++ b/src/views/dataBoard/overview/index.vue @@ -11,11 +11,10 @@ - -
+
@@ -44,14 +43,14 @@
-
+
diff --git a/src/views/dataBoard/renfang/index.vue b/src/views/dataBoard/renfang/index.vue index d1704d40a..401d85498 100644 --- a/src/views/dataBoard/renfang/index.vue +++ b/src/views/dataBoard/renfang/index.vue @@ -737,7 +737,7 @@ export default { count: item.categoryCount, ratio: ((100 * item.categoryCount) / data.resiCount).toFixed(0), growth: 0, - growthAbs: Math.abs(item.growth), + growthAbs: Math.abs(item.growth) || '--', }; }); } diff --git a/src/views/dataBoard/satisfactionEval/components/Title/titleSmall.vue b/src/views/dataBoard/satisfactionEval/components/Title/titleSmall.vue new file mode 100644 index 000000000..23e7f0e87 --- /dev/null +++ b/src/views/dataBoard/satisfactionEval/components/Title/titleSmall.vue @@ -0,0 +1,66 @@ + + + + + + + \ No newline at end of file diff --git a/src/views/dataBoard/satisfactionEval/potentialPeople/index.vue b/src/views/dataBoard/satisfactionEval/potentialPeople/index.vue index 0b467d0d2..7b90673c9 100644 --- a/src/views/dataBoard/satisfactionEval/potentialPeople/index.vue +++ b/src/views/dataBoard/satisfactionEval/potentialPeople/index.vue @@ -8,6 +8,7 @@ v-model="queryParams.agencyId" size="small" placeholder="按组织" + v-if="this.$route.query.type != 'shuji'" > + + + { return { label: index - 0 + 1 + "月", value: index - 0 + 1 }; @@ -162,6 +185,30 @@ export default { }, activated() { + if(this.$route.query.type == 'shuji'){ + this.breadcrumbList = [ + { + path: "/dataBoard/overview/index", + name: "书记看板", + }, + { + path: "", + name: "不满意风险人员", + }, + ] + this.queryParams.satisfactionSource = this.$route.query.satisfactionSource + }else{ + this.breadcrumbList = [ + { + path: "/dataBoard/satisfactionEval/index", + name: "满意度评价", + }, + { + path: "", + name: "潜在不满意人数", + }, + ] + } this.getOrg(); }, methods: { @@ -195,11 +242,12 @@ export default { }, getList() { this.loading = true; - console.log(this.$route.query.countType); + console.log(this.queryParams); let params = { ...this.queryParams, countType: this.$route.query.countType, }; + console.log(params); this.$http .get( "/governance/satisfactionDetailList/getPotentialDissatisfiedCountDetail?" + diff --git a/src/views/modules/goverhotline/followDetail.vue b/src/views/modules/goverhotline/followDetail.vue new file mode 100644 index 000000000..4b3b9f052 --- /dev/null +++ b/src/views/modules/goverhotline/followDetail.vue @@ -0,0 +1,142 @@ + + + + + + + \ No newline at end of file diff --git a/src/views/modules/goverhotline/formList.vue b/src/views/modules/goverhotline/formList.vue new file mode 100644 index 000000000..c0b918339 --- /dev/null +++ b/src/views/modules/goverhotline/formList.vue @@ -0,0 +1,143 @@ + + + diff --git a/src/views/modules/goverhotline/index.vue b/src/views/modules/goverhotline/index.vue index 8ce81730a..fbc7f33ab 100644 --- a/src/views/modules/goverhotline/index.vue +++ b/src/views/modules/goverhotline/index.vue @@ -71,7 +71,7 @@

科室热线分布情况

-
+
@@ -102,7 +102,7 @@

(一)同地点同类型事件重复投诉

- + @@ -137,6 +137,38 @@
+ + + + + +
@@ -147,8 +179,13 @@ import { mapGetters } from "vuex"; import axios from "axios"; import * as echarts from "echarts"; +import formList from "./formList"; +import util from "@js/util.js"; +import followDetail from "./followDetail"; +import eventInfo from "../shequzhili/event/cpts/event-info"; + export default { - components: {}, + components: {formList, followDetail,eventInfo}, data() { return { @@ -182,7 +219,17 @@ export default { communityCountShow:false, departCountShow:false, subCategoryCountShow:false, - + + showFormList: false, + showFormDetail: false, + + recId: "", + departId:"", + + eventId: "", + eventDetailData: {}, + pageType: "info", + categoryChartOption: { @@ -205,7 +252,6 @@ export default { }, toolbox: {}, - xAxis: { type: 'category', boundaryGap: true, @@ -522,37 +568,40 @@ export default { this.categoryChart.setOption(this.categoryChartOption); let than = this; this.categoryChart.on("click", function (params) { - than.handelClickChart(params.name); + than.handelClickChart(params); }); this.categoryPie= echarts.init(document.getElementById("categoryPie")); this.categoryPie.setOption(this.categoryPieOption); this.categoryPie.on("click", function (params) { - than.handelClickChart(params.name); + than.handelClickChart(params); }); } if(this.communityCountShow){ this.communityChart= echarts.init(document.getElementById("communityChart")); this.communityChart.setOption(this.communityOption); + let than = this; this.communityChart.on("click", function (params) { - than.handelClickChart(params.name); + than.handelClickChart(params); }); } if(this.departCountShow){ this.departChart= echarts.init(document.getElementById("departChart")); this.departChart.setOption(this.departOption); + let than = this; this.departChart.on("click", function (params) { - than.handelClickChart(params.name); + 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.name); + than.handelClickChart(params); }); } @@ -568,15 +617,54 @@ export default { this.categoryPie.resize(); } }, - handelClickChart(name) { + handelClickChart(params) { + this.showFormList = true; + this.departId =''; + this.recId = params.data.id; + }, + handelClickDepartChart(params) { this.showFormList = true; - this.satisfactionCategoryStr = this.dicts.satisfaction_category.filter( - (item) => item.label == name - )[0].value; + this.recId =''; + 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.showFormDetail = true; + } + }, + + handleClose() { + this.showFormDetail = false; + this.pageType = "list"; + this.eventId = ""; + this.getTableData(); + }, + handleOk() { + this.showFormDetail = false; + this.pageType = "list"; + this.eventId = ""; + this.pageNo = 1; + this.getTableData(); + }, + + handleEditSuccess() { + this.handleClose(); + this.getTableData(); + }, + // 搜索事件 async handleSearch(val) { console.log(this.formData); @@ -632,20 +720,28 @@ export default { } this.report = data; - console.log(this.report) this.tableLoading = true; //获取分类 Object.keys(this.report.categoryCount).forEach((key) => { - const value = this.report.categoryCount[key]; + const category = this.report.categoryCount[key]; + + // this.categoryChartOption.series[0].data.push(category.count); + this.categoryChartOption.xAxis.data.push(category.name); + + const recObject = { + id: category.id, + value: category.count + }; + this.categoryChartOption.series[0].data.push(recObject); + - this.categoryChartOption.series[0].data.push(value); - this.categoryChartOption.xAxis.data.push(key); const jsonObject = { - name: key, - value: value + id: category.id, + name: category.name, + value: category.count }; this.categoryPieOption.series[0].data.push(jsonObject); @@ -653,31 +749,46 @@ export default { // 获取社区 Object.keys(this.report.communityCount).forEach((key) => { - const value = this.report.communityCount[key]; + const community = this.report.communityCount[key]; - this.communityOption.xAxis[0].data.push(key); - this.communityOption.series[0].data.push(value/this.report.totalEvent*100); - this.communityOption.series[1].data.push(value); + this.communityOption.xAxis[0].data.push(community.name); + const recObject = { + id: community.id, + value: community.count/this.report.totalEvent*100 + }; + this.communityOption.series[0].data.push(recObject); + + + this.communityOption.series[1].data.push(community.count); }); // 获取科室 Object.keys(this.report.departCount).forEach((key) => { - const value = this.report.departCount[key]; + const depart = this.report.departCount[key]; - this.departOption.xAxis[0].data.push(key); - this.departOption.series[0].data.push(value/this.report.totalEvent*100); - this.departOption.series[1].data.push(value); + 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 value = this.report.subCategoryCount[key]; + const subcategory = this.report.subCategoryCount[key]; + this.hotlineChartOption.xAxis.data.push(subcategory.name); - this.hotlineChartOption.xAxis.data.push(key); - this.hotlineChartOption.series[0].data.push(value); + const recObject = { + id: subcategory.id, + value: subcategory.count + }; + this.hotlineChartOption.series[0].data.push(recObject); }); this.addressData = this.report.addressEvent @@ -698,12 +809,11 @@ export default { }) : []; - - if (this.report && this.report. categoryCount && Object.keys(this.report. categoryCount).length > 0) { + 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) { + if (this.report && this.report.communityCount && Object.keys(this.report.communityCount).length > 0) { this.communityCountShow = true; } @@ -715,6 +825,11 @@ export default { this.subCategoryCountShow = true; } }, + + clickAddressData(row, column){ + console.log("============clickAddressData============"); + console.log(row); + } }, props: {},