Skip to content

Commit f416e84

Browse files
author
cole
committed
fix: query filter hidden
1 parent 5f1c978 commit f416e84

File tree

6 files changed

+100
-15
lines changed

6 files changed

+100
-15
lines changed

src/packages/form/layouts/query-filter/hooks/useQueryFilter.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,13 @@ function useQueryFilter (size, props) {
5757
}
5858

5959
function genColNodes (children, callback) {
60+
// 添加计数 解决位置不对问题
61+
let hiddenCount = 0
62+
6063
const nodes = filterEmptyElement(children).map((child, index) => {
6164
const propsHidden = child.props && child.props.hidden || false
62-
const colHidden = propsHidden || unref(collapsed) && (index > unref(showNumber) - 1)
65+
propsHidden && (hiddenCount += 1)
66+
const colHidden = propsHidden || unref(collapsed) && (index - hiddenCount > unref(showNumber) - 1)
6367
const hidden = showCollapse ? colHidden : propsHidden
6468
const key = (isValidElement(child) && child.key) || index
6569
return { key: key, child: child, hidden: hidden }

src/packages/table/compatible/search/Search.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ export default defineComponent({
5050
}
5151
const needFieldProps = {
5252
...pick(column, Object.keys(Field.props)),
53+
hidden: !!column.hideInSearch,
5354
fieldProps: { ...fieldProps, style: { width: '100%' } },
5455
formItemProps: needFormItemProps
5556
}

src/packages/table/components/column-setting/index.jsx

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,13 +75,16 @@ export default defineComponent({
7575
return () => {
7676
const { checkable, draggable } = props
7777

78-
const unCheckedColumns = unref(columns).filter((item) => item.checked === false)
79-
const indeterminate = unCheckedColumns.length > 0 && unCheckedColumns.length !== unref(columns).length
80-
const checked = unCheckedColumns.length === 0 && unCheckedColumns.length !== unref(columns).length
78+
// 不在 setting 中展示的
79+
const needColumns = unref(columns).filter((item) => !item.hideInSetting)
8180

82-
const leftList = unref(columns).filter((item) => item.fixed === 'left')
83-
const list = unref(columns).filter((item) => item.fixed === undefined)
84-
const rightList = unref(columns).filter((item) => item.fixed === 'right')
81+
const unCheckedColumns = needColumns.filter((item) => item.checked === false)
82+
const indeterminate = unCheckedColumns.length > 0 && unCheckedColumns.length !== needColumns.length
83+
const checked = unCheckedColumns.length === 0 && unCheckedColumns.length !== needColumns.length
84+
85+
const leftList = needColumns.filter((item) => item.fixed === 'left')
86+
const list = needColumns.filter((item) => item.fixed === undefined)
87+
const rightList = needColumns.filter((item) => item.fixed === 'right')
8588

8689
const showTitle = leftList.length > 0 || rightList.length > 0
8790

src/packages/table/editable-table/index.jsx

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { defineComponent, reactive, watch } from 'vue'
2-
import { Form } from '@/packages/form'
2+
import { Field, Form } from '@/packages/form'
33
import Table from '../table'
4+
import { pick } from 'lodash-es'
45

56
const editable = {
67
type: 'multiple', // 可编辑表格的类型,单行编辑或者多行编辑
@@ -33,17 +34,44 @@ export default defineComponent({
3334
const model = reactive(props.dataSource || [])
3435

3536
watch(model, (value) => {
37+
console.log(value)
3638
emit('update:value', value)
3739
}, { deep: true, immediate: true })
3840

41+
function customRender (text, record, index, column) {
42+
const { fieldProps, formItemProps } = column
43+
const namePath = column.key || column.dataIndex
44+
45+
const needFormItemProps = {
46+
...formItemProps,
47+
name: [index, namePath]
48+
// label: column.title
49+
}
50+
const needFieldProps = {
51+
...pick(column, Object.keys(Field.props)),
52+
fieldProps: { ...fieldProps, style: { width: '100%' } },
53+
formItemProps: needFormItemProps
54+
}
55+
return <Field {...needFieldProps}/>
56+
}
57+
3958
return () => {
59+
const { columns: propsColumns } = props
60+
61+
const columns = propsColumns.map((column) => {
62+
return { ...column, customRender }
63+
})
64+
65+
const tableProps = {
66+
...pick(props, Object.keys(Table.props)),
67+
columns: columns,
68+
pagination: false,
69+
search: false,
70+
toolbar: false
71+
}
4072
return (
4173
<Form model={model} layout={'vertical'}>
42-
<Table
43-
search={false}
44-
options={false}
45-
pagination={false}
46-
/>
74+
<Table {...tableProps}/>
4775
</Form>
4876
)
4977
}

src/views/Home.jsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ export default defineComponent({
2222
title: 'Tel',
2323
search: true,
2424
copyable: true,
25-
dataIndex: 'tel'
25+
dataIndex: 'tel',
26+
hideInSetting: true
2627
},
2728
{
2829
title: 'Age',

src/views/table/EditableTable.jsx

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,57 @@ import { EditableTable } from '@/packages/table'
44
export default defineComponent({
55
inheritAttrs: false,
66
setup () {
7+
const columns = [
8+
{
9+
title: 'Name',
10+
dataIndex: 'name',
11+
valueType: 'text',
12+
formItemProps: {
13+
required: true
14+
}
15+
},
16+
{
17+
title: 'Age',
18+
dataIndex: 'age',
19+
valueType: 'select',
20+
valueEnum: {
21+
'1': '选项一',
22+
'2': '选项二'
23+
},
24+
formItemProps: {
25+
required: true
26+
}
27+
},
28+
{
29+
title: 'Address',
30+
dataIndex: 'address',
31+
valueType: 'text'
32+
}
33+
]
34+
35+
const dataSource = [
36+
{
37+
key: '1',
38+
name: 'John Brown',
39+
age: '1',
40+
address: 'New York No. 1 Lake Park',
41+
},
42+
{
43+
key: '2',
44+
name: 'Jim Green',
45+
age: '2',
46+
address: 'London No. 1 Lake Park',
47+
}
48+
]
49+
750
return () => {
51+
const tableProps = {
52+
columns: columns,
53+
dataSource: dataSource
54+
}
55+
856
return (
9-
<EditableTable/>
57+
<EditableTable {...tableProps}/>
1058
)
1159
}
1260
}

0 commit comments

Comments
 (0)