Commit 6dfe644f authored by 郭铭瑶's avatar 郭铭瑶 🤘

修改接口后打包

parent 07f7d217
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
.brief-container[data-v-42bff056]{display:flex;align-items:center;white-space:nowrap}.brief-container .count[data-v-42bff056]{font-family:Barlow,Avenir,Helvetica,Arial,sans-serif;font-size:.14rem}.brief-container.vertical[data-v-42bff056]{display:inline-block}.brief-container>div[data-v-42bff056]{display:flex;align-items:center;flex:1;margin-left:.05rem}.brief-container>div>img[data-v-42bff056]{margin-right:.05rem}.brief-container>div>div[data-v-42bff056]{font-weight:700}.brief-container>div>div p[data-v-42bff056]{color:#ccc}.brief-container>div>div.center[data-v-42bff056]{text-align:center}.circle-wrapper[data-v-4d97637b]{width:100%;height:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative}.circle-wrapper>p[data-v-4d97637b]{margin-top:.1rem;font-size:.12rem;font-weight:700}
\ No newline at end of file
import{d as e,p as A,a,r as t,o as l,b as k,F as r,f as s,l as o,e as f,t as y,w as n,g as i,h as v,c,j as u}from"./index.555f9056.js";var p=e({name:"Brief",props:{list:{type:Array,required:!0},color:{type:String,default:null},size:{type:String,default:"0.22rem"}}});const z=n("data-v-25eb023c");A("data-v-25eb023c");const g={class:"brief-container"},d={key:1},w={class:"count-group"},B=i(" / ");a();const h=z(((e,A,a,n,i,v)=>{const c=t("m-count");return l(),k("div",g,[(l(!0),k(r,null,s(e.list,(A=>(l(),k("div",{key:A.name},[A.icon?(l(),k("img",{key:0,src:A.icon,style:`width:${e.size};height:${e.size}`},null,12,["src"])):o("v-if",!0),Array.isArray(A.value)?(l(),k("div",d,[f("div",w,[f(c,{class:"count yellow",value:A.value[0]},null,8,["value"]),B,f(c,{class:"count",value:A.value[1]},null,8,["value"])]),f("p",null,y(A.name),1)])):(l(),k("div",{key:2,class:{center:!A.icon}},[f(c,{class:"count yellow",style:{color:e.color},value:A.value},null,8,["style","value"]),f("p",null,y(A.name),1)],2))])))),128))])}));p.render=h,p.__scopeId="data-v-25eb023c";var m=e({name:"Circle",props:{type:{type:String,default:"circle"},color:{type:[String,Array],default:["#0094FF","#1DF9FF"]},value:{type:Number,default:0},name:{type:String,default:""},showInfo:{type:Boolean,default:!0},rate:{type:Number,default:1.8},strokeWidth:{type:Number,default:6},gapDegree:{type:Number,default:0}},setup(e){const A=v(null),a=c((()=>Array.isArray(e.color)?{"0%":e.color[0],"100%":e.color[1]}:e.color)),t=c((()=>A.value?A.value.clientWidth/(e.rate||1.8):0));return{circleWrapperRef:A,strokeColor:a,width:t}}});const D=n("data-v-872f1ed0");A("data-v-872f1ed0");const S={ref:"circleWrapperRef",class:"circle-wrapper"};a();const U=D(((e,A,a,r,s,o)=>{const n=t("a-progress");return l(),k("div",S,[f(n,{width:e.width,"stroke-color":e.strokeColor,percent:e.value,type:e.type,"show-info":e.showInfo,"stroke-width":e.strokeWidth,"gap-degree":e.gapDegree},null,8,["width","stroke-color","percent","type","show-info","stroke-width","gap-degree"]),u(e.$slots,"default",{},(()=>[f("p",null,y(e.name),1)]))],512)}));m.render=U,m.__scopeId="data-v-872f1ed0";var E="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAXVBMVEUykf8ykf80kf8wkf8zkf80kf8zkv80kv8zkf8zkv8ykf8ykf8ykf8zkv8ykv8zkf80kv8zkf8ykP8zkf8wkf8ykf8xkP8zkf80k/8zkf8zkf81kv8zk/8ykv8zkf/dH+VkAAAAHnRSTlMz3/s69U9I5O7n2/LHbWjO6NSK0V5WU0FApJCDeE2m+wgLAAAA20lEQVRIx+3XyQ6CMBSF4VJawEqZwfm8/2NKjcQFNB2IiMq/uSHhW92SUBLF8CyOSG+9NQGIZ8CGN+yGZYHJgsYCF9BUW2Do2lliOsoe09E70Rfh8NUNQDE8WODrHprixoh7qys14RD6AivMJrLFjIzj/4AvLJFqVjTJnDEDhHqmQOmKD/1MhtPtio9zMEmA/HlcU2ecibxVU4q8W3jPwwcceuCKMqnmme6lKw7pGvYcL7znOu0es0z5+/fMOW8V5uMyAzb0SSy0+BSYEtUK/4Y2/Lt4zqVs1nXwDgeteZHQ3Mt5AAAAAElFTkSuQmCC",N="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAeFBMVEUykf8wkv8zkv8zkf8zkv8xkv8ykf8zkv8ykf8ykf8zkf8zkv8ykv8zkf8zkf8zkf8ykv8zkv8yk/8zkf8ykf8ykf8ykf8zkv8zkv8zkv8zkf8zkf8ykf8ykv8zkv8zkf8ykv8ykf8ykf8ykf8ykf8ykv8ykf8zkf9v7YFHAAAAJ3RSTlMzN+NWWzr0vGDu59PFgc7JSvJO++u3s6lS266jnj33lnGOe0PXiGaE5hPKAAAB0UlEQVRIx+3XYZeiIBQG4ItKWojVmGtqqWnF//+HO5eRiBB2x/m0e3q/2DnwJF7goLALxMIEO0C7VIMQsDBCvPEbY8J4s07vyzDPBab5LqaXbRajxdR/xjQJifr9UU1OaT8+15+dVjeQIQ/b9CupvZhchUxM4NxleqfGkEj9y4e7R+9wI2QYl6ogSrsx+2xfywKpKmUk2hvajbE9CtfiKTFqqZR2YaxQSibNhv2zjpR24ZN40gyvWocw6YLMYxpITb9UqjSEVXsCeOh5DMcDtm4pXrVOQOXrCZp5DB+bGR3Bi+5N7NL0yPY4Yq1x5FcTu3QJr7mpB9HYpSuwgku4c2Ct8drYuMEJMLGtMzpeBrDDsc3Ctoa5DDgsD54O3ew8hztco27s14W3YH5NW7VKNPZou1574sURv5UCw140xVrW4MFjLGTMNaZ3beTBZCt0mNF0z2WtPXgQT7kYJw9ui9VoYnsygrioy1N3SYz7yu3NwYdTeUM7txztCby4xj4tK3lIQKevpgPAjyOBUf9w343jsW+CqfjEhfV8ONLyvzhie5bP2W0EHqxDIl6y1qBp8q3DnYRDk14PIj9UBd8te6Eh/+Sr1Bv/J/gnH2U/+hz8DZ7FnVP8+fiDAAAAAElFTkSuQmCC",C="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAElBMVEUykf8ykP8zkv80kv80k/8zkf825nviAAAABXRSTlMz65/jSamIpAgAAABkSURBVDjLY3AOxQNMGEzxSQczhDLgAaGj0rSXZhJUwCetGhqET1o0NBCfNDCOR6VJkFZEyR5CaNJMaNlHAVWaEU1agIA0AcPxO20whdpQlwZmInKyICIDD9ayZeRI46/mCFSSAPzEgRk4Bsk7AAAAAElFTkSuQmCC",M="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAElBMVEUykf8ykP80kv8zkv80k/8zkf8mH/+kAAAABXRSTlMz6+OfSXfpA8YAAABHSURBVDjLY3AKxQNUGFTxSQcxhDLgAaGj0qPSI0raECV7CKNJM6NlHwNUaUY0aQEC0gQMx++0wRRqo9Kj0gMrTaCaI1BJAgAZlmm5TBaU5QAAAABJRU5ErkJggg==";export{p as _,m as a,C as b,M as c,E as d,N as e};
import{d as e,p as A,a,r,o as l,b as t,F as s,f as o,g as k,e as n,t as c,w as f,j as i,h as y,c as u,y as d}from"./index.b46c0c17.js";var g=e({name:"Brief",props:{list:{type:Array,required:!0},color:{type:String,default:null},size:{type:String,default:"0.22rem"},align:{type:String,default:"horizontal"}}});const p=f("data-v-42bff056");A("data-v-42bff056");const v={key:1},z={class:"count-group"},w=i(" / ");a();const m=p(((e,A,a,f,i,y)=>{const u=r("m-count");return l(),t("div",{class:["brief-container",{vertical:"vertical"===e.align}]},[(l(!0),t(s,null,o(e.list,(A=>(l(),t("div",{key:A.name},[A.icon?(l(),t("img",{key:0,src:A.icon,style:`width:${e.size};height:${e.size}`},null,12,["src"])):k("",!0),Array.isArray(A.value)?(l(),t("div",v,[n("div",z,[n(u,{class:"count orange-count",value:A.value[0],style:{color:e.color}},null,8,["value","style"]),w,n(u,{class:"count",value:A.value[1]},null,8,["value"])]),n("p",null,c(A.name),1)])):(l(),t("div",{key:2,class:{center:!A.icon}},[n(u,{class:"count",style:{color:e.color},value:A.value},null,8,["style","value"]),n("p",null,c(A.name),1)],2))])))),128))],2)}));g.render=m,g.__scopeId="data-v-42bff056";var S=e({name:"Circle",props:{type:{type:String,default:"circle"},color:{type:[String,Array],default:["#0094FF","#1DF9FF"]},value:{type:Number,default:0},name:{type:String,default:""},showInfo:{type:Boolean,default:!0},rate:{type:Number,default:1.8},strokeWidth:{type:Number,default:6},gapDegree:{type:Number,default:0}},setup(e){const A=y(null),a=u((()=>Array.isArray(e.color)?{"0%":e.color[0],"100%":e.color[1]}:e.color)),r=u((()=>A.value?A.value.clientWidth/(e.rate||1.8):0));return{circleWrapperRef:A,strokeColor:a,width:r}}});const U=f("data-v-4d97637b");A("data-v-4d97637b");const E={ref:"circleWrapperRef",class:"circle-wrapper"};a();const h=U(((e,A,a,s,o,k)=>{const f=r("a-progress");return l(),t("div",E,[n(f,{"class-name":"circle-progress",width:e.width,"stroke-color":e.strokeColor,percent:e.value,type:e.type,"show-info":e.showInfo,"stroke-width":e.strokeWidth,"gap-degree":e.gapDegree,"trail-color":"rgba(255,255,255,0.1)"},null,8,["width","stroke-color","percent","type","show-info","stroke-width","gap-degree"]),d(e.$slots,"default",{},(()=>[n("p",null,c(e.name),1)]))],512)}));S.render=h,S.__scopeId="data-v-4d97637b";var B="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAP1BMVEUykf8ykf8ykf80kv8yk/8zkf8zkf8xkP8xkf8zkf8zkv8ykv8ykf8zkv8ykf80k/8zkv8zk/8zkf8zkf8zkf/igqmIAAAAFHRSTlMzmWbjSvOlc1/t2cG3jVY7zItaQXkfsHMAAAC2SURBVEjH7dfJCsMgFIVhbZwyT+f9n7VdFRe5HkywpMF//6EoiirT4GSNUbLlWgHqZEDFFZ/AzuIw6zj2EPMUrzJeKTZWstZQrMyoDxtN2dWew0sszGk8tUjUTkk8INlQCvNpl1swnoy9JnkZO9CciC3HVsQArxzWSkw/HYfxe4WEXOwR5TNxH+M+E7sYu0y899HA+/9s1e/xosUWfLrhee647US8ddRud30NVfxIfOVTduk7+AYjTFmjwJvA3AAAAABJRU5ErkJggg==",M="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAXVBMVEUykf8ykf80kf8wkf8zkf80kf8zkv80kv8zkf8zkv8ykf8ykf8ykf8zkv8ykv8zkf80kv8zkf8ykP8zkf8wkf8ykf8xkP8zkf80k/8zkf8zkf81kv8zk/8ykv8zkf/dH+VkAAAAHnRSTlMz3/s69U9I5O7n2/LHbWjO6NSK0V5WU0FApJCDeE2m+wgLAAAA20lEQVRIx+3XyQ6CMBSF4VJawEqZwfm8/2NKjcQFNB2IiMq/uSHhW92SUBLF8CyOSG+9NQGIZ8CGN+yGZYHJgsYCF9BUW2Do2lliOsoe09E70Rfh8NUNQDE8WODrHprixoh7qys14RD6AivMJrLFjIzj/4AvLJFqVjTJnDEDhHqmQOmKD/1MhtPtio9zMEmA/HlcU2ecibxVU4q8W3jPwwcceuCKMqnmme6lKw7pGvYcL7znOu0es0z5+/fMOW8V5uMyAzb0SSy0+BSYEtUK/4Y2/Lt4zqVs1nXwDgeteZHQ3Mt5AAAAAElFTkSuQmCC",N="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAElBMVEUykf8ykP8zkv80kv80k/8zkf825nviAAAABXRSTlMz65/jSamIpAgAAABkSURBVDjLY3AOxQNMGEzxSQczhDLgAaGj0rSXZhJUwCetGhqET1o0NBCfNDCOR6VJkFZEyR5CaNJMaNlHAVWaEU1agIA0AcPxO20whdpQlwZmInKyICIDD9ayZeRI46/mCFSSAPzEgRk4Bsk7AAAAAElFTkSuQmCC",C="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAElBMVEUykf8ykP80kv8zkv80k/8zkf8mH/+kAAAABXRSTlMz6+OfSXfpA8YAAABHSURBVDjLY3AKxQNUGFTxSQcxhDLgAaGj0qPSI0raECV7CKNJM6NlHwNUaUY0aQEC0gQMx++0wRRqo9Kj0gMrTaCaI1BJAgAZlmm5TBaU5QAAAABJRU5ErkJggg==";export{g as _,S as a,N as b,C as c,M as d,B as e};
.brief-container[data-v-25eb023c]{display:flex;align-items:center;white-space:nowrap}.brief-container .count[data-v-25eb023c]{font-size:.11rem}.brief-container .count.yellow[data-v-25eb023c]{font-size:.13rem;color:#ffd400}.brief-container>div[data-v-25eb023c]{display:flex;align-items:center;flex:1;margin-left:.05rem}.brief-container>div>img[data-v-25eb023c]{margin-right:.05rem}.brief-container>div>div[data-v-25eb023c]{font-weight:700}.brief-container>div>div p[data-v-25eb023c]{color:#ccc}.brief-container>div>div.center[data-v-25eb023c]{text-align:center}.circle-wrapper[data-v-872f1ed0]{width:100%;height:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative}.circle-wrapper>p[data-v-872f1ed0]{margin-top:.1rem;font-size:.12rem;font-weight:700}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -6,14 +6,15 @@
<link rel="icon" href="./favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>南京东路街道</title>
<script type="module" crossorigin src="./assets/index.555f9056.js"></script>
<link rel="modulepreload" href="./assets/vendor.f1a73ac8.js">
<link rel="stylesheet" href="./assets/index.e1522095.css">
<script type="module" crossorigin src="./assets/index.b46c0c17.js"></script>
<link rel="modulepreload" href="./assets/vendor.f603cf3b.js">
<link rel="stylesheet" href="./assets/index.e57cf26a.css">
</head>
<body>
<div id="app"></div>
<script src="./SMap.min.js"></script>
<!-- <script src="/dev/SMap.min.js"></script> -->
<script src="./Plugins.min.js"></script>
<script src="./hls.js"></script>
......
......@@ -10,8 +10,8 @@
<body>
<div id="app"></div>
<!-- <script src="/SMap.min.js"></script> -->
<script src="/dev/SMap.min.js"></script>
<script src="/SMap.min.js"></script>
<!-- <script src="/dev/SMap.min.js"></script> -->
<script src="/Plugins.min.js"></script>
<script src="/hls.js"></script>
<script type="module" src="/src/main.ts"></script>
......
This diff is collapsed.
......@@ -5,13 +5,12 @@ import store from '@/store'
const Axios = axios.create({
baseURL: api.BASE_URL,
timeout: 15000,
timeout: 25000,
})
Axios.interceptors.request.use(
(config) => {
// 添加token
config.headers.Authorization =
'bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiMCIsImVuYWJsZSI6dHJ1ZSwic2NvcGUiOlsicmVhZCIsIndyaXRlIiwidHJ1c3QiXSwiZXhwIjoxNjMyNDc4MjczLCJqdGkiOiJiNWJlNjVhMS0xOTZmLTQ0MWQtYWUxYy1hNjFhMTM3YTE1ZmYiLCJjbGllbnRfaWQiOiJzc28iLCJ0aW1lc3RhbXAiOjE2MzI0NzEwNzMwNTh9.BppOUuGxmYTgAPr2XloyhaxrKI49_loj901RPLyizu9wEgVr40CpBGOcTDSy4LlYAwcRYCcRxm6xYBW5TNm5jH5iljHRi796CRnO6kyQUycnwdog4J-J3n_vkVPTqOg-CfO6KThnbrqkksxI14Lv8sYQXcT03ypMQlwC-_P56WK7h2N50dS4O-RY1P2iElzZcaDq_Q5icx2hsWeyPDDpSDYcyRIp5dVgBQLjqf0clH_FK2o4N7c6vnkC5Se6VTGbBRBCkhEi9JM0FkcpP8Fj-VbXBYO4HPQ-1ddiMRdxRx-nPT69lOTA_iGJteHruAA9EK2kFDHLsGdbiW2vB5WBlQ'
// config.headers.Authorization = ''
return config
},
(error) => {
......
......@@ -26,8 +26,8 @@ export default function useSwitchMap(map: any): any {
(type) => {
store.commit('SET_SHOW_COMMUNITY_POINTS', false)
setPointsAndBoundary(type)
if (areaLines.value && areaLines.value.length > 0) {
map.value.remove(areaLines.value)
if (areaLines && areaLines.length > 0) {
map.value.remove(areaLines)
}
if (curMapType.value === '2D') return
store.commit('SET_MAP_TYPE', '2D')
......@@ -88,10 +88,10 @@ export default function useSwitchMap(map: any): any {
}
// 工作站勾边
const areaLines = ref([])
let areaLines: any = null
const selectArea = (e: any) => {
map.value.remove(areaLines.value)
areaLines.value = e.map(
map.value.remove(areaLines)
areaLines = e.map(
(
name:
| 'workArea1'
......@@ -144,16 +144,16 @@ export default function useSwitchMap(map: any): any {
}
)
const ecologyPoints = computed(() => store.state.ecologyPoints)
const mapPoints = ref<any>(null)
let mapPoints: any = null
const emergencyPoints = computed(() => store.state.emergencyPoints)
const mapEmergency = ref<any>(null)
let mapEmergency: any = null
function handlePoint(type: null | string, keys: string[]) {
if (!map.value) return
const { showCommunity, hideCommunity, addPoint, remove } = map.value
if (keys.length === 0) {
hideCommunity()
remove(mapPoints.value)
remove(mapPoints)
return
}
......@@ -166,7 +166,6 @@ export default function useSwitchMap(map: any): any {
} else {
hideCommunity()
}
// TODO 现在衣食住行不撒点的原因是分辨的标签没有了
const yiPoints = pointData.filter((e) => e.labelName === '衣')
const shiPoints = pointData.filter((e) => e.labelName === '食')
const zhuPoints = pointData.filter((e) => e.labelName === '住')
......@@ -176,9 +175,9 @@ export default function useSwitchMap(map: any): any {
// const signPoints = []
// const historyPoints = []
remove(mapEmergency.value)
remove(mapPoints.value)
mapPoints.value = addPoint({
remove(mapEmergency)
remove(mapPoints)
mapPoints = addPoint({
key: 'map-points',
size: 20,
data: [
......@@ -211,13 +210,13 @@ export default function useSwitchMap(map: any): any {
() => emergencyPoints.value,
(points) => {
if (points.length === 0 || !map.value) return
store.commit('SET_CHECKED_KEYS', [])
const { addPoint, remove } = map.value
remove(mapEmergency.value)
remove(mapPoints.value)
mapEmergency.value = addPoint({
remove(mapEmergency)
remove(mapPoints)
store.commit('SET_CHECKED_KEYS', [])
mapEmergency = addPoint({
key: 'map-emergency',
size: 20,
size: 14,
data: points,
})
}
......
......@@ -16,7 +16,7 @@
</div>
<m-sub2
click-able
:addition="{ value: elevAmount, unit: '幢' }"
:addition="{ value: elevAmount || '0', unit: '幢' }"
@select="handleClick"
>
电梯加装(排摸)
......@@ -24,10 +24,10 @@
<m-sub2>马桶改造</m-sub2>
<Brief :list="toiletSituation" color="#fff" />
<m-progress
:value="rate"
:value="rate || 0"
:color="['rgba(253,211,116,.15)', '#F7933E']"
:msg="{
value: rate,
value: rate || '0',
unit: '%',
name: '改造进度',
color: '#fff',
......@@ -52,7 +52,7 @@
</template>
<script lang="ts">
import { computed, defineComponent, onMounted, ref } from 'vue'
import { computed, defineComponent, ref, watch } from 'vue'
import Brief, { BriefProp } from '../components/brief.vue'
import store from '@/store'
import icon31 from '@/assets/images/icon31.png'
......@@ -68,21 +68,72 @@ export default defineComponent({
components: { Brief },
setup() {
const curViewType = computed(() => store.state.curView.type)
const beautyHome = computed(() => store.state.beautyHome)
const summary = computed(() => {
const workstationId = computed(() => store.state.curView.id)
const beautyHome = ref<any[]>([])
const summary = ref<{ name: string; value: any }[]>([])
watch(
() => workstationId.value,
(id) => {
if (!id) return
getData()
},
{ immediate: true }
)
async function getData() {
ajax
.get({
url: api.GET_BEAUTY_HOME_EXECUTE,
params: { workstationId: workstationId.value },
})
.then((res) => {
const data = res?.data?.content
summary.value = Object.keys(data).map((key: string) => ({
name: data[key].year + '年',
value: data[key].projectCount || 0,
}))
})
ajax
.get({
url: api.GET_BEAUTY_HOME_STATISTICS,
params: { workstationId: workstationId.value },
})
.then((res) => {
beautyHome.value = res?.data?.content || []
})
const { content } = (
await ajax.get({
url: api.GET_TOILET,
params: { workstationId: workstationId.value },
})
).data
let totalNum = 0,
completeNum = 0
content.forEach((item: any) => {
totalNum += item.totalNum || 0
completeNum += item.completeNum || 0
})
toiletSituation.value[0].value = completeNum
toiletSituation.value[1].value = totalNum
rate.value = Math.round((completeNum / totalNum) * 100)
ajax
.get({
url: api.GET_ELEV_LIST,
params: { workstationId: workstationId.value, pageSize: 1000 },
})
.then((res) => {
const result: any = {}
beautyHome.value.forEach((item) => {
const year = item.implementYear?.slice(0, 4) + '年'
if (!result[year]) {
result[year] = []
const data = res?.data?.content || []
data.forEach((e: any) => {
if (!result[e.cmtName]) {
result[e.cmtName] = 0
}
result[year].push(item)
result[e.cmtName] += 1
})
return Object.keys(result).map((key: string) => ({
name: key,
value: result[key]?.length || 0,
}))
elevList.value = data
elevAmount.value = data.length || 0
})
}
const situation = computed<BriefProp[]>(() => [
{
name: '小区微更新',
......@@ -106,9 +157,9 @@ export default defineComponent({
icon: icon33,
},
{
name: '雨混接',
name: '雨混接',
value:
beautyHome.value.filter((e) => e.projectType == '雨混接')?.length ||
beautyHome.value.filter((e) => e.projectType == '雨混接')?.length ||
0,
icon: icon34,
},
......@@ -118,18 +169,6 @@ export default defineComponent({
{ name: '应改造', value: 0, icon: icon36 },
])
const rate = ref(0)
onMounted(async () => {
const { content } = (await ajax.get({ url: api.GET_TOILET })).data
let totalNum = 0,
completeNum = 0
content.forEach((item: any) => {
totalNum += item.totalNum || 0
completeNum += item.completeNum || 0
})
toiletSituation.value[0].value = completeNum
toiletSituation.value[1].value = totalNum
rate.value = Math.round((completeNum / totalNum) * 100)
})
const barData = computed(() => ({
dimensions: [
{ name: 'name', displayName: '类型' },
......@@ -160,24 +199,6 @@ export default defineComponent({
}
const elevList = ref<any[]>([])
const elevAmount = ref(0)
ajax
.get({
url: api.GET_ELEV_LIST,
params: { pageSize: 1000 },
})
.then((res) => {
const result: any = {}
const data = res?.data?.content || []
data.forEach((e: any) => {
if (!result[e.cmtName]) {
result[e.cmtName] = 0
}
result[e.cmtName] += 1
})
elevList.value = data
elevAmount.value = data.length || 0
})
const showElevModal = ref(false)
const dic: any = {
......
......@@ -71,21 +71,18 @@ export default defineComponent({
components: { Brief },
setup() {
const show = computed(() => store.state.curTheme === 'service')
const beautyHome = computed(() => store.state.beautyHome)
const summary = computed(() => {
const result: any = {}
beautyHome.value.forEach((item) => {
const year = item.implementYear?.slice(0, 4) + '年'
if (!result[year]) {
result[year] = []
}
result[year].push(item)
})
return Object.keys(result).map((key: string) => ({
name: key,
value: result[key]?.length || 0,
const beautyHome = ref<any[]>([])
const summary = ref<{ name: string; value: any }[]>([])
ajax.get({ url: api.GET_BEAUTY_HOME_EXECUTE }).then((res) => {
const data = res?.data?.content
summary.value = Object.keys(data).map((key: string) => ({
name: data[key].year + '年',
value: data[key].projectCount || 0,
}))
})
ajax.get({ url: api.GET_BEAUTY_HOME_STATISTICS }).then((res) => {
beautyHome.value = res?.data?.content || []
})
const situation = computed<BriefProp[]>(() => [
{
name: '小区微更新',
......@@ -109,9 +106,9 @@ export default defineComponent({
icon: icon33,
},
{
name: '雨混接',
name: '雨混接',
value:
beautyHome.value.filter((e) => e.projectType == '雨混接')?.length ||
beautyHome.value.filter((e) => e.projectType == '雨混接')?.length ||
0,
icon: icon34,
},
......
......@@ -20,99 +20,61 @@
{{ item.name }}
</a-select-option>
</a-select>
<m-bar :dataset="barData" :option="barOption" />
<m-bar
v-if="barData.source.length > 0"
:dataset="barData"
:option="barOption"
/>
<m-empty v-else />
</div>
</m-card>
</template>
<script lang="ts">
import { defineComponent, ref, computed, watch } from 'vue'
import { defineComponent, ref, computed } from 'vue'
import store from '@/store'
import { ajax, api } from '@/ajax'
export default defineComponent({
name: 'BeautyStreet',
setup() {
const beautyStreet = computed(() => store.state.beautyStreet)
const list = ref<any>({})
const summary = ref<{ name: string; value: any }[]>([])
const curYear = ref('')
const handleSelect = (val: string) => {
curYear.value = val
setBarData()
}
const barData = ref({
dimensions: [
{ name: 'name', displayName: '项目' },
{ name: 'value', displayName: '数量' },
],
source: [
{ name: '架空线梳理', value: 0 },
{ name: '店招店牌美化', value: 0 },
{ name: '绿化整治', value: 0 },
{ name: '外立面整治', value: 0 },
{ name: '公共设施', value: 0 },
],
source: [],
})
watch(
() => curYear.value,
(
year: string = summary.value?.[summary.value.length - 1]?.name || ''
) => {
barData.value.source = [
{
name: '架空线梳理',
value:
list.value[year]?.filter(
(e: any) => e.projectType == '架空线梳理'
)?.length || 0,
},
{
name: '店招店牌美化',
value:
list.value[year]?.filter(
(e: any) => e.projectType == '店招店牌美化'
)?.length || 0,
},
{
name: '绿化整治',
value:
list.value[year]?.filter((e: any) => e.projectType == '绿化整治')
?.length || 0,
},
{
name: '外立面整治',
value:
list.value[year]?.filter(
(e: any) => e.projectType == '外立面整治'
)?.length || 0,
},
{
name: '公共设施',
value:
list.value[year]?.filter((e: any) => e.projectType == '公共设施')
?.length || 0,
},
]
},
{ immediate: true }
)
watch(
() => beautyStreet.value,
(data: any[]) => {
ajax.get({ url: api.GET_BEAUTY_STREET_STATISTICS }).then((res) => {
const data = res?.data?.content
const result: any = {}
data.forEach((item) => {
const year = item.implementYear?.slice(0, 4) + '年'
if (!result[year]) {
result[year] = []
}
result[year].push(item)
Object.keys(data).forEach((key) => {
result[data[key].year + '年'] = data[key].data || []
})
list.value = result
summary.value = Object.keys(list.value).map((key: string) => ({
name: key,
value: list.value?.[key]?.length || 0,
ajax.get({ url: api.GET_BEAUTY_STREET_EXECUTE }).then((res) => {
const data = res?.data?.content
summary.value = Object.keys(data).map((key: string) => ({
name: data[key].year + '年',
value: data[key].projectCount || 0,
}))
curYear.value = summary.value?.[0]?.name || ''
setBarData()
})
})
function setBarData() {
barData.value.source = list.value[curYear.value]?.map((item: any) => ({
name: item.projectType,
value: item.projectTypeCount || 0,
}))
curYear.value = summary.value?.[summary.value.length - 1]?.name || ''
}
)
const fontSize = computed(() => Math.floor((screen.height * 1.6) / 100))
const barOption = ref({
color: [['#F7973D', 'rgba(234,173,0,.1)']],
......
......@@ -14,7 +14,12 @@
<div class="content">
<m-sub2>响应度</m-sub2>
<div v-if="showChart" class="chart">
<m-line :dataset="responseChartData" :option="chartOption" />
<m-line
v-if="responseChartData.source.length > 0"
:dataset="responseChartData"
:option="chartOption"
/>
<m-empty v-else />
</div>
<m-sub2>分类排行</m-sub2>
<div class="chart wrapper">
......
......@@ -18,7 +18,12 @@
</div>
</div>
<div v-if="showChart" class="chart">
<m-bar :dataset="barData" :option="barOption" />
<m-bar
v-if="barData.source.length > 0"
:dataset="barData"
:option="barOption"
/>
<m-empty v-else />
</div>
<div class="chart wrapper">
<img src="@/assets/images/pyramid.png" />
......@@ -156,7 +161,6 @@ export default defineComponent({
data3: workstationKind.value[index].statistical.threeDisposalNum,
})
})
return {
dimensions: [
{ name: 'date', displayName: '日期' },
......@@ -175,14 +179,13 @@ export default defineComponent({
{ name: 'data3', displayName: '结案数' },
],
source: [
{ date: '11-11', data1: 100, data2: 100, data3: 100 },
{ date: '11-12', data1: 110, data2: 110, data3: 120 },
{ date: '11-13', data1: 120, data2: 130, data3: 140 },
{ date: '11-14', data1: 130, data2: 140, data3: 160 },
{ date: '11-15', data1: 140, data2: 150, data3: 180 },
{ date: '11-16', data1: 150, data2: 160, data3: 190 },
{ date: '11-17', data1: 150, data2: 160, data3: 190 },
{ date: '11-18', data1: 150, data2: 160, data3: 190 },
// { date: '2020-11-12', data1: 110, data2: 110, data3: 120 },
// { date: '2020-11-13', data1: 120, data2: 130, data3: 140 },
// { date: '2020-11-14', data1: 130, data2: 140, data3: 160 },
// { date: '2020-11-15', data1: 140, data2: 150, data3: 180 },
// { date: '2020-11-16', data1: 150, data2: 160, data3: 190 },
// { date: '2020-11-17', data1: 150, data2: 160, data3: 190 },
// { date: '2020-11-18', data1: 150, data2: 160, data3: 190 },
],
}
}
......@@ -202,6 +205,9 @@ export default defineComponent({
},
},
},
yAxis: {
minInterval: 1,
},
series: [1, 2, 3].map(() => ({
type: 'bar',
barWidth: '18%',
......
......@@ -159,21 +159,35 @@ export default defineComponent({
{ immediate: true }
)
const emergencyPoints = computed(() => store.state.emergencyPoints)
const selectBuilding = (data: any) => {
const selectBuilding = async (data: any) => {
let points = buildings.value.map((item: any) => ({
...(locations.value[item.sectId] || {}),
...item,
icon: dimond2,
size: 18,
}))
if (data) {
if (!data.sectId) return
if (emergencyPoints.value.length > 0) {
points.find((e: any) => e.sectId === data.sectId).size = 22
} else {
points = [points.find((e: any) => e.sectId === data.sectId)]
}
}
points = [points.find((e: any) => e.id === data.id)]
// if (data) {
// if (!data.sectId) return
// if (emergencyPoints.value.length > 0) {
// points.find((e: any) => e.sectId === data.sectId).size = 22
// } else {
// points = [points.find((e: any) => e.sectId === data.sectId)]
// }
// }
points = await Promise.all(
points.map(async (item) => {
const { x, y } =
(
await ajax.get({
url: api.GET_BUILDING,
params: { sectId: item?.sectId },
})
)?.data?.content?.[0] || {}
item.x = x
item.y = y
return item
})
)
store.commit('SET_EMERGENCY_POINTS', points)
}
......
<template>
<m-card title="智慧养老">
<div>
<m-sub2 :addition="{ value: 14696 }">老人数量</m-sub2>
<m-sub2 :addition="{ value: oldData?.oldNum || 0 }">老人数量</m-sub2>
<div class="sum">
<div v-for="item in oldSum" :key="item.name">
<p class="count orange-count"><m-count :value="item.value" />%</p>
<p class="count orange-count">
<m-count :value="item.value" :decimal="1" />%
</p>
<span>{{ item.name }}</span>
</div>
</div>
......@@ -22,7 +24,7 @@
{{ item.name }}
</p>
<p>
{{ ((item.value / total) * 100).toFixed(0) }}%
{{ ((item.value / total) * 100 || 0).toFixed(1) }}%
<m-count :value="item.value" />
</p>
</div>
......@@ -78,11 +80,11 @@
<m-sub2>长护险</m-sub2>
<div class="insurance">
<div>
<m-count class="count orange-count" :value="1113" />
<m-count class="count orange-count" :value="oldData?.applyNum || 0" />
<span>申请人数</span>
</div>
<div>
<m-count class="count orange-count" :value="812" />
<m-count class="count orange-count" :value="oldData?.passNum || 0" />
<span>申请通过人数</span>
</div>
</div>
......@@ -96,16 +98,18 @@
<script lang="ts">
import { computed, defineComponent, ref } from 'vue'
import Circle from '../components/circle.vue'
import { ajax, api } from '@/ajax'
import store from '@/store'
export default defineComponent({
name: 'Old',
components: { Circle },
setup() {
const oldData = ref<any>(null)
const oldSum = ref([
{ name: '女性占比', value: 65 },
{ name: '男性占比', value: 35 },
{ name: '老龄化占比', value: 43 },
{ name: '女性占比', value: 0 },
{ name: '男性占比', value: 0 },
{ name: '老龄化占比', value: 0 },
])
const pieData = ref({
dimensions: [
......@@ -113,15 +117,17 @@ export default defineComponent({
{ name: 'value', displayName: '人数' },
],
source: [
{ name: '90-99岁', value: 2204 },
{ name: '100以上', value: 284 },
{ name: '80-89岁', value: 1910 },
{ name: '70-79岁', value: 4261 },
{ name: '65-69岁', value: 3086 },
{ name: '60-64岁', value: 2939 },
{ name: '90-99岁', value: 0 },
{ name: '100以上', value: 0 },
{ name: '80-89岁', value: 0 },
{ name: '70-79岁', value: 0 },
{ name: '65-69岁', value: 0 },
{ name: '60-64岁', value: 0 },
],
})
const total = pieData.value.source.reduce((acc, cur) => acc + cur.value, 0)
const total = computed(() => {
return pieData.value.source.reduce((acc, cur) => acc + cur.value, 0)
})
const pieOption = ref({
color: ['#FE9B5F', '#51EBA4', '#77BFF9', '#8E6FFC', '#E06377', '#B9C3D1'],
legend: { show: false },
......@@ -138,17 +144,17 @@ export default defineComponent({
],
})
const oldType = ref([
{ name: '孤老', value: 103, percent: 0.9 },
{ name: '独居', value: 391, percent: 3.38 },
{ name: '纯老', value: 902, percent: 7.8 },
{ name: '低保', value: 63, percent: 0.55 },
{ name: '残疾', value: 877, percent: 7.59 },
{ name: '优抚', value: 28, percent: 0.25 },
{ name: '孤老', value: 0, percent: 0 },
{ name: '独居', value: 0, percent: 0 },
{ name: '纯老', value: 0, percent: 0 },
{ name: '低保', value: 0, percent: 0 },
{ name: '残疾', value: 0, percent: 0 },
{ name: '优抚', value: 0, percent: 0 },
])
const oldMethod = ref([
{ name: '社区养老', value: 38464, color: '#72c011' },
{ name: '机构养老', value: 1146, color: '#ff9d26' },
{ name: '居家养老', value: 981, color: '#01bffe' },
{ name: '社区养老', value: 0, color: '#72c011' },
{ name: '机构养老', value: 0, color: '#ff9d26' },
{ name: '居家养老', value: 0, color: '#01bffe' },
])
const insuranceData = ref({
dimensions: [
......@@ -156,21 +162,104 @@ export default defineComponent({
{ name: 'value', displayName: '人数' },
],
source: [
{ name: '0级', value: 15 },
{ name: '1级', value: 60 },
{ name: '2级', value: 75 },
{ name: '3级', value: 90 },
{ name: '4级', value: 66 },
{ name: '5级', value: 60 },
{ name: '6级', value: 75 },
{ name: '0级', value: 0 },
{ name: '1级', value: 0 },
{ name: '2级', value: 0 },
{ name: '3级', value: 0 },
{ name: '4级', value: 0 },
{ name: '5级', value: 0 },
{ name: '6级', value: 0 },
],
})
const insuranceOption = ref({
color: ['#01bffe'],
legend: { show: false },
yAxis: {
minInterval: 1,
},
})
const showChart = computed(() => store.state.curTheme === 'service')
ajax.get({ url: api.GET_WISDOM_OLD }).then((res) => {
const data = res?.data?.content || {}
oldData.value = data
oldSum.value = [
{ name: '女性占比', value: data?.oldWomanNum || 0 },
{ name: '男性占比', value: data?.oldManNum || 0 },
{ name: '老龄化占比', value: data?.oldRate || 0 },
]
pieData.value.source = [
{ name: '90-99岁', value: data?.num90_99 || 0 },
{ name: '100以上', value: data?.num100 || 0 },
{ name: '80-89岁', value: data?.num80_89 || 0 },
{ name: '70-79岁', value: data?.num70_79 || 0 },
{ name: '65-69岁', value: data?.num65_69 || 0 },
{ name: '60-64岁', value: data?.num60_64 || 0 },
]
const keys = ['gulao', 'duju', 'chunlao', 'dibao', 'canji', 'youfu']
const total =
keys.map((key) => data[key] || 0).reduce((acc, cur) => acc + cur, 0) ||
1
oldType.value = [
{
name: '孤老',
value: data?.gulao || 0,
percent: +(((data?.gulao || 0) / total) * 100).toFixed(1),
},
{
name: '独居',
value: data?.duju || 0,
percent: +(((data?.duju || 0) / total) * 100).toFixed(1),
},
{
name: '纯老',
value: data?.chunlao || 0,
percent: +(((data?.chunlao || 0) / total) * 100).toFixed(1),
},
{
name: '低保',
value: data?.dibao || 0,
percent: +(((data?.dibao || 0) / total) * 100).toFixed(1),
},
{
name: '残疾',
value: data?.canji || 0,
percent: +(((data?.canji || 0) / total) * 100).toFixed(1),
},
{
name: '优抚',
value: data?.youfu || 0,
percent: +(((data?.youfu || 0) / total) * 100).toFixed(1),
},
]
oldMethod.value = [
{
name: '社区养老',
value: data?.communityEndowment || 0,
color: '#72c011',
},
{
name: '机构养老',
value: data?.organizationEndowment || 0,
color: '#ff9d26',
},
{
name: '居家养老',
value: data?.homeEndowment || 0,
color: '#01bffe',
},
]
insuranceData.value.source = [
{ name: '0级', value: data?.level0 || 0 },
{ name: '1级', value: data?.level1 || 0 },
{ name: '2级', value: data?.level2 || 0 },
{ name: '3级', value: data?.level3 || 0 },
{ name: '4级', value: data?.level4 || 0 },
{ name: '5级', value: data?.level5 || 0 },
{ name: '6级', value: data?.level6 || 0 },
]
})
return {
oldData,
oldSum,
pieData,
total,
......
......@@ -5,11 +5,11 @@
最新发现
</m-sub2>
<Brief :list="sumList" color="#fff" />
<div v-if="showChart" class="chart">
<!-- <div v-if="showChart" class="chart">
<m-line :dataset="lineData" :option="lineOption" />
</div> -->
</div>
</div>
<div>
<div class="gate-wrapper">
<m-sub2>门岗值守分布</m-sub2>
<div class="gate">
<p>直管公房</p>
......@@ -177,14 +177,17 @@ export default defineComponent({
width 100%
height 1.4rem
margin 0.1rem 0
.gate-wrapper
margin .1rem 0
.gate
margin-bottom 0.01rem
margin-bottom 0.1rem
p
margin-bottom 0.01rem
margin 0.05rem 0
.safe-map
display flex
$card-bg2()
padding .05rem .1rem
margin .1rem 0
>div
&:first-child
cursor pointer
......
......@@ -7,7 +7,7 @@
<m-count class="count" :value="item.value" />
<div>
<span>{{ item.name }}</span>
<img src="@/assets/images/location.png" />
<!-- <img src="@/assets/images/location.png" /> -->
</div>
</div>
</div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment