@netang/quasar 0.1.37 → 0.1.39

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.
@@ -86,11 +86,23 @@
86
86
  :ticked="item.m.indeterminate === true ? null : item.m.ticked"
87
87
  :key="item.key"
88
88
  :dark="isDark"
89
- v-if="hasSlotDefault"
89
+ v-if="hasSlots.defaultHeader"
90
90
  />
91
91
  <!-- 否则为文字 -->
92
92
  <span v-else>{{ item.label }}</span>
93
93
  </div>
94
+
95
+ <!-- 节点插槽 -->
96
+ <slot
97
+ name="node"
98
+ :node="item.node"
99
+ :expanded="item.m.expanded"
100
+ :ticked="item.m.indeterminate === true ? null : item.m.ticked"
101
+ :key="item.key"
102
+ :dark="isDark"
103
+ v-if="hasSlots.node"
104
+ />
105
+
94
106
  </div>
95
107
  </q-virtual-scroll>
96
108
  </template>
@@ -183,6 +195,9 @@ export default {
183
195
 
184
196
  // 【覆盖声明】-------------------------------------------------------
185
197
 
198
+ // 是否选择的是树节点数据(false:节点键值, true:节点数据)
199
+ selectedNode: Boolean,
200
+
186
201
  // 是否开启拖拽
187
202
  draggable: Boolean,
188
203
  // 是否禁止上下推拽
@@ -303,6 +318,13 @@ export default {
303
318
  */
304
319
  const computedControlColor = computed(() => props.controlColor || props.color)
305
320
 
321
+ /**
322
+ * 当前已选数据键值
323
+ */
324
+ const currentSelectedKey = computed(function () {
325
+ return props.selectedNode ? props.selected[props.nodeKey] : props.selected
326
+ })
327
+
306
328
  /**
307
329
  * 文本颜色类名
308
330
  */
@@ -374,7 +396,7 @@ export default {
374
396
  children: [],
375
397
  matchesFilter: props.filter ? computedFilterMethod.value(node, props.filter) : true,
376
398
 
377
- selected: key === props.selected && selectable === true,
399
+ selected: key === currentSelectedKey.value && selectable === true,
378
400
  selectable,
379
401
  expanded: isParent === true ? innerExpanded.value.includes(key) : false,
380
402
  expandable,
@@ -879,10 +901,14 @@ export default {
879
901
  if (hasSelection.value && meta.selectable) {
880
902
 
881
903
  if (props.noSelectionUnset === false) {
882
- emit('update:selected', meta.key !== props.selected ? meta.key : null)
883
-
884
- } else if (meta.key !== props.selected) {
885
- emit('update:selected', meta.key === void 0 ? null : meta.key)
904
+ emit('update:selected', meta.key !== currentSelectedKey.value ? (
905
+ props.selectedNode ? node : meta.key
906
+ ) : null)
907
+
908
+ } else if (meta.key !== currentSelectedKey.value) {
909
+ emit('update:selected', meta.key === void 0 ? null : (
910
+ props.selectedNode ? node : meta.key
911
+ ))
886
912
  }
887
913
 
888
914
  } else {
@@ -1063,10 +1089,13 @@ export default {
1063
1089
  // ==========【覆盖部分】=========================================================================================
1064
1090
 
1065
1091
  /**
1066
- * 是否有默认头部插槽
1092
+ * 是否有默认插槽
1067
1093
  */
1068
- const hasSlotDefault = computed(function () {
1069
- return $n_has(slots, 'default-header')
1094
+ const hasSlots = computed(function () {
1095
+ return {
1096
+ defaultHeader: $n_has(slots, 'default-header'),
1097
+ node: $n_has(slots, 'node'),
1098
+ }
1070
1099
  })
1071
1100
 
1072
1101
  /**
@@ -1508,7 +1537,7 @@ export default {
1508
1537
  collapseAll,
1509
1538
  stopAndPrevent,
1510
1539
 
1511
- hasSlotDefault,
1540
+ hasSlots,
1512
1541
  currentChildren,
1513
1542
 
1514
1543
  onNode,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@netang/quasar",
3
- "version": "0.1.37",
3
+ "version": "0.1.39",
4
4
  "description": "netang-quasar",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"