|
|
@@ -6,44 +6,43 @@
|
|
|
<template #title>
|
|
|
<span class="custom-title">{{ i.name }}</span>
|
|
|
</template>
|
|
|
-
|
|
|
- <span class="itemNum" v-for="(item, index) in allData[i.key]" :key="index">{{ item }}</span>
|
|
|
+
|
|
|
+ <div class="itemNum">{{ allData[i.key] }}</div>
|
|
|
</van-cell>
|
|
|
</div>
|
|
|
<!-- 设备 -->
|
|
|
<div class="equipment">
|
|
|
<van-cell>
|
|
|
<template #title>
|
|
|
- <span class="custom-title">大堂式设备数量</span>
|
|
|
+ <span class="custom-title">大堂式自助设备</span>
|
|
|
</template>
|
|
|
- <span class="itemNum" v-for="(item, index) in allData['lobbyDeviceCount']" :key="index">{{ item }}</span>
|
|
|
+ <span class="itemNum">{{ allData['lobbyDeviceCount'] }}</span>
|
|
|
</van-cell>
|
|
|
<van-cell>
|
|
|
<template #title>
|
|
|
- <span class="custom-title">穿墙式设备数量</span>
|
|
|
+ <span class="custom-title">穿墙式自助设备</span>
|
|
|
</template>
|
|
|
- <span class="itemNum" v-for="(item, index) in allData['throughwallDeviceCount']" :key="index">{{ item }}</span>
|
|
|
+ <span class="itemNum">{{ allData['throughwallDeviceCount'] }}</span>
|
|
|
</van-cell>
|
|
|
</div>
|
|
|
<!-- 模块数据展示 -->
|
|
|
<div class="businessModule">
|
|
|
<div class="moduleCom">
|
|
|
- <div><span class="leftSty"></span><span>GA38-2021</span></div>
|
|
|
- <div class="moduleItem">
|
|
|
- <div>
|
|
|
- <div class="numCls wj-title-blue">
|
|
|
- {{ parseInt(allData.ga38['GA382021'].currentCompletedRate || 0 * 100) }}%
|
|
|
- </div>
|
|
|
- <div class="fontCls">当月完成率</div>
|
|
|
+ <div class="titleText"><span class="leftSty"></span><span>GA38-2021</span></div>
|
|
|
+ <div class="complete">
|
|
|
+ <div class="numCls wj-title-blue">
|
|
|
+ {{ parseInt(allData.ga38['GA382021'].currentCompletedRate || 0 * 100) }}%
|
|
|
</div>
|
|
|
+ </div>
|
|
|
+ <div class="moduleItem">
|
|
|
<div>
|
|
|
<div class="numCls wj-title-blue">{{ allData.ga38['GA382021'].currentCompletedCount }}</div>
|
|
|
<div class="fontCls">当月完成数</div>
|
|
|
</div>
|
|
|
<div>
|
|
|
- <div class="numCls wj-title-blue">
|
|
|
- <van-icon v-if="allData.ga38['GA382021'].compare > 0" name="down" class="wj-title-red rate" />
|
|
|
- <van-icon v-else name="down" class="wj-title-green" />
|
|
|
+ <div class="numCls wj-title-blue tal">
|
|
|
+ <van-icon v-if="allData.ga38['GA382021'].compare > 0" name="play" class="wj-title-red rate270" />
|
|
|
+ <van-icon v-else name="play" class="wj-title-green rate" />
|
|
|
<span>{{ Math.abs(parseInt(allData.ga38['GA382021'].compare * 100)) }}%</span>
|
|
|
</div>
|
|
|
<div class="fontCls">较上月</div>
|
|
|
@@ -52,20 +51,19 @@
|
|
|
</div>
|
|
|
|
|
|
<div class="moduleCom">
|
|
|
- <div><span class="leftSty"></span><span>GA38-2015</span></div>
|
|
|
+ <div class="titleText"><span class="leftSty"></span><span>GA38-2015</span></div>
|
|
|
+ <div class="complete">
|
|
|
+ <div class="numCls wj-title-blue">{{ parseInt(allData.ga38['GA382015'].currentCompletedRate * 100) }}%</div>
|
|
|
+ </div>
|
|
|
<div class="moduleItem">
|
|
|
<div>
|
|
|
- <div class="numCls wj-title-blue">{{ parseInt(allData.ga38['GA382015'].currentCompletedRate * 100) }}%</div>
|
|
|
- <div class="fontCls">当月完成率</div>
|
|
|
- </div>
|
|
|
- <div>
|
|
|
<div class="numCls wj-title-blue">{{ allData.ga38['GA382015'].currentCompletedCount }}</div>
|
|
|
<div class="fontCls">当月完成数</div>
|
|
|
</div>
|
|
|
<div>
|
|
|
- <div class="numCls wj-title-blue">
|
|
|
- <van-icon v-if="allData.ga38['GA382015'].compare > 0" name="down" class="wj-title-red rate" />
|
|
|
- <van-icon v-else name="down" class="wj-title-green" />
|
|
|
+ <div class="numCls wj-title-blue tal">
|
|
|
+ <van-icon v-if="allData.ga38['GA382015'].compare > 0" name="play" class="wj-title-red rate270" />
|
|
|
+ <van-icon v-else name="play" class="wj-title-green rate" />
|
|
|
|
|
|
<span>{{ Math.abs(parseInt(allData.ga38['GA382015'].compare * 100)) }}%</span>
|
|
|
</div>
|
|
|
@@ -76,14 +74,16 @@
|
|
|
</div>
|
|
|
<div class="businessModule">
|
|
|
<div class="moduleCom" v-for="(item, index) in Object.keys(allData.taskInfo)" :key="index">
|
|
|
- <div><span class="leftSty"></span><span>{{ Object.keys(allData.taskInfo)[index] }}</span></div>
|
|
|
- <div class="moduleItem">
|
|
|
- <div>
|
|
|
- <div class="numCls wj-title-blue">
|
|
|
- {{ parseInt(allData.taskInfo[Object.keys(allData.taskInfo)[index]].currentCompletedRate * 100) }}%
|
|
|
- </div>
|
|
|
- <div class="fontCls">当月完成率</div>
|
|
|
+ <div class="titleText">
|
|
|
+ <span class="leftSty"></span><span>{{ Object.keys(allData.taskInfo)[index] }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="complete">
|
|
|
+ <div class="numCls wj-title-blue">
|
|
|
+ {{ parseInt(allData.taskInfo[Object.keys(allData.taskInfo)[index]].currentCompletedRate * 100) }}%
|
|
|
</div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <div class="moduleItem">
|
|
|
<div>
|
|
|
<div class="numCls wj-title-blue">
|
|
|
{{ allData.taskInfo[Object.keys(allData.taskInfo)[index]].currentCompletedCount }}
|
|
|
@@ -91,8 +91,8 @@
|
|
|
<div class="fontCls">当月完成数</div>
|
|
|
</div>
|
|
|
<div>
|
|
|
- <div class="numCls wj-title-blue">
|
|
|
- <van-icon name="down" class="wj-title-green" />
|
|
|
+ <div class="numCls wj-title-blue tal">
|
|
|
+ <van-icon name="play" class="wj-title-green rate " />
|
|
|
<span
|
|
|
>{{ Math.abs(parseInt(allData.taskInfo[Object.keys(allData.taskInfo)[index]].compare * 100)) }}%</span
|
|
|
>
|
|
|
@@ -101,7 +101,6 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
@@ -110,8 +109,8 @@ import { getOverview } from '@/api/cockpit.js'
|
|
|
export default {
|
|
|
name: 'SocAppOverviewCom',
|
|
|
components: {},
|
|
|
- props:{
|
|
|
- orgId:''
|
|
|
+ props: {
|
|
|
+ orgId: ''
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
@@ -170,31 +169,30 @@ export default {
|
|
|
//获取基础信息
|
|
|
},
|
|
|
mounted() {},
|
|
|
- watch:{
|
|
|
- orgId(){
|
|
|
- this.getAllList()
|
|
|
+ watch: {
|
|
|
+ orgId() {
|
|
|
+ this.getAllList()
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
-
|
|
|
// 获取总览数据
|
|
|
getAllList() {
|
|
|
- getOverview({orgId:this.orgId}).then(res => {
|
|
|
+ getOverview({ orgId: this.orgId }).then(res => {
|
|
|
let { data } = res
|
|
|
this.allData = data
|
|
|
- this.allData.bankingCount = this.remedyZero(this.allData.bankingCount)
|
|
|
- this.allData.bankingStoreCount = this.remedyZero(this.allData.bankingStoreCount)
|
|
|
- this.allData.centerStoreCount = this.remedyZero(this.allData.centerStoreCount)
|
|
|
- this.allData.hangsheCount = this.remedyZero(this.allData.hangsheCount)
|
|
|
- this.allData.lobbyDeviceCount = this.remedyZero(this.allData.lobbyDeviceCount)
|
|
|
- this.allData.offlineATMCount = this.remedyZero(this.allData.offlineATMCount)
|
|
|
- this.allData.onlineATMCount = this.remedyZero(this.allData.onlineATMCount)
|
|
|
- this.allData.throughwallDeviceCount = this.remedyZero(this.allData.throughwallDeviceCount)
|
|
|
+ // this.allData.bankingCount = this.remedyZero(this.allData.bankingCount)
|
|
|
+ // this.allData.bankingStoreCount = this.remedyZero(this.allData.bankingStoreCount)
|
|
|
+ // this.allData.centerStoreCount = this.remedyZero(this.allData.centerStoreCount)
|
|
|
+ // this.allData.hangsheCount = this.remedyZero(this.allData.hangsheCount)
|
|
|
+ // this.allData.lobbyDeviceCount = this.remedyZero(this.allData.lobbyDeviceCount)
|
|
|
+ // this.allData.offlineATMCount = this.remedyZero(this.allData.offlineATMCount)
|
|
|
+ // this.allData.onlineATMCount = this.remedyZero(this.allData.onlineATMCount)
|
|
|
+ // this.allData.throughwallDeviceCount = this.remedyZero(this.allData.throughwallDeviceCount)
|
|
|
})
|
|
|
},
|
|
|
//自动补0
|
|
|
remedyZero(val) {
|
|
|
- let newVal=val||''
|
|
|
+ let newVal = val || ''
|
|
|
// let newVal = val + ''
|
|
|
let num = newVal.length
|
|
|
|
|
|
@@ -202,28 +200,34 @@ export default {
|
|
|
newVal = newVal[index]
|
|
|
}
|
|
|
return ('' + newVal).split('')
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
|
+::v-deep.van-cell::after {
|
|
|
+ border-bottom: 1px solid #e7f4fc;
|
|
|
+}
|
|
|
.titleCom {
|
|
|
// background-color: #f0f0f0;
|
|
|
// margin: 10px;
|
|
|
// box-shadow: 0 2px 10px #ccc;
|
|
|
- .titleRow{
|
|
|
+ .titleRow {
|
|
|
box-shadow: 0 2px 10px #ccc;
|
|
|
margin-left: 12px;
|
|
|
// margin-top: 10px;
|
|
|
- margin-right: 14px;
|
|
|
+ margin-right: 14px;
|
|
|
}
|
|
|
.itemNum {
|
|
|
- width: 40px;
|
|
|
+ width: 100%;
|
|
|
height: 40px;
|
|
|
margin-left: 10px;
|
|
|
+ font-size: 40px;
|
|
|
+ font-family: fantasy;
|
|
|
+ text-align: left;
|
|
|
+ // font-weight: bold;
|
|
|
// border: 1px solid #ccc;
|
|
|
- box-shadow: 0 2px 10px #ccc;
|
|
|
+ // box-shadow: 0 2px 10px #ccc;
|
|
|
color: #008cd6;
|
|
|
display: inline-block;
|
|
|
text-align: center;
|
|
|
@@ -241,6 +245,10 @@ export default {
|
|
|
flex-wrap: wrap;
|
|
|
margin-bottom: 20px;
|
|
|
}
|
|
|
+.tal {
|
|
|
+ text-align: right;
|
|
|
+ padding-right: 0px;
|
|
|
+}
|
|
|
.moduleCom {
|
|
|
width: 47%;
|
|
|
height: 260px;
|
|
|
@@ -249,9 +257,10 @@ export default {
|
|
|
padding: 10px;
|
|
|
box-shadow: 0 2px 10px #ccc;
|
|
|
// border-left: 1px solid #008cd6;
|
|
|
+ position: relative;
|
|
|
|
|
|
.moduleItem {
|
|
|
- margin-top: 90px;
|
|
|
+ margin-top: 30px;
|
|
|
display: flex;
|
|
|
text-align: center;
|
|
|
align-content: center;
|
|
|
@@ -260,18 +269,22 @@ export default {
|
|
|
.numCls {
|
|
|
font-size: 30px;
|
|
|
margin-bottom: 10px;
|
|
|
+
|
|
|
.iconcls {
|
|
|
font-size: 30px;
|
|
|
}
|
|
|
}
|
|
|
+ .textCCls {
|
|
|
+ text-align: right;
|
|
|
+ }
|
|
|
+ > div {
|
|
|
+ width: 40%;
|
|
|
+ }
|
|
|
.fontCls {
|
|
|
font-size: 20px;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-// .moduleCom:not(.bigModule :has(+ .moduleCom), :has(+ .moduleCom)) {
|
|
|
-// border-left: 1px solid #008cd6;
|
|
|
-// }
|
|
|
|
|
|
.businessModule {
|
|
|
display: flex;
|
|
|
@@ -284,15 +297,34 @@ export default {
|
|
|
}
|
|
|
|
|
|
.rate {
|
|
|
- transform: rotate(180deg);
|
|
|
+ transform: rotate(90deg);
|
|
|
}
|
|
|
-.leftSty {
|
|
|
- display: inline-block;
|
|
|
- width: 10px;
|
|
|
- height: 5vw;
|
|
|
+.rate270 {
|
|
|
+ transform: rotate(270deg);
|
|
|
+}
|
|
|
+.titleText {
|
|
|
+ font-size: 4vw;
|
|
|
vertical-align: middle;
|
|
|
- margin-right: 10px;
|
|
|
- margin-left: 10px;
|
|
|
- background-color: #008cd6;
|
|
|
+ .leftSty {
|
|
|
+ display: inline-block;
|
|
|
+ width: 10px;
|
|
|
+ height: 4vw;
|
|
|
+ vertical-align: text-top;
|
|
|
+ margin-right: 10px;
|
|
|
+ margin-left: 10px;
|
|
|
+ background-color: #008cd6;
|
|
|
+ }
|
|
|
+}
|
|
|
+.complete {
|
|
|
+ text-align: center;
|
|
|
+ font-size: 7vw;
|
|
|
+ font-family: fantasy;
|
|
|
+ margin-top: 30px;
|
|
|
+}
|
|
|
+::v-deep.van-icon-play {
|
|
|
+ font-size: 40px;
|
|
|
+ position: absolute;
|
|
|
+ left: 62%;
|
|
|
+ top: 62%;
|
|
|
}
|
|
|
</style>
|