diff --git a/src/assets/scss/dataBoard/renfang/index.scss b/src/assets/scss/dataBoard/renfang/index.scss index 57885d21e..8bcc6e1f0 100644 --- a/src/assets/scss/dataBoard/renfang/index.scss +++ b/src/assets/scss/dataBoard/renfang/index.scss @@ -1,445 +1,659 @@ -@import "../../c/config"; -@import "../../c/function"; -@import "../c/common"; +@import '../../c/config'; +@import '../../c/function'; +@import '../c/common'; .g-row { - padding: 10px 6px; - display: flex; - justify-content: space-between; - - .g-left { - width: 480px; - } - .g-center { - position: relative; - width: 820px; - } - .g-right { - width: 480px; - } + padding: 10px 6px; + display: flex; + justify-content: space-between; + + .g-left { + width: 480px; + } + .g-center { + position: relative; + width: 820px; + } + .g-right { + width: 480px; + } } .m-map { - position: relative; - width: 100%; - height: 650px; - margin-bottom: 10px; + position: relative; + width: 100%; + height: 650px; + margin-bottom: 10px; } .m-search { - position: absolute; - z-index: 70; - top: 560px; - left: 0; - width: 100%; - background-color: transparent; - .btn { - position: relative; - width: 213px; - height: 80px; - cursor: pointer; - opacity: 0.8; - - > span { - position: absolute; - top: 0; - right: 27px; - display: block; - line-height: 83px; - text-align: right; - font-size: 16px; - font-family: PingFangSC-Regular, PingFang SC; - font-weight: 400; - color: #6fdeff; - } - > img { - display: block; - width: 213px; - &.btn-bg-hover { - display: none; - } - } - &:hover { - opacity: 1; - > img { - .btn-bg { - display: none; - } - - .btn-bg-hover { - display: block; - } - } - } - } - - .card { - position: absolute; - top: 0; - left: 0; - z-index: 71; - width: 100%; - height: 386px; - background: #00023a; - box-shadow: inset 0px 0px 40px 0px rgba(26, 149, 255, 0.45); - border-radius: 4px; - border: 1px solid #1a95ff; - - .card-input { - display: flex; - padding: 10px; - align-items: center; - - .i-div { - margin-left: auto; - margin-right: 10px; - width: 1px; - height: 12px; - background: rgba(255, 255, 255, 0.45); - border-radius: 1px; - } - - input { - line-height: 40px; - height: 40px; - width: 600px; - font-size: 16px; - font-family: PingFangSC-Regular, PingFang SC; - font-weight: 400; - color: rgba(255, 255, 255, 0.85); - line-height: 22px; - background: transparent; - border: none; - &::placeholder { - color: rgba(255, 255, 255, 0.65); - } - } - - .card-btn { - padding: 10px; - cursor: pointer; - img { - display: block; - width: 16px; - } - } - } - - .card-show { - .card-tabs { - border-top: 1px solid rgba(26, 149, 255, 0.45); - border-bottom: 1px solid rgba(26, 149, 255, 0.45); - line-height: 48px; - font-size: 16px; - font-family: PingFangSC-Regular, PingFang SC; - font-weight: 400; - color: #ffffff; - cursor: pointer; - display: flex; - align-items: center; - - > div { - padding: 0 17px; - - &.z-on, - &:hover { - color: #1a95ff; - } - } - } - - .card-empty { - > img { - display: block; - width: 120px; - margin: 0 auto; - margin-top: 80px; - } - > span { - margin-top: 8px; - display: block; - font-size: 14px; - font-family: PingFangSC-Regular, PingFang SC; - font-weight: 400; - color: rgba(255, 255, 255, 0.65); - line-height: 20px; - text-align: center; - } - } - - .card-list { - margin: 24px 16px; - height: 230px; - overflow-y: auto; - @include scrollBar; - .card-item { - display: flex; - align-items: center; - padding: 0 24px; - width: 100%; - height: 40px; - line-height: 40px; - background: rgba(26, 149, 255, 0.15); - font-size: 14px; - font-family: PingFangSC-Regular, PingFang SC; - font-weight: 400; - color: #ffffff; - cursor: pointer; - opacity: 0.85; - &:nth-child(2n) { - background: transparent; - } - .i-arrow { - margin-left: auto; - width: 16px; - &.z-on { - display: none; - } - } - &:hover { - opacity: 1; - .i-arrow { - display: none; - &.z-on { - display: block; - } - } - } - } - } - } - } + position: absolute; + z-index: 70; + top: 560px; + left: 0; + width: 100%; + background-color: transparent; + .btn { + position: relative; + width: 213px; + height: 80px; + cursor: pointer; + opacity: 0.8; + + > span { + position: absolute; + top: 0; + right: 27px; + display: block; + line-height: 83px; + text-align: right; + font-size: 16px; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #6fdeff; + } + > img { + display: block; + width: 213px; + &.btn-bg-hover { + display: none; + } + } + &:hover { + opacity: 1; + > img { + .btn-bg { + display: none; + } + + .btn-bg-hover { + display: block; + } + } + } + } + + .card { + position: absolute; + top: 0; + left: 0; + z-index: 71; + width: 100%; + height: 386px; + background: #00023a; + box-shadow: inset 0px 0px 40px 0px rgba(26, 149, 255, 0.45); + border-radius: 4px; + border: 1px solid #1a95ff; + + .card-input { + display: flex; + padding: 10px; + align-items: center; + + .i-div { + margin-left: auto; + margin-right: 10px; + width: 1px; + height: 12px; + background: rgba(255, 255, 255, 0.45); + border-radius: 1px; + } + + input { + line-height: 40px; + height: 40px; + width: 600px; + font-size: 16px; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: rgba(255, 255, 255, 0.85); + line-height: 22px; + background: transparent; + border: none; + &::placeholder { + color: rgba(255, 255, 255, 0.65); + } + } + + .card-btn { + padding: 10px; + cursor: pointer; + img { + display: block; + width: 16px; + } + } + } + + .card-show { + .card-tabs { + border-top: 1px solid rgba(26, 149, 255, 0.45); + border-bottom: 1px solid rgba(26, 149, 255, 0.45); + line-height: 48px; + font-size: 16px; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #ffffff; + cursor: pointer; + display: flex; + align-items: center; + + > div { + padding: 0 17px; + + &.z-on, + &:hover { + color: #1a95ff; + } + } + } + + .card-empty { + > img { + display: block; + width: 120px; + margin: 0 auto; + margin-top: 80px; + } + > span { + margin-top: 8px; + display: block; + font-size: 14px; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: rgba(255, 255, 255, 0.65); + line-height: 20px; + text-align: center; + } + } + + .card-list { + margin: 24px 16px; + height: 230px; + overflow-y: auto; + @include scrollBar; + .card-item { + display: flex; + align-items: center; + padding: 0 24px; + width: 100%; + height: 40px; + line-height: 40px; + background: rgba(26, 149, 255, 0.15); + font-size: 14px; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #ffffff; + cursor: pointer; + opacity: 0.85; + &:nth-child(2n) { + background: transparent; + } + .i-arrow { + margin-left: auto; + width: 16px; + &.z-on { + display: none; + } + } + &:hover { + opacity: 1; + .i-arrow { + display: none; + &.z-on { + display: block; + } + } + } + } + } + } + } } .m-box { - .box-title { - position: relative; - width: 100%; - height: 56px; - &-bg { - position: absolute; - top: 0; - left: 0; - z-index: 0; - right: 0; - bottom: 0; - height: 56px; - height: 100%; - } - &-txt { - position: relative; - display: block; - padding-top: 8px; - padding-left: 24px; - font-size: 20px; - font-family: PingFangSC-Medium, PingFang SC; - font-weight: 500; - color: #ffffff; - line-height: 48px; - } - &-btn { - position: absolute; - z-index: 1; - top: 6px; - right: 24px; - display: flex; - align-items: center; - line-height: 48px; - font-size: 16px; - font-family: PingFangSC-Medium, PingFang SC; - font-weight: 500; - color: #6fdeff; - cursor: pointer; - img { - width: 16px; - height: 16px; - margin: 0 8px; - } - } - } - - .empty { - > img { - display: block; - width: 120px; - margin: 0 auto; - margin-top: 80px; - } - > span { - margin-top: 8px; - display: block; - font-size: 14px; - font-family: PingFangSC-Regular, PingFang SC; - font-weight: 400; - color: rgba(255, 255, 255, 0.65); - line-height: 20px; - text-align: center; - } - } + .box-title { + position: relative; + width: 100%; + height: 56px; + &-bg { + position: absolute; + top: 0; + left: 0; + z-index: 0; + right: 0; + bottom: 0; + height: 56px; + height: 100%; + } + &-txt { + position: relative; + display: block; + padding-top: 8px; + padding-left: 24px; + font-size: 20px; + font-family: PingFangSC-Medium, PingFang SC; + font-weight: 500; + color: #ffffff; + line-height: 48px; + } + &-btn { + position: absolute; + z-index: 1; + top: 6px; + right: 24px; + display: flex; + align-items: center; + line-height: 48px; + font-size: 16px; + font-family: PingFangSC-Medium, PingFang SC; + font-weight: 500; + color: #6fdeff; + cursor: pointer; + img { + width: 16px; + height: 16px; + margin: 0 8px; + } + } + } + + .empty { + > img { + display: block; + width: 120px; + margin: 0 auto; + margin-top: 80px; + } + > span { + margin-top: 8px; + display: block; + font-size: 14px; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: rgba(255, 255, 255, 0.65); + line-height: 20px; + text-align: center; + } + } } .m-subbox { - @include scrollBar; - height: 423px; - overflow-y: auto; + @include scrollBar; + height: 423px; + overflow-y: auto; } .m-szsq { - height: 115px; + height: 115px; } .m-rkyj { - height: 423px; - &.z-shrink { - height: 253px; - } + height: 423px; + &.z-shrink { + height: 253px; + } } .m-per { - position: absolute; - z-index: 100; - top: 20px; - left: 0; - right: 0; - display: flex; - align-items: center; - justify-content: space-around; - padding-left: 10px; - - .item { - display: flex; - width: 120px; - - .item-info { - font-size: 14px; - font-family: PingFangSC-Regular, PingFang SC; - font-weight: 400; - color: rgba(255, 255, 255, 0.65); - line-height: 40px; - vertical-align: bottom; - div { - margin-bottom: 6px; - &:first-child { - line-height: 20px; - } - } - img { - display: inline-block; - margin-right: 5px; - width: 20px; - height: 20px; - vertical-align: bottom; - } - b { - font-weight: 500; - font-size: 24px; - color: #ffffff; - } - } - } + position: absolute; + z-index: 100; + top: 20px; + left: 0; + right: 0; + display: flex; + align-items: center; + justify-content: space-around; + padding-left: 10px; + + .item { + display: flex; + width: 120px; + + .item-info { + font-size: 14px; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: rgba(255, 255, 255, 0.65); + line-height: 40px; + vertical-align: bottom; + div { + margin-bottom: 6px; + &:first-child { + line-height: 20px; + } + } + img { + display: inline-block; + margin-right: 5px; + width: 20px; + height: 20px; + vertical-align: bottom; + } + b { + font-weight: 500; + font-size: 24px; + color: #ffffff; + } + } + } } .m-cate { - .list { - @include scrollBar; - padding-right: 5px; - height: 245px; - overflow-y: auto; - - .item { - margin-top: 30px; - display: flex; - align-items: center; - font-size: 14px; - font-family: PingFangSC-Medium, PingFang SC; - font-weight: 500; - color: rgba(255, 255, 255, 0.85); - line-height: 24px; - cursor: pointer; - - &:hover { - color: #fff; - - .item-progress { - b::after { - transition: background-position 1.3s; - background-position: -100% -100%; - } - } - } - - .item-name { - margin-left: 5px; - width: 80px; - flex-shrink: 0; - } - - .item-div { - width: 1px; - height: 12px; - background: #d8d8d8; - border-radius: 1px; - } - - .item-count { - margin-left: 20px; - width: 80px; - flex-shrink: 0; - b { - font-size: 20px; - font-weight: bold; - } - } - - .item-per { - display: flex; - width: 160px; - align-items: center; - - b { - font-size: 20px; - font-weight: bold; - } - - img { - margin-left: 18px; - margin-right: 6px; - width: 16px; - height: 16px; - } - } - - .item-progress { - margin-right: 15px; - width: 416px; - height: 16px; - background: rgba(111, 222, 255, 0.15); - border-radius: 1px; - overflow: hidden; - b { - position: relative; - display: block; - height: 16px; - background: linear-gradient(270deg, #6fdeff 0%, rgba(111, 222, 255, 0.1) 100%); - - &::after { - content: ""; - position: absolute; - left: 0; - top: 0; - right: 0; - bottom: 0; - background: linear-gradient( - -45deg, - transparent 40%, - transparent, - rgba(255, 255, 255, 0.5), - transparent 60% - ) - no-repeat; - background-size: 200% 200%; - background-position: 200% 200%; - } - } - } - } - } + .list { + @include scrollBar; + padding-right: 5px; + height: 245px; + overflow-y: auto; + + .item { + margin-top: 30px; + display: flex; + align-items: center; + font-size: 14px; + font-family: PingFangSC-Medium, PingFang SC; + font-weight: 500; + color: rgba(255, 255, 255, 0.85); + line-height: 24px; + cursor: pointer; + + &:hover { + color: #fff; + + .item-progress { + b::after { + transition: background-position 1.3s; + background-position: -100% -100%; + } + } + } + + .item-name { + margin-left: 5px; + width: 80px; + flex-shrink: 0; + } + + .item-div { + width: 1px; + height: 12px; + background: #d8d8d8; + border-radius: 1px; + } + + .item-count { + margin-left: 20px; + width: 80px; + flex-shrink: 0; + b { + font-size: 20px; + font-weight: bold; + } + } + + .item-per { + display: flex; + width: 160px; + align-items: center; + + b { + font-size: 20px; + font-weight: bold; + } + + img { + margin-left: 18px; + margin-right: 6px; + width: 16px; + height: 16px; + } + } + + .item-progress { + margin-right: 15px; + width: 416px; + height: 16px; + background: rgba(111, 222, 255, 0.15); + border-radius: 1px; + overflow: hidden; + b { + position: relative; + display: block; + height: 16px; + background: linear-gradient(270deg, #6fdeff 0%, rgba(111, 222, 255, 0.1) 100%); + + &::after { + content: ''; + position: absolute; + left: 0; + top: 0; + right: 0; + bottom: 0; + background: linear-gradient(-45deg, transparent 40%, transparent, rgba(255, 255, 255, 0.5), transparent 60%) no-repeat; + background-size: 200% 200%; + background-position: 200% 200%; + } + } + } + } + } +} +.linecharts { + @include scrollBar; + padding-right: 5px; + height: 245px; + overflow-y: auto; + + .item { + margin-top: 30px; + display: flex; + align-items: center; + font-size: 14px; + font-family: PingFangSC-Medium, PingFang SC; + font-weight: 500; + color: rgba(255, 255, 255, 0.85); + line-height: 24px; + cursor: pointer; + + &:hover { + color: #fff; + + .item-progress { + b::after { + transition: background-position 1.3s; + background-position: -100% -100%; + } + } + } + + .item-name { + margin-left: 5px; + width: 80px; + flex-shrink: 0; + } + + .item-div { + width: 1px; + height: 12px; + background: #d8d8d8; + border-radius: 1px; + } + + .item-count { + margin-left: 20px; + width: 80px; + flex-shrink: 0; + b { + font-size: 20px; + font-weight: bold; + } + } + + .item-per { + display: flex; + width: 160px; + align-items: center; + + b { + font-size: 20px; + font-weight: bold; + } + + img { + margin-left: 18px; + margin-right: 6px; + width: 16px; + height: 16px; + } + } + + .item-progress { + margin-right: 15px; + width: 416px; + height: 16px; + background: rgba(111, 222, 255, 0.15); + border-radius: 1px; + overflow: hidden; + b { + position: relative; + display: block; + height: 16px; + background: linear-gradient(270deg, #6fdeff 0%, rgba(111, 222, 255, 0.1) 100%); + + &::after { + content: ''; + position: absolute; + left: 0; + top: 0; + right: 0; + bottom: 0; + background: linear-gradient(-45deg, transparent 40%, transparent, rgba(255, 255, 255, 0.5), transparent 60%) no-repeat; + background-size: 200% 200%; + background-position: 200% 200%; + } + } + } + } +} +.tablist { + margin-top: 8px; + display: flex; + flex-wrap: wrap; + + .item { + margin-top: 8px; + background-image: url(../../../../assets/images/shuju/renfang/rkfx-bg.png); + background-size: cover; + flex: 0 0 117px; + height: 32px; + margin-right: 2px; + text-align: center; + align-items: center; + font-size: 14px; + font-family: PingFangSC-Medium, PingFang SC; + font-weight: 500; + color: #ffffff; + line-height: 32px; + cursor: pointer; + } + + .item-sel { + background-image: url(../../../../assets/images/shuju/renfang/rkfx-bg-sel.png); + background-size: cover; + } +} +.pieMain { + display: flex; + justify-content: space-between; + margin-left: 25px; + .legend { + margin-top: 40px; + .legend-row { + margin-top: 15px; + display: flex; + justify-content: space-between; + align-items: center; + + &:nth-child(1) .name::before { + background: #1a95ff; + } + + &:nth-child(2) .name::before { + background: #ff6138; + } + + &:nth-child(3) .name::before { + background: #2adcea; + } + + &:nth-child(4) .name::before { + background: #2cc4ad; + } + + &:nth-child(5) .name::before { + background: #7377f5; + } + + &:nth-child(6) .name::before { + background: #32de66; + } + + &:nth-child(7) .name::before { + background: #8155d4; + } + + &:nth-child(8) .name::before { + background: #c7ea48; + } + + &:nth-child(9) .name::before { + background: #ef47c2; + } + + &:nth-child(10) .name::before { + background: #d43349; + } + + .name { + position: relative; + margin-left: 5px; + font-size: 12px; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: rgba(255, 255, 255, 0.65); + line-height: 17px; + + &::before { + content: ''; + position: absolute; + top: 4px; + left: -15px; + width: 8px; + height: 8px; + } + } + + .content { + margin-left: 24px; + display: flex; + align-items: flex-end; + font-family: PingFangSC-Medium, PingFang SC; + font-weight: 500; + color: #ffffff; + } + + .num { + font-size: 20px; + } + + .unit { + margin-left: 5px; + font-size: 14px; + } + } + } + + .pie { + margin-top: 32px; + flex: 0 0 280px; + height: 270px; + } } diff --git a/src/router/index.js b/src/router/index.js index cda7f3a77..08e59b7f3 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,48 +1,43 @@ import Vue from "vue"; import Router from "vue-router"; import http from "@/utils/request"; -import { isURL } from "@/utils/validate"; +import { + isURL +} from "@/utils/validate"; import store from "@/js/store"; - Vue.use(Router); - const CUSTOMER = process.env.VUE_APP_CUSTOMER; // 页面路由(独立页面) -export const pageRoutes = [ - { - path: "/login", - component: () => import("@/views/pages/login"), - name: "login", - meta: { - title: "登录", - }, +export const pageRoutes = [{ + path: "/login", + component: () => import("@/views/pages/login"), + name: "login", + meta: { + title: "登录", }, - { - path: "/", - name: "index", - // component: () => import("@/views/pages/index"), - redirect: { - path: "/main/home", - }, +}, { + path: "/", + name: "index", + // component: () => import("@/views/pages/index"), + redirect: { + path: "/main/home", }, - { - path: "/404", - component: () => import("@/views/pages/404"), - name: "404", - meta: { - title: "404未找到", - }, - beforeEnter(to, from, next) { - // 拦截处理特殊业务场景 - // 如果, 重定向路由包含__双下划线, 为临时添加路由 - if (/__.*/.test(to.redirectedFrom)) { - return next(to.redirectedFrom.replace(/__.*/, "")); - } - next(); - }, +}, { + path: "/404", + component: () => import("@/views/pages/404"), + name: "404", + meta: { + title: "404未找到", }, -]; - + beforeEnter(to, from, next) { + // 拦截处理特殊业务场景 + // 如果, 重定向路由包含__双下划线, 为临时添加路由 + if (/__.*/.test(to.redirectedFrom)) { + return next(to.redirectedFrom.replace(/__.*/, "")); + } + next(); + }, +}, ]; // 模块路由(基于主入口布局页面) export const moduleRoutes = { path: "/main", @@ -55,64 +50,55 @@ export const moduleRoutes = { title: "主入口布局", isTab: false, }, - children: [ - { - path: "home", - component: () => import("@/views/modules/home/index"), - name: "home", - meta: { - title: "首页", - isTab: true, - }, + children: [{ + path: "home", + component: () => import("@/views/modules/home/index"), + name: "home", + meta: { + title: "首页", + isTab: true, }, - { - path: "unopen", - component: () => import("@/views/modules/unopen"), - name: "unopen", - meta: { - title: "未开放功能", - isTab: true, - }, + }, { + path: "unopen", + component: () => import("@/views/modules/unopen"), + name: "unopen", + meta: { + title: "未开放功能", + isTab: true, }, - { - path: "404", - props: true, - component: () => import("@/views/modules/404"), - name: "main-404", - meta: { - title: "页面未找到或无权访问", - isTab: false, - }, + }, { + path: "404", + props: true, + component: () => import("@/views/modules/404"), + name: "main-404", + meta: { + title: "页面未找到或无权访问", + isTab: false, }, - { - path: "home-notice", - props: true, - name: "home-notice", - component: () => import("@/views/modules/home/notice"), - meta: { - isTab: true, - title: "智能提醒", - parent: [ - { - title: "首页", - path: "/main/home-index", - }, - ], - }, + }, { + path: "home-notice", + props: true, + name: "home-notice", + component: () => import("@/views/modules/home/notice"), + meta: { + isTab: true, + title: "智能提醒", + parent: [{ + title: "首页", + path: "/main/home-index", + }, ], }, - { - path: "shequ-chaxun", - props: true, - name: "shequ-chaxun", - component: () => import("@/views/modules/shequ/chaxun"), - meta: { - isTab: true, - title: "社区查询", - }, + }, { + path: "shequ-chaxun", + props: true, + name: "shequ-chaxun", + component: () => import("@/views/modules/shequ/chaxun"), + meta: { + isTab: true, + title: "社区查询", }, - ], + }, ], }; - // pc端菜单的 如果没有配置 默认的 或者配置了默认的 但没有权限 默认选中第一 function cookApiDataItem(item) { function n2one(v) { @@ -127,12 +113,8 @@ function cookApiDataItem(item) { // console.log("aaaa", ret); return ret; } - - let allChildrenUrl = n2one(item.children) - .filter((i) => i.url != "" && i.showFlag == 1) - .map((i) => i.url); + let allChildrenUrl = n2one(item.children).filter((i) => i.url != "" && i.showFlag == 1).map((i) => i.url); // console.log("))))))))))))", allChildrenUrl); - if (item.children.length > 0) { if (item.url == "" || !allChildrenUrl.find((i) => i.url == item.url)) { item.url = allChildrenUrl[0]; @@ -146,36 +128,30 @@ function cookApiDataItem(item) { } // 把按钮都化为页面内部的权限 function cookApiDataItem2(item) { - let { children } = item; + let { + children + } = item; if (children && Array.isArray(children) && children.length > 0) { let btns = item.children.filter((item) => item.type == 1); item.btns = btns; - item.children = item.children - .filter((val) => val.type == 0) - .map((val) => cookApiDataItem2(val)); + item.children = item.children.filter((val) => val.type == 0).map((val) => cookApiDataItem2(val)); } return item; } // 把父级拼到子集 function cookApiDataItem3(item, parent = []) { item.parent = parent; - let { children } = item; + let { + children + } = item; if (children && Array.isArray(children) && children.length > 0) { - item.children = children.map((val) => - cookApiDataItem3(val, [ - ...parent, - { - title: item.name || "", - path: (item.url || "").replace(/{{([^}}]+)?}}/g, (s1, s2) => - eval(s2) - ), - }, - ]) - ); + item.children = children.map((val) => cookApiDataItem3(val, [...parent, { + title: item.name || "", + path: (item.url || "").replace(/{{([^}}]+)?}}/g, (s1, s2) => eval(s2)), + }, ])); } return item; } - // 新数据模块 export const dataBoardRoutes = { path: "/dataBoard", @@ -187,98 +163,97 @@ export const dataBoardRoutes = { meta: { title: "主入口布局", }, - children: [ - { - path: "renfang/index", - props: true, - component: () => import("@/views/dataBoard/renfang/index"), - name: "dataBoard-renfang-index", - meta: { - title: "人房总览", - isTab: false, - }, + children: [{ + path: "renfang/index", + props: true, + component: () => import("@/views/dataBoard/renfang/index"), + name: "dataBoard-renfang-index", + meta: { + title: "人房总览", + isTab: false, }, - { - path: "renfang/resi-list", - props: true, - component: () => import("@/views/dataBoard/renfang/resi/list"), - name: "dataBoard-renfang-resi-list", - meta: { - title: "居民列表", - isTab: false, - }, + }, { + path: "renfang/resi-list", + props: true, + component: () => import("@/views/dataBoard/renfang/resi/list"), + name: "dataBoard-renfang-resi-list", + meta: { + title: "居民列表", + isTab: false, }, - { - path: "renfang/resi-class", - props: true, - component: () => import("@/views/dataBoard/renfang/resi/class"), - name: "dataBoard-renfang-resi-class", - meta: { - title: "居民分类列表", - isTab: false, - }, + }, { + path: "renfang/resi-class", + props: true, + component: () => import("@/views/dataBoard/renfang/resi/class"), + name: "dataBoard-renfang-resi-class", + meta: { + title: "居民分类列表", + isTab: false, }, - { - path: "renfang/resi-analyze", - props: true, - component: () => import("@/views/dataBoard/renfang/resi/analyze"), - name: "dataBoard-renfang-resi-analyze", - meta: { - title: "居民分析列表", - isTab: false, - }, + }, { + path: "renfang/resi-analyze", + props: true, + component: () => import("@/views/dataBoard/renfang/resi/analyze"), + name: "dataBoard-renfang-resi-analyze", + meta: { + title: "居民分析列表", + isTab: false, }, - { - path: "renfang/house-list", - props: true, - component: () => import("@/views/dataBoard/renfang/house/list"), - name: "dataBoard-renfang-house-list", - meta: { - title: "房屋列表", - isTab: false, - }, + }, { + path: "renfang/house-list", + props: true, + component: () => import("@/views/dataBoard/renfang/house/list"), + name: "dataBoard-renfang-house-list", + meta: { + title: "房屋列表", + isTab: false, }, - { - path: "renfang/warn-building", - props: true, - component: () => import("@/views/dataBoard/renfang/warn/building"), - name: "dataBoard-renfang-warn-building", - meta: { - title: "预警楼栋列表", - isTab: false, - }, + }, { + path: "renfang/warn-building", + props: true, + component: () => import("@/views/dataBoard/renfang/warn/building"), + name: "dataBoard-renfang-warn-building", + meta: { + title: "预警楼栋列表", + isTab: false, }, - { - path: "renfang/warn-resi", - props: true, - component: () => import("@/views/dataBoard/renfang/warn/resi"), - name: "dataBoard-renfang-warn-resi", - meta: { - title: "预警楼栋居民", - isTab: false, - }, + }, { + path: "renfang/warn-resi", + props: true, + component: () => import("@/views/dataBoard/renfang/warn/resi"), + name: "dataBoard-renfang-warn-resi", + meta: { + title: "预警楼栋居民", + isTab: false, }, - { - path: "404", - props: true, - component: () => import("@/views/dataBoard/404"), - name: "dataBoard-404", - meta: { - title: "页面未找到或无权访问", - isTab: false, - }, - beforeEnter(to, from, next) { - // 拦截处理特殊业务场景 - // 如果, 重定向路由包含__双下划线, 为临时添加路由 - if (/__.*/.test(to.redirectedFrom)) { - return next(to.redirectedFrom.replace(/__.*/, "")); - } - next(); - }, + }, { + path: "sida/index", + props: true, + component: () => import("@/views/dataBoard/sida/index"), + name: "dataBoard-sida-index", + meta: { + title: "四大清单", + isTab: false, }, - ], + }, { + path: "404", + props: true, + component: () => import("@/views/dataBoard/404"), + name: "dataBoard-404", + meta: { + title: "页面未找到或无权访问", + isTab: false, + }, + beforeEnter(to, from, next) { + // 拦截处理特殊业务场景 + // 如果, 重定向路由包含__双下划线, 为临时添加路由 + if (/__.*/.test(to.redirectedFrom)) { + return next(to.redirectedFrom.replace(/__.*/, "")); + } + next(); + }, + }, ], }; - // 模块路由(基于主入口布局页面) 可视化数据 export const moduleShujuRoutes = { path: "/main-shuju", @@ -290,47 +265,40 @@ export const moduleShujuRoutes = { meta: { title: "主入口布局", }, - children: [ - { - path: "/main-shuju/visual-basicinfo-people/:uid", - props: true, - component: () => import("@/views/modules/visual/basicinfo/people"), - name: "visual-basicinfo-people", - meta: { - title: "个人详情", - isTab: false, - }, + children: [{ + path: "/main-shuju/visual-basicinfo-people/:uid", + props: true, + component: () => import("@/views/modules/visual/basicinfo/people"), + name: "visual-basicinfo-people", + meta: { + title: "个人详情", + isTab: false, }, - { - path: "/main-shuju/visual-basicinfo-people-list", - props: true, - component: () => - import("@/views/modules/visual/basicinfo/peopleList"), - name: "visual-basicinfo-people-list", - meta: { - title: "人员列表", - isTab: false, - }, + }, { + path: "/main-shuju/visual-basicinfo-people-list", + props: true, + component: () => import("@/views/modules/visual/basicinfo/peopleList"), + name: "visual-basicinfo-people-list", + meta: { + title: "人员列表", + isTab: false, }, - { - path: "404", - props: true, - component: () => import("@/views/modules/visual/404"), - name: "main-shuju-404", - meta: { - title: "页面未找到或无权访问", - isTab: false, - }, + }, { + path: "404", + props: true, + component: () => import("@/views/modules/visual/404"), + name: "main-shuju-404", + meta: { + title: "页面未找到或无权访问", + isTab: false, }, - ], + }, ], }; - export function addDynamicRoute(routeParams, router) { // 组装路由名称, 并判断是否已添加, 如是: 则直接跳转 var routeName = routeParams.routeName; var dynamicRoute = window.SITE_CONFIG["dynamicRoutes"].filter( - (item) => item.name === routeName - )[0]; + (item) => item.name === routeName)[0]; if (dynamicRoute) { return router.push({ name: routeName, @@ -348,20 +316,17 @@ export function addDynamicRoute(routeParams, router) { title: `${routeParams.title}`, }, }; - router.addRoutes([ - { - ...moduleRoutes, - name: `main-dynamic__${dynamicRoute.name}`, - children: [dynamicRoute], - }, - ]); + router.addRoutes([{ + ...moduleRoutes, + name: `main-dynamic__${dynamicRoute.name}`, + children: [dynamicRoute], + }, ]); window.SITE_CONFIG["dynamicRoutes"].push(dynamicRoute); router.push({ name: dynamicRoute.name, params: routeParams.params, }); } - const router = new Router({ mode: "hash", scrollBehavior: () => ({ @@ -369,76 +334,64 @@ const router = new Router({ }), routes: pageRoutes.concat(moduleRoutes, moduleShujuRoutes, dataBoardRoutes), }); - router.beforeEach((to, from, next) => { // 添加动态(菜单)路由 // 已添加或者当前路由为页面路由, 可直接访问 if (to.name === "caiji") { return next(); } - if ( - window.SITE_CONFIG["dynamicMenuRoutesHasAdded"] || - fnCurrentRouteIsPageRoute(to, pageRoutes) - ) { + if (window.SITE_CONFIG["dynamicMenuRoutesHasAdded"] || fnCurrentRouteIsPageRoute(to, pageRoutes)) { return next(); } - const customerId = localStorage.getItem("customerId"); console.log("customerId:", customerId); - - http.get("gov/access/menu/navDigitalCommunity?tableName=data_menu") - .then(({ data: res }) => { - if (res.code == 10005 || res.code == 10006 || res.code == 10007) { - // 10005 token为空 10006登陆超时 10007别处登录 - console.log("登录失效"); - Vue.prototype.$message.error(res.msg); - return next({ - name: "login", - }); - } - - window.SITE_CONFIG["menuShujuList"] = res.data; - fnAddDynamicMenuRoutes2(window.SITE_CONFIG["menuShujuList"]); - - next({ - ...to, - replace: true, - }); - }) - .catch(() => { - next({ + http.get("gov/access/menu/navDigitalCommunity?tableName=data_menu").then(({ + data: res + }) => { + if (res.code == 10005 || res.code == 10006 || res.code == 10007) { + // 10005 token为空 10006登陆超时 10007别处登录 + console.log("登录失效"); + Vue.prototype.$message.error(res.msg); + return next({ name: "login", }); + } + window.SITE_CONFIG["menuShujuList"] = res.data; + fnAddDynamicMenuRoutes2(window.SITE_CONFIG["menuShujuList"]); + next({ + ...to, + replace: true, }); - - http.get("gov/access/menu/navDigitalCommunity") - .then(({ data: res }) => { - if (res.code == 10005 || res.code == 10006 || res.code == 10007) { - // 10005 token为空 10006登陆超时 10007别处登录 - console.log("登录失效"); - Vue.prototype.$message.error(res.msg); - return next({ - name: "login", - }); - } - window.SITE_CONFIG["menuList"] = res.data - .map((item) => cookApiDataItem3(item)) - .map((item) => cookApiDataItem2(item)) - .map((item) => cookApiDataItem(item)); - fnAddDynamicMenuRoutes(window.SITE_CONFIG["menuList"]); - // next({ ...to, replace: true }) - next({ - ...to, - replace: true, + }).catch(() => { + next({ + name: "login", + }); + }); + http.get("gov/access/menu/navDigitalCommunity").then(({ + data: res + }) => { + if (res.code == 10005 || res.code == 10006 || res.code == 10007) { + // 10005 token为空 10006登陆超时 10007别处登录 + console.log("登录失效"); + Vue.prototype.$message.error(res.msg); + return next({ + name: "login", }); - }) - .catch(() => { - // next({ - // name: "login", - // }); + } + window.SITE_CONFIG["menuList"] = res.data.map((item) => cookApiDataItem3(item)).map((item) => + cookApiDataItem2(item)).map((item) => cookApiDataItem(item)); + fnAddDynamicMenuRoutes(window.SITE_CONFIG["menuList"]); + // next({ ...to, replace: true }) + next({ + ...to, + replace: true, }); + }).catch(() => { + // next({ + // name: "login", + // }); + }); }); - /** * 判断当前路由是否为页面路由 * @param {*} route 当前路由 @@ -456,7 +409,6 @@ function fnCurrentRouteIsPageRoute(route, pageRoutes = []) { } return temp.length >= 1 ? fnCurrentRouteIsPageRoute(route, temp) : false; } - /** * 添加动态(菜单)路由 * @param {*} menuList 菜单列表 @@ -483,14 +435,11 @@ function fnAddDynamicMenuRoutes(menuList = [], routes = []) { }, }; // eslint-disable-next-line - let URL = (menuList[i].url || "").replace(/{{([^}}]+)?}}/g, (s1, s2) => - eval(s2) - ); // URL支持{{ window.xxx }}占位符变量 + let URL = (menuList[i].url || "").replace(/{{([^}}]+)?}}/g, (s1, s2) => eval(s2)); // URL支持{{ window.xxx }}占位符变量 if (isURL(URL)) { if (menuList[i].children && menuList[i].children.length >= 1) { let item = menuList[i].children.find( - (subMenu) => subMenu.url == menuList[i].url - ); + (subMenu) => subMenu.url == menuList[i].url); if (item) { route["path"] = route["name"] = `i-${menuList[i].id}`; route["redirect"] = `i-${item.id}`; @@ -507,10 +456,7 @@ function fnAddDynamicMenuRoutes(menuList = [], routes = []) { if (URL.startsWith("unopen")) { route["path"] = route["name"] = URL.replace(/\//g, "-"); route["component"] = () => import(`@/views/modules/unopen`); - } else if ( - menuList[i].children && - menuList[i].children.length >= 1 - ) { + } else if (menuList[i].children && menuList[i].children.length >= 1) { route["path"] = route["name"] = URL; route["redirect"] = URL.replace(/\//g, "-"); } else { @@ -525,19 +471,16 @@ function fnAddDynamicMenuRoutes(menuList = [], routes = []) { } // routers.reverse(); // 添加路由 - router.addRoutes([ - { - ...moduleRoutes, - name: "main-dynamic-menu", - children: routes, - }, - { - path: "/main/*", - redirect: { - path: "/main/404", - }, + router.addRoutes([{ + ...moduleRoutes, + name: "main-dynamic-menu", + children: routes, + }, { + path: "/main/*", + redirect: { + path: "/main/404", }, - ]); + }, ]); window.SITE_CONFIG["dynamicMenuRoutes"] = routes; window.SITE_CONFIG["dynamicMenuRoutesHasAdded"] = true; } @@ -561,14 +504,11 @@ function fnAddDynamicMenuRoutes2(menuList = [], routes = []) { }, }; // eslint-disable-next-line - let URL = (menuList[i].url || "").replace(/{{([^}}]+)?}}/g, (s1, s2) => - eval(s2) - ); // URL支持{{ window.xxx }}占位符变量 + let URL = (menuList[i].url || "").replace(/{{([^}}]+)?}}/g, (s1, s2) => eval(s2)); // URL支持{{ window.xxx }}占位符变量 if (isURL(URL)) { if (menuList[i].children && menuList[i].children.length >= 1) { let item = menuList[i].children.find( - (subMenu) => subMenu.url == menuList[i].url - ); + (subMenu) => subMenu.url == menuList[i].url); if (item) { route["path"] = route["name"] = `i-${menuList[i].id}`; route["redirect"] = `i-${item.id}`; @@ -585,10 +525,7 @@ function fnAddDynamicMenuRoutes2(menuList = [], routes = []) { if (URL.startsWith("unopen")) { route["path"] = route["name"] = URL.replace(/\//g, "-"); route["component"] = () => import(`@/views/modules/unopen`); - } else if ( - menuList[i].children && - menuList[i].children.length >= 1 - ) { + } else if (menuList[i].children && menuList[i].children.length >= 1) { route["path"] = route["name"] = URL; route["redirect"] = URL.replace(/\//g, "-"); } else { @@ -602,21 +539,17 @@ function fnAddDynamicMenuRoutes2(menuList = [], routes = []) { return fnAddDynamicMenuRoutes2(temp, routes); } // 添加路由 - router.addRoutes([ - { - ...moduleShujuRoutes, - name: "main-dynamic-menu-shuju", - children: routes, - }, - { - path: "/main-shuju/*", - redirect: { - path: "/main-shuju/404", - }, + router.addRoutes([{ + ...moduleShujuRoutes, + name: "main-dynamic-menu-shuju", + children: routes, + }, { + path: "/main-shuju/*", + redirect: { + path: "/main-shuju/404", }, - ]); + }, ]); window.SITE_CONFIG["dynamicMenuRoutesShuju"] = routes; window.SITE_CONFIG["dynamicMenuRoutesShujuHasAdded"] = true; } - export default router; diff --git a/src/views/dataBoard/renfang/cpts/bread.vue b/src/views/dataBoard/renfang/cpts/bread.vue index 93fe0e611..3df62f75d 100644 --- a/src/views/dataBoard/renfang/cpts/bread.vue +++ b/src/views/dataBoard/renfang/cpts/bread.vue @@ -7,15 +7,8 @@
- - {{ item.meta.title }} + + {{ item.meta.title }}
@@ -26,124 +19,124 @@ - - diff --git a/src/views/dataBoard/renfang/cpts/rkfx.vue b/src/views/dataBoard/renfang/cpts/rkfx.vue index a601f0d95..54b020b35 100644 --- a/src/views/dataBoard/renfang/cpts/rkfx.vue +++ b/src/views/dataBoard/renfang/cpts/rkfx.vue @@ -1,24 +1,14 @@ - - diff --git a/src/views/dataBoard/sida/cpts/bread.vue b/src/views/dataBoard/sida/cpts/bread.vue new file mode 100644 index 000000000..3df62f75d --- /dev/null +++ b/src/views/dataBoard/sida/cpts/bread.vue @@ -0,0 +1,142 @@ + + + diff --git a/src/views/dataBoard/sida/cpts/fwBarOption.js b/src/views/dataBoard/sida/cpts/fwBarOption.js new file mode 100644 index 000000000..9ae582204 --- /dev/null +++ b/src/views/dataBoard/sida/cpts/fwBarOption.js @@ -0,0 +1,130 @@ +import * as echarts from 'echarts' +export function barOption () { + + return { + title: { + text: '单位(户)', + left: 5, + textStyle: { + + fontSize: 14, + color: " rgba(255,255,255,0.65)", + fontWeight: 400, + }, + }, + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'shadow' + } + }, + // legend: {}, + grid: { + top:40, + left: '3%', + right: '4%', + bottom: 19, + containLabel: true + }, + xAxis: [ + { + type: 'category', + axisLine: { + lineStyle: { + color:'rgba(255,255,255,0.15)', + width: 1, + type: 'solid' + } + }, + axisTick: { + alignWithLabel: true + }, + axisLabel: { + show: true, + textStyle: { + color: 'rgba(255,255,255,0.85)', //更改坐标轴文字颜色 + fontSize : 12 //更改坐标轴文字大小 + } + }, + + data: [] + } + ], + yAxis: [ + { + type: 'value', + max : 1000, + splitNumber : 5, + splitLine: { + show: true, + lineStyle:{ + color:'rgba(255,255,255,0.15)', + width: 1, + type: 'solid' + } + }, + axisLabel: { + show: true, + textStyle: { + color: 'rgba(255,255,255,0.85)', //更改坐标轴文字颜色 + fontSize : 12 //更改坐标轴文字大小 + } + }, + } + ], + series: [ + + { + name: '自住房屋', + type: 'bar', + stack: 'Ad', + barWidth:12, + emphasis: { + focus: 'series' + }, + itemStyle: { + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { offset: 0, color: '#6FDEFF' }, + { offset: 1, color: 'rgba(168,241,255,0)' } + ]) + }, + data: [] + }, + { + name: '出租房屋', + type: 'bar', + barWidth:12, + stack: 'Ad', + emphasis: { + focus: 'series' + }, + itemStyle: { + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { offset: 0, color: '#1A95FF' }, + { offset: 1, color: 'rgba(168,241,255,0)' } + ]) + }, + data: [] + }, + { + name: '闲置房屋', + type: 'bar', + barWidth:12, + stack: 'Ad', + emphasis: { + focus: 'series' + }, + itemStyle: { + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { offset: 0, color: '#FFAA00' }, + { offset: 1, color: 'rgba(168,241,255,0)' } + ]) + }, + data: [] + }, + + + ] + + } +} diff --git a/src/views/dataBoard/sida/cpts/fwPieOption.js b/src/views/dataBoard/sida/cpts/fwPieOption.js new file mode 100644 index 000000000..c7ca041d4 --- /dev/null +++ b/src/views/dataBoard/sida/cpts/fwPieOption.js @@ -0,0 +1,93 @@ +import * as echarts from 'echarts' +export function pieOption() { + const center = ["50%", "170px"]; + return { + title: { + text: "0", + top: 45, + left: "center", + textStyle: { + width: "100%", + fontSize: 24, + color: "#FFFFFF", + fontWeight: 400, + }, + itemGap: 5, + // subtext: "总数", + // subtextStyle: { + // fontSize: 20, + // color: "#fff", + // fontWeight: 400, + // }, + }, + tooltip: { + show: false, + }, + // legend: { + // top: 350, + // bottom: 0, + // itemWidth: 20, + // itemHeight: 10, + // textStyle: { + // color: '#D2E7FF', + // fontSize: 16, + // lineHeight: 20, + // }, + + // }, + series: [ + { + name: 'Access From', + type: 'pie', + radius: ['60%', '90%'], + avoidLabelOverlap: false, + label: { + show: false, + position: 'center' + }, + // emphasis: { + // label: { + // show: true, + // fontSize: 40, + // fontWeight: 'bold' + // } + // }, + labelLine: { + show: false + }, + itemStyle: { + normal: { + color: (list) => { + // 注意 !!!!! 这里的数组一定要和实际的类目长度相等或大于,不然会缺少颜色报错 + var colorList = [ + { + colorStart:'#00023A', + colorEnd:'#6FDEFF' + }, + { + colorStart:'#00023A', + colorEnd:'#FFAA00' + }, + { + colorStart:'#00023A', + colorEnd:'#1A95FF' + }, + + ] + return new echarts.graphic.LinearGradient(1, 0, 0, 0, [{ //左、下、右、上 + offset: 0, + color: colorList[list.dataIndex]['colorStart'] + }, { + offset: 1, + color: colorList[list.dataIndex]['colorEnd'] + }]) + } + } + }, + + data: [ + ] + } + ] + }; +} diff --git a/src/views/dataBoard/sida/cpts/fwgl.vue b/src/views/dataBoard/sida/cpts/fwgl.vue new file mode 100644 index 000000000..d2c112759 --- /dev/null +++ b/src/views/dataBoard/sida/cpts/fwgl.vue @@ -0,0 +1,540 @@ + + + + + diff --git a/src/views/dataBoard/sida/cpts/fwqd.vue b/src/views/dataBoard/sida/cpts/fwqd.vue new file mode 100644 index 000000000..4f2fab81e --- /dev/null +++ b/src/views/dataBoard/sida/cpts/fwqd.vue @@ -0,0 +1,340 @@ + + + diff --git a/src/views/dataBoard/sida/cpts/fwqdPieOption.js b/src/views/dataBoard/sida/cpts/fwqdPieOption.js new file mode 100644 index 000000000..5772b0f4a --- /dev/null +++ b/src/views/dataBoard/sida/cpts/fwqdPieOption.js @@ -0,0 +1,54 @@ +import * as echarts from "echarts"; +export function pieOption() { + const center = ["50%", "170px"]; + return { + color: [ + "#1A95FF", + "#FF6138", + "#2adcea", + "#2cc4ad", + "#7377f5", + "#32de66", + "#8155d4", + "#c7ea48", + "#ef47c2", + "d43349", + ], + tooltip: { + trigger: "item", + }, + series: [ + { + name: "", + type: "pie", + radius: [40, 130], + center: ["50%", "50%"], + roseType: "area", + itemStyle: { + borderRadius: 1, + }, + avoidLabelOverlap: false, + labelLine: { + show: false, + }, + label: { + normal: { + position: "inner", + show: true, + formatter: "{d}%", + fontSize: 24, + color: "#FFFFFF", + }, + }, + emphasis: { + label: { + show: true, + // fontSize: 36, + fontWeight: "bold", + }, + }, + data: [], + }, + ], + }; +} diff --git a/src/views/dataBoard/sida/cpts/jmBarOption.js b/src/views/dataBoard/sida/cpts/jmBarOption.js new file mode 100644 index 000000000..1c24850ab --- /dev/null +++ b/src/views/dataBoard/sida/cpts/jmBarOption.js @@ -0,0 +1,140 @@ +import * as echarts from 'echarts' +export function barOption () { + + return { + title: { + text: '单位(人)', + left: 5, + textStyle: { + + fontSize: 14, + color: " rgba(255,255,255,0.65)", + fontWeight: 400, + }, + }, + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'shadow' + } + }, + // legend: {}, + grid: { + top:40, + left: '3%', + right: '4%', + bottom: 19, + containLabel: true + }, + xAxis: [ + { + type: 'category', + axisLine: { + lineStyle: { + color:'rgba(255,255,255,0.15)', + width: 1, + type: 'solid' + } + }, + axisTick: { + alignWithLabel: true + }, + axisLabel: { + show: true, + textStyle: { + color: 'rgba(255,255,255,0.85)', //更改坐标轴文字颜色 + fontSize : 12 //更改坐标轴文字大小 + } + }, + + data: [] + } + ], + yAxis: [ + { + type: 'value', + max : 1000, + splitNumber : 5, + splitLine: { + show: true, + lineStyle:{ + color:'rgba(255,255,255,0.15)', + width: 1, + type: 'solid' + } + }, + axisLabel: { + show: true, + textStyle: { + color: 'rgba(255,255,255,0.85)', //更改坐标轴文字颜色 + fontSize : 12 //更改坐标轴文字大小 + } + }, + } + ], + series: [ + + { + name: '常住人口', + type: 'line', + stack: 'Total', + barWidth:12, + emphasis: { + focus: 'series' + }, + itemStyle: { + normal: { + color: "#FFAA00", //图例颜色 + borderWidth: 2, + borderColor: "#FFAA00", + lineStyle: { color: "#FFAA00", width: 1 } + } + }, + + areaStyle: { + normal: { + // 渐变填充色(线条下半部分) + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { offset: 0, color: "#FFAA00" }, + { offset: 1, color: "rgba(255,170,0,0)" } + ]) + } + }, + + data: [] + }, + { + name: '流动人口', + type: 'line', + barWidth:12, + stack: 'Total', + emphasis: { + focus: 'series' + }, + itemStyle: { + normal: { + color: "#1A95FF", //图例颜色 + borderWidth: 2, + borderColor: "#1A95FF", + lineStyle: { color: "#1A95FF", width: 1 } + } + }, + + areaStyle: { + normal: { + // 渐变填充色(线条下半部分) + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { offset: 0, color: "#1A95FF" }, + { offset: 1, color: "rgba(255,170,0,0)" } + ]) + } + }, + data: [] + }, + + + + ] + + } +} diff --git a/src/views/dataBoard/sida/cpts/jmPieOption.js b/src/views/dataBoard/sida/cpts/jmPieOption.js new file mode 100644 index 000000000..99480650b --- /dev/null +++ b/src/views/dataBoard/sida/cpts/jmPieOption.js @@ -0,0 +1,90 @@ +import * as echarts from 'echarts' +export function pieOption() { + const center = ["50%", "170px"]; + return { + title: { + text: "0", + top: 45, + left: "center", + textStyle: { + width: "100%", + fontSize: 24, + color: "#FFFFFF", + fontWeight: 400, + }, + itemGap: 5, + // subtext: "总数", + // subtextStyle: { + // fontSize: 20, + // color: "#fff", + // fontWeight: 400, + // }, + }, + tooltip: { + show: false, + }, + // legend: { + // top: 350, + // bottom: 0, + // itemWidth: 20, + // itemHeight: 10, + // textStyle: { + // color: '#D2E7FF', + // fontSize: 16, + // lineHeight: 20, + // }, + + // }, + series: [ + { + name: 'Access From', + type: 'pie', + radius: ['60%', '90%'], + avoidLabelOverlap: false, + label: { + show: false, + position: 'center' + }, + // emphasis: { + // label: { + // show: true, + // fontSize: 40, + // fontWeight: 'bold' + // } + // }, + labelLine: { + show: false + }, + itemStyle: { + normal: { + color: (list) => { + // 注意 !!!!! 这里的数组一定要和实际的类目长度相等或大于,不然会缺少颜色报错 + var colorList = [ + { + colorStart:'#00023A', + colorEnd:'#6FDEFF' + }, + { + colorStart:'#00023A', + colorEnd:'#FFAA00' + }, + + + ] + return new echarts.graphic.LinearGradient(1, 0, 0, 0, [{ //左、下、右、上 + offset: 0, + color: colorList[list.dataIndex]['colorStart'] + }, { + offset: 1, + color: colorList[list.dataIndex]['colorEnd'] + }]) + } + } + }, + + data: [ + ] + } + ] + }; +} diff --git a/src/views/dataBoard/sida/cpts/jmgl.vue b/src/views/dataBoard/sida/cpts/jmgl.vue new file mode 100644 index 000000000..a498e359d --- /dev/null +++ b/src/views/dataBoard/sida/cpts/jmgl.vue @@ -0,0 +1,482 @@ + + + + + diff --git a/src/views/dataBoard/sida/cpts/rkyj.vue b/src/views/dataBoard/sida/cpts/rkyj.vue new file mode 100644 index 000000000..e8d375d5a --- /dev/null +++ b/src/views/dataBoard/sida/cpts/rkyj.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/views/dataBoard/sida/cpts/sqpj.vue b/src/views/dataBoard/sida/cpts/sqpj.vue new file mode 100644 index 000000000..64439a6c5 --- /dev/null +++ b/src/views/dataBoard/sida/cpts/sqpj.vue @@ -0,0 +1,160 @@ + + + diff --git a/src/views/dataBoard/sida/cpts/szsq.vue b/src/views/dataBoard/sida/cpts/szsq.vue new file mode 100644 index 000000000..7b42cf36c --- /dev/null +++ b/src/views/dataBoard/sida/cpts/szsq.vue @@ -0,0 +1,197 @@ + + + + + diff --git a/src/views/dataBoard/sida/cpts/wtqd.vue b/src/views/dataBoard/sida/cpts/wtqd.vue new file mode 100644 index 000000000..1e5b0f10f --- /dev/null +++ b/src/views/dataBoard/sida/cpts/wtqd.vue @@ -0,0 +1,318 @@ + + + diff --git a/src/views/dataBoard/sida/cpts/wtqdPieOption.js b/src/views/dataBoard/sida/cpts/wtqdPieOption.js new file mode 100644 index 000000000..5772b0f4a --- /dev/null +++ b/src/views/dataBoard/sida/cpts/wtqdPieOption.js @@ -0,0 +1,54 @@ +import * as echarts from "echarts"; +export function pieOption() { + const center = ["50%", "170px"]; + return { + color: [ + "#1A95FF", + "#FF6138", + "#2adcea", + "#2cc4ad", + "#7377f5", + "#32de66", + "#8155d4", + "#c7ea48", + "#ef47c2", + "d43349", + ], + tooltip: { + trigger: "item", + }, + series: [ + { + name: "", + type: "pie", + radius: [40, 130], + center: ["50%", "50%"], + roseType: "area", + itemStyle: { + borderRadius: 1, + }, + avoidLabelOverlap: false, + labelLine: { + show: false, + }, + label: { + normal: { + position: "inner", + show: true, + formatter: "{d}%", + fontSize: 24, + color: "#FFFFFF", + }, + }, + emphasis: { + label: { + show: true, + // fontSize: 36, + fontWeight: "bold", + }, + }, + data: [], + }, + ], + }; +} diff --git a/src/views/dataBoard/sida/cpts/xqqd.vue b/src/views/dataBoard/sida/cpts/xqqd.vue new file mode 100644 index 000000000..6c420e223 --- /dev/null +++ b/src/views/dataBoard/sida/cpts/xqqd.vue @@ -0,0 +1,319 @@ + + + + diff --git a/src/views/dataBoard/sida/cpts/xqqdPieOption.js b/src/views/dataBoard/sida/cpts/xqqdPieOption.js new file mode 100644 index 000000000..5772b0f4a --- /dev/null +++ b/src/views/dataBoard/sida/cpts/xqqdPieOption.js @@ -0,0 +1,54 @@ +import * as echarts from "echarts"; +export function pieOption() { + const center = ["50%", "170px"]; + return { + color: [ + "#1A95FF", + "#FF6138", + "#2adcea", + "#2cc4ad", + "#7377f5", + "#32de66", + "#8155d4", + "#c7ea48", + "#ef47c2", + "d43349", + ], + tooltip: { + trigger: "item", + }, + series: [ + { + name: "", + type: "pie", + radius: [40, 130], + center: ["50%", "50%"], + roseType: "area", + itemStyle: { + borderRadius: 1, + }, + avoidLabelOverlap: false, + labelLine: { + show: false, + }, + label: { + normal: { + position: "inner", + show: true, + formatter: "{d}%", + fontSize: 24, + color: "#FFFFFF", + }, + }, + emphasis: { + label: { + show: true, + // fontSize: 36, + fontWeight: "bold", + }, + }, + data: [], + }, + ], + }; +} diff --git a/src/views/dataBoard/sida/cpts/zyqd.vue b/src/views/dataBoard/sida/cpts/zyqd.vue new file mode 100644 index 000000000..b5cbc4fb9 --- /dev/null +++ b/src/views/dataBoard/sida/cpts/zyqd.vue @@ -0,0 +1,319 @@ + + + + \ No newline at end of file diff --git a/src/views/dataBoard/sida/cpts/zyqdPieOption.js b/src/views/dataBoard/sida/cpts/zyqdPieOption.js new file mode 100644 index 000000000..5772b0f4a --- /dev/null +++ b/src/views/dataBoard/sida/cpts/zyqdPieOption.js @@ -0,0 +1,54 @@ +import * as echarts from "echarts"; +export function pieOption() { + const center = ["50%", "170px"]; + return { + color: [ + "#1A95FF", + "#FF6138", + "#2adcea", + "#2cc4ad", + "#7377f5", + "#32de66", + "#8155d4", + "#c7ea48", + "#ef47c2", + "d43349", + ], + tooltip: { + trigger: "item", + }, + series: [ + { + name: "", + type: "pie", + radius: [40, 130], + center: ["50%", "50%"], + roseType: "area", + itemStyle: { + borderRadius: 1, + }, + avoidLabelOverlap: false, + labelLine: { + show: false, + }, + label: { + normal: { + position: "inner", + show: true, + formatter: "{d}%", + fontSize: 24, + color: "#FFFFFF", + }, + }, + emphasis: { + label: { + show: true, + // fontSize: 36, + fontWeight: "bold", + }, + }, + data: [], + }, + ], + }; +} diff --git a/src/views/dataBoard/sida/house/list.vue b/src/views/dataBoard/sida/house/list.vue new file mode 100644 index 000000000..4c943ec90 --- /dev/null +++ b/src/views/dataBoard/sida/house/list.vue @@ -0,0 +1,274 @@ + + + + + diff --git a/src/views/dataBoard/sida/index.vue b/src/views/dataBoard/sida/index.vue new file mode 100644 index 000000000..900bbd4b1 --- /dev/null +++ b/src/views/dataBoard/sida/index.vue @@ -0,0 +1,594 @@ + + + diff --git a/src/views/dataBoard/sida/resi/analyze.vue b/src/views/dataBoard/sida/resi/analyze.vue new file mode 100644 index 000000000..9f5b084dc --- /dev/null +++ b/src/views/dataBoard/sida/resi/analyze.vue @@ -0,0 +1,259 @@ + + + + + diff --git a/src/views/dataBoard/sida/resi/class.vue b/src/views/dataBoard/sida/resi/class.vue new file mode 100644 index 000000000..4f8e9da32 --- /dev/null +++ b/src/views/dataBoard/sida/resi/class.vue @@ -0,0 +1,325 @@ + + + + + diff --git a/src/views/dataBoard/sida/resi/list.vue b/src/views/dataBoard/sida/resi/list.vue new file mode 100644 index 000000000..0cdf7b3ce --- /dev/null +++ b/src/views/dataBoard/sida/resi/list.vue @@ -0,0 +1,259 @@ + + + + + diff --git a/src/views/dataBoard/sida/warn/building.vue b/src/views/dataBoard/sida/warn/building.vue new file mode 100644 index 000000000..2a98b3571 --- /dev/null +++ b/src/views/dataBoard/sida/warn/building.vue @@ -0,0 +1,255 @@ + + + + + diff --git a/src/views/dataBoard/sida/warn/resi.vue b/src/views/dataBoard/sida/warn/resi.vue new file mode 100644 index 000000000..18534820d --- /dev/null +++ b/src/views/dataBoard/sida/warn/resi.vue @@ -0,0 +1,234 @@ + + + + + diff --git a/src/views/dataBoardMain/main-content.vue b/src/views/dataBoardMain/main-content.vue index 3a71d3a30..bed215ca7 100644 --- a/src/views/dataBoardMain/main-content.vue +++ b/src/views/dataBoardMain/main-content.vue @@ -1,129 +1,118 @@