From 122c5df2d0d43849d6d789ae8c37648298208f04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=8B=A5=E6=99=A8?= <974220104@qq.com> Date: Wed, 27 Sep 2023 18:30:21 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E7=94=BB=E5=83=8F=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E9=A6=96=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/dataBoard/cpts/details/jmxq.vue | 378 ++++++++++++++++ src/views/dataBoard/cpts/details/smyd.vue | 393 +++++++++++++++++ src/views/dataBoard/cpts/details/xqwmz.vue | 407 ++++++++++++++++++ src/views/dataBoard/cpts/details/yxwxfw.vue | 320 ++++++++++++++ .../modules/businessTables/community.vue | 16 +- .../modules/businessTables/complaint.vue | 6 +- .../modules/businessTables/economize.vue | 15 +- .../modules/businessTables/give-service.vue | 16 +- .../businessTables/reporting-events.vue | 16 +- .../modules/businessTables/resident.vue | 16 +- .../modules/businessTables/community.vue | 16 +- .../modules/businessTables/complaint.vue | 2 +- .../modules/businessTables/economize.vue | 16 +- .../modules/businessTables/give-service.vue | 21 +- .../businessTables/reporting-events.vue | 2 +- .../modules/businessTables/resident.vue | 16 +- 16 files changed, 1642 insertions(+), 14 deletions(-) create mode 100644 src/views/dataBoard/cpts/details/jmxq.vue create mode 100644 src/views/dataBoard/cpts/details/smyd.vue create mode 100644 src/views/dataBoard/cpts/details/xqwmz.vue create mode 100644 src/views/dataBoard/cpts/details/yxwxfw.vue diff --git a/src/views/dataBoard/cpts/details/jmxq.vue b/src/views/dataBoard/cpts/details/jmxq.vue new file mode 100644 index 000000000..ad679d208 --- /dev/null +++ b/src/views/dataBoard/cpts/details/jmxq.vue @@ -0,0 +1,378 @@ + + + + + + + diff --git a/src/views/dataBoard/cpts/details/smyd.vue b/src/views/dataBoard/cpts/details/smyd.vue new file mode 100644 index 000000000..c72b67410 --- /dev/null +++ b/src/views/dataBoard/cpts/details/smyd.vue @@ -0,0 +1,393 @@ + + + + + + + diff --git a/src/views/dataBoard/cpts/details/xqwmz.vue b/src/views/dataBoard/cpts/details/xqwmz.vue new file mode 100644 index 000000000..9bf9bce5a --- /dev/null +++ b/src/views/dataBoard/cpts/details/xqwmz.vue @@ -0,0 +1,407 @@ + + + + + + + diff --git a/src/views/dataBoard/cpts/details/yxwxfw.vue b/src/views/dataBoard/cpts/details/yxwxfw.vue new file mode 100644 index 000000000..ab6d59f7d --- /dev/null +++ b/src/views/dataBoard/cpts/details/yxwxfw.vue @@ -0,0 +1,320 @@ + + + + + + + diff --git a/src/views/dataBoard/cpts/family/modules/businessTables/community.vue b/src/views/dataBoard/cpts/family/modules/businessTables/community.vue index b4d3c4ad3..9df3a7c64 100644 --- a/src/views/dataBoard/cpts/family/modules/businessTables/community.vue +++ b/src/views/dataBoard/cpts/family/modules/businessTables/community.vue @@ -8,16 +8,21 @@ + diff --git a/src/views/dataBoard/cpts/personnel/modules/businessTables/complaint.vue b/src/views/dataBoard/cpts/personnel/modules/businessTables/complaint.vue index 9ea8a89d5..ddcd373ef 100644 --- a/src/views/dataBoard/cpts/personnel/modules/businessTables/complaint.vue +++ b/src/views/dataBoard/cpts/personnel/modules/businessTables/complaint.vue @@ -9,7 +9,7 @@ diff --git a/src/views/dataBoard/cpts/personnel/modules/businessTables/economize.vue b/src/views/dataBoard/cpts/personnel/modules/businessTables/economize.vue index b43a87b55..c52a55d1d 100644 --- a/src/views/dataBoard/cpts/personnel/modules/businessTables/economize.vue +++ b/src/views/dataBoard/cpts/personnel/modules/businessTables/economize.vue @@ -8,16 +8,21 @@ + diff --git a/src/views/dataBoard/cpts/personnel/modules/businessTables/reporting-events.vue b/src/views/dataBoard/cpts/personnel/modules/businessTables/reporting-events.vue index 683bf25b0..7a226d869 100644 --- a/src/views/dataBoard/cpts/personnel/modules/businessTables/reporting-events.vue +++ b/src/views/dataBoard/cpts/personnel/modules/businessTables/reporting-events.vue @@ -8,7 +8,7 @@ diff --git a/src/views/dataBoard/cpts/personnel/modules/businessTables/resident.vue b/src/views/dataBoard/cpts/personnel/modules/businessTables/resident.vue index e41d3d87f..c619a31e3 100644 --- a/src/views/dataBoard/cpts/personnel/modules/businessTables/resident.vue +++ b/src/views/dataBoard/cpts/personnel/modules/businessTables/resident.vue @@ -8,16 +8,21 @@ + \ No newline at end of file diff --git a/src/views/dataBoard/overview/index.vue b/src/views/dataBoard/overview/index.vue index 8d2151491..5f10ab95b 100644 --- a/src/views/dataBoard/overview/index.vue +++ b/src/views/dataBoard/overview/index.vue @@ -9,7 +9,7 @@
- +
- +
- +
- +
- +
- - + +
- + - +
- + - +
- +
- +
- +
- +
- + @@ -179,8 +193,8 @@ import RankingGridData from "@/views/dataBoard/overview/components/RankingGridDa import FollowUp from "@/views/dataBoard/overview/components/FollowUp.vue"; import Tabs from "@/views/dataBoard/satisfactionEval/components/Tabs/index.vue"; -import { requestPostBi } from "@/js/dai/request-bipass"; -import { requestPost } from "@/js/dai/request"; +import {requestPostBi} from "@/js/dai/request-bipass"; +import {requestPost} from "@/js/dai/request"; export default { name: "renfang", @@ -223,7 +237,7 @@ export default { currentLevelData: { orgId: this.$store.state.chooseArea.chooseName.orgId, orgLevel: this.$store.state.chooseArea.chooseName.level, - meta: { title: "人房总览" }, + meta: {title: "人房总览"}, }, breadList: [ { @@ -231,7 +245,7 @@ export default { orgLevel: "", id: "", level: "", - meta: { title: "人房总览" }, + meta: {title: "人房总览"}, }, ], peopleList: { @@ -299,7 +313,7 @@ export default { methods: { changeCustomerName() { this.customerName = - localStorage.getItem("customerNameDataBoard") || "数据分析可视化平台"; + localStorage.getItem("customerNameDataBoard") || "数据分析可视化平台"; }, changeType(e) { this.peopleType = e; @@ -337,11 +351,12 @@ export default { } }, - clickBreadItem({ item }) { + clickBreadItem({item}) { this.toBread(item); }, clickAgencyItem(item) { + this.$refs.map.clearMarkert() if (item.id) { this.customerName = item.name || item.meta.title; this.currentLevelData = { @@ -350,7 +365,7 @@ export default { }; } else { this.customerName = - localStorage.getItem("customerNameDataBoard") || "数据分析可视化平台"; + localStorage.getItem("customerNameDataBoard") || "数据分析可视化平台"; this.currentLevelData = { ...this.$store.state.chooseArea.chooseName, orgLevel: this.$store.state.chooseArea.chooseName.level, @@ -359,7 +374,7 @@ export default { this.toBread({ orgId: item.id, orgLevel: item.level, - meta: { title: item.name }, + meta: {title: item.name}, }); }, goBackMap() { @@ -367,13 +382,13 @@ export default { this.clickAgencyItem(item); }, toBread(item) { - const { orgId } = item; - const { breadList } = this; + const {orgId} = item; + const {breadList} = this; let index = breadList.findIndex((val) => val.orgId === orgId); if (index >= 0) { this.breadList = breadList.slice(0, index + 1); } else { - breadList.push({ ...item, id: item.orgId, level: item.orgLevel }); + breadList.push({...item, id: item.orgId, level: item.orgLevel}); this.breadList = breadList; } this.getMapData(item.orgId, item.orgLevel); @@ -386,18 +401,49 @@ export default { } this.$refs.map.setDotMarker(item, [parseFloat(item.longitude), parseFloat(item.latitude)]); }, - + setNum(data) { + console.log(this.orgData,data,'111') + // data + let params = [] + let org = this.orgData.children + org.forEach(item => { + data.forEach(item2 => { + if (item2.orgId === item.id && item.coordinates) { + params.push({ + ...item2, + peopleType: this.peopleList[this.peopleType], + latitude: item.latitude, + longitude: item.longitude + }) + } + }) + }) + if (params.length) { + this.$refs.map.setNum(params) + } + }, + setPoint(data) { + if (data) { + this.$refs.map.setPoint(data) + } + }, //获取地图上显示的组织数据 async getMapData( - orgId = this.$store.state.chooseArea.chooseName.orgId, - level = this.$store.state.chooseArea.chooseName.level + orgId = this.$store.state.chooseArea.chooseName.orgId, + level = this.$store.state.chooseArea.chooseName.level ) { const url = "org_map"; - this.$http.post(`/gov/org/agency/maporg`, { orgId, level }).then(({ data: { data } }) => { + this.$http.post(`/gov/org/agency/maporg`, {orgId, level}).then(({data: {data}}) => { this.orgData = data; - this.orgId = this.orgData.org_id; + this.orgId = this.orgData.id; + console.log(this.orgId) this.orgLevel = this.orgData.level; this.currentLevel = this.orgData.agencyLevel; + this.currentLevelData = { + orgId: this.orgId, + orgLevel: this.currentLevel, + }; + this.peopleType = this.currentLevel === 'grid'?'unit':'staffAgency'; }); }, @@ -405,20 +451,20 @@ export default { async getSubMapData() { const url = "sub_org_map"; - const { data, code, msg } = await requestPostBi( - url, - { - queryParam: { - org_id: this.orgId, + const {data, code, msg} = await requestPostBi( + url, + { + queryParam: { + org_id: this.orgId, + }, }, - }, - { - // mockId: 61831860, - } + { + // mockId: 61831860, + } ); if (code === 0) { - const { orgData } = this; + const {orgData} = this; orgData.children = data.map((item) => { return { ...item, @@ -429,7 +475,7 @@ export default { coordinates: item.coordinates || "", }; }); - this.orgData = { ...orgData }; + this.orgData = {...orgData}; } else { this.$message.error(msg); } @@ -443,7 +489,7 @@ export default { level: this.orgLevel, }; - const { data, code, msg } = await requestPost(url, params); + const {data, code, msg} = await requestPost(url, params); if (code === 0) { this.orgData = data; this.orgId = this.orgId; @@ -465,10 +511,12 @@ export default { top: 100px; left: 16px; right: 0; + img { height: 36px; width: 36px; } + img:hover { cursor: pointer; } From 97f5f2b365585d2495503d5336dc654fca1f74db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=88=98=E7=AB=8B=E6=A0=87?= <2658037827@qq.com> Date: Wed, 27 Sep 2023 18:52:25 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E5=B9=B2=E6=8E=89=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/dataBoard/cpts/family/modules/MatterDetails.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/dataBoard/cpts/family/modules/MatterDetails.vue b/src/views/dataBoard/cpts/family/modules/MatterDetails.vue index 8f99c4eba..b1314b416 100644 --- a/src/views/dataBoard/cpts/family/modules/MatterDetails.vue +++ b/src/views/dataBoard/cpts/family/modules/MatterDetails.vue @@ -15,7 +15,7 @@ {{ item.tagName }} -
四季景园1号楼1单元101
+ From 5292d2f97ae64f8f9a1ac20e1bf74046ad441a24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=8B=A5=E6=99=A8?= <974220104@qq.com> Date: Thu, 28 Sep 2023 10:58:59 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E8=84=B1=E6=95=8F=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.js | 2 ++ src/utils/desensitization.js | 5 +++++ 2 files changed, 7 insertions(+) create mode 100644 src/utils/desensitization.js diff --git a/src/main.js b/src/main.js index afc7bd227..06a255397 100644 --- a/src/main.js +++ b/src/main.js @@ -24,6 +24,7 @@ import http from "@/utils/request"; import cloneDeep from "lodash/cloneDeep"; // 引入工具类 import "./utils/jwTool"; +import desensitization from "./utils/desensitization"; // axios封装 import ajax from "@/js/ajax"; // service @@ -95,6 +96,7 @@ Vue.directive("fixed", { // 挂载全局 Vue.prototype.$http = http; +Vue.prototype.$sensitive = desensitization; // el-uploader的header配置 Vue.prototype.$getElUploadHeaders = () => ({ diff --git a/src/utils/desensitization.js b/src/utils/desensitization.js new file mode 100644 index 000000000..fcb4cbde2 --- /dev/null +++ b/src/utils/desensitization.js @@ -0,0 +1,5 @@ +export default function desensitizeSubstring(inputString, start, end) { + // 保留部分非敏感信息,将敏感信息部分截取掉 + let desensitizedString = inputString.substring(0, start) + "*".repeat(end - start) + inputString.substring(end); + return desensitizedString; +} From f8be5b327075f4d42a44f0b36855de1b5f0f2a37 Mon Sep 17 00:00:00 2001 From: SongZhen <> Date: Thu, 28 Sep 2023 11:02:32 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E7=BD=91=E6=A0=BC=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=BE=AE=E7=BD=91=E6=A0=BC=E6=98=BE=E7=A4=BAname?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/GridTree/nodeWrap.vue | 7 +- .../dataBoard/satisfactionEval/index.vue | 2 +- .../modules/PersonnelPortrait/index.vue | 97 ++++++++++--------- 3 files changed, 56 insertions(+), 50 deletions(-) diff --git a/src/components/GridTree/nodeWrap.vue b/src/components/GridTree/nodeWrap.vue index cb7aacc44..72864caae 100644 --- a/src/components/GridTree/nodeWrap.vue +++ b/src/components/GridTree/nodeWrap.vue @@ -27,8 +27,9 @@
-
- {{ spliceNameFun(item.name, 3) }} +
+ + {{ item.organizationName }}
@@ -97,7 +98,7 @@ export default { }, gotoPersonnel(item) { const grandPid = this.findParentParentId(this.nodeConfig, item.pid); - const name = item.name ? item.name : "四号楼二单元302"; + const name = item.organizationName ? item.organizationName : "四号楼二单元302"; this.$router.push(`/organizational/microgrid/${item.id}/${grandPid}/${name}`); }, }, diff --git a/src/views/dataBoard/satisfactionEval/index.vue b/src/views/dataBoard/satisfactionEval/index.vue index 8b39b68f4..eb27ce685 100644 --- a/src/views/dataBoard/satisfactionEval/index.vue +++ b/src/views/dataBoard/satisfactionEval/index.vue @@ -23,7 +23,7 @@
- + <Title text="下级组织不满意事项统计"/> <EventStatistics/> </div> </el-col> diff --git a/src/views/dataBoard/satisfactionEval/modules/PersonnelPortrait/index.vue b/src/views/dataBoard/satisfactionEval/modules/PersonnelPortrait/index.vue index df1d6f384..eb4dac218 100644 --- a/src/views/dataBoard/satisfactionEval/modules/PersonnelPortrait/index.vue +++ b/src/views/dataBoard/satisfactionEval/modules/PersonnelPortrait/index.vue @@ -1,6 +1,6 @@ <template> <div class="personnel-portrait"> - <Tabs v-model="resultType" :list="resultTypeList" @changeVal="resultTypeChange"/> + <Tabs v-model="resultType" :list="resultTypeList" @changeVal="resultTypeChange" /> <div class="screen"> <div class="txt">不满意人员画像</div> <!-- <el-select v-model="typeCondition" @change="getData" placeholder="请选择" class="select" popper-class="selectPopClass"> @@ -26,19 +26,24 @@ <div class="tag light" v-if="monthIncomeLevel"> <div class="text">{{ monthIncomeLevel }}</div> </div> - <div class="tag green" v-if="cultureLevel"> - <div class="text">{{ cultureLevel }}</div> + <div class="tag green" v-if="cultureName"> + <div class="text">{{ cultureName }}</div> </div> <div class="tag orange" v-if="marriageName"> <div class="text">{{ marriageName }}</div> </div> <div class="tag purple" v-if="gender"> - <div class="text">{{ gender === '1' ? '男' : gender === '2' ? '女' : gender === '0' ? '未知' : '' }}</div> + <div class="text">{{ gender === "1" ? "男" : gender === "2" ? "女" : gender === "0" ? "未知" : "" }}</div> </div> </div> <div class="btn" @click="gotopage"> - <div>按画像匹配到同类:<span> <b>{{ matchPeopleNum ? matchPeopleNum : 0 }}</b>人</span></div> + <div> + 按画像匹配到同类:<span> + <b>{{ matchPeopleNum ? matchPeopleNum : 0 }}</b + >人</span + > + </div> <i class="el-icon-arrow-right"></i> </div> </div> @@ -49,30 +54,32 @@ import Tabs from "@/views/dataBoard/satisfactionEval/components/Tabs/index.vue"; export default { name: "PersonnelPortrait", - components: {Tabs}, + components: { Tabs }, data() { return { - resultType: 'provinceAndSelf', - resultTypeList: [{ - label: '按省调查/社区自查结果', - value: 'provinceAndSelf' - - }, { - label: '按12345热线投诉结果', - value: '12345' - }], - typeCondition: '', + resultType: "provinceAndSelf", + resultTypeList: [ + { + label: "按省调查/社区自查结果", + value: "provinceAndSelf", + }, + { + label: "按12345热线投诉结果", + value: "12345", + }, + ], + typeCondition: "", typeConditionList: [], gender: "", marriageName: "", ageClassification: "", - cultureLevel: "", + cultureName: "", gridName: "", monthIncomeLevel: "", residentTagName: "", matchPeopleNum: 0, - searchParams: '' - } + searchParams: "", + }; }, watch: { "$store.state.chooseArea.chooseName"(val) { @@ -80,7 +87,7 @@ export default { // this.getDisKey() this.getData(); } - } + }, }, mounted() { if (this.$store.state.chooseArea.chooseName.orgId) { @@ -90,17 +97,17 @@ export default { }, methods: { resultTypeChange(val) { - this.resultType = val - this.getData() + this.resultType = val; + this.getData(); }, gotopage() { - this.$router.push('/dataBoard/satisfactionEval/dissatisfiedPersonnel?searchParams=' + this.searchParams) + this.$router.push("/dataBoard/satisfactionEval/dissatisfiedPersonnel?searchParams=" + this.searchParams); }, getDisKey() { - this.$http.post('/sys/dict/data/dictlist', {'dictType': 'satisfaction_category'}).then(({data: {data}}) => { - this.typeCondition = data[0].value - this.typeConditionList = data - }) + this.$http.post("/sys/dict/data/dictlist", { dictType: "satisfaction_category" }).then(({ data: { data } }) => { + this.typeCondition = data[0].value; + this.typeConditionList = data; + }); }, getData() { let params = { @@ -108,22 +115,22 @@ export default { orgId: this.$store.state.chooseArea.chooseName.orgId, queryType: this.resultType, category: this.typeCondition, - } - this.$http.get('/governance/satisfactionOverview/satisfactionCrowdPortrait?' + this.$paramsFormat(params)).then(({data: {data}}) => { + }; + this.$http.get("/governance/satisfactionOverview/satisfactionCrowdPortrait?" + this.$paramsFormat(params)).then(({ data: { data } }) => { this.gender = data.gender; this.marriageName = data.marriageName; this.ageClassification = data.ageClassification; - this.cultureLevel = data.cultureLevel; + this.cultureName = data.cultureName; this.gridName = data.gridName; this.monthIncomeLevel = data.monthIncomeLevel; this.residentTagName = data.residentTagName; this.matchPeopleNum = data.matchPeopleNum; - this.searchParams = JSON.stringify({...data, ...params}) - }) - } - } -} + this.searchParams = JSON.stringify({ ...data, ...params }); + }); + }, + }, +}; </script> <style scoped lang="scss"> @@ -146,7 +153,7 @@ $purple: #6642fd; .txt { font-size: 16px; font-weight: 500; - color: #FFFFFF; + color: #ffffff; line-height: 22px; margin-right: 25px; } @@ -154,15 +161,15 @@ $purple: #6642fd; /deep/ .el-input__inner { width: 110px !important; height: 24px !important; - background: #021C49 !important; - border: 1px solid #125AAA !important; + background: #021c49 !important; + border: 1px solid #125aaa !important; border-radius: 12px !important; - color: #A0CDFF; + color: #a0cdff; } /deep/ .el-input__icon { line-height: 24px !important; - color: #A0CDFF; + color: #a0cdff; } } @@ -196,13 +203,12 @@ $purple: #6642fd; &:after { content: ""; - opacity: .3; + opacity: 0.3; display: block; width: 76px; height: 76px; position: absolute; border-radius: 50%; - } &:nth-of-type(1) { @@ -315,11 +321,11 @@ $purple: #6642fd; .btn { width: 240px; height: 46px; - border: 1px solid #125AAA; + border: 1px solid #125aaa; border-radius: 23px; font-size: 14px; font-weight: 400; - color: #FFFFFF; + color: #ffffff; line-height: 46px; display: flex; align-items: center; @@ -332,5 +338,4 @@ $purple: #6642fd; font-size: 18px; } } - -</style> \ No newline at end of file +</style>