vue2server7 7.0.52 → 7.0.54
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.
|
@@ -52,6 +52,13 @@
|
|
|
52
52
|
>
|
|
53
53
|
<template #default="{ node, data }">
|
|
54
54
|
<span class="org-tree-select__node">
|
|
55
|
+
<el-radio
|
|
56
|
+
v-if="!multiple"
|
|
57
|
+
:label="data.id"
|
|
58
|
+
v-model="selectedValue"
|
|
59
|
+
class="org-tree-select__radio"
|
|
60
|
+
@click.stop
|
|
61
|
+
/>
|
|
55
62
|
<el-icon v-if="data.icon" class="org-tree-select__node-icon">
|
|
56
63
|
<component :is="data.icon" />
|
|
57
64
|
</el-icon>
|
|
@@ -279,19 +286,23 @@ function onDialogOpened(): void {
|
|
|
279
286
|
if (props.multiple) {
|
|
280
287
|
const keys = Array.isArray(selectedValue.value) ? selectedValue.value : []
|
|
281
288
|
treeRef.value.setCheckedKeys(keys as (string | number)[])
|
|
282
|
-
} else
|
|
283
|
-
|
|
289
|
+
} else {
|
|
290
|
+
// 单选时,同步 selectedValue 为当前选中的 ID
|
|
291
|
+
const currentNode = treeRef.value?.getCurrentNode() as OrgTreeNode | null
|
|
292
|
+
if (currentNode) {
|
|
293
|
+
selectedValue.value = currentNode.id
|
|
294
|
+
}
|
|
284
295
|
}
|
|
285
296
|
})
|
|
286
297
|
}
|
|
287
298
|
|
|
288
299
|
/**
|
|
289
|
-
*
|
|
300
|
+
* 节点点击事件(多选模式,单选由 el-radio v-model 处理)
|
|
290
301
|
* @param data - 点击的节点数据
|
|
291
302
|
*/
|
|
292
303
|
function onNodeClick(data: OrgTreeNode): void {
|
|
293
304
|
if (props.multiple) return
|
|
294
|
-
|
|
305
|
+
// 单选时选中节点由 el-radio v-model 处理,这里同步 selectedNodes 用于确认后返回
|
|
295
306
|
selectedNodes.value = [data]
|
|
296
307
|
}
|
|
297
308
|
|
|
@@ -319,12 +330,10 @@ function onConfirm(): void {
|
|
|
319
330
|
emit('update:modelValue', keys)
|
|
320
331
|
emit('change', keys, checkedNodes)
|
|
321
332
|
} else {
|
|
322
|
-
|
|
323
|
-
if (
|
|
324
|
-
selectedValue.value
|
|
325
|
-
selectedNodes.value
|
|
326
|
-
emit('update:modelValue', currentNode.id)
|
|
327
|
-
emit('change', currentNode.id, currentNode)
|
|
333
|
+
// selectedValue 现在直接是选中的 ID
|
|
334
|
+
if (selectedValue.value !== null && selectedValue.value !== undefined) {
|
|
335
|
+
emit('update:modelValue', selectedValue.value)
|
|
336
|
+
emit('change', selectedValue.value, selectedNodes.value[0])
|
|
328
337
|
}
|
|
329
338
|
}
|
|
330
339
|
dialogVisible.value = false
|
|
@@ -420,6 +429,15 @@ defineExpose<OrgTreeSelectExpose>({
|
|
|
420
429
|
gap: 4px;
|
|
421
430
|
}
|
|
422
431
|
|
|
432
|
+
.org-tree-select__radio {
|
|
433
|
+
margin-right: 4px;
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
.org-tree-select__radio :deep(.el-radio__inner) {
|
|
437
|
+
width: 14px;
|
|
438
|
+
height: 14px;
|
|
439
|
+
}
|
|
440
|
+
|
|
423
441
|
.org-tree-select__node-icon {
|
|
424
442
|
color: var(--el-color-primary);
|
|
425
443
|
font-size: 16px;
|
package/package.json
CHANGED
|
Binary file
|