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
769b63d9
authored
Apr 30, 2024
by
puhui999
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
form-create:移除自带的下拉选择器组件,使用 currencySelectRule 替代
parent
00762362
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
81 additions
and
42 deletions
+81
-42
src/components/FormCreate/index.ts
+2
-1
src/components/FormCreate/src/CurrencySelect/index.vue
+53
-0
src/components/FormCreate/src/config/index.ts
+2
-2
src/components/FormCreate/src/config/useCurrencySelectRule.ts
+16
-5
src/components/FormCreate/src/useFormCreateDesigner.ts
+6
-4
src/plugins/formCreate/index.ts
+2
-2
src/views/system/user/components/UserSelect.vue
+0
-28
No files found.
src/components/FormCreate/index.ts
View file @
769b63d9
import
{
useFormCreateDesigner
}
from
'./src/useFormCreateDesigner'
import
{
useFormCreateDesigner
}
from
'./src/useFormCreateDesigner'
import
CurrencySelect
from
'./src/CurrencySelect/index.vue'
export
{
useFormCreateDesigner
}
export
{
useFormCreateDesigner
,
CurrencySelect
}
src/components/FormCreate/src/CurrencySelect/index.vue
0 → 100644
View file @
769b63d9
<
template
>
<el-select
class=
"w-1/1"
v-bind=
"attrs"
>
<el-option
v-for=
"(item, index) in options"
:key=
"index"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
</
template
>
<
script
lang=
"ts"
setup
>
import
request
from
'@/config/axios'
import
{
isEmpty
}
from
'@/utils/is'
defineOptions
({
name
:
'CurrencySelect'
})
// 接受父组件参数
interface
Props
{
labelField
?:
string
// 字典类型
valueField
?:
string
// 字典值类型
restful
?:
string
// api 接口
}
const
props
=
withDefaults
(
defineProps
<
Props
>
(),
{
labelField
:
'nickname'
,
valueField
:
'id'
,
restful
:
'/system/user/simple-list'
})
const
attrs
=
useAttrs
()
const
options
=
ref
<
any
[]
>
([])
// 下拉数据
const
getOptions
=
async
()
=>
{
options
.
value
=
[]
if
(
isEmpty
(
props
.
restful
))
{
return
}
// TODO 只支持 GET 查询,复杂下拉构建条件请使用业务表单
const
data
=
await
request
.
get
({
url
:
props
.
restful
})
if
(
Array
.
isArray
(
data
))
{
options
.
value
=
data
.
map
((
item
:
any
)
=>
({
label
:
item
[
props
.
labelField
],
value
:
item
[
props
.
valueField
]
}))
return
}
console
.
log
(
`接口[
${
props
.
restful
}
] 返回结果不是一个数组`
)
}
onMounted
(()
=>
{
getOptions
()
})
</
script
>
src/components/FormCreate/src/config/index.ts
View file @
769b63d9
...
@@ -2,7 +2,7 @@ import { useUploadFileRule } from './useUploadFileRule'
...
@@ -2,7 +2,7 @@ import { useUploadFileRule } from './useUploadFileRule'
import
{
useUploadImgRule
}
from
'./useUploadImgRule'
import
{
useUploadImgRule
}
from
'./useUploadImgRule'
import
{
useUploadImgsRule
}
from
'./useUploadImgsRule'
import
{
useUploadImgsRule
}
from
'./useUploadImgsRule'
import
{
useDictSelectRule
}
from
'./useDictSelectRule'
import
{
useDictSelectRule
}
from
'./useDictSelectRule'
import
{
use
UserSelectRule
}
from
'./useUser
SelectRule'
import
{
use
CurrencySelectRule
}
from
'./useCurrency
SelectRule'
import
{
useEditorRule
}
from
'./useEditorRule'
import
{
useEditorRule
}
from
'./useEditorRule'
export
{
export
{
...
@@ -10,6 +10,6 @@ export {
...
@@ -10,6 +10,6 @@ export {
useUploadImgRule
,
useUploadImgRule
,
useUploadImgsRule
,
useUploadImgsRule
,
useDictSelectRule
,
useDictSelectRule
,
use
User
SelectRule
,
use
Currency
SelectRule
,
useEditorRule
useEditorRule
}
}
src/components/FormCreate/src/config/use
User
SelectRule.ts
→
src/components/FormCreate/src/config/use
Currency
SelectRule.ts
View file @
769b63d9
...
@@ -2,9 +2,9 @@ import { generateUUID } from '@/utils'
...
@@ -2,9 +2,9 @@ import { generateUUID } from '@/utils'
import
{
localeProps
,
makeRequiredRule
}
from
'@/components/FormCreate/src/utils'
import
{
localeProps
,
makeRequiredRule
}
from
'@/components/FormCreate/src/utils'
import
selectRule
from
'@/components/FormCreate/src/config/selectRule'
import
selectRule
from
'@/components/FormCreate/src/config/selectRule'
export
const
use
User
SelectRule
=
()
=>
{
export
const
use
Currency
SelectRule
=
()
=>
{
const
label
=
'
用户
选择器'
const
label
=
'
通用
选择器'
const
name
=
'
User
Select'
const
name
=
'
Currency
Select'
return
{
return
{
icon
:
'icon-select'
,
icon
:
'icon-select'
,
label
,
label
,
...
@@ -14,12 +14,23 @@ export const useUserSelectRule = () => {
...
@@ -14,12 +14,23 @@ export const useUserSelectRule = () => {
type
:
name
,
type
:
name
,
field
:
generateUUID
(),
field
:
generateUUID
(),
title
:
label
,
title
:
label
,
info
:
''
,
info
:
'
下面以获得系统用户下拉数据为例,您可以自行按需更改
'
,
$required
:
false
$required
:
false
}
}
},
},
props
(
_
,
{
t
})
{
props
(
_
,
{
t
})
{
return
localeProps
(
t
,
name
+
'.props'
,
[
makeRequiredRule
(),
...
selectRule
])
return
localeProps
(
t
,
name
+
'.props'
,
[
makeRequiredRule
(),
{
type
:
'input'
,
field
:
'restful'
,
title
:
'restful api 接口'
,
value
:
'/system/user/simple-list'
},
{
type
:
'input'
,
field
:
'labelField'
,
title
:
'label 属性'
,
value
:
'nickname'
},
{
type
:
'input'
,
field
:
'valueField'
,
title
:
'value 属性'
,
value
:
'id'
},
...
selectRule
])
}
}
}
}
}
}
src/components/FormCreate/src/useFormCreateDesigner.ts
View file @
769b63d9
import
{
import
{
useCurrencySelectRule
,
useDictSelectRule
,
useDictSelectRule
,
useEditorRule
,
useEditorRule
,
useUploadFileRule
,
useUploadFileRule
,
useUploadImgRule
,
useUploadImgRule
,
useUploadImgsRule
,
useUploadImgsRule
useUserSelectRule
}
from
'./config'
}
from
'./config'
import
{
Ref
}
from
'vue'
import
{
Ref
}
from
'vue'
...
@@ -24,20 +24,22 @@ export const useFormCreateDesigner = (designer: Ref) => {
...
@@ -24,20 +24,22 @@ export const useFormCreateDesigner = (designer: Ref) => {
const
uploadImgRule
=
useUploadImgRule
()
const
uploadImgRule
=
useUploadImgRule
()
const
uploadImgsRule
=
useUploadImgsRule
()
const
uploadImgsRule
=
useUploadImgsRule
()
const
dictSelectRule
=
useDictSelectRule
()
const
dictSelectRule
=
useDictSelectRule
()
const
userSelectRule
=
useUser
SelectRule
()
const
currencySelectRule
=
useCurrency
SelectRule
()
onMounted
(()
=>
{
onMounted
(()
=>
{
// 移除自带的上传组件规则,使用 uploadFileRule、uploadImgRule、uploadImgsRule 替代
// 移除自带的上传组件规则,使用 uploadFileRule、uploadImgRule、uploadImgsRule 替代
designer
.
value
?.
removeMenuItem
(
'upload'
)
designer
.
value
?.
removeMenuItem
(
'upload'
)
// 移除自带的富文本组件规则,使用 editorRule 替代
// 移除自带的富文本组件规则,使用 editorRule 替代
designer
.
value
?.
removeMenuItem
(
'fc-editor'
)
designer
.
value
?.
removeMenuItem
(
'fc-editor'
)
// 移除自带的下拉选择器组件,使用 currencySelectRule 替代
designer
.
value
?.
removeMenuItem
(
'select'
)
const
components
=
[
const
components
=
[
editorRule
,
editorRule
,
uploadFileRule
,
uploadFileRule
,
uploadImgRule
,
uploadImgRule
,
uploadImgsRule
,
uploadImgsRule
,
dictSelectRule
,
dictSelectRule
,
user
SelectRule
currency
SelectRule
]
]
components
.
forEach
((
component
)
=>
{
components
.
forEach
((
component
)
=>
{
// 插入组件规则
// 插入组件规则
...
...
src/plugins/formCreate/index.ts
View file @
769b63d9
...
@@ -20,7 +20,7 @@ import install from '@form-create/element-ui/auto-import'
...
@@ -20,7 +20,7 @@ import install from '@form-create/element-ui/auto-import'
//======================= 自定义组件 =======================
//======================= 自定义组件 =======================
import
{
UploadFile
,
UploadImg
,
UploadImgs
}
from
'@/components/UploadFile'
import
{
UploadFile
,
UploadImg
,
UploadImgs
}
from
'@/components/UploadFile'
import
{
DictSelect
}
from
'@/components/DictSelect'
import
{
DictSelect
}
from
'@/components/DictSelect'
import
UserSelect
from
'@/views/system/user/components/UserSelect.vu
e'
import
{
CurrencySelect
}
from
'@/components/FormCreat
e'
import
{
Editor
}
from
'@/components/Editor'
import
{
Editor
}
from
'@/components/Editor'
const
components
=
[
const
components
=
[
...
@@ -40,7 +40,7 @@ const components = [
...
@@ -40,7 +40,7 @@ const components = [
UploadImgs
,
UploadImgs
,
UploadFile
,
UploadFile
,
DictSelect
,
DictSelect
,
User
Select
,
Currency
Select
,
Editor
Editor
]
]
...
...
src/views/system/user/components/UserSelect.vue
deleted
100644 → 0
View file @
00762362
<!-- TODO puhui999: 先单独一个后面封装成通用选择组件 -->
<
template
>
<el-select
class=
"w-1/1"
v-bind=
"attrs"
>
<el-option
v-for=
"(dict, index) in userOptions"
:key=
"index"
:label=
"dict.nickname"
:value=
"dict.id"
/>
</el-select>
</
template
>
<
script
lang=
"ts"
setup
>
import
*
as
UserApi
from
'@/api/system/user'
defineOptions
({
name
:
'UserSelect'
})
const
attrs
=
useAttrs
()
const
userOptions
=
ref
<
UserApi
.
UserVO
[]
>
([])
// 用户下拉数据
onMounted
(
async
()
=>
{
const
data
=
await
UserApi
.
getSimpleUserList
()
if
(
!
data
||
data
.
length
===
0
)
{
return
}
userOptions
.
value
=
data
})
</
script
>
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