Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
basic-vue-admin
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-vue-admin
Commits
a5ff5923
提交
a5ff5923
authored
8月 17, 2021
作者:
无木
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(form): component `Divider` support `helpMessage`
Divider表单组件支持helpMessage配置
上级
65735926
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
89 行增加
和
16 行删除
+89
-16
FormItem.vue
src/components/Form/src/components/FormItem.vue
+2
-2
index.vue
src/views/demo/form/index.vue
+87
-14
没有找到文件。
src/components/Form/src/components/FormItem.vue
浏览文件 @
a5ff5923
...
...
@@ -306,14 +306,14 @@
}
function
renderItem
()
{
const
{
itemProps
,
slot
,
render
,
field
,
suffix
,
component
,
label
}
=
props
.
schema
;
const
{
itemProps
,
slot
,
render
,
field
,
suffix
,
component
}
=
props
.
schema
;
const
{
labelCol
,
wrapperCol
}
=
unref
(
itemLabelWidthProp
);
const
{
colon
}
=
props
.
formProps
;
if
(
component
===
'Divider'
)
{
return
(
<
Col
span
=
{
24
}
>
<
Divider
{...
unref
(
getComponentsProps
)}
>
{
label
}
<
/Divider
>
<
Divider
{...
unref
(
getComponentsProps
)}
>
{
renderLabelHelpMessage
()
}
<
/Divider
>
<
/Col
>
);
}
else
{
...
...
src/views/demo/form/index.vue
浏览文件 @
a5ff5923
...
...
@@ -9,6 +9,24 @@
@submit="handleSubmit"
@reset="handleReset"
>
<template
#
selectA=
"
{ model, field }">
<a-select
:options=
"optionsA"
mode=
"multiple"
v-model:value=
"model[field]"
@
change=
"valueSelectA = model[field]"
allowClear
/>
</
template
>
<
template
#
selectB=
"{ model, field }"
>
<a-select
:options=
"optionsB"
mode=
"multiple"
v-model:value=
"model[field]"
@
change=
"valueSelectB = model[field]"
allowClear
/>
</
template
>
<
template
#
localSearch=
"{ model, field }"
>
<ApiSelect
:api=
"optionsListApi"
...
...
@@ -47,6 +65,26 @@
import
{
optionsListApi
}
from
'/@/api/demo/select'
;
import
{
useDebounceFn
}
from
'@vueuse/core'
;
import
{
treeOptionsListApi
}
from
'/@/api/demo/tree'
;
import
{
Select
}
from
'ant-design-vue'
;
import
{
cloneDeep
}
from
'lodash-es'
;
const
valueSelectA
=
ref
<
string
[]
>
([]);
const
valueSelectB
=
ref
<
string
[]
>
([]);
const
options
=
ref
<
Recordable
[]
>
([]);
for
(
let
i
=
1
;
i
<
10
;
i
++
)
options
.
value
.
push
({
label
:
'选项'
+
i
,
value
:
`
${
i
}
`
});
const
optionsA
=
computed
(()
=>
{
return
cloneDeep
(
unref
(
options
)).
map
((
op
)
=>
{
op
.
disabled
=
unref
(
valueSelectB
).
indexOf
(
op
.
value
)
!==
-
1
;
return
op
;
});
});
const
optionsB
=
computed
(()
=>
{
return
cloneDeep
(
unref
(
options
)).
map
((
op
)
=>
{
op
.
disabled
=
unref
(
valueSelectA
).
indexOf
(
op
.
value
)
!==
-
1
;
return
op
;
});
});
const
provincesOptions
=
[
{
...
...
@@ -101,7 +139,7 @@
const
schemas
:
FormSchema
[]
=
[
{
field
:
''
,
field
:
'
divider-basic
'
,
component
:
'Divider'
,
label
:
'基础字段'
,
},
...
...
@@ -299,7 +337,7 @@
},
},
{
field
:
''
,
field
:
'
divider-api-select
'
,
component
:
'Divider'
,
label
:
'远程下拉演示'
,
},
...
...
@@ -373,18 +411,9 @@
},
},
{
field
:
''
,
field
:
'
divider-linked
'
,
component
:
'Divider'
,
label
:
'其它'
,
},
{
field
:
'field20'
,
component
:
'InputNumber'
,
label
:
'字段20'
,
required
:
true
,
colProps
:
{
span
:
8
,
},
label
:
'字段联动'
,
},
{
field
:
'province'
,
...
...
@@ -432,6 +461,46 @@
},
},
{
field
:
'divider-selects'
,
component
:
'Divider'
,
label
:
'互斥多选'
,
helpMessage
:
[
'两个Select共用数据源'
,
'但不可选择对方已选中的项目'
],
},
{
field
:
'selectA'
,
component
:
'Select'
,
label
:
'互斥SelectA'
,
slot
:
'selectA'
,
defaultValue
:
[],
colProps
:
{
span
:
8
,
},
},
{
field
:
'selectB'
,
component
:
'Select'
,
label
:
'互斥SelectB'
,
slot
:
'selectB'
,
defaultValue
:
[],
colProps
:
{
span
:
8
,
},
},
{
field
:
'divider-others'
,
component
:
'Divider'
,
label
:
'其它'
,
},
{
field
:
'field20'
,
component
:
'InputNumber'
,
label
:
'字段20'
,
required
:
true
,
colProps
:
{
span
:
8
,
},
},
{
field
:
'field21'
,
component
:
'Slider'
,
label
:
'字段21'
,
...
...
@@ -464,7 +533,7 @@
];
export
default
defineComponent
({
components
:
{
BasicForm
,
CollapseContainer
,
PageWrapper
,
ApiSelect
},
components
:
{
BasicForm
,
CollapseContainer
,
PageWrapper
,
ApiSelect
,
ASelect
:
Select
},
setup
()
{
const
check
=
ref
(
null
);
const
{
createMessage
}
=
useMessage
();
...
...
@@ -479,6 +548,10 @@
return
{
schemas
,
optionsListApi
,
optionsA
,
optionsB
,
valueSelectA
,
valueSelectB
,
onSearch
:
useDebounceFn
(
onSearch
,
300
),
searchParams
,
handleReset
:
()
=>
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论