lambo-design-bi 0.0.252 → 0.0.254

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -240,8 +240,8 @@ export default {
240
240
  this.lastDocId = doc.docId
241
241
  this.lastFileName = doc.docName || (this.cardTitle + '.docx')
242
242
  // 发布人/发布时间统一展示在左侧目录下方(数据源 plat_bulletin_publish_doc)
243
- this.publisher = doc.publishUserName ? String(doc.publishUserName).trim() : ''
244
- this.publishTime = doc.publishTime ? `简报发布时间:${normalizePublishTime(doc.publishTime)}` : ''
243
+ this.publisher = doc.publishUserName ? `发布人:${String(doc.publishUserName).trim()}` : ''
244
+ this.publishTime = doc.publishTime ? `发布时间:${normalizePublishTime(doc.publishTime)}` : ''
245
245
  this.previewUrl = fileGetUrl + doc.docId
246
246
  this.emptyReason = ''
247
247
  this.$Message.success({ content: '查询到已发布的简报', duration: 1.8 })
@@ -108,14 +108,15 @@ export default {
108
108
  this.subTitle = row['sub_title']
109
109
  this.num = row['num']
110
110
  this.subNum1 = row['sub_num1']
111
- this.trend1 = row['trend1']
111
+ // 过滤掉前端缺省值'-'的情况,组件传值有要求
112
+ this.trend1 = row['trend1']==='-'?null:row['trend1']
112
113
  this.subNum2 = row['sub_num2']
113
- this.trend2 = row['trend2']
114
+ this.trend2 = row['trend2']==='-'?null:row['trend2']
114
115
  if (Object.prototype.hasOwnProperty.call(row, 'polar1')) {
115
- this.polar1 = row['polar1']
116
+ this.polar1 = row['polar1']==='-'?null:row['polar1']
116
117
  }
117
118
  if (Object.prototype.hasOwnProperty.call(row, 'polar2')) {
118
- this.polar2 = row['polar2']
119
+ this.polar2 = row['polar2']==='-'?null:row['polar2']
119
120
  }
120
121
  if (Object.prototype.hasOwnProperty.call(row, 'drill_k1') && Object.prototype.hasOwnProperty.call(row, 'drill_v1')) {
121
122
  this.drillK1 = row['drill_k1'] || ''
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lambo-design-bi",
3
- "version": "0.0.252",
3
+ "version": "0.0.254",
4
4
  "description": "Vue2 BI 数据可视化组件库",
5
5
  "main": "index.js",
6
6
  "author": "finch",
@@ -1159,9 +1159,12 @@ export function getECharts(type, dataX, dataY, dataDim, dataZ) {
1159
1159
  let datas = [];
1160
1160
  let colorList = [];
1161
1161
 
1162
+ let sortedIndices = []
1162
1163
  // 将 dataY 转换为带索引的排序数组
1163
- let sortedIndices = dataY[0].map((_, index) => index)
1164
- .sort((a, b) => dataY[0][b] - dataY[0][a]); // 根据 dataX 的值降序排列
1164
+ if (dataY && dataY[0]) {
1165
+ sortedIndices = dataY[0].map((_, index) => index)
1166
+ .sort((a, b) => dataY[0][b] - dataY[0][a]); // 根据 dataX 的值降序排列
1167
+ }
1165
1168
 
1166
1169
  for (let i = 0; i < sortedIndices.length; i++) {
1167
1170
  const index = sortedIndices[i];
@@ -1243,8 +1246,12 @@ export function getECharts(type, dataX, dataY, dataDim, dataZ) {
1243
1246
  let colorList = [];
1244
1247
  let radius = ['40%', '60%']; // 控制饼块粗细的半径范围
1245
1248
  let prevAngle = 0; // 初始角度
1246
- let sortedIndices = dataY[0].map((_, index) => index)
1247
- .sort((a, b) => dataY[0][b] - dataY[0][a]); // 根据dataY的值进行降序排序并获取索引
1249
+ let sortedIndices = []
1250
+ // 将 dataY 转换为带索引的排序数组
1251
+ if (dataY && dataY[0]) {
1252
+ sortedIndices = dataY[0].map((_, index) => index)
1253
+ .sort((a, b) => dataY[0][b] - dataY[0][a]); // 根据dataY的值进行降序排序并获取索引
1254
+ }
1248
1255
 
1249
1256
  for (let i = 0; i < sortedIndices.length; i++) {
1250
1257
  const index = sortedIndices[i];
@@ -1347,12 +1354,14 @@ export function getECharts(type, dataX, dataY, dataDim, dataZ) {
1347
1354
  } else if (type === '33') {
1348
1355
  let data = []
1349
1356
  let sum = 0
1350
- for (let i = 0; i < dataY[0].length; i++) {
1351
- data.push({
1352
- name: dataX[i],
1353
- value: dataY[0][i]
1354
- })
1355
- sum += dataY[0][i]
1357
+ if (dataY && dataY.length > 0) {
1358
+ for (let i = 0; i < dataY[0].length; i++) {
1359
+ data.push({
1360
+ name: dataX[i],
1361
+ value: dataY[0][i]
1362
+ })
1363
+ sum += dataY[0][i]
1364
+ }
1356
1365
  }
1357
1366
  let title33 = ''
1358
1367
  if (dataDim && dataDim.length > 0) {
@@ -1459,7 +1468,7 @@ export function getECharts(type, dataX, dataY, dataDim, dataZ) {
1459
1468
  itemStyle: {
1460
1469
  normal: {
1461
1470
  color: function (params) {
1462
- return lightColors[params.dataIndex]
1471
+ return lightColors[params.dataIndex]
1463
1472
  }
1464
1473
  }
1465
1474
  },
@@ -2097,7 +2106,7 @@ export function getECharts(type, dataX, dataY, dataDim, dataZ) {
2097
2106
  fontSize: 20
2098
2107
  }
2099
2108
  },
2100
- data: dataY[0].map((value, index) => {
2109
+ data: dataY[0] ? dataY[0].map((value, index) => {
2101
2110
  const rank = sortedDataX.indexOf(value) + 1;
2102
2111
  let p;
2103
2112
  if (dataY[0].reduce((a, b) => a + b) === 0) {
@@ -2117,7 +2126,7 @@ export function getECharts(type, dataX, dataY, dataDim, dataZ) {
2117
2126
  showname: dataX[index],
2118
2127
  reaVal: d + '%'
2119
2128
  }
2120
- })
2129
+ }) : []
2121
2130
  },
2122
2131
  ]
2123
2132
  };
@@ -2334,7 +2343,11 @@ export function getECharts(type, dataX, dataY, dataDim, dataZ) {
2334
2343
  });
2335
2344
  }
2336
2345
  }
2337
- const dynamicColors = dataDim.map((_, index) => colors[index % colors.length]);
2346
+
2347
+ let dynamicColors = []
2348
+ if (dataDim) {
2349
+ dynamicColors = dataDim.map((_, index) => colors[index % colors.length])
2350
+ }
2338
2351
  opt = {
2339
2352
  tooltip: {
2340
2353
  trigger: 'axis',
@@ -2446,7 +2459,10 @@ export function getECharts(type, dataX, dataY, dataDim, dataZ) {
2446
2459
 
2447
2460
  }
2448
2461
  }
2449
- const dynamicColors = dataDim.map((_, index) => colors[index % colors.length]);
2462
+ let dynamicColors = []
2463
+ if (dataDim) {
2464
+ dynamicColors = dataDim.map((_, index) => colors[index % colors.length])
2465
+ }
2450
2466
 
2451
2467
  opt = {
2452
2468
  tooltip: {
@@ -2524,20 +2540,25 @@ export function getECharts(type, dataX, dataY, dataDim, dataZ) {
2524
2540
  series: series
2525
2541
  };
2526
2542
  } else if (type === '44') {
2527
- const transData = transpose(dataY);
2528
- const indicators = dataX.map((name, index) => {
2529
- let maxValue = 0;
2530
- for (let i = 0; i < dataY[index].length; i++) {
2531
- if (dataY[index] && dataY[index][i] > maxValue) {
2532
- maxValue = dataY[index][i];
2543
+ const transData = transpose(dataY)
2544
+
2545
+ let indicators = []
2546
+ if (dataX) {
2547
+ indicators = dataX.map((name, index) => {
2548
+ let maxValue = 0
2549
+ for (let i = 0; i < dataY[index].length; i++) {
2550
+ if (dataY[index] && dataY[index][i] > maxValue) {
2551
+ maxValue = dataY[index][i];
2552
+ }
2533
2553
  }
2534
- }
2535
- return {
2536
- name: name,
2537
- max: Math.ceil(maxValue)
2538
- };
2539
- });
2540
- const seriesData = [];
2554
+ return {
2555
+ name: name,
2556
+ max: Math.ceil(maxValue)
2557
+ }
2558
+ })
2559
+ }
2560
+
2561
+ const seriesData = []
2541
2562
  transData.forEach((data, index) => {
2542
2563
  seriesData.push({
2543
2564
  name: dataDim[index],
@@ -2552,7 +2573,7 @@ export function getECharts(type, dataX, dataY, dataDim, dataZ) {
2552
2573
  areaStyle: {
2553
2574
  color: areaColors[index % areaColors.length]
2554
2575
  }
2555
- });
2576
+ })
2556
2577
  });
2557
2578
  opt = {
2558
2579
  legend: {
@@ -3690,7 +3711,7 @@ export function getECharts(type, dataX, dataY, dataDim, dataZ) {
3690
3711
  fontFamily: 'Microsoft YaHei',
3691
3712
  color: '#999',
3692
3713
  fontSize: 10,
3693
- formatter: function(value) {
3714
+ formatter: function (value) {
3694
3715
  return Math.round(value)
3695
3716
  }
3696
3717
  }
@@ -4059,7 +4080,7 @@ export function getECharts(type, dataX, dataY, dataDim, dataZ) {
4059
4080
  show: true,
4060
4081
  position: 'top',
4061
4082
  distance: 5,
4062
- formatter: function(params) {
4083
+ formatter: function (params) {
4063
4084
  return params.value
4064
4085
  },
4065
4086
  fontSize: 11,
@@ -4085,7 +4106,7 @@ export function getECharts(type, dataX, dataY, dataDim, dataZ) {
4085
4106
  label: {
4086
4107
  show: true,
4087
4108
  position: 'right',
4088
- formatter: function() {
4109
+ formatter: function () {
4089
4110
  return sortedValues[i] + ' ' + badge
4090
4111
  },
4091
4112
  fontSize: 11,
@@ -4111,7 +4132,7 @@ export function getECharts(type, dataX, dataY, dataDim, dataZ) {
4111
4132
  },
4112
4133
  tooltip: {
4113
4134
  trigger: 'item',
4114
- formatter: function(params) {
4135
+ formatter: function (params) {
4115
4136
  if (!params) return ''
4116
4137
  let idx = params.dataIndex
4117
4138
  let name = params.name
@@ -4150,7 +4171,7 @@ export function getECharts(type, dataX, dataY, dataDim, dataZ) {
4150
4171
  fontFamily: 'Microsoft YaHei',
4151
4172
  color: '#666',
4152
4173
  fontSize: 12,
4153
- formatter: function(value) {
4174
+ formatter: function (value) {
4154
4175
  return value === selfLabel ? '{highlight|' + value + '}' : value
4155
4176
  },
4156
4177
  rich: {
@@ -4162,7 +4183,6 @@ export function getECharts(type, dataX, dataY, dataDim, dataZ) {
4162
4183
  }
4163
4184
  },
4164
4185
  series: [
4165
- // 我公司高亮背景
4166
4186
  ...(selfIndex >= 0 ? [{
4167
4187
  name: '高亮背景',
4168
4188
  type: 'bar',
@@ -4215,7 +4235,7 @@ export function getECharts(type, dataX, dataY, dataDim, dataZ) {
4215
4235
  label: {
4216
4236
  show: true,
4217
4237
  position: 'end',
4218
- formatter: function() {
4238
+ formatter: function () {
4219
4239
  // 第一名始终在最上面一行 (i=0), 排序方向已保证
4220
4240
  return (i === 0 ? '🥇 ' : '') + sortedValues[i]
4221
4241
  },
@@ -18,7 +18,7 @@
18
18
  @click="scrollTo(item)"
19
19
  >{{ item.text }}</a>
20
20
  <div class="word-nav-publish" v-if="publisher || publishTime">
21
- <div v-if="publisher" class="meta-line">发布人:{{ publisher }}</div>
21
+ <div v-if="publisher" class="meta-line">{{ publisher }}</div>
22
22
  <div v-if="publishTime" class="meta-line">{{ publishTime }}</div>
23
23
  </div>
24
24
  </aside>
@@ -29,7 +29,7 @@
29
29
  <span class="ivu-number-info-total">
30
30
  <slot name="num">{{ num }}</slot>
31
31
  </span>
32
- <span class="ivu-number-info-subTotal" v-if="subNum1 || subNum2">
32
+ <span class="ivu-number-info-subTotal">
33
33
  <slot name="subNum">
34
34
  <template v-if="subNum1">
35
35
  <template v-if="trend1">
@@ -65,7 +65,6 @@
65
65
  </div>
66
66
  </template>
67
67
  <script>
68
- import { oneOf } from 'view-ui-plus/src/utils/assist'
69
68
  import Trend from 'view-ui-plus/src/components/trend'
70
69
  import 'view-ui-plus/dist/styles/viewuiplus.css'
71
70
  import { EVENT_TYPES, EventBus } from '../../bi/widget/util/event-bus'
@@ -88,24 +87,15 @@ export default {
88
87
  type: [String, Number]
89
88
  },
90
89
  trend1: {
91
- validator(value) {
92
- return oneOf(value, ['up', 'down']);
93
- }
94
90
  },
95
91
  polar1: {
96
92
  type: String,
97
- required: false,
98
- validator(value) {
99
- return !value || ['pos', 'neg'].includes(value);
100
- }
93
+ required: false
101
94
  },
102
95
  subNum2: {
103
96
  type: [String, Number]
104
97
  },
105
98
  trend2: {
106
- validator(value) {
107
- return oneOf(value, ['up', 'down']);
108
- }
109
99
  },
110
100
  polar2: {
111
101
  type: String,