|
@@ -1,11 +1,11 @@
|
|
|
<template>
|
|
<template>
|
|
|
<view class="blocks-renderer">
|
|
<view class="blocks-renderer">
|
|
|
- <view v-for="(block, bi) in blocks" :key="'b' + bi" class="block-wrap">
|
|
|
|
|
|
|
+ <view v-for="(block, bi) in blocks" :key="getBlockKey(bi)" class="block-wrap">
|
|
|
<!-- score: 评分圆环组 -->
|
|
<!-- score: 评分圆环组 -->
|
|
|
<view v-if="block.type === 'score'" class="block score-block">
|
|
<view v-if="block.type === 'score'" class="block score-block">
|
|
|
<view class="block-title">{{ block.title }}</view>
|
|
<view class="block-title">{{ block.title }}</view>
|
|
|
<view class="score-grid">
|
|
<view class="score-grid">
|
|
|
- <view class="score-item" v-for="(item, si) in block.items" :key="'s' + si">
|
|
|
|
|
|
|
+ <view class="score-item" v-for="(item, si) in block.items" :key="getScoreKey(si)">
|
|
|
<view class="score-circle" :style="'border-color:' + (item.color || '#4A9BD7')">
|
|
<view class="score-circle" :style="'border-color:' + (item.color || '#4A9BD7')">
|
|
|
<text class="score-value">{{ item.value }}</text>
|
|
<text class="score-value">{{ item.value }}</text>
|
|
|
</view>
|
|
</view>
|
|
@@ -17,7 +17,7 @@
|
|
|
<!-- risk_group: 风险分组(按等级徽章) -->
|
|
<!-- risk_group: 风险分组(按等级徽章) -->
|
|
|
<view v-else-if="block.type === 'risk_group'" class="block risk-block">
|
|
<view v-else-if="block.type === 'risk_group'" class="block risk-block">
|
|
|
<view class="block-title">{{ block.title }}</view>
|
|
<view class="block-title">{{ block.title }}</view>
|
|
|
- <view class="risk-card" v-for="(item, ri) in block.items" :key="'r' + ri"
|
|
|
|
|
|
|
+ <view class="risk-card" v-for="(item, ri) in block.items" :key="getRiskKey(ri)"
|
|
|
:class="'risk-level-' + riskCss(item.level)">
|
|
:class="'risk-level-' + riskCss(item.level)">
|
|
|
<text class="risk-name">{{ item.name }}</text>
|
|
<text class="risk-name">{{ item.name }}</text>
|
|
|
<text class="risk-value">风险值: {{ item.value || '--' }}</text>
|
|
<text class="risk-value">风险值: {{ item.value || '--' }}</text>
|
|
@@ -28,7 +28,7 @@
|
|
|
<!-- indicator: 指标明细 -->
|
|
<!-- indicator: 指标明细 -->
|
|
|
<view v-else-if="block.type === 'indicator'" class="block indicator-block">
|
|
<view v-else-if="block.type === 'indicator'" class="block indicator-block">
|
|
|
<view class="block-title">{{ block.title }}</view>
|
|
<view class="block-title">{{ block.title }}</view>
|
|
|
- <view class="indicator-item" v-for="(item, ii) in block.items" :key="'i' + ii">
|
|
|
|
|
|
|
+ <view class="indicator-item" v-for="(item, ii) in block.items" :key="getIndicatorKey(ii)">
|
|
|
<text class="ind-name">{{ item.name }}</text>
|
|
<text class="ind-name">{{ item.name }}</text>
|
|
|
<text class="ind-value">{{ item.value }} {{ item.unit }}</text>
|
|
<text class="ind-value">{{ item.value }} {{ item.unit }}</text>
|
|
|
<text class="ind-status" :class="'status-' + statusCss(item.status)">{{ item.status }}</text>
|
|
<text class="ind-status" :class="'status-' + statusCss(item.status)">{{ item.status }}</text>
|
|
@@ -39,12 +39,12 @@
|
|
|
<view v-else-if="block.type === 'list'" class="block list-block">
|
|
<view v-else-if="block.type === 'list'" class="block list-block">
|
|
|
<view class="block-title">{{ block.title }}</view>
|
|
<view class="block-title">{{ block.title }}</view>
|
|
|
<view class="list-head" v-if="block.columns">
|
|
<view class="list-head" v-if="block.columns">
|
|
|
- <text class="list-cell head-cell" v-for="(colItem, ci) in block.columns" :key="'c' + ci"
|
|
|
|
|
|
|
+ <text class="list-cell head-cell" v-for="(colItem, ci) in block.columns" :key="getColumnKey(ci)"
|
|
|
:style="'flex:' + (ci === 0 ? 2 : 1)">{{ colItem.label }}</text>
|
|
:style="'flex:' + (ci === 0 ? 2 : 1)">{{ colItem.label }}</text>
|
|
|
</view>
|
|
</view>
|
|
|
- <view class="list-row" v-for="(item, li) in block.items" :key="'l' + li">
|
|
|
|
|
|
|
+ <view class="list-row" v-for="(item, li) in block.items" :key="getListItemKey(li)">
|
|
|
<text class="list-cell" :style="'flex:' + (ci === 0 ? 2 : 1)"
|
|
<text class="list-cell" :style="'flex:' + (ci === 0 ? 2 : 1)"
|
|
|
- v-for="(colItem, ci) in block.columns" :key="'lc' + ci">{{ item[colItem.key] || '--' }}</text>
|
|
|
|
|
|
|
+ v-for="(colItem, ci) in block.columns" :key="getListColumnKey(ci)">{{ item[colItem.key] || '--' }}</text>
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
|
|
@@ -70,6 +70,13 @@ export default {
|
|
|
blocks: { type: Array, default: function() { return [] } }
|
|
blocks: { type: Array, default: function() { return [] } }
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
|
|
|
+ getBlockKey: function(bi) { return 'b' + bi },
|
|
|
|
|
+ getScoreKey: function(si) { return 's' + si },
|
|
|
|
|
+ getRiskKey: function(ri) { return 'r' + ri },
|
|
|
|
|
+ getIndicatorKey: function(ii) { return 'i' + ii },
|
|
|
|
|
+ getColumnKey: function(ci) { return 'c' + ci },
|
|
|
|
|
+ getListItemKey: function(li) { return 'l' + li },
|
|
|
|
|
+ getListColumnKey: function(ci) { return 'lc' + ci },
|
|
|
riskCss: function(level) {
|
|
riskCss: function(level) {
|
|
|
var important = ['需注意', '注意', '高风险', '异常']
|
|
var important = ['需注意', '注意', '高风险', '异常']
|
|
|
return important.indexOf(level) >= 0 ? 'warning' : 'low'
|
|
return important.indexOf(level) >= 0 ? 'warning' : 'low'
|