bri-components 1.6.17 → 1.6.19

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.
Files changed (31) hide show
  1. package/package.json +7 -2
  2. package/src/components/controls/base/DshCascader/components/cascaderPicker.vue +122 -2
  3. package/src/components/controls/base/DshCoordinates.vue +510 -328
  4. package/src/components/controls/base/DshDivider.vue +20 -16
  5. package/src/components/controls/base/DshNumber/BriInputNumber/BriInputNumber.vue +2 -2
  6. package/src/components/controls/base/mark_bs.png +0 -0
  7. package/src/components/controls/mixins/cascaderTableMixin.js +10 -2
  8. package/src/components/controls/mixins/flatTableMixin.js +9 -1
  9. package/src/components/controls/senior/cascaderTable.vue +6 -0
  10. package/src/components/controls/senior/flatTable.vue +3 -0
  11. package/src/components/list/BriTable.vue +1 -1
  12. package/src/components/list/DshBox/DshSingleData.vue +2 -2
  13. package/src/components/list/DshBox/DshTable.vue +4 -4
  14. package/src/components/list/mixins/DshCascaderTableMixin.js +1 -1
  15. package/src/components/list/mixins/DshFlatTableMixin.js +1 -1
  16. package/src/components/list/mixins/DshTreeTableMixin.js +1 -1
  17. package/src/components/list/mixins/tableBaseMixin.js +57 -7
  18. package/src/styles/iconfont/iconfont.js +1 -1
  19. package/lib/0.bri-components.min.js +0 -1
  20. package/lib/1.bri-components.min.js +0 -1
  21. package/lib/10.bri-components.min.js +0 -1
  22. package/lib/11.bri-components.min.js +0 -1
  23. package/lib/2.bri-components.min.js +0 -1
  24. package/lib/3.bri-components.min.js +0 -1
  25. package/lib/4.bri-components.min.js +0 -1
  26. package/lib/5.bri-components.min.js +0 -1
  27. package/lib/6.bri-components.min.js +0 -1
  28. package/lib/7.bri-components.min.js +0 -1
  29. package/lib/8.bri-components.min.js +0 -1
  30. package/lib/9.bri-components.min.js +0 -1
  31. package/lib/bri-components.min.js +0 -59
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bri-components",
3
- "version": "1.6.17",
3
+ "version": "1.6.19",
4
4
  "author": "dengshanghui",
5
5
  "description": "a component lib for vue project",
6
6
  "main": "src/index.js",
@@ -30,11 +30,16 @@
30
30
  "lib:prod": "webpack --config build/webpack.lib.prod.config.js"
31
31
  },
32
32
  "dependencies": {
33
+ "@turf/turf": "^7.4.0",
33
34
  "ali-oss": "^6.13.1",
34
35
  "axios": "^0.23.0",
35
- "bri-datas": "^1.5.4",
36
+ "bri-datas": "^1.5.22",
36
37
  "jshint": "^2.12.0",
37
38
  "jsonlint": "^1.6.3",
39
+ "leaflet": "^1.9.4",
40
+ "mars2d": "^3.4.2",
41
+ "mars3d": "^3.11.5",
42
+ "mars3d-cesium": "^1.143.0",
38
43
  "minio": "7.1.0",
39
44
  "stream": "^0.0.2",
40
45
  "video.js": "^8.23.3",
@@ -87,7 +87,10 @@
87
87
  <!-- 内容 -->
88
88
  <div class="wrap-content">
89
89
  <!-- 选中项tabs -->
90
- <div class="wrap-content-tabs">
90
+ <div
91
+ v-if="!isCheckboxMode"
92
+ class="wrap-content-tabs"
93
+ >
91
94
  <span
92
95
  v-for="(tabItem, tabIndex) in selectedLinealDatas"
93
96
  :key="tabIndex"
@@ -111,8 +114,46 @@
111
114
  v-if="showTreeData.length"
112
115
  class="wrap-content-list-menu"
113
116
  >
117
+ <!-- 多选框方式(multipleMode 且 _cascaderLevel === 1) -->
118
+ <template v-if="isCheckboxMode">
119
+ <!-- 全选 -->
120
+ <div
121
+ class="item item-select-all"
122
+ @click="clickSelectAll"
123
+ >
124
+ <span class="item-checkbox">
125
+ <Checkbox
126
+ :value="isAllSelected"
127
+ :indeterminate="isIndeterminate"
128
+ ></Checkbox>
129
+ </span>
130
+ <span class="item-name">全选</span>
131
+ </div>
132
+
133
+ <div
134
+ v-for="nodeItem in showTreeData"
135
+ :key="nodeItem[valueKey]"
136
+ :class="{
137
+ 'item': true,
138
+ 'item-active': isNodeChecked(nodeItem),
139
+ 'item-disabled': nodeItem.disabled
140
+ }"
141
+ @click="clickCheckboxItem(nodeItem)"
142
+ >
143
+ <span class="item-checkbox">
144
+ <Checkbox
145
+ :value="isNodeChecked(nodeItem)"
146
+ :disabled="nodeItem.disabled"
147
+ ></Checkbox>
148
+ </span>
149
+ <span class="item-name">
150
+ {{ nodeItem[nameKey] }}
151
+ </span>
152
+ </div>
153
+ </template>
154
+
114
155
  <!-- 拍平方式 -->
115
- <template v-if="useFlatMode">
156
+ <template v-else-if="useFlatMode">
116
157
  <div
117
158
  v-for="nodeItem in showFlatData"
118
159
  :key="nodeItem[valueKey]"
@@ -196,6 +237,22 @@
196
237
  };
197
238
  },
198
239
  computed: {
240
+ isCheckboxMode () {
241
+ return this.multipleMode && this.selfPropsObj._cascaderLevel === "1";
242
+ },
243
+ isAllSelected () {
244
+ return this.showTreeData.length > 0 &&
245
+ this.showTreeData.every(node => this.selectedValueArr.some(
246
+ val => JSON.stringify(val) === JSON.stringify(node.keys)
247
+ ));
248
+ },
249
+ isIndeterminate () {
250
+ const checkedCount = this.showTreeData.filter(node =>
251
+ this.selectedValueArr.some(val => JSON.stringify(val) === JSON.stringify(node.keys))
252
+ ).length;
253
+ return checkedCount > 0 && checkedCount < this.showTreeData.length;
254
+ },
255
+
199
256
  selectedLinealDatas () {
200
257
  const arr = this.selectedOptions.map((item, index, list) => {
201
258
  return {
@@ -269,6 +326,56 @@
269
326
  if (this.searchMode === "default" && node.children.length) {
270
327
  this.curTabIndex = this.curTabIndex + 1;
271
328
  }
329
+ },
330
+
331
+ isNodeChecked (node) {
332
+ return this.selectedValueArr.some(val => JSON.stringify(val) === JSON.stringify(node.keys));
333
+ },
334
+ clickCheckboxItem (node) {
335
+ if (node.disabled) return;
336
+ const index = this.selectedValueArr.findIndex(val => JSON.stringify(val) === JSON.stringify(node.keys));
337
+ if (index === -1) {
338
+ this.selectedValueArr = [...this.selectedValueArr, node.keys];
339
+ } else {
340
+ this.selectedValueArr = this.selectedValueArr.filter((_, i) => i !== index);
341
+ }
342
+ },
343
+ clickSelectAll () {
344
+ if (this.isAllSelected) {
345
+ this.selectedValueArr = [];
346
+ } else {
347
+ this.selectedValueArr = this.showTreeData
348
+ .filter(node => !node.disabled)
349
+ .map(node => node.keys);
350
+ }
351
+ },
352
+ clickConfirm () {
353
+ if (this.isCheckboxMode) {
354
+ if (this.selectedValueArr.length) {
355
+ this.$emit("confirmMul", this.selectedValueArr, this.selectedOptionsArr);
356
+ } else {
357
+ this.$Message.error({
358
+ content: "请选择数据!",
359
+ duration: 2
360
+ });
361
+ }
362
+ } else {
363
+ if (this.selectedValue.length && this.selectedOptions.length) {
364
+ if (!this.changeOnSelect && !this.selectedObj.isLeaf) {
365
+ this.$Message.error({
366
+ content: "请选择到末级数据!",
367
+ duration: 2
368
+ });
369
+ } else {
370
+ this.$emit("confirm", this.selectedValue, this.selectedOptions);
371
+ }
372
+ } else {
373
+ this.$Message.error({
374
+ content: "请选择数据!",
375
+ duration: 2
376
+ });
377
+ }
378
+ }
272
379
  }
273
380
  }
274
381
  };
@@ -375,6 +482,13 @@
375
482
  justify-content: space-between;
376
483
  align-items: center;
377
484
 
485
+ &-checkbox {
486
+ margin-right: 5px;
487
+ display: flex;
488
+ align-items: center;
489
+ flex-shrink: 0;
490
+ }
491
+
378
492
  &-name {
379
493
  flex: 1;
380
494
  min-width: 0px;
@@ -402,6 +516,12 @@
402
516
  color: @textColor-disabled;
403
517
  }
404
518
  }
519
+
520
+ &-select-all {
521
+ border-bottom: 1px solid @borderColor;
522
+ margin-bottom: 4px;
523
+ font-weight: 500;
524
+ }
405
525
  }
406
526
  }
407
527