123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- <template>
- <view class="barContent">
- <view class="bar-list">
- <view class="bar-list-item" v-for="(item, index) in dataList" :key="index">
- <view class="left">
- {{item.left}}
- </view>
- <!-- :style="`backgroundImage: linear-gradient(${themeColor}, ${themeColor50})};`" -->
- <view class="mid">
- <view class="mid-line" v-if="isThemeColor" :style="`width: ${item.percent + '%'};`"></view>
- <view class="mid-line" v-else :style="`width: ${item.percent + '%'}`"></view>
- </view>
- <view class="right">
- {{item.right}}
- </view>
- </view>
- </view>
- </view>
- </template>
- <script>
- export default {
- props: {
- isThemeColor: {
- type: Boolean,
- default: true
- },
- orginalList: Array
- },
- data() {
- return {
- dataList: [],
- themeColor: null,
- fuzhuColor: null,
- themeColor50: null,
- themeColor25: null,
- fuzhuColor50: null,
- fuzhuColor15: null
- }
- },
- mounted() {
- let globalData = getApp().globalData
- this.themeColor = globalData.themeColor
- this.themeColor50 = globalData.themeColor50
- this.themeColor25 = globalData.themeColor25
- this.fuzhuColor = globalData.fuzhuColor
- this.fuzhuColor50 = globalData.fuzhuColor50
- this.fuzhuColor15 = globalData.fuzhuColor15
- },
- methods: {
- reloadList() {
- if (this.orginalList.length > 0) {
- var tempList = JSON.parse(JSON.stringify(this.orginalList || []))
- tempList = tempList.sort((item1, item2) => {
- return item1.value - item2.value > 0
- })
- // debugger
- var maxValue = tempList[0].value
- tempList.forEach((item, index) => {
- item['percent'] = (item.value / maxValue * 100).toFixed(2)
- })
- this.dataList = tempList
- // // console.log('数据打印111111:', this.dataList)
- }
- }
- },
- watch: {
- orginalList: {
- handler(e) {
- this.reloadList()
- }
- },
- immediate: true
- }
- }
- </script>
- <style scoped lang="scss">
- .barContent {
- width: 100%;
- .bar-list {
- width: 100%;
- .bar-list-item {
- display: flex;
- flex-direction: row;
- justify-content: space-between;
- font-size: 14rpx;
- font-family: Verdana;
- white-space: nowrap;
- height: 60rpx;
- // line-height: 60rpx;
- padding: 0 20rpx 0 52rpx;
- box-sizing: border-box;
- min-height: 60rpx;
- .left {
- color: #393939;
- width: 25%;
- align-self: center;
- }
- .right {
- color: #3CD9D9;
- width: 20%;
- text-align: right;
- align-self: center;
- }
- .mid {
- margin-top: -10rpx;
- width: 50%;
- position: relative;
- align-self: center;
- .mid-line {
- position: absolute;
- background-color: #DD524D;
- height: 12rpx;
- border-radius: 6rpx;
- top: 0;
- }
- }
- }
- }
- }
- </style>
|