Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
admin
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
c77526e8
authored
May 01, 2024
by
puhui999
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
form-create: 封装通用选择器 hook
parent
1434d7dd
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
50 additions
and
57 deletions
+50
-57
src/components/FormCreate/src/components/useCurrencySelect.tsx
+23
-23
src/components/FormCreate/src/useFormCreateDesigner.ts
+27
-34
No files found.
src/components/FormCreate/src/components/useCurrencySelect.tsx
View file @
c77526e8
...
...
@@ -37,6 +37,11 @@ export const useCurrencySelect = (option: CurrencySelectProps) => {
type
:
String
,
default
:
'select'
}
// // 是否多选
// multiple: {
// type: Boolean,
// default: false
// }
},
setup
(
props
)
{
const
attrs
=
useAttrs
()
...
...
@@ -79,15 +84,14 @@ export const useCurrencySelect = (option: CurrencySelectProps) => {
onMounted
(
async
()
=>
{
await
getOptions
()
})
// TODO puhui999: 单下拉多选的时候页面会卡住报错,下次解决
const
buildSelect
=
()
=>
{
return
(
<>
<
el
-
select
class=
"w-1/1"
{
...
attrs
}
>
{
options
.
value
.
map
((
item
,
index
)
=>
(
<
el
-
option
key=
{
index
}
label=
{
item
.
label
}
value=
{
item
.
value
}
/>
))
}
</
el
-
select
>
</>
<
el
-
select
class=
"w-1/1"
{
...
attrs
}
>
{
options
.
value
.
map
((
item
,
index
)
=>
(
<
el
-
option
key=
{
index
}
label=
{
item
.
label
}
value=
{
item
.
value
}
/>
))
}
</
el
-
select
>
)
}
const
buildCheckbox
=
()
=>
{
...
...
@@ -98,13 +102,11 @@ export const useCurrencySelect = (option: CurrencySelectProps) => {
]
}
return
(
<>
<
el
-
checkbox
-
group
class=
"w-1/1"
{
...
attrs
}
>
{
options
.
value
.
map
((
item
,
index
)
=>
(
<
el
-
checkbox
key=
{
index
}
label=
{
item
.
label
}
value=
{
item
.
value
}
/>
))
}
</
el
-
checkbox
-
group
>
</>
<
el
-
checkbox
-
group
class=
"w-1/1"
{
...
attrs
}
>
{
options
.
value
.
map
((
item
,
index
)
=>
(
<
el
-
checkbox
key=
{
index
}
label=
{
item
.
label
}
value=
{
item
.
value
}
/>
))
}
</
el
-
checkbox
-
group
>
)
}
const
buildRadio
=
()
=>
{
...
...
@@ -115,15 +117,13 @@ export const useCurrencySelect = (option: CurrencySelectProps) => {
]
}
return
(
<>
<
el
-
radio
-
group
class=
"w-1/1"
{
...
attrs
}
>
{
options
.
value
.
map
((
item
,
index
)
=>
(
<
el
-
radio
key=
{
index
}
value=
{
item
.
value
}
>
{
item
.
label
}
</
el
-
radio
>
))
}
</
el
-
radio
-
group
>
</>
<
el
-
radio
-
group
class=
"w-1/1"
{
...
attrs
}
>
{
options
.
value
.
map
((
item
,
index
)
=>
(
<
el
-
radio
key=
{
index
}
value=
{
item
.
value
}
>
{
item
.
label
}
</
el
-
radio
>
))
}
</
el
-
radio
-
group
>
)
}
return
()
=>
(
...
...
src/components/FormCreate/src/useFormCreateDesigner.ts
View file @
c77526e8
...
...
@@ -25,6 +25,30 @@ export const useFormCreateDesigner = async (designer: Ref) => {
const
uploadFileRule
=
useUploadFileRule
()
const
uploadImgRule
=
useUploadImgRule
()
const
uploadImgsRule
=
useUploadImgsRule
()
/**
* 构建表单组件
*/
const
buildFormComponents
=
()
=>
{
// 移除自带的上传组件规则,使用 uploadFileRule、uploadImgRule、uploadImgsRule 替代
designer
.
value
?.
removeMenuItem
(
'upload'
)
// 移除自带的富文本组件规则,使用 editorRule 替代
designer
.
value
?.
removeMenuItem
(
'fc-editor'
)
const
components
=
[
editorRule
,
uploadFileRule
,
uploadImgRule
,
uploadImgsRule
]
components
.
forEach
((
component
)
=>
{
// 插入组件规则
designer
.
value
?.
addComponent
(
component
)
// 插入拖拽按钮到 `main` 分类下
designer
.
value
?.
appendMenuItem
(
'main'
,
{
icon
:
component
.
icon
,
name
:
component
.
name
,
label
:
component
.
label
})
})
}
const
userSelectRule
=
useSelectRule
({
name
:
'UserSelect'
,
label
:
'用户选择器'
})
const
deptSelectRule
=
useSelectRule
({
name
:
'DeptSelect'
,
label
:
'部门选择器'
})
const
dictSelectRule
=
useDictSelectRule
()
const
restfulSelectRule
=
useSelectRule
({
name
:
'RestfulSelect'
,
...
...
@@ -56,46 +80,15 @@ export const useFormCreateDesigner = async (designer: Ref) => {
}
]
})
/**
* 构建
表单组件
* 构建
系统字段菜单
*/
const
buildFormComponents
=
()
=>
{
// 移除自带的上传组件规则,使用 uploadFileRule、uploadImgRule、uploadImgsRule 替代
designer
.
value
?.
removeMenuItem
(
'upload'
)
// 移除自带的富文本组件规则,使用 editorRule 替代
designer
.
value
?.
removeMenuItem
(
'fc-editor'
)
const
buildSystemMenu
=
()
=>
{
// 移除自带的下拉选择器组件,使用 currencySelectRule 替代
designer
.
value
?.
removeMenuItem
(
'select'
)
designer
.
value
?.
removeMenuItem
(
'radio'
)
designer
.
value
?.
removeMenuItem
(
'checkbox'
)
const
components
=
[
editorRule
,
uploadFileRule
,
uploadImgRule
,
uploadImgsRule
,
dictSelectRule
,
restfulSelectRule
]
components
.
forEach
((
component
)
=>
{
// 插入组件规则
designer
.
value
?.
addComponent
(
component
)
// 插入拖拽按钮到 `main` 分类下
designer
.
value
?.
appendMenuItem
(
'main'
,
{
icon
:
component
.
icon
,
name
:
component
.
name
,
label
:
component
.
label
})
})
}
const
userSelectRule
=
useSelectRule
({
name
:
'UserSelect'
,
label
:
'用户选择器'
})
const
deptSelectRule
=
useSelectRule
({
name
:
'DeptSelect'
,
label
:
'部门选择器'
})
/**
* 构建系统字段菜单
*/
const
buildSystemMenu
=
()
=>
{
const
components
=
[
userSelectRule
,
deptSelectRule
]
const
components
=
[
userSelectRule
,
deptSelectRule
,
dictSelectRule
,
restfulSelectRule
]
const
menu
:
Menu
=
{
name
:
'system'
,
title
:
'系统字段'
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment