Commit f46d5e05 authored by leon's avatar leon

fix: report detail same deal with index

parent 48774168
<template> <template>
<view <view class="viewport-wrapper" :style="[styleObject]">
class="canvas" <template v-for="(element, index) in reportData">
:style="[styleObject]" <view
> class="view-element"
<view class="viewport-wrapper" :style="{ v-show="!element.hide"
width: `${reportInfo.width * scale}px`, :key="element.id"
height: `${reportInfo.height * scale}px` :style="{
}"> width: `${element.width * scale}px`,
<template v-for="(element, index) in reportData"> height: `${element.height * scale}px`,
<view left: `${element.left * scale}px`,
class="view-element" top: `${element.top * scale}px`,
v-if="!element.hide" zIndex: index + 1
:key="element.id" }"
:style="{ >
width: `${element.width * scale}px`, <!-- 普通柱状图 -->
height: `${element.height * scale}px`, <NormalBar v-if="element.type == 'NormalBar'" :elementInfo="element"></NormalBar>
left: `${element.left * scale}px`, <!-- 普通折线图 -->
top: `${element.top * scale}px`, <NormalLine v-if="element.type == 'NormalLine'" :elementInfo="element"></NormalLine>
zIndex: index + 1 <!-- 横向柱状图 -->
}" <HorizontalBar v-if="element.type == 'HorizontalBar'" :elementInfo="element"></HorizontalBar>
> <!-- 折柱图 -->
<!-- 普通柱状图 --> <LineMixBar v-if="element.type == 'LineMixBar'" :elementInfo="element"></LineMixBar>
<NormalBar v-if="element.type == 'NormalBar'" :elementInfo="element"></NormalBar> <!-- 仪表盘 -->
<!-- 普通折线图 --> <NormalGauge v-if="element.type == 'NormalGauge'" :elementInfo="element"></NormalGauge>
<NormalLine v-if="element.type == 'NormalLine'" :elementInfo="element"></NormalLine> <!-- 饼图 -->
<!-- 横向柱状图 --> <NormalPie v-if="element.type == 'NormalPie'" :elementInfo="element"></NormalPie>
<HorizontalBar v-if="element.type == 'HorizontalBar'" :elementInfo="element"></HorizontalBar> <!-- 中国地图 -->
<!-- 折柱图 --> <ChinaMap v-if="element.type == 'ChinaMap'" :elementInfo="element"></ChinaMap>
<LineMixBar v-if="element.type == 'LineMixBar'" :elementInfo="element"></LineMixBar> <!-- 柱状图混合地图 -->
<!-- 仪表盘 --> <BarMixMap v-if="element.type == 'BarMixMap'" :elementInfo="element"></BarMixMap>
<NormalGauge v-if="element.type == 'NormalGauge'" :elementInfo="element"></NormalGauge> <!-- 雷达图 -->
<!-- 饼图 --> <NormalRadar v-if="element.type == 'NormalRadar'" :elementInfo="element"></NormalRadar>
<NormalPie v-if="element.type == 'NormalPie'" :elementInfo="element"></NormalPie> <!-- 普通数字滚动 -->
<!-- 中国地图 --> <CountTo v-if="element.type == 'CountTo'" :elementInfo="element"></CountTo>
<ChinaMap v-if="element.type == 'ChinaMap'" :elementInfo="element"></ChinaMap> <!-- 数字滚动 -->
<!-- 柱状图混合地图 --> <NumberScroll v-if="element.type == 'NumberScroll'" :elementInfo="element"></NumberScroll>
<BarMixMap v-if="element.type == 'BarMixMap'" :elementInfo="element"></BarMixMap> <!-- 普通选项卡 -->
<!-- 雷达图 --> <NormalTabs v-if="element.type == 'NormalTabs'" :elementInfo="element"></NormalTabs>
<NormalRadar v-if="element.type == 'NormalRadar'" :elementInfo="element"></NormalRadar> <!-- 文本框 -->
<!-- 普通数字滚动 --> <BasicText v-if="element.type == 'BasicText'" :elementInfo="element"></BasicText>
<CountTo v-if="element.type == 'CountTo'" :elementInfo="element"></CountTo> <!-- 真实时间 -->
<!-- 数字滚动 --> <RealTime v-if="element.type == 'RealTime'" :elementInfo="element"></RealTime>
<NumberScroll v-if="element.type == 'NumberScroll'" :elementInfo="element"></NumberScroll> <!-- 普通进度条 -->
<!-- 普通选项卡 --> <NormalProgress v-if="element.type == 'NormalProgress'" :elementInfo="element"></NormalProgress>
<NormalTabs v-if="element.type == 'NormalTabs'" :elementInfo="element"></NormalTabs> <!-- 普通图片 -->
<!-- 文本框 --> <NormalImage v-if="element.type == 'NormalImage'" :elementInfo="element"></NormalImage>
<BasicText v-if="element.type == 'BasicText'" :elementInfo="element"></BasicText> <!-- 远程图片 -->
<!-- 真实时间 --> <RemoteImage v-if="element.type == 'RemoteImage'" :elementInfo="element"></RemoteImage>
<RealTime v-if="element.type == 'RealTime'" :elementInfo="element"></RealTime> <!-- 普通表格 -->
<!-- 普通进度条 --> <!-- <NormalTable v-if="element.type == 'NormalTable'" :elementInfo="element"></NormalTable> -->
<NormalProgress v-if="element.type == 'NormalProgress'" :elementInfo="element"></NormalProgress> <Table v-if="element.type == 'NormalTable'" :elementInfo="element"></Table>
<!-- 普通图片 --> </view>
<NormalImage v-if="element.type == 'NormalImage'" :elementInfo="element"></NormalImage> </template>
<!-- 远程图片 --> </view>
<RemoteImage v-if="element.type == 'RemoteImage'" :elementInfo="element"></RemoteImage>
<!-- 普通表格 -->
<NormalTable v-if="element.type == 'NormalTable'" :elementInfo="element"></NormalTable>
</view>
</template>
</view>
</view>
</template> </template>
<script> <script>
...@@ -102,7 +95,7 @@ ...@@ -102,7 +95,7 @@
* 组件交互 - 组件 * 组件交互 - 组件
*/ */
uni.$on('handleLinkComp', ({ showData, hideData }) => { uni.$on('handleLinkComp', ({ showData, hideData }) => {
this.reportData.map(item => { this.reportData = this.reportData.map(item => {
if(showData.includes(item.id)) item.hide = false if(showData.includes(item.id)) item.hide = false
if(hideData.includes(item.id)) item.hide = true if(hideData.includes(item.id)) item.hide = true
return item return item
...@@ -152,6 +145,7 @@ ...@@ -152,6 +145,7 @@
async getReportCharts() { async getReportCharts() {
clearInterval(this.timename) clearInterval(this.timename)
let res = await this.$u.api.getReportCharts({id: this.detailId}) let res = await this.$u.api.getReportCharts({id: this.detailId})
uni.stopPullDownRefresh()
const { Status, Result: { info, list } } = res.data const { Status, Result: { info, list } } = res.data
if (Status === 'true') { if (Status === 'true') {
if(info.dataUrl) { if(info.dataUrl) {
...@@ -181,7 +175,7 @@ ...@@ -181,7 +175,7 @@
*/ */
handleValueChange(index, paramName, value) { handleValueChange(index, paramName, value) {
if(index.length && paramName && value) { if(index.length && paramName && value) {
this.reportData.map(item => { this.reportData = this.reportData.map(item => {
const flag = index.includes(item.id) const flag = index.includes(item.id)
if(flag && item.type === 'BasicText' && item.data.dataType === 'static') { if(flag && item.type === 'BasicText' && item.data.dataType === 'static') {
this.$set(item.data.dataList, 'text', value) this.$set(item.data.dataList, 'text', value)
......
...@@ -145,6 +145,7 @@ ...@@ -145,6 +145,7 @@
async getReportCharts() { async getReportCharts() {
clearInterval(this.timename) clearInterval(this.timename)
let res = await this.$u.api.getReportCharts({id: '61cd2ba1c06bffbdae442c4f'}) let res = await this.$u.api.getReportCharts({id: '61cd2ba1c06bffbdae442c4f'})
uni.stopPullDownRefresh()
const { Status, Result: { info, list } } = res.data const { Status, Result: { info, list } } = res.data
if (Status === 'true') { if (Status === 'true') {
if(info.dataUrl) { if(info.dataUrl) {
......
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