Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
zrch-risk-39
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Administrator
zrch-risk-39
Commits
2e773916
提交
2e773916
authored
3月 06, 2026
作者:
liuluyu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
更新领域加载方式
上级
f13ac2e2
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
105 行增加
和
71 行删除
+105
-71
JCascaderDomain.vue
.../components/Form/src/jeecg/components/JCascaderDomain.vue
+0
-0
JTreeSelect.vue
.../src/components/Form/src/jeecg/components/JTreeSelect.vue
+47
-21
JTreeSelectDomain.vue
...omponents/Form/src/jeecg/components/JTreeSelectDomain.vue
+58
-50
没有找到文件。
zrch-risk-client-39/src/components/Form/src/jeecg/components/JCascaderDomain.vue
浏览文件 @
2e773916
差异被折叠。
点击展开。
zrch-risk-client-39/src/components/Form/src/jeecg/components/JTreeSelect.vue
浏览文件 @
2e773916
...
@@ -31,7 +31,6 @@
...
@@ -31,7 +31,6 @@
import
{
defHttp
}
from
'/@/utils/http/axios'
;
import
{
defHttp
}
from
'/@/utils/http/axios'
;
import
{
propTypes
}
from
'/@/utils/propTypes'
;
import
{
propTypes
}
from
'/@/utils/propTypes'
;
import
{
useAttrs
}
from
'/@/hooks/core/useAttrs'
;
import
{
useAttrs
}
from
'/@/hooks/core/useAttrs'
;
import
{
TreeSelect
}
from
'ant-design-vue'
;
import
{
useMessage
}
from
'/@/hooks/web/useMessage'
;
import
{
useMessage
}
from
'/@/hooks/web/useMessage'
;
import
{
isObject
,
isArray
}
from
'/@/utils/is'
;
import
{
isObject
,
isArray
}
from
'/@/utils/is'
;
import
{
useI18n
}
from
'/@/hooks/web/useI18n'
;
import
{
useI18n
}
from
'/@/hooks/web/useI18n'
;
...
@@ -76,6 +75,8 @@
...
@@ -76,6 +75,8 @@
const
text
=
ref
<
any
>
(
''
);
const
text
=
ref
<
any
>
(
''
);
const
code
=
ref
<
any
>
(
''
);
const
code
=
ref
<
any
>
(
''
);
const
show
=
ref
<
boolean
>
(
true
);
const
show
=
ref
<
boolean
>
(
true
);
const
loadingMap
=
new
Map
<
string
,
Promise
<
void
>>
();
const
childrenCache
=
new
Map
<
string
,
any
[]
>
();
/**
/**
* 监听value数据并初始化
* 监听value数据并初始化
*/
*/
...
@@ -203,6 +204,8 @@
...
@@ -203,6 +204,8 @@
tableName
:
unref
(
tableName
),
tableName
:
unref
(
tableName
),
text
:
unref
(
text
),
text
:
unref
(
text
),
code
:
unref
(
code
),
code
:
unref
(
code
),
// 若后端支持一次性返回整棵树,可利用该参数减少请求(不支持会忽略)
loadAll
:
1
,
};
};
let
res
=
await
defHttp
.
get
({
url
:
Api
.
url
,
params
},
{
isTransformResponse
:
false
});
let
res
=
await
defHttp
.
get
({
url
:
Api
.
url
,
params
},
{
isTransformResponse
:
false
});
if
(
res
.
success
&&
res
.
result
)
{
if
(
res
.
success
&&
res
.
result
)
{
...
@@ -234,12 +237,25 @@
...
@@ -234,12 +237,25 @@
*/
*/
async
function
asyncLoadTreeData
(
treeNode
)
{
async
function
asyncLoadTreeData
(
treeNode
)
{
if
(
treeNode
.
dataRef
.
children
)
{
if
(
treeNode
.
dataRef
.
children
)
{
return
Promise
.
resolve
()
;
return
;
}
}
if
(
props
.
url
)
{
if
(
props
.
url
)
{
return
Promise
.
resolve
();
return
;
}
let
pid
=
String
(
treeNode
.
dataRef
.
key
);
if
(
!
pid
)
return
;
const
cached
=
childrenCache
.
get
(
pid
);
if
(
cached
)
{
addChildren
(
pid
,
cached
,
treeData
.
value
);
treeData
.
value
=
[...
treeData
.
value
];
return
;
}
if
(
loadingMap
.
has
(
pid
))
{
await
loadingMap
.
get
(
pid
);
return
;
}
}
let
pid
=
treeNode
.
dataRef
.
key
;
let
params
=
{
let
params
=
{
pid
:
pid
,
pid
:
pid
,
pidField
:
props
.
pidField
,
pidField
:
props
.
pidField
,
...
@@ -250,20 +266,30 @@
...
@@ -250,20 +266,30 @@
text
:
unref
(
text
),
text
:
unref
(
text
),
code
:
unref
(
code
),
code
:
unref
(
code
),
};
};
let
res
=
await
defHttp
.
get
({
url
:
Api
.
url
,
params
},
{
isTransformResponse
:
false
});
const
p
=
(
async
()
=>
{
if
(
res
.
success
)
{
try
{
for
(
let
i
of
res
.
result
)
{
let
res
=
await
defHttp
.
get
({
url
:
Api
.
url
,
params
},
{
isTransformResponse
:
false
});
i
.
title
=
translateTitle
(
i
.
title
);
if
(
res
.
success
)
{
i
.
value
=
i
.
key
;
for
(
let
i
of
res
.
result
)
{
i
.
isLeaf
=
!!
i
.
leaf
;
i
.
title
=
translateTitle
(
i
.
title
);
i
.
value
=
i
.
key
;
i
.
isLeaf
=
!!
i
.
leaf
;
}
// 代码逻辑说明: 【TV360X-87】树表编辑时不可选自己及子孙节点当父节点
handleHiddenNode
(
res
.
result
);
childrenCache
.
set
(
pid
,
res
.
result
);
//添加子节点
addChildren
(
pid
,
res
.
result
,
treeData
.
value
);
treeData
.
value
=
[...
treeData
.
value
];
}
}
finally
{
loadingMap
.
delete
(
pid
);
}
}
// 代码逻辑说明: 【TV360X-87】树表编辑时不可选自己及子孙节点当父节点
})();
handleHiddenNode
(
res
.
result
);
//添加子节点
loadingMap
.
set
(
pid
,
p
);
addChildren
(
pid
,
res
.
result
,
treeData
.
value
);
await
p
;
treeData
.
value
=
[...
treeData
.
value
];
return
;
}
return
Promise
.
resolve
();
}
}
/**
/**
...
@@ -329,9 +355,9 @@
...
@@ -329,9 +355,9 @@
/**
/**
* 校验条件配置是否有误
* 校验条件配置是否有误
*/
*/
function
validateProp
()
{
function
validateProp
()
:
Promise
<
void
>
{
let
mycondition
=
props
.
condition
;
let
mycondition
=
props
.
condition
;
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
<
void
>
((
resolve
,
reject
)
=>
{
if
(
!
mycondition
)
{
if
(
!
mycondition
)
{
resolve
();
resolve
();
}
else
{
}
else
{
...
@@ -341,11 +367,11 @@
...
@@ -341,11 +367,11 @@
resolve
();
resolve
();
}
else
{
}
else
{
createMessage
.
error
(
'组件JTreeSelect-condition传值有误,需要一个json字符串!'
);
createMessage
.
error
(
'组件JTreeSelect-condition传值有误,需要一个json字符串!'
);
reject
();
reject
(
new
Error
(
'invalid condition'
)
);
}
}
}
catch
(
e
)
{
}
catch
(
e
)
{
createMessage
.
error
(
'组件JTreeSelect-condition传值有误,需要一个json字符串!'
);
createMessage
.
error
(
'组件JTreeSelect-condition传值有误,需要一个json字符串!'
);
reject
();
reject
(
e
as
any
);
}
}
}
}
});
});
...
...
zrch-risk-client-39/src/components/Form/src/jeecg/components/JTreeSelectDomain.vue
浏览文件 @
2e773916
...
@@ -9,6 +9,7 @@
...
@@ -9,6 +9,7 @@
:value="treeValue"
:value="treeValue"
:treeData="treeData"
:treeData="treeData"
:multiple="multiple"
:multiple="multiple"
:loadData="asyncLoadTreeData"
v-bind="attrs"
v-bind="attrs"
v-model:searchValue="searchValue"
v-model:searchValue="searchValue"
show-search
show-search
...
@@ -61,6 +62,8 @@
...
@@ -61,6 +62,8 @@
const
tableName
=
ref
<
any
>
(
''
);
const
tableName
=
ref
<
any
>
(
''
);
const
text
=
ref
<
any
>
(
''
);
const
text
=
ref
<
any
>
(
''
);
const
code
=
ref
<
any
>
(
''
);
const
code
=
ref
<
any
>
(
''
);
const
loadingMap
=
new
Map
<
string
,
Promise
<
void
>>
();
const
childrenCache
=
new
Map
<
string
,
any
[]
>
();
/**
/**
* 监听value数据并初始化
* 监听value数据并初始化
*/
*/
...
@@ -149,14 +152,18 @@
...
@@ -149,14 +152,18 @@
tableName
:
unref
(
tableName
),
tableName
:
unref
(
tableName
),
text
:
unref
(
text
),
text
:
unref
(
text
),
code
:
unref
(
code
),
code
:
unref
(
code
),
// 若后端支持一次性返回整棵树,可利用该参数减少请求(不支持会忽略)
loadAll
:
1
,
};
};
let
res
=
await
defHttp
.
get
({
url
:
Api
.
url
,
params
},
{
isTransformResponse
:
false
});
let
res
=
await
defHttp
.
get
({
url
:
Api
.
url
,
params
},
{
isTransformResponse
:
false
});
if
(
res
.
success
&&
res
.
result
)
{
if
(
res
.
success
&&
res
.
result
)
{
for
(
let
i
of
res
.
result
)
{
for
(
let
i
of
res
.
result
)
{
i
.
value
=
i
.
key
;
i
.
value
=
i
.
key
;
if
(
props
.
onlyLevel
!=
'1'
)
{
// onlyLevel=1:仅展示一级,不允许展开
if
(
props
.
onlyLevel
==
'1'
)
{
i
.
isLeaf
=
true
;
}
else
{
i
.
isLeaf
=
!!
i
.
leaf
;
i
.
isLeaf
=
!!
i
.
leaf
;
loadTreeData
(
i
);
}
}
}
}
treeData
.
value
=
[...
res
.
result
];
treeData
.
value
=
[...
res
.
result
];
...
@@ -165,45 +172,35 @@
...
@@ -165,45 +172,35 @@
}
}
}
}
function
loadTreeData
(
treeNode
)
{
if
(
treeNode
.
children
)
{
return
Promise
.
resolve
();
}
let
pid
=
treeNode
.
key
;
let
params
=
{
pid
:
pid
,
pidField
:
props
.
pidField
,
hasChildField
:
props
.
hasChildField
,
converIsLeafVal
:
props
.
converIsLeafVal
,
condition
:
props
.
condition
,
tableName
:
unref
(
tableName
),
text
:
unref
(
text
),
code
:
unref
(
code
),
};
defHttp
.
get
({
url
:
Api
.
url
,
params
},
{
isTransformResponse
:
false
}).
then
((
res
)
=>
{
if
(
res
.
success
)
{
for
(
let
i
of
res
.
result
)
{
i
.
value
=
i
.
key
;
if
(
props
.
onlyLevel
!=
'2'
)
{
i
.
isLeaf
=
!!
i
.
leaf
;
loadTreeData
(
i
);
}
}
//添加子节点
addChildren
(
pid
,
res
.
result
,
treeData
.
value
);
treeData
.
value
=
[...
treeData
.
value
];
}
});
}
/**
/**
* 异步加载数据
* 异步加载数据
*/
*/
async
function
asyncLoadTreeData
(
treeNode
)
{
async
function
asyncLoadTreeData
(
treeNode
)
{
if
(
treeNode
.
dataRef
.
children
)
{
if
(
treeNode
.
dataRef
.
children
)
{
return
Promise
.
resolve
()
;
return
;
}
}
let
pid
=
treeNode
.
dataRef
.
key
;
if
(
props
.
onlyLevel
==
'1'
)
{
treeNode
.
dataRef
.
isLeaf
=
true
;
return
;
}
let
pid
=
String
(
treeNode
.
dataRef
.
key
);
if
(
!
pid
)
return
;
// 命中缓存
const
cached
=
childrenCache
.
get
(
pid
);
if
(
cached
)
{
addChildren
(
pid
,
cached
,
treeData
.
value
);
treeData
.
value
=
[...
treeData
.
value
];
return
;
}
// 并发去重
if
(
loadingMap
.
has
(
pid
))
{
await
loadingMap
.
get
(
pid
);
return
;
}
let
params
=
{
let
params
=
{
pid
:
pid
,
pid
:
pid
,
pidField
:
props
.
pidField
,
pidField
:
props
.
pidField
,
...
@@ -214,17 +211,28 @@
...
@@ -214,17 +211,28 @@
text
:
unref
(
text
),
text
:
unref
(
text
),
code
:
unref
(
code
),
code
:
unref
(
code
),
};
};
let
res
=
await
defHttp
.
get
({
url
:
Api
.
url
,
params
},
{
isTransformResponse
:
false
});
if
(
res
.
success
)
{
const
p
=
(
async
()
=>
{
for
(
let
i
of
res
.
result
)
{
try
{
i
.
value
=
i
.
key
;
let
res
=
await
defHttp
.
get
({
url
:
Api
.
url
,
params
},
{
isTransformResponse
:
false
});
i
.
isLeaf
=
!!
i
.
leaf
;
if
(
res
.
success
)
{
for
(
let
i
of
res
.
result
)
{
i
.
value
=
i
.
key
;
// onlyLevel=2:只展示到第二级,第二级不允许继续展开
i
.
isLeaf
=
props
.
onlyLevel
==
'2'
?
true
:
!!
i
.
leaf
;
}
childrenCache
.
set
(
pid
,
res
.
result
);
addChildren
(
pid
,
res
.
result
,
treeData
.
value
);
treeData
.
value
=
[...
treeData
.
value
];
}
}
finally
{
loadingMap
.
delete
(
pid
);
}
}
//添加子节点
})();
addChildren
(
pid
,
res
.
result
,
treeData
.
value
);
treeData
.
value
=
[...
treeData
.
value
]
;
loadingMap
.
set
(
pid
,
p
)
;
}
await
p
;
return
Promise
.
resolve
()
;
return
;
}
}
/**
/**
...
@@ -275,7 +283,7 @@
...
@@ -275,7 +283,7 @@
/**
/**
* 文本框值变化
* 文本框值变化
*/
*/
function
onSearch
(
val
)
{
function
onSearch
(
_
val
)
{
// if(!!val){
// if(!!val){
// Object.assign(props,{dict:"st_domain,domain_name,domain_code,domain_name like %'+val+'%"})
// Object.assign(props,{dict:"st_domain,domain_name,domain_code,domain_name like %'+val+'%"})
// }
// }
...
@@ -284,9 +292,9 @@
...
@@ -284,9 +292,9 @@
/**
/**
* 校验条件配置是否有误
* 校验条件配置是否有误
*/
*/
function
validateProp
()
{
function
validateProp
()
:
Promise
<
void
>
{
let
mycondition
=
props
.
condition
;
let
mycondition
=
props
.
condition
;
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
<
void
>
((
resolve
,
reject
)
=>
{
if
(
!
mycondition
)
{
if
(
!
mycondition
)
{
resolve
();
resolve
();
}
else
{
}
else
{
...
@@ -296,11 +304,11 @@
...
@@ -296,11 +304,11 @@
resolve
();
resolve
();
}
else
{
}
else
{
createMessage
.
error
(
'组件JTreeSelect-condition传值有误,需要一个json字符串!'
);
createMessage
.
error
(
'组件JTreeSelect-condition传值有误,需要一个json字符串!'
);
reject
();
reject
(
new
Error
(
'invalid condition'
)
);
}
}
}
catch
(
e
)
{
}
catch
(
e
)
{
createMessage
.
error
(
'组件JTreeSelect-condition传值有误,需要一个json字符串!'
);
createMessage
.
error
(
'组件JTreeSelect-condition传值有误,需要一个json字符串!'
);
reject
();
reject
(
e
as
any
);
}
}
}
}
});
});
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论