Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
basic-vue-admin
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-vue-admin
Commits
52af1dd0
提交
52af1dd0
authored
7月 19, 2021
作者:
无木
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(basic-table): add `ApiTreeSelect` edit component
为表格添加ApiTreeSelect编辑组件,修复一些其它的已知问题
上级
897bed97
显示空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
47 行增加
和
24 行删除
+47
-24
CHANGELOG.zh_CN.md
CHANGELOG.zh_CN.md
+3
-0
index.ts
src/components/Form/index.ts
+1
-0
componentMap.ts
src/components/Table/src/componentMap.ts
+2
-1
CellComponent.ts
...components/Table/src/components/editable/CellComponent.ts
+1
-1
EditableCell.vue
...components/Table/src/components/editable/EditableCell.vue
+16
-1
componentType.ts
src/components/Table/src/types/componentType.ts
+1
-0
EditCellTable.vue
src/views/demo/table/EditCellTable.vue
+12
-11
EditRowTable.vue
src/views/demo/table/EditRowTable.vue
+11
-10
没有找到文件。
CHANGELOG.zh_CN.md
浏览文件 @
52af1dd0
...
@@ -3,6 +3,7 @@
...
@@ -3,6 +3,7 @@
-
**NoticeList**
添加分页、超长自动省略、标题点击事件、标题删除线等功能
-
**NoticeList**
添加分页、超长自动省略、标题点击事件、标题删除线等功能
-
**MixSider**
优化 Mix 菜单布局时 底部折叠按钮 的样式,与其它菜单布局时的风格保持一致
-
**MixSider**
优化 Mix 菜单布局时 底部折叠按钮 的样式,与其它菜单布局时的风格保持一致
-
**ApiTreeSelect**
扩展
`antdv`
的
`TreeSelect`
组件,支持远程数据源,用法类似
`ApiSelect`
-
**ApiTreeSelect**
扩展
`antdv`
的
`TreeSelect`
组件,支持远程数据源,用法类似
`ApiSelect`
-
**BasicTable**
新增
`ApiTreeSelect`
编辑组件
-
可以为不同的用户指定不同的后台首页:
-
可以为不同的用户指定不同的后台首页:
-
在
`getUserInfo`
接口返回的用户信息中增加
`homePath`
字段(可选)即可为当前用户定制首页路径
-
在
`getUserInfo`
接口返回的用户信息中增加
`homePath`
字段(可选)即可为当前用户定制首页路径
...
@@ -14,6 +15,8 @@
...
@@ -14,6 +15,8 @@
-
新增
`headerTop`
插槽
-
新增
`headerTop`
插槽
-
修复操作列的按钮在 disabled 状态下的颜色显示
-
修复操作列的按钮在 disabled 状态下的颜色显示
-
修复可编辑单元格的值不能直接通过修改
`dataSource`
来更新显示的问题
-
修复可编辑单元格的值不能直接通过修改
`dataSource`
来更新显示的问题
-
修复使用
`ApiSelect`
编辑组件时的数据回显问题
-
修复在部分场景下编辑组件可能会报
`onXXX`
类型错误的问题
-
**TableAction**
-
**TableAction**
-
仅在
`action.tooltip`
存在的情况下 才创建 Tooltip 组件
-
仅在
`action.tooltip`
存在的情况下 才创建 Tooltip 组件
-
修复组件内的圆形按钮内容没有居中的问题
-
修复组件内的圆形按钮内容没有居中的问题
...
...
src/components/Form/index.ts
浏览文件 @
52af1dd0
...
@@ -8,5 +8,6 @@ export { useForm } from './src/hooks/useForm';
...
@@ -8,5 +8,6 @@ export { useForm } from './src/hooks/useForm';
export
{
default
as
ApiSelect
}
from
'./src/components/ApiSelect.vue'
;
export
{
default
as
ApiSelect
}
from
'./src/components/ApiSelect.vue'
;
export
{
default
as
RadioButtonGroup
}
from
'./src/components/RadioButtonGroup.vue'
;
export
{
default
as
RadioButtonGroup
}
from
'./src/components/RadioButtonGroup.vue'
;
export
{
default
as
ApiTreeSelect
}
from
'./src/components/ApiTreeSelect.vue'
;
export
{
BasicForm
};
export
{
BasicForm
};
src/components/Table/src/componentMap.ts
浏览文件 @
52af1dd0
...
@@ -9,7 +9,7 @@ import {
...
@@ -9,7 +9,7 @@ import {
TimePicker
,
TimePicker
,
}
from
'ant-design-vue'
;
}
from
'ant-design-vue'
;
import
type
{
ComponentType
}
from
'./types/componentType'
;
import
type
{
ComponentType
}
from
'./types/componentType'
;
import
{
ApiSelect
}
from
'/@/components/Form'
;
import
{
ApiSelect
,
ApiTreeSelect
}
from
'/@/components/Form'
;
const
componentMap
=
new
Map
<
ComponentType
,
Component
>
();
const
componentMap
=
new
Map
<
ComponentType
,
Component
>
();
...
@@ -17,6 +17,7 @@ componentMap.set('Input', Input);
...
@@ -17,6 +17,7 @@ componentMap.set('Input', Input);
componentMap
.
set
(
'InputNumber'
,
InputNumber
);
componentMap
.
set
(
'InputNumber'
,
InputNumber
);
componentMap
.
set
(
'Select'
,
Select
);
componentMap
.
set
(
'Select'
,
Select
);
componentMap
.
set
(
'ApiSelect'
,
ApiSelect
);
componentMap
.
set
(
'ApiSelect'
,
ApiSelect
);
componentMap
.
set
(
'ApiTreeSelect'
,
ApiTreeSelect
);
componentMap
.
set
(
'Switch'
,
Switch
);
componentMap
.
set
(
'Switch'
,
Switch
);
componentMap
.
set
(
'Checkbox'
,
Checkbox
);
componentMap
.
set
(
'Checkbox'
,
Checkbox
);
componentMap
.
set
(
'DatePicker'
,
DatePicker
);
componentMap
.
set
(
'DatePicker'
,
DatePicker
);
...
...
src/components/Table/src/components/editable/CellComponent.ts
浏览文件 @
52af1dd0
...
@@ -19,7 +19,7 @@ export const CellComponent: FunctionalComponent = (
...
@@ -19,7 +19,7 @@ export const CellComponent: FunctionalComponent = (
const
Comp
=
componentMap
.
get
(
component
)
as
typeof
defineComponent
;
const
Comp
=
componentMap
.
get
(
component
)
as
typeof
defineComponent
;
const
DefaultComp
=
h
(
Comp
,
attrs
);
const
DefaultComp
=
h
(
Comp
,
attrs
);
if
(
!
rule
)
{
if
(
!
rule
||
!
popoverVisible
)
{
return
DefaultComp
;
return
DefaultComp
;
}
}
return
h
(
return
h
(
...
...
src/components/Table/src/components/editable/EditableCell.vue
浏览文件 @
52af1dd0
...
@@ -45,6 +45,7 @@
...
@@ -45,6 +45,7 @@
import
{
isString
,
isBoolean
,
isFunction
,
isNumber
,
isArray
}
from
'/@/utils/is'
;
import
{
isString
,
isBoolean
,
isFunction
,
isNumber
,
isArray
}
from
'/@/utils/is'
;
import
{
createPlaceholderMessage
}
from
'./helper'
;
import
{
createPlaceholderMessage
}
from
'./helper'
;
import
{
set
,
omit
}
from
'lodash-es'
;
import
{
set
,
omit
}
from
'lodash-es'
;
import
{
treeToList
}
from
'/@/utils/helper/treeHelper'
;
export
default
defineComponent
({
export
default
defineComponent
({
name
:
'EditableCell'
,
name
:
'EditableCell'
,
...
@@ -276,10 +277,24 @@
...
@@ -276,10 +277,24 @@
}
}
}
}
// only ApiSelect
// only ApiSelect
or TreeSelect
function
handleOptionsChange
(
options
:
LabelValueOptions
)
{
function
handleOptionsChange
(
options
:
LabelValueOptions
)
{
const
{
replaceFields
}
=
props
.
column
?.
editComponentProps
??
{};
const
component
=
unref
(
getComponent
);
if
(
component
===
'ApiTreeSelect'
)
{
const
{
title
=
'title'
,
value
=
'value'
,
children
=
'children'
}
=
replaceFields
||
{};
let
listOptions
:
Recordable
[]
=
treeToList
(
options
,
{
children
});
listOptions
=
listOptions
.
map
((
item
)
=>
{
return
{
label
:
item
[
title
],
value
:
item
[
value
],
};
});
optionsRef
.
value
=
listOptions
as
LabelValueOptions
;
}
else
{
optionsRef
.
value
=
options
;
optionsRef
.
value
=
options
;
}
}
}
function
initCbs
(
cbs
:
'submitCbs'
|
'validCbs'
|
'cancelCbs'
,
handle
:
Fn
)
{
function
initCbs
(
cbs
:
'submitCbs'
|
'validCbs'
|
'cancelCbs'
,
handle
:
Fn
)
{
if
(
props
.
record
)
{
if
(
props
.
record
)
{
...
...
src/components/Table/src/types/componentType.ts
浏览文件 @
52af1dd0
...
@@ -3,6 +3,7 @@ export type ComponentType =
...
@@ -3,6 +3,7 @@ export type ComponentType =
|
'InputNumber'
|
'InputNumber'
|
'Select'
|
'Select'
|
'ApiSelect'
|
'ApiSelect'
|
'ApiTreeSelect'
|
'Checkbox'
|
'Checkbox'
|
'Switch'
|
'Switch'
|
'DatePicker'
|
'DatePicker'
...
...
src/views/demo/table/EditCellTable.vue
浏览文件 @
52af1dd0
...
@@ -8,12 +8,12 @@
...
@@ -8,12 +8,12 @@
</div>
</div>
</
template
>
</
template
>
<
script
lang=
"ts"
>
<
script
lang=
"ts"
>
import
{
defineComponent
,
ref
}
from
'vue'
;
import
{
defineComponent
}
from
'vue'
;
import
{
BasicTable
,
useTable
,
BasicColumn
}
from
'/@/components/Table'
;
import
{
BasicTable
,
useTable
,
BasicColumn
}
from
'/@/components/Table'
;
import
{
optionsListApi
}
from
'/@/api/demo/select'
;
import
{
optionsListApi
}
from
'/@/api/demo/select'
;
import
{
demoListApi
}
from
'/@/api/demo/table'
;
import
{
demoListApi
}
from
'/@/api/demo/table'
;
const
optionsData
=
ref
([])
;
import
{
treeOptionsListApi
}
from
'/@/api/demo/tree'
;
const
columns
:
BasicColumn
[]
=
[
const
columns
:
BasicColumn
[]
=
[
{
{
title
:
'输入框'
,
title
:
'输入框'
,
...
@@ -88,17 +88,18 @@
...
@@ -88,17 +88,18 @@
resultField
:
'list'
,
resultField
:
'list'
,
labelField
:
'name'
,
labelField
:
'name'
,
valueField
:
'id'
,
valueField
:
'id'
,
onOptionsChange
(
options
)
{
optionsData
.
value
=
options
;
},
},
width
:
200
,
},
},
editValueMap
(
value
:
any
)
{
{
const
found
=
optionsData
.
value
.
find
((
option
)
=>
option
.
id
===
value
);
title
:
'远程下拉树'
,
if
(
found
)
{
dataIndex
:
'name7'
,
return
found
.
name
;
edit
:
true
,
}
else
{
editComponent
:
'ApiTreeSelect'
,
return
value
;
editRule
:
false
,
}
editComponentProps
:
{
api
:
treeOptionsListApi
,
resultField
:
'list'
,
},
},
width
:
200
,
width
:
200
,
},
},
...
...
src/views/demo/table/EditRowTable.vue
浏览文件 @
52af1dd0
...
@@ -20,7 +20,7 @@
...
@@ -20,7 +20,7 @@
import
{
optionsListApi
}
from
'/@/api/demo/select'
;
import
{
optionsListApi
}
from
'/@/api/demo/select'
;
import
{
demoListApi
}
from
'/@/api/demo/table'
;
import
{
demoListApi
}
from
'/@/api/demo/table'
;
const
optionsData
=
ref
([])
;
import
{
treeOptionsListApi
}
from
'/@/api/demo/tree'
;
const
columns
:
BasicColumn
[]
=
[
const
columns
:
BasicColumn
[]
=
[
{
{
...
@@ -100,17 +100,18 @@
...
@@ -100,17 +100,18 @@
resultField
:
'list'
,
resultField
:
'list'
,
labelField
:
'name'
,
labelField
:
'name'
,
valueField
:
'id'
,
valueField
:
'id'
,
onOptionsChange
(
options
)
{
optionsData
.
value
=
options
;
},
},
width
:
200
,
},
},
editValueMap
(
value
:
any
)
{
{
const
found
=
optionsData
.
value
.
find
((
option
)
=>
option
.
id
===
value
);
title
:
'远程下拉树'
,
if
(
found
)
{
dataIndex
:
'name7'
,
return
found
.
name
;
editRow
:
true
,
}
else
{
editComponent
:
'ApiTreeSelect'
,
return
value
;
editRule
:
false
,
}
editComponentProps
:
{
api
:
treeOptionsListApi
,
resultField
:
'list'
,
},
},
width
:
200
,
width
:
200
,
},
},
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论