11<template >
2- <el-form-item >
2+ <el-form-item
3+ prop =" treeData"
4+ :rules =" [
5+ {
6+ message: $t('dynamicsForm.TreeSelect.selectRequired'),
7+ blur: 'change',
8+ type: 'array',
9+ min: 1,
10+ },
11+ ]"
12+ >
313 <template #label >
414 <div class =" flex-between" >
515 <span >
2131 </template >
2232 <el-card shadow =" never" class =" border-r-6 w-full" style =" --el-card-padding : 8px " >
2333 <el-tree
24- :data =" treeData"
34+ :data =" formValue. treeData"
2535 node-key =" id"
2636 default-expand-all
2737 :expand-on-click-node =" false"
7585 >
7686 <el-tree-select
7787 v-model =" formValue.default_value"
78- :data =" treeData"
88+ :data =" formValue. treeData"
7989 :multiple =" formValue.multiple"
8090 :render-after-expand =" false"
8191 style =" width : 100% "
194204 </el-dialog >
195205</template >
196206<script setup lang="ts">
197- import { computed , onMounted , watch , ref , reactive } from ' vue'
207+ import { computed , onMounted , reactive } from ' vue'
198208import { t } from ' @/locales/'
199209
200210import { ElMessage , ElMessageBox } from ' element-plus'
@@ -214,15 +224,15 @@ const formValue = computed({
214224const getData = () => {
215225 return {
216226 input_type: ' TreeSelect' ,
217- attrs: { multiple: formValue .value .multiple , data: treeData .value },
227+ attrs: { multiple: formValue .value .multiple , data: formValue .value . treeData , filterable: true },
218228 default_value: formValue .value .default_value ,
219229 show_default_value: formValue .value .show_default_value ,
220230 }
221231}
222232const rander = (form_data : any ) => {
223233 const attrs = form_data .attrs || {}
224234 formValue .value .multiple = attrs .multiple
225- treeData .value = attrs .data || []
235+ formValue .value . treeData = attrs .data || []
226236 formValue .value .default_value = form_data .default_value
227237 formValue .value .show_default_value = form_data .show_default_value
228238}
@@ -255,8 +265,6 @@ const treeProps = {
255265 label: ' label' ,
256266}
257267
258- const treeData = ref <TreeNode []>([])
259-
260268const addDialog = reactive <{
261269 visible: boolean
262270 mode: AddMode
@@ -349,7 +357,7 @@ function submitAdd() {
349357 }))
350358
351359 if (addDialog .mode === ' root' ) {
352- treeData .value .push (... newNodes )
360+ formValue .value . treeData .push (... newNodes )
353361 } else {
354362 const parent = addDialog .parentNode
355363 if (! parent ) {
@@ -411,7 +419,7 @@ function handleDelete(node: TreeNode) {
411419 type: ' warning' ,
412420 })
413421 .then (() => {
414- const removed = removeNodeById (treeData .value , node .id )
422+ const removed = removeNodeById (formValue .value . treeData , node .id )
415423 if (removed ) {
416424 ElMessage .success (t (' common.deleteSuccess' ))
417425 } else {
0 commit comments