From 26d67d7a00b8104a542b8b6c3dbbcdcb33d998b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=8B=A5=E6=99=A8?= <974220104@qq.com> Date: Tue, 10 Oct 2023 15:29:52 +0800 Subject: [PATCH] =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/images/shuju/main/back1.png | Bin 0 -> 1062 bytes src/assets/scss/dataBoardMain.scss | 34 ++-- .../components/EventList/index.vue | 136 ++++++++-------- .../satisfactionEval/dissatisfied/detail.vue | 6 +- .../modules/RiskStatistics/index.vue | 143 ++++++++++------- src/views/dataBoardMain/main-navbar.vue | 146 ++++++++++++------ 6 files changed, 266 insertions(+), 199 deletions(-) create mode 100644 src/assets/images/shuju/main/back1.png diff --git a/src/assets/images/shuju/main/back1.png b/src/assets/images/shuju/main/back1.png new file mode 100644 index 0000000000000000000000000000000000000000..289a41f728d2d77fc33fcff74574bc841ed023a2 GIT binary patch literal 1062 zcmV+>1ljwEP)Px&;7LS5R9Hvtm|bWbRTRg6XEvL}NYzxUsECb=AK9A(id2O@DfU4TedvP)sSgrq zE6L2Jl7RN5FA9a|CKC`Uh#&YM`r-#ggo=V9wFJZ_vqtOZiyxq^rc$fT&XL*dmhEIe zCc7JU0==*=d+#~-chCIqIcG*#XG7K*FBgH=`iZqH!qc8UB+8HWfPA@@&`krop5CD_ z0qn5g{!t_E#}e4}bPGyGg-1((me1DFL79yeaCT1nEsLjsU12bVyD~;Tj|K4ao|+D2 zqCBFp1TIE&6xdrYa&48w%!2m$dB&rF77wBcp>HHDKh--}GxIC5MD{D)Z25&-KMW*S z;oMjFz=B1EL65OE+ z#tIF)Io+#DkQMqH*#8WWuVWYJyC&DXZOYncB=EpsuU7RD3N(Q*G8c?&PIh)gKE#)w|wbd?)81{9vhU8n*~0gYW3#$ zJ@8rbrQl|aI86bUoVh1-lm5qqz`M4QPnrb|?590_E!4t(=oq=TCBUr!Tp^2`W>m?Z z|6lmbNz1nQ00VmBNo)2}7M;s&DV;SM8dEF{PxBwN}&3FQP`l-OSP^H^$r{zfOfL%|YQFuC(mrv&} zc;`6gTD65iPZ1Ql_yK)gY gYNQ%nx9%eRKhO(JJTkwW8UO$Q07*qoM6N<$f=O8SeE
-
- + <Title :text="month + '份12345政务热线事件列表'" /> </div> <div class="content"> <div class="table"> <el-table :data="list"> - <el-table-column - label="序号" - type="index" - width="80"/> + <el-table-column label="序号" type="index" width="80" /> - <el-table-column - prop="monthTime" - label="月度"/> + <el-table-column prop="monthTime" label="月度" /> - <el-table-column - prop="agencyName" - label="所属社区"> + <el-table-column prop="agencyName" label="所属社区"> </el-table-column> - <el-table-column - prop="categoryName" - label="事项类型"/> + <el-table-column prop="categoryName" label="事项类型" /> <el-table-column - prop="eventContent" - width="200" - show-overflow-tooltip - label="事项描述"/> - <el-table-column - prop="receiveTime" - width="200" - label="接收时间"/> + prop="eventContent" + width="200" + show-overflow-tooltip + label="事项描述" + /> + <el-table-column prop="receiveTime" width="200" label="接收时间" /> - <el-table-column - prop="statusName" - label="状态"/> + <el-table-column prop="statusName" label="状态" /> <el-table-column label="详情" width="90" align="center"> <template slot-scope="data"> - <el-button type="text" @click="handleView(data.row)">查看</el-button> + <el-button type="text" @click="handleView(data.row)" + >查看</el-button + > </template> </el-table-column> - </el-table> </div> <Pagination - v-show="total>0" - :total="total" - :page.sync="queryParams.pageNo" - :limit.sync="queryParams.pageSize" - @pagination="getList" + v-show="total > 0" + :total="total" + :page.sync="queryParams.pageNo" + :limit.sync="queryParams.pageSize" + @pagination="getList" /> </div> </el-dialog> - <EventDetails :showDialog="showDialog" :id="this.rowId" @close="close"/> - + <EventDetails :showDialog="showDialog" :id="this.rowId" @close="close" /> </div> </template> <script> -import Breadcrumb from '@/views/dataBoard/satisfactionEval/components/Breadcrumb' -import Pagination from '@/views/dataBoard/satisfactionEval/components/Pagination' -import Title from "@/views/dataBoard/satisfactionEval/components/Title" -import EventDetails from "@/views/dataBoard/cpts/event-details.vue" - +import Breadcrumb from "@/views/dataBoard/satisfactionEval/components/Breadcrumb"; +import Pagination from "@/views/dataBoard/satisfactionEval/components/Pagination"; +import Title from "@/views/dataBoard/satisfactionEval/components/Title"; +import EventDetails from "@/views/dataBoard/cpts/event-details.vue"; export default { name: "EventList", - components: {Breadcrumb, Pagination, Title, EventDetails}, + components: { Breadcrumb, Pagination, Title, EventDetails }, data() { return { queryParams: { @@ -89,57 +74,58 @@ export default { }, total: 0, list: [], - month: '', + month: "", dialogVisible: false, showDialog: false, - rowId: '' - } - }, - activated() { - + rowId: "", + }; }, + activated() {}, methods: { - handleClose(done) { - this.dialogVisible = false + this.dialogVisible = false; }, open(searchParams) { - this.dialogVisible = true - this.month = this.$moment(searchParams.monthTime).format('YYYY年M月') + this.dialogVisible = true; + this.month = this.$moment(searchParams.monthTime).format("YYYY年M月"); this.queryParams = { ...this.queryParams, - ...searchParams - } - this.getList() + ...searchParams, + }; + this.getList(); }, getList() { - this.$http.get('/governance/satisfactionOverview/event12345List?' + this.$paramsFormat(this.queryParams)).then(({data: {data}}) => { - this.list = data.list - this.total = data.total - }) + this.$http + .get( + "/governance/satisfactionOverview/event12345List?" + + this.$paramsFormat(this.queryParams) + ) + .then(({ data: { data } }) => { + this.list = data.list; + this.total = data.total; + }); }, - handleView({id}) { - this.showDialog = true - this.rowId = id + handleView({ id }) { + this.showDialog = true; + this.rowId = id; }, close() { - this.showDialog = false - } - } -} + this.showDialog = false; + }, + }, +}; </script> <style scoped lang="scss"> @import "@/assets/scss/dataBoard/table.scss"; @import "@/assets/scss/dataBoard/dialog.scss"; /deep/ .el-dialog__wrapper { - background: rgba(0,0,0,.5); - z-index: 9999999999!important; + background: rgba(0, 0, 0, 0.85); + z-index: 9999999999 !important; } .dissatisfied-detail { - .main-title { margin-bottom: 20px; } } -</style> \ No newline at end of file +</style> diff --git a/src/views/dataBoard/satisfactionEval/dissatisfied/detail.vue b/src/views/dataBoard/satisfactionEval/dissatisfied/detail.vue index 9e7acf232..cc1ab501b 100644 --- a/src/views/dataBoard/satisfactionEval/dissatisfied/detail.vue +++ b/src/views/dataBoard/satisfactionEval/dissatisfied/detail.vue @@ -16,7 +16,7 @@ <div class="detail"> <p> {{unsatisfiedMattersModel.reason}} - </p>a + </p> <ul> <li><span>事项来源:</span>{{satisfactionSourceOptions[unsatisfiedMattersModel.satisfactionSource]}}</li> <li><span>事项类型:</span>{{unsatisfiedMattersModel.satisfactionCategoryName}}</li> @@ -145,7 +145,7 @@ export default { color: #FFFFFF; line-height: 22px; padding-left: 26px; - margin-bottom: 20px; + margin-bottom: 15px; } .detail { @@ -165,7 +165,7 @@ export default { li { color: #FFFFFF; - line-height: 28px; + line-height: 32px; span { color: #9CB4D3 diff --git a/src/views/dataBoard/satisfactionEval/modules/RiskStatistics/index.vue b/src/views/dataBoard/satisfactionEval/modules/RiskStatistics/index.vue index 84d3b464e..f9e02f85f 100755 --- a/src/views/dataBoard/satisfactionEval/modules/RiskStatistics/index.vue +++ b/src/views/dataBoard/satisfactionEval/modules/RiskStatistics/index.vue @@ -1,79 +1,101 @@ <template> - <div v-loading="loading" - element-loading-text="加载中..." - element-loading-spinner="el-icon-loading" - element-loading-background="rgba(0,0,0,0.5)"> + <div + v-loading="loading" + element-loading-text="加载中..." + element-loading-spinner="el-icon-loading" + element-loading-background="rgba(0,0,0,0.5)" + > <div class="number-list"> <div class="number-item"> <div class="img"> - <img src="@/assets/images/manyidu/hf_ts.png" alt=""> + <img src="@/assets/images/manyidu/hf_ts.png" alt="" /> </div> <div> <div class="txt"> - 12345热线 <br> + 12345热线 <br /> 投诉人数 </div> - <div class="num"><span>{{ event12345Num ? event12345Num : 0 }}</span> 人</div> + <div class="num"> + <span>{{ event12345Num ? event12345Num : 0 }}</span> 人 + </div> </div> - </div> <div class="number-item"> <div class="img"> - <img src="@/assets/images/manyidu/hf_bmy.png" alt=""> + <img src="@/assets/images/manyidu/hf_bmy.png" alt="" /> </div> <div> <div class="txt"> - 省满意度调查 <br> + 省满意度调查 <br /> 不满意人数 </div> - <div class="num"><span>{{ provinceSatisfactionNum ? provinceSatisfactionNum : 0 }}</span> 人</div> + <div class="num"> + <span>{{ + provinceSatisfactionNum ? provinceSatisfactionNum : 0 + }}</span> + 人 + </div> </div> - </div> <div class="number-item"> <div class="img"> - <img src="@/assets/images/manyidu/hf_zpbmy.png" alt=""> + <img src="@/assets/images/manyidu/hf_zpbmy.png" alt="" /> </div> <div> <div class="txt"> - 社区满意度自评 <br> + 社区满意度自评 <br /> 不满意人数 </div> - <div class="num"><span>{{ selfInspectNum ? selfInspectNum : 0 }}</span> 人</div> + <div class="num"> + <span>{{ selfInspectNum ? selfInspectNum : 0 }}</span> 人 + </div> </div> </div> </div> <div class="number-list2"> <div class="number-item"> <div class="txt"> - 本月回访 <br> + 本月回访 <br /> 次数 </div> - <div class="num"><span class="grey">{{ followMonthNum ? followMonthNum : 0 }}</span> 人</div> + <div class="num"> + <span class="grey">{{ followMonthNum ? followMonthNum : 0 }}</span> 人 + </div> </div> <div class="number-item"> <div class="txt"> - 本月回访消除 <br> + 本月回访消除 <br /> 风险人员数 </div> - <div class="num"><span class="green">{{ followMonthNotRiskyNum ? followMonthNotRiskyNum : 0 }}</span> 人</div> + <div class="num"> + <span class="green">{{ + followMonthNotRiskyNum ? followMonthNotRiskyNum : 0 + }}</span> + 人 + </div> </div> <div class="number-item"> <div class="txt"> - 累计回访 <br> + 累计回访 <br /> 次数 </div> - <div class="num"><span class="purple">{{ followSumNum ? followSumNum : 0 }}</span> 人</div> + <div class="num"> + <span class="purple">{{ followSumNum ? followSumNum : 0 }}</span> 人 + </div> </div> <div class="number-item"> <div class="txt"> - 累计回访消除 <br> + 累计回访消除 <br /> 风险人员数 </div> - <div class="num"><span class="blue">{{ followNotRiskyNum ? followNotRiskyNum : 0 }}</span> 人</div> + <div class="num"> + <span class="blue">{{ + followNotRiskyNum ? followNotRiskyNum : 0 + }}</span> + 人 + </div> </div> </div> - </div> </template> @@ -89,15 +111,14 @@ export default { followSumNum: 0, provinceSatisfactionNum: 0, selfInspectNum: 0, - loading: true - } + loading: true, + }; }, props: { date: { type: Object, - default: () => { - } - } + default: () => {}, + }, }, watch: { "$store.state.chooseArea.chooseName"(val) { @@ -107,7 +128,7 @@ export default { }, date() { this.getData(); - } + }, }, mounted() { if (this.$store.state.chooseArea.chooseName.orgId) { @@ -116,25 +137,30 @@ export default { }, methods: { getData() { - this.loading = true + this.loading = true; let params = { level: this.$store.state.chooseArea.chooseName.level, orgId: this.$store.state.chooseArea.chooseName.orgId, - ...this.date - } - this.$http.get('/governance/satisfactionOverview/satisfactionFollowGroup?' + this.$paramsFormat(params)).then(({data: {data}}) => { - this.event12345Num = data.event12345Num; - this.followMonthNotRiskyNum = data.followMonthNotRiskyNum; - this.followMonthNum = data.followMonthNum; - this.followNotRiskyNum = data.followNotRiskyNum; - this.followSumNum = data.followSumNum; - this.provinceSatisfactionNum = data.provinceSatisfactionNum; - this.selfInspectNum = data.selfInspectNum; - this.loading = false - }) - } - } -} + ...this.date, + }; + this.$http + .get( + "/governance/satisfactionOverview/satisfactionFollowGroup?" + + this.$paramsFormat(params) + ) + .then(({ data: { data } }) => { + this.event12345Num = data.event12345Num; + this.followMonthNotRiskyNum = data.followMonthNotRiskyNum; + this.followMonthNum = data.followMonthNum; + this.followNotRiskyNum = data.followNotRiskyNum; + this.followSumNum = data.followSumNum; + this.provinceSatisfactionNum = data.provinceSatisfactionNum; + this.selfInspectNum = data.selfInspectNum; + this.loading = false; + }); + }, + }, +}; </script> <style scoped lang="scss"> @@ -152,10 +178,11 @@ export default { } .txt { - font-size: 16px; + font-size: 15px; + margin-left: -6px; font-weight: 400; - color: #FFFFFF; - line-height: 24px; + color: #ffffff; + line-height: 26px; margin-bottom: 22px; white-space: nowrap; } @@ -163,13 +190,13 @@ export default { .num { font-size: 14px; font-weight: 500; - color: #A3B9DA; + color: #a3b9da; white-space: nowrap; span { font-size: 32px; font-weight: bold; font-style: italic; - color: #3AB7FF; + color: #3ab7ff; } } } @@ -184,7 +211,7 @@ export default { .txt { font-size: 14px; font-weight: 400; - color: #A3B9DA; + color: #a3b9da; line-height: 24px; margin-bottom: 16px; } @@ -192,7 +219,7 @@ export default { .num { font-size: 14px; font-weight: 500; - color: #A3B9DA; + color: #a3b9da; span { font-size: 32px; @@ -204,18 +231,18 @@ export default { } .grey { - color: #78C4F3; + color: #78c4f3; } .green { - color: #08EBAE; + color: #08ebae; } .purple { - color: #A761FD; + color: #a761fd; } .blue { - color: #356EFF; + color: #356eff; } -</style> \ No newline at end of file +</style> diff --git a/src/views/dataBoardMain/main-navbar.vue b/src/views/dataBoardMain/main-navbar.vue index 02889d62d..de96637eb 100644 --- a/src/views/dataBoardMain/main-navbar.vue +++ b/src/views/dataBoardMain/main-navbar.vue @@ -1,13 +1,33 @@ <template> <div class="m-topnav"> <div class="back" style="cursor: pointer" @click="goBack()"> - <img src="~@/assets/images/shuju/main/back.png" alt="/" /> + <img + width="22px" + height="22px" + src="~@/assets/images/shuju/main/back1.png" + alt="/" + /> </div> - <div class="title">{{ customerName }}数据智能分析平台</div> - <div class="selectArea" v-if="$route.path == '/dataBoard/satisfactionEval/index'"> - <el-select @change="setSelectName" v-model="value" popper-class="selectPopClass"> - <el-option v-for="(item, index) in options" v-if="item.agencyLevel !== 'grid'" :key="item.value" :label="item.label" :value="item.value"/> - </el-select> + <div class="title"> + <div class="title-txt">{{ customerName }}数据智能分析平台</div> + <div + class="selectArea" + v-if="$route.path == '/dataBoard/satisfactionEval/index'" + > + <el-select + @change="setSelectName" + v-model="value" + popper-class="selectPopClass" + > + <el-option + v-for="(item, index) in options" + v-if="item.agencyLevel !== 'grid'" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> + </div> </div> <!-- <div class="btn-back" @click="toPage('/')"> <img class="z-default" src="~@/assets/images/shuju/main/back.png" /> @@ -26,16 +46,32 @@ </div> </div>--> <div class="nav-list"> - <div class="nav-item" :class="{ 'z-on': $route.path.indexOf('/dataBoard/overview') != -1 }" @click="toPage('/dataBoard/overview/index')"> + <div + class="nav-item" + :class="{ 'z-on': $route.path.indexOf('/dataBoard/overview') != -1 }" + @click="toPage('/dataBoard/overview/index')" + > <span>概览</span> </div> - <div class="nav-item" :class="{ 'z-on': $route.path.includes('/organizational') }" @click="toPage('/organizational/dangTree')"> + <div + class="nav-item" + :class="{ 'z-on': $route.path.includes('/organizational') }" + @click="toPage('/organizational/dangTree')" + > <span>组织架构</span> </div> - <div class="nav-item" :class="{ 'z-on': $route.path.indexOf('/dataBoard/renfang') != -1 }" @click="toPage('/dataBoard/renfang/index')"> + <div + class="nav-item" + :class="{ 'z-on': $route.path.indexOf('/dataBoard/renfang') != -1 }" + @click="toPage('/dataBoard/renfang/index')" + > <span>人房数据</span> </div> - <div class="nav-item" :class="{ 'z-on': $route.path.includes('/satisfactionEval') }" @click="toPage('/dataBoard/satisfactionEval/index')"> + <div + class="nav-item" + :class="{ 'z-on': $route.path.includes('/satisfactionEval') }" + @click="toPage('/dataBoard/satisfactionEval/index')" + > <span>满意度评价</span> </div> </div> @@ -184,10 +220,15 @@ export default { const customerId = localStorage.getItem("customerId"); let siteconfigElement = window.SITE_CONFIG["menuShujuList"]; //暂时 亿联街道和 微笑崂山显示 社区治理-》多元化菜单 - if ("04c0d396e298f13e57aa5904a657eaa6" != customerId && "3fdd0380deff5b30f45376cdf995d1c1" != customerId) { + if ( + "04c0d396e298f13e57aa5904a657eaa6" != customerId && + "3fdd0380deff5b30f45376cdf995d1c1" != customerId + ) { for (let index in siteconfigElement) { if (siteconfigElement[index].id == "6") { - let newMenuArr = siteconfigElement[index].children.filter((item) => item.id !== "duoyuanfuwufenxi"); + let newMenuArr = siteconfigElement[index].children.filter( + (item) => item.id !== "duoyuanfuwufenxi" + ); siteconfigElement[index].children = newMenuArr; } } @@ -217,46 +258,51 @@ export default { params = { orgId: this.value, level: this.getChooseLabel(this.value) }; } console.log(params); - this.$http.post(`/gov/org/agency/maporg`, params).then(async ({ data: { data } }) => { - console.log(data); - this.value = data.id; - this.$store.dispatch("chooseArea/chooseName", { - orgId: data.id, - level: data.level, + this.$http + .post(`/gov/org/agency/maporg`, params) + .then(async ({ data: { data } }) => { + console.log(data); + this.value = data.id; + this.$store.dispatch("chooseArea/chooseName", { + orgId: data.id, + level: data.level, + }); + let children = await this.dealTreeData(data.children); + if (data.parentId) { + this.options = [ + { + ...data, + value: data.parentId, + label: data.parentName, + }, + { + ...data, + value: data.id, + label: data.name, + }, + ...children, + ]; + } else { + this.options = [ + { + ...data, + value: data.id, + label: data.name, + }, + ...children, + ]; + } }); - let children = await this.dealTreeData(data.children); - if (data.parentId) { - this.options = [ - { - ...data, - value: data.parentId, - label: data.parentName, - }, - { - ...data, - value: data.id, - label: data.name, - }, - ...children, - ]; - } else { - this.options = [ - { - ...data, - value: data.id, - label: data.name, - }, - ...children, - ]; - } - }); }, dealTreeData(treeData, level = 0) { const data = treeData.map((item) => ({ ...item, value: item.id, label: item.name, - children: item.children && item.children.length ? this.dealTreeData(item.children, level++) : null, + children: + item.children && item.children.length + ? this.dealTreeData(item.children, level++) + : null, })); return data; }, @@ -290,7 +336,9 @@ export default { }, // 通过menuId与动态(菜单)路由进行匹配跳转至指定路由 gotoRouteHandle(menuId, idx) { - var route = window.SITE_CONFIG["dynamicMenuRoutesShuju"].filter((item) => item.meta.menuId === menuId)[0]; + var route = window.SITE_CONFIG["dynamicMenuRoutesShuju"].filter( + (item) => item.meta.menuId === menuId + )[0]; if (route) { this.$router.push({ name: route.name, @@ -299,10 +347,12 @@ export default { } }, changeCustomerName() { - this.customerName = localStorage.getItem("customerNameDataBoard") || "数据分析可视化平台"; + this.customerName = + localStorage.getItem("customerNameDataBoard") || "数据分析可视化平台"; }, async getWeatherData() { - const url = "https://restapi.amap.com/v3/weather/weatherInfo?key=8c87678f34ce9e8e23245c5161991c4e"; + const url = + "https://restapi.amap.com/v3/weather/weatherInfo?key=8c87678f34ce9e8e23245c5161991c4e"; const { data, code, msg } = await requestGet(url, { city: this.$store.state.user.areaCode, });