Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
W
WebPublic
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
前端开发小组
WebPublic
Commits
f26b3f45
提交
f26b3f45
authored
5月 09, 2020
作者:
chscls@163.com
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修改bug
上级
735df459
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
1252 行增加
和
3 行删除
+1252
-3
TreeListNew.js
one_stop_public/libs/formList/TreeListNew.js
+1251
-0
index.js
one_stop_public/libs/formList/index.js
+1
-3
没有找到文件。
one_stop_public/libs/formList/TreeListNew.js
0 → 100644
浏览文件 @
f26b3f45
import
React
,
{
Fragment
}
from
'react'
;
import
{
Button
,
Card
,
DatePicker
,
Divider
,
Table
,
Form
,
Row
,
Col
,
Input
,
InputNumber
,
message
,
Modal
,
Select
,
Tree
,
Popconfirm
,
Tooltip
,
Spin
}
from
'antd'
;
import
{
connect
}
from
'dva'
;
import
PageHeaderWrapper
from
'./PageHeaderWrapper'
;
import
styles
from
'./TableList.less'
;
import
StandardTable
from
'./StandardTable'
;
import
moment
from
'moment'
;
import
router
from
'umi/router'
;
import
ExportInfo
from
'../../App/ExportInfo'
;
import
ExportCurrentInfo
from
'../../App/ExportCurrentInfo'
;
import
StatisticsInfo
from
'../../App/StatisticsInfo'
;
import
ImportUtil
from
'../../App/ImportUtil'
;
import
SearchInfo
from
'../../App/SearchInfo'
;
import
{
Base16Encode
}
from
"../../Base16/index"
;
import
{
isEmpty
}
from
'lodash'
import
FilePreview
from
"@/webPublic/one_stop_public/filePreview"
;
import
{
queryApiActionPath
}
from
"@/webPublic/one_stop_public/utils/queryConfig"
;
import
UploadCom
from
"@/webPublic/one_stop_public/libs/UploadCom"
;
const
FormItem
=
Form
.
Item
;
let
AllWidth
=
0
;
// 表格总长度
const
{
RangePicker
}
=
DatePicker
;
const
text
=
[
'BINARY'
,
'BIT'
,
'BLOB'
,
'CHAR'
,
'GEOMETRY'
,
'GEOMETRYCOLLECTION'
,
'JSON'
,
'LINESTRING'
,
'LONGBLOB'
,
'LONGTEXT'
,
'MEDIUMBLOB'
,
'MEDIUMINT'
,
'MEDIUMTEXT'
,
'MULTILINESTRING'
,
'MULTIPOINT'
,
'MULTIPOLYGON'
,
'POINT'
,
'POLYGON'
,
'REAL'
,
'DECIMAL'
,
'ENUM'
,
'SET'
,
'TEXT'
,
'TINYBLOB'
,
'TIBYTEXT'
,
'VARBINARY'
,
'VARCHAR'
,
];
const
number
=
[
'BIGINT'
,
'DOUBLE'
,
'FLOAT'
,
'INT'
,
'INTEGER'
,
'NUMERIC'
,
'SMALLINT'
,
'TINYINT'
];
const
data
=
[
'DATE'
,
'DATETIME'
,
'TIME'
,
'TIMESTAMP'
,
'YEAR'
];
const
CreateForm
=
Form
.
create
()(
props
=>
{
const
{
modalVisible
,
form
,
handleAdd
,
formLoading
,
formData
,
isAdd
,
handleModalVisible
,
formItem
,
getItem
,
isView
}
=
props
;
//通过回调
const
okHandle
=
()
=>
{
form
.
validateFields
((
err
,
fieldsValue
)
=>
{
if
(
err
)
return
;
if
(
isView
){
handleModalVisible
();
return
;
}
formItem
.
map
((
item
,
index
)
=>
{
if
(
item
.
type
.
indexOf
(
'DATE'
)
>
-
1
)
{
for
(
let
d
in
fieldsValue
)
{
if
(
item
.
name
===
d
&&
fieldsValue
[
d
])
{
fieldsValue
[
d
]
=
fieldsValue
[
d
].
format
(
'YYYY-MM-DD HH:mm:ss'
);
}
}
}
});
let
params
=
{
...
fieldsValue
};
handleAdd
(
params
,
isAdd
);
});
};
//需要获取动态表单
return
(
<
Modal
width
=
"700px"
maskClosable
=
{
false
}
destroyOnClose
title
=
{
isView
?
"查看详情"
:(
isAdd
?
'新增'
:
'编辑'
)}
visible
=
{
modalVisible
}
footer
=
{
isView
?
null
:[
<
Button
key
=
"back"
onClick
=
{()
=>
handleModalVisible
()}
>
取消
<
/Button>
,
<
Button
key
=
"submit"
type
=
"primary"
onClick
=
{
okHandle
}
>
确定
<
/Button
>
]}
onOk
=
{
okHandle
}
onCancel
=
{()
=>
handleModalVisible
()}
>
{
formItem
.
map
((
item
,
index
)
=>
getItem
(
false
,
form
,
item
,
isAdd
,
formData
,
{
span
:
5
},
{
span
:
15
}))}
<
/Modal
>
);
});
@
connect
(({
formList
,
loading
})
=>
({
formList
,
loading
:
loading
.
models
.
formList
,
}))
@
Form
.
create
()
class
TreeList
extends
React
.
Component
{
state
=
{
data
:
{
list
:
[],
pagination
:
{},
},
treeData
:
[{
title
:
'根目录'
,
key
:
'0-0'
}],
isReady
:
false
,
parentName
:
"根节点"
,
parentId
:
null
,
selects
:[],
modalVisible
:
false
,
formData
:
null
,
formValues
:
{},
formItem
:
[],
objId
:
this
.
props
.
objId
||
(
this
.
props
.
location
?
this
.
props
.
location
.
state
.
id
:
null
),
isAdd
:
false
,
querys
:
[],
selectedRows
:
[],
primaryKey
:
null
,
options
:
{},
isTable
:
true
,
tableWidth
:
500
,
rights
:
this
.
props
.
rights
||
[],
columnRights
:[],
isReady
:
false
,
groups
:{},
showDiv
:
''
,
showMobileDiv
:
''
,
isView
:
false
};
columns
=
[];
getOptions
=
()
=>
{
const
refIds
=
[]
for
(
var
i
=
0
;
i
<
this
.
state
.
formItem
.
length
;
i
++
)
{
if
(
this
.
state
.
formItem
[
i
].
referenceObjId
!=
null
&&
this
.
state
.
options
[
this
.
state
.
formItem
[
i
].
id
+
''
]
==
null
)
{
refIds
.
push
(
datas
[
t
].
id
)
}
}
if
(
refIds
.
length
>
0
)
{
dispatch
({
type
:
'formList/getBatchOptions'
,
payload
:
{
ids
:
refIds
},
callback
:
(
options
)
=>
{
this
.
setState
({
options
:
{
...
this
.
state
.
options
,
...
options
}
})
}
});
}
}
modify
=
record
=>
{
// if (this.state.formItem.length < 10) {
this
.
getOptions
()
this
.
setState
({
formData
:
record
,
modalVisible
:
true
,
isAdd
:
false
,
isView
:
false
});
// } else {
// router.push({
// pathname: '/admin/ddl/dataObj/formEdit',
// state: {
// id: this.state.objId,
// recordId: record[this.state.primaryKey],
// recordKey: this.state.primaryKey,
// isAdd: false,
// isView:false
// },
// });
// }
};
view
=
record
=>
{
// if (this.state.formItem.length < 10) {
this
.
getOptions
()
this
.
setState
({
formData
:
record
,
modalVisible
:
true
,
isAdd
:
false
,
isView
:
true
});
// } else {
// router.push({
// pathname: '/admin/ddl/dataObj/formEdit',
// state: {
// id: this.state.objId,
// recordId: record[this.state.primaryKey],
// recordKey: this.state.primaryKey,
// isAdd: false,
// isView:true
// },
// });
// }
};
isJSON
=
(
str
)
=>
{
if
(
typeof
str
==
'string'
)
{
try
{
var
obj
=
JSON
.
parse
(
str
);
if
(
typeof
obj
==
'object'
&&
obj
)
{
return
true
;
}
else
{
return
false
;
}
}
catch
(
e
)
{
console
.
log
(
'error:'
+
str
+
'!!!'
+
e
);
return
false
;
}
}
console
.
log
(
'这不是个字符串'
)
}
delete
=
record
=>
{
//找出主键
let
Keys
=
{};
Keys
[
this
.
state
.
primaryKey
]
=
record
[
this
.
state
.
primaryKey
];
this
.
props
.
dispatch
({
type
:
'formList/delete'
,
payload
:
{
keys
:
JSON
.
stringify
(
Keys
),
objId
:
this
.
state
.
objId
},
callback
:
()
=>
{
this
.
getPage
();
},
});
};
viewProcess
=
record
=>
{
const
{
dispatch
}
=
this
.
props
;
dispatch
({
type
:
'formList/getAppId'
,
payload
:
{
code
:
record
.
process_biz_key
,
},
callback
:
(
data
)
=>
{
router
.
push
({
pathname
:
'/portal/serviceCentre/getdetail'
,
state
:
{
id
:
data
.
id
}})
},
});
};
/**
* 宽度自适应函数
*/
resize
=
(
e
)
=>
{
let
scrollWidth
=
document
.
documentElement
.
clientWidth
||
document
.
body
.
clientWidth
;
//可使宽度
let
showMobileDiv
=
scrollWidth
-
77
if
(
document
.
querySelector
(
'#previewDiv'
)){
// 预览模式
this
.
setState
({
showMobileDiv
:
document
.
querySelector
(
'#previewDiv'
).
clientWidth
-
77
})
}
else
{
this
.
setState
({
showMobileDiv
,
})
}
console
.
log
(
showMobileDiv
)
}
//渲染值
componentDidMount
()
{
const
{
dispatch
,
isFormCom
,
isSelect
,
callback
,
valueName
}
=
this
.
props
;
window
.
addEventListener
(
'resize'
,
this
.
resize
);
if
(
this
.
props
.
objCode
){
const
{
dispatch
,
objCode
,
sql
}
=
this
.
props
;
if
(
objCode
==
1
||
objCode
==
"1"
){
this
.
initColumn
();
}
else
{
dispatch
({
type
:
'DataObj/findByCode'
,
payload
:
{
objCode
:
this
.
props
.
objCode
},
callback
:
dataObj
=>
{
this
.
setState
({
objId
:
dataObj
.
id
,
isTable
:
data
.
isTable
},()
=>
{
dispatch
({
type
:
'DataRight/getUserRight'
,
payload
:
{
objId
:
this
.
state
.
objId
},
callback
:
data
=>
{
if
(
!
this
.
props
.
rights
){
this
.
setState
({
rights
:
data
});
}
dispatch
({
type
:
'DataRight/getUserColumnRight'
,
payload
:
{
objId
:
this
.
state
.
objId
},
callback
:
data
=>
{
this
.
setState
({
columnRights
:
data
});
this
.
initColumn
();
}
});
}
});
});
},
});
}
}
else
{
dispatch
({
type
:
'formList/getObjDetail'
,
payload
:
{
id
:
this
.
state
.
objId
},
callback
:
data
=>
{
this
.
setState
({
isTable
:
data
.
isTable
});
}
});
dispatch
({
type
:
'DataRight/getUserRight'
,
payload
:
{
objId
:
this
.
state
.
objId
},
callback
:
data
=>
{
if
(
!
this
.
props
.
rights
){
this
.
setState
({
rights
:
data
});
}
dispatch
({
type
:
'DataRight/getUserColumnRight'
,
payload
:
{
objId
:
this
.
state
.
objId
},
callback
:
data
=>
{
this
.
setState
({
columnRights
:
data
});
this
.
initColumn
();
}
});
}
});
}
}
/**
* 移除监听器
*/
componentWillUnmount
(){
window
.
removeEventListener
(
'resize'
,
this
.
resize
);
}
custom
=
this
.
props
.
value
?
Base16Encode
(
JSON
.
stringify
(
this
.
props
.
value
)):
null
componentWillReceiveProps
(
nextProps
){
const
b
=
nextProps
.
value
||
{}
const
a
=
this
.
props
.
value
||
{}
if
(
JSON
.
stringify
(
a
)
!=
JSON
.
stringify
(
b
)){
const
params
=
{
pageNo
:
1
,
pageSize
:
this
.
props
.
pageSize
||
10
,
query
:
JSON
.
stringify
(
this
.
state
.
formValues
),
};
if
(
nextProps
.
value
.
columns
!=
null
&&
nextProps
.
value
.
columns
.
length
>
0
){
this
.
columns
=
nextProps
.
value
.
columns
}
this
.
custom
=
Base16Encode
(
JSON
.
stringify
(
b
))
if
(
nextProps
.
value
.
getPage
){
this
.
getPage
(
params
,
null
,
nextProps
.
value
.
getPage
);
}
else
{
if
(
this
.
state
.
objId
)
this
.
getPage
(
params
)
}
}
const
x
=
nextProps
.
selects
const
y
=
this
.
props
.
selects
if
(
JSON
.
stringify
(
x
)
!=
JSON
.
stringify
(
y
)){
this
.
setState
({
selects
:
x
})
}
}
initColumn
=
()
=>
{
const
{
dispatch
,
isFormCom
,
isSelect
,
callback
,
valueName
}
=
this
.
props
;
const
{
rights
,
columnRights
}
=
this
.
state
;
if
(
this
.
props
.
value
&&
this
.
props
.
value
.
columns
){
this
.
columns
=
this
.
props
.
value
.
columns
this
.
getPage
();
return
}
if
(
this
.
props
.
objCode
==
1
||
this
.
props
.
objCode
==
"1"
){
}
else
{
dispatch
({
type
:
'formList/getHead'
,
payload
:
{
dataObjId
:
this
.
state
.
objId
},
callback
:
datas
=>
{
const
querys
=
[]
const
refIds
=
[]
const
groups
=
{};
if
(
datas
)
{
this
.
state
.
formItem
=
datas
;
let
i
=
0
;
for
(
let
t
in
datas
)
{
if
(
datas
[
t
].
isPrimaryKey
)
this
.
state
.
primaryKey
=
datas
[
t
].
name
;
if
(
datas
[
t
].
isHidden
){
continue
}
let
column
=
{};
column
.
title
=
datas
[
t
].
title
;
column
.
dataIndex
=
datas
[
t
].
name
;
column
.
width
=
datas
[
t
].
width
;
if
(
i
==
0
)
column
.
fixed
=
'left'
;
if
(
columnRights
.
length
>
0
&&!
columnRights
.
includes
(
datas
[
t
].
id
)){
continue
;
}
if
(
data
.
includes
(
datas
[
t
].
type
))
{
column
.
render
=
(
val
)
=>
{
if
(
val
==
null
){
return
val
;
}
if
(
datas
[
t
].
dataFormatStrWeb
!=
null
){
return
moment
(
val
).
format
(
datas
[
t
].
dataFormatStrWeb
);
}
else
{
return
moment
(
val
).
format
(
'YYYY-MM-DD HH:mm:ss'
);
}
}
}
else
if
(
datas
[
t
].
name
.
indexOf
(
"process_status"
)
>-
1
){
column
.
render
=
(
val
)
=>
val
?(
val
===
"0"
?
"审核通过"
:
"审核未通过"
):
null
}
else
if
(
datas
[
t
].
extendTypeId
&&
datas
[
t
].
extendTypeId
.
indexOf
(
"file"
)
>-
1
){
//特殊处理附件
column
.
render
=
(
val
)
=>
{
if
(
this
.
isJSON
(
val
)){
val
=
JSON
.
parse
(
val
);
let
files
=
val
.
files
;
let
xx
=
(
<
ul
>
{
files
.
map
((
f
,
index2
)
=>
{
return
<
li
key
=
{
index2
}
><
FilePreview
path
=
{
queryApiActionPath
()
+
f
.
path
}
pathName
=
{
f
.
name
}
/></
li
>
}
)}
<
/ul
>
)
return
xx
;
}
else
{
return
val
;
}
}
}
else
{
column
.
render
=
(
val
)
=>
val
&&
val
.
length
>
100
?
<
Tooltip
title
=
{
val
}
overlayStyle
=
{{
width
:
1000
}}
>
<
span
style
=
{{
width
:
column
.
width
||
200
,
display
:
"block"
,
wordBreak
:
"keep-all"
,
whiteSpace
:
"nowrap"
,
overflow
:
"hidden"
,
textOverflow
:
"ellipsis"
}}
>
{
val
}
<
/span
>
<
/Tooltip>:va
l
}
this
.
setState
({
tableWidth
:((
datas
.
length
-
1
)
*
200
)})
this
.
columns
.
push
(
column
);
if
(
datas
[
t
].
isShowQuery
)
{
querys
.
push
(
datas
[
t
])
if
(
datas
[
t
].
referenceObjId
!=
null
)
{
refIds
.
push
(
datas
[
t
].
id
)
}
if
(
datas
[
t
].
isGroupQuery
!=
null
){
dispatch
({
type
:
'formList/getGroupList'
,
payload
:
{
columnId
:
datas
[
t
].
id
},
callback
:
(
gourp
)
=>
{
groups
[
datas
[
t
].
id
]
=
gourp
;
this
.
setState
({
groups
})
}
});
}
}
i
++
;
}
if
(
querys
.
length
>
0
)
{
this
.
setState
({
querys
})
if
(
refIds
.
length
>
0
)
{
dispatch
({
type
:
'formList/getBatchOptions'
,
payload
:
{
ids
:
refIds
},
callback
:
(
options
)
=>
{
this
.
setState
({
options
})
}
});
}
}
this
.
getPage
();
}
},
});
}
}
sqlBs16
=
Base16Encode
(
this
.
props
.
sql
)
getPage
=
(
params
,
values
,
callPage
)
=>
{
if
(
this
.
columns
==
null
||
this
.
columns
.
length
==
0
){
return
;
}
const
{
dispatch
}
=
this
.
props
;
const
pagination
=
this
.
state
.
data
.
pagination
;
if
(
params
==
null
)
{
params
=
{
pageNo
:
pagination
.
current
?
pagination
.
current
:
1
,
pageSize
:
pagination
.
pageSize
?
pagination
.
pageSize
:
(
this
.
props
.
pageSize
||
10
),
query
:
JSON
.
stringify
(
values
!=
null
?
values
:
this
.
state
.
formValues
),
};
}
if
(
this
.
props
.
objCode
&&
(
this
.
props
.
objCode
==
"1"
||
this
.
props
.
objCode
==
1
)){
if
(
callPage
){
callPage
(
params
,(
data
)
=>
{
if
(
!
this
.
state
.
isReady
){
this
.
setState
({
data
,
isReady
:
true
})
}
else
{
this
.
setState
({
data
})
}
})
}
else
if
(
this
.
props
.
value
&&
this
.
props
.
value
.
getPage
){
this
.
props
.
value
.
getPage
(
params
,(
data
)
=>
{
if
(
!
this
.
state
.
isReady
){
this
.
setState
({
data
,
isReady
:
true
})
}
else
{
this
.
setState
({
data
})
}
})
}
}
else
{
dispatch
({
type
:
'formList/fetch'
,
payload
:
{
custom
:
this
.
custom
,
...
params
,
sql
:
this
.
sqlBs16
,
dataObjId
:
this
.
state
.
objId
,
},
callback
:(
data
)
=>
{
if
(
!
this
.
state
.
isReady
){
this
.
setState
({
data
,
isReady
:
true
})
}
else
{
this
.
setState
({
data
})
}
}
});
}
};
handleStandardTableChange
=
(
pagination
,
filtersArg
,
sorter
)
=>
{
const
filters
=
Object
.
keys
(
filtersArg
)
.
reduce
((
obj
,
key
)
=>
{
const
newObj
=
{
...
obj
};
newObj
[
key
]
=
getValue
(
filtersArg
[
key
]);
return
newObj
;
},
{});
const
params
=
{
pageNo
:
pagination
.
current
,
pageSize
:
pagination
.
pageSize
,
...
filters
,
query
:
JSON
.
stringify
(
this
.
state
.
formValues
),
};
if
(
sorter
.
field
)
{
params
.
sorter
=
`
${
sorter
.
field
}
_
${
sorter
.
order
}
`
;
}
this
.
getPage
(
params
);
};
handleAdd
=
(
fields
,
isAdd
)
=>
{
let
params
=
{
...
fields
,
};
this
.
props
.
dispatch
({
type
:
'formList/add'
,
payload
:
{
params
:
params
,
objId
:
this
.
state
.
objId
,
isAdd
:
isAdd
,
isSelf
:
true
,
isView
:
false
},
callback
:
()
=>
{
message
.
success
(
'操作成功'
);
this
.
setState
({
modalVisible
:
false
,
});
this
.
getPage
();
},
});
};
handleModalVisible
=
()
=>
{
this
.
setState
({
modalVisible
:
this
.
state
.
modalVisible
?
false
:
true
,
formData
:
{},
});
};
add
=
()
=>
{
// if (this.state.formItem.length < 10) {
this
.
getOptions
()
this
.
setState
({
modalVisible
:
true
,
formData
:
{},
isAdd
:
true
,
isView
:
false
});
// } else {
// router.push({
// pathname: '/admin/ddl/dataObj/formEdit',
// state: { id: this.state.objId,isAdd: true,isView:false }
// });
// }
};
handleSelectRows
=
rows
=>
{
if
(
this
.
props
.
onSelectRow
){
this
.
props
.
onSelectRow
(
rows
)
}
this
.
setState
({
selectedRows
:
rows
,
});
};
batchDelete
=
e
=>
{
const
{
dispatch
}
=
this
.
props
;
const
{
selectedRows
}
=
this
.
state
;
if
(
!
selectedRows
)
return
;
let
columns
=
this
.
state
.
formItem
;
let
Keys
=
{};
for
(
let
i
in
columns
)
{
if
(
columns
[
i
].
isPrimaryKey
)
{
//key
Keys
[
columns
[
i
].
name
]
=
selectedRows
.
map
(
row
=>
row
[
columns
[
i
].
name
])
.
join
(
','
);
}
}
this
.
props
.
dispatch
({
type
:
'formList/delete'
,
payload
:
{
keys
:
JSON
.
stringify
(
Keys
),
objId
:
this
.
state
.
objId
,
isSelf
:
true
},
callback
:
()
=>
{
this
.
setState
({
selectedRows
:
[],
});
this
.
getPage
();
},
});
};
goBack
=
()
=>
{
router
.
goBack
();
};
handleSearch
=
(
e
)
=>
{
e
.
preventDefault
();
const
{
dispatch
,
form
}
=
this
.
props
;
const
{
formValues
}
=
this
.
state
;
form
.
validateFields
((
err
,
fieldsValue
)
=>
{
if
(
err
)
return
;
const
formItem
=
this
.
state
.
formItem
formItem
.
map
((
item
,
index
)
=>
{
if
(
item
.
type
.
indexOf
(
'DATE'
)
>
-
1
)
{
for
(
let
d
in
fieldsValue
)
{
if
(
item
.
name
===
d
&&
fieldsValue
[
d
])
{
if
(
fieldsValue
[
d
]
!=
null
&&
fieldsValue
[
d
].
length
>
0
){
fieldsValue
[
d
]
=
[
fieldsValue
[
d
][
0
].
format
(
'YYYY-MM-DD HH:mm:ss'
),
fieldsValue
[
d
][
1
].
format
(
'YYYY-MM-DD HH:mm:ss'
)];
}
else
{
fieldsValue
[
d
]
=
""
;
}
}
}
}
});
const
values
=
{
...
this
.
state
.
formValues
,
...
fieldsValue
};
this
.
setState
({
formValues
:
fieldsValue
,
});
this
.
getPage
(
null
,
values
)
});
}
hanldeHighSearch
=
(
e
)
=>
{
const
pagination
=
this
.
props
.
formList
.
data
.
pagination
;
let
params
=
{
pageNo
:
pagination
.
current
?
pagination
.
current
:
1
,
pageSize
:
pagination
.
pageSize
?
pagination
.
pageSize
:
(
this
.
props
.
pageSize
||
10
),
...
e
}
this
.
setState
({
formValues
:{...
e
,...
this
.
state
.
formValues
}})
this
.
getPage
(
params
)
}
handleFormReset
=
()
=>
{
const
{
form
,
dispatch
}
=
this
.
props
;
form
.
resetFields
();
this
.
setState
({
formValues
:
{},
},
()
=>
{
this
.
getPage
()
});
}
getItem
=
(
isQuery
,
form
,
item
,
isAdd
,
formData
,
labelCol
,
wrapperCol
)
=>
{
const
{
groups
}
=
this
.
state
;
if
(
item
.
isPrimaryKey
)
{
if
(
isAdd
)
{
return
(
<><
/>
)
;
}
else
{
return
(
<
FormItem
labelCol
=
{
labelCol
}
wrapperCol
=
{
wrapperCol
}
label
=
{
item
.
title
}
key
=
{
item
.
id
}
>
{
form
.
getFieldDecorator
(
item
.
name
,
{
initialValue
:
formData
==
null
?
''
:
formData
[
item
.
name
],
rules
:
[{
required
:
!
item
.
isNull
}],
})(
<
Input
style
=
{{
width
:
'70%'
}}
readOnly
=
{
!
isAdd
}
placeholder
=
"请输入"
/>
)}
<
/FormItem
>
);
}
}
else
if
(
item
.
referenceObjId
!=
null
)
{
const
{
options
}
=
this
.
state
const
ops
=
options
[
item
.
id
+
''
]
||
[]
return
(
<
FormItem
labelCol
=
{
labelCol
}
wrapperCol
=
{
wrapperCol
}
label
=
{
item
.
title
}
key
=
{
item
.
id
}
>
{
form
.
getFieldDecorator
(
item
.
name
,
{
initialValue
:
formData
==
null
?
''
:
formData
[
item
.
name
],
rules
:
[{
required
:
!
item
.
isNull
}],
})(
<
Select
style
=
{{
width
:
'70%'
}}
placeholder
=
"请选择"
allowClear
>
{
ops
.
map
((
r
)
=>
<
Option
value
=
{
r
[
item
.
referenceCodeName
]}
key
=
{
r
[
item
.
referenceCodeName
]}
>
{
r
[
item
.
referenceNameName
]}
<
/Option>
)
}
<
/Select>
)
}
<
/FormItem
>
);
}
else
if
(
item
.
name
.
indexOf
(
"process_status"
)
>-
1
){
return
(
<
FormItem
labelCol
=
{
labelCol
}
wrapperCol
=
{
wrapperCol
}
label
=
{
item
.
title
}
key
=
{
item
.
id
}
>
{
form
.
getFieldDecorator
(
item
.
name
,
{
initialValue
:
formData
==
null
?
''
:
formData
[
item
.
name
],
rules
:
[{
required
:
!
item
.
isNull
}],
})(
<
Select
style
=
{{
width
:
'70%'
}}
placeholder
=
"请选择"
allowClear
>
<
Option
value
=
{
'0'
}
key
=
{
'0'
}
>
审核通过
<
/Option
>
<
Option
value
=
{
'2'
}
key
=
{
'2'
}
>
审核未通过
<
/Option
>
<
/Select>
)
}
<
/FormItem
>
);
}
else
if
(
item
.
extendTypeId
&&
item
.
extendTypeId
.
indexOf
(
"file"
)
>-
1
){
//特殊处理附件 如果是查询就 跳过
if
(
isQuery
)
return
;
return
(
<
FormItem
labelCol
=
{
labelCol
}
wrapperCol
=
{
wrapperCol
}
label
=
{
item
.
title
}
key
=
{
item
.
id
}
>
{
form
.
getFieldDecorator
(
item
.
name
,
{
initialValue
:
formData
==
null
?
''
:
(
formData
[
item
.
name
]
&&
this
.
isJSON
(
formData
[
item
.
name
])?
JSON
.
parse
(
formData
[
item
.
name
]):
null
),
rules
:
[{
required
:
!
item
.
isNull
}],
})(
<
UploadCom
/>
)}
<
/FormItem
>
);
}
else
if
(
isQuery
&&
item
.
isGroupQuery
!=
null
&&
item
.
isGroupQuery
){
//如果是查询 并且是组合查询
const
ops
=
groups
[
item
.
id
+
''
]
||
[]
return
(
<
FormItem
labelCol
=
{
labelCol
}
wrapperCol
=
{
wrapperCol
}
label
=
{
item
.
title
}
key
=
{
item
.
id
}
>
{
form
.
getFieldDecorator
(
item
.
name
,
{
initialValue
:
formData
==
null
?
''
:
formData
[
item
.
name
],
rules
:
[{
required
:
!
item
.
isNull
}],
})(
<
Select
style
=
{{
width
:
'70%'
}}
placeholder
=
"请选择"
allowClear
>
{
ops
.
map
((
r
)
=>
<
Option
value
=
{
r
.
value
}
key
=
{
r
.
value
}
>
{
r
.
value
}
<
/Option>
)
}
<
/Select>
)
}
<
/FormItem
>
);
}
else
if
(
text
.
indexOf
(
item
.
type
)
>
-
1
)
{
return
(
<
FormItem
labelCol
=
{
labelCol
}
wrapperCol
=
{
wrapperCol
}
label
=
{
item
.
title
}
key
=
{
item
.
id
}
>
{
form
.
getFieldDecorator
(
item
.
name
,
{
initialValue
:
formData
==
null
?
''
:
formData
[
item
.
name
],
rules
:
[{
required
:
!
item
.
isNull
}],
})(
<
Input
style
=
{{
width
:
'70%'
}}
placeholder
=
"请输入"
/>
)}
<
/FormItem
>
);
}
else
if
(
number
.
indexOf
(
item
.
type
)
>
-
1
)
{
return
(
<
FormItem
labelCol
=
{
labelCol
}
wrapperCol
=
{
wrapperCol
}
label
=
{
item
.
title
}
key
=
{
item
.
id
}
>
{
form
.
getFieldDecorator
(
item
.
name
,
{
initialValue
:
formData
==
null
?
''
:
formData
[
item
.
name
],
rules
:
[{
required
:
!
item
.
isNull
}],
})(
<
InputNumber
placeholder
=
"请输入"
min
=
{
0
}
/>
)
}
<
/FormItem
>
);
}
else
if
(
isQuery
&&
data
.
indexOf
(
item
.
type
)
>
-
1
)
{
return
(
<
FormItem
labelCol
=
{
labelCol
}
wrapperCol
=
{
wrapperCol
}
label
=
{
item
.
title
}
key
=
{
item
.
id
}
>
{
form
.
getFieldDecorator
(
item
.
name
,
{
initialValue
:
formData
==
null
?
null
:
moment
(
formData
[
item
.
name
]),
rules
:
[{
required
:
!
item
.
isNull
}],
})(
<
RangePicker
format
=
{
item
.
dataFormatStrWeb
==
null
?
"YYYY-MM-DD HH:mm:ss"
:
item
.
dataFormatStrWeb
}
style
=
{{
width
:
'95%'
}}
/>
)
}
<
/FormItem
>
);
}
else
if
(
data
.
indexOf
(
item
.
type
)
>
-
1
)
{
return
(
<
FormItem
labelCol
=
{
labelCol
}
wrapperCol
=
{
wrapperCol
}
label
=
{
item
.
title
}
key
=
{
item
.
id
}
>
{
form
.
getFieldDecorator
(
item
.
name
,
{
initialValue
:
formData
==
null
?
moment
()
:(
formData
[
item
.
name
]?
moment
(
formData
[
item
.
name
]):
null
),
rules
:
[{
required
:
!
item
.
isNull
}],
})(
<
DatePicker
format
=
{
item
.
dataFormatStrWeb
==
null
?
"YYYY-MM-DD HH:mm:ss"
:
item
.
dataFormatStrWeb
}
style
=
{{
width
:
'100%'
}}
placeholder
=
"请输入"
/>
,
)}
<
/FormItem
>
);
}
else
{
return
(
<
FormItem
labelCol
=
{
labelCol
}
wrapperCol
=
{
wrapperCol
}
label
=
{
item
.
title
}
key
=
{
item
.
id
}
>
{
form
.
getFieldDecorator
(
item
.
name
,
{
initialValue
:
formData
==
null
?
''
:
formData
[
item
.
name
],
rules
:
[{
required
:
!
item
.
isNull
}],
})(
<
Input
style
=
{{
width
:
'70%'
}}
placeholder
=
"请输入"
/>
)}
<
/FormItem
>
);
}
}
renderForm
()
{
const
{
form
,
get
,
}
=
this
.
props
;
const
{
querys
}
=
this
.
state
if
(
querys
.
length
==
0
)
{
return
''
;
}
return
(
<
Form
layout
=
"inline"
>
<
Row
style
=
{{
padding
:
"15px"
}}
>
{
querys
.
map
((
item
)
=>
<
Col
style
=
{{
height
:
58
}}
span
=
{
get
===
'mobile'
?
24
:
8
}
key
=
{
item
.
id
}
>
{
this
.
getItem
(
true
,
form
,
{
...
item
,
isNull
:
true
},
true
)}
<
/Col
>
)}
<
Col
span
=
{
get
===
'mobile'
?
24
:
8
}
style
=
{{
textAlign
:
get
===
'mobile'
?
'right'
:
''
,
paddingRight
:
get
===
'mobile'
?
12
:
''
}}
>
<
span
className
=
{
styles
.
submitButtons
}
>
<
Button
type
=
"primary"
loading
=
{
this
.
props
.
loading
}
onClick
=
{
this
.
handleSearch
}
>
查询
<
/Button
>
<
Button
style
=
{{
marginLeft
:
8
}}
onClick
=
{
this
.
handleFormReset
}
>
重置
<
/Button
>
{
/* <a style={{ marginLeft: 8 }} onClick={this.toggleForm}>
展开 <Icon type="down" />
</a> */
}
<
/span
>
<
/Col
>
<
/Row
>
<
/Form
>
);
}
onSelect
=
(
selectedKeys
,
info
)
=>
{
if
(
info
.
selectedNodes
.
length
>
0
)
{
const
parentId
=
selectedKeys
[
0
]
!=
"0-0"
?
selectedKeys
[
0
]
:
null
this
.
setState
({
parentName
:
info
.
selectedNodes
[
0
].
props
.
title
,
parentId
})
this
.
getPage
({
parentId
:
parentId
})
}
}
onLoadData
=
(
treeNode
)
=>
{
return
new
Promise
((
resolve
)
=>
{
if
(
treeNode
.
props
.
childs
)
{
resolve
();
return
;
}
const
parentId
=
treeNode
.
props
.
eventKey
!=
"0-0"
?
treeNode
.
props
.
eventKey
:
null
this
.
getList
({
parentId
:
parentId
},
(
list
)
=>
{
treeNode
.
props
.
dataRef
.
childs
=
list
;
this
.
setState
({
treeData
:
[...
this
.
state
.
treeData
]
});
resolve
();
})
});
}
renderTreeNodes
=
(
list
)
=>
{
return
list
.
map
((
item
)
=>
{
if
(
item
.
childs
)
{
return
(
<
TreeNode
title
=
{
item
.
title
}
key
=
{
item
.
key
}
dataRef
=
{
item
}
>
{
this
.
renderTreeNodes
(
item
.
childs
)}
<
/TreeNode
>
);
}
return
<
TreeNode
{...
item
}
dataRef
=
{
item
}
/>
;
})
}
refesh
=
(
parentId
,
list
,
data
)
=>
{
if
(
parentId
==
null
)
{
data
[
0
].
childs
=
list
return
data
}
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
if
(
data
[
i
].
key
==
parentId
)
{
data
[
i
].
childs
=
list
break
;
}
else
{
if
(
data
[
i
].
childs
)
{
this
.
refesh
(
parentId
,
list
,
data
[
i
].
childs
)
}
}
}
return
data
}
render
()
{
const
{
modalVisible
,
selectedRows
,
querys
,
tableWidth
,
rights
,
data
,
isReady
,
}
=
this
.
state
;
if
(
!
isReady
){
return
<
div
style
=
{{
width
:
20
,
margin
:
"auto"
}}
><
Spin
/><
/div
>
}
const
{
isFormCom
,
isSelect
,
get
,
callback
,
valueName
,
notShowBack
,
istableCom
,
// 是否有模板设计器调用
}
=
this
.
props
;
const
{
showMobileDiv
,
isView
}
=
this
.
state
let
scrollWidth
=
document
.
documentElement
.
clientWidth
||
document
.
body
.
clientWidth
;
//可使宽度
let
isMobile
=
scrollWidth
<
1200
if
(
document
.
querySelector
(
'#previewDiv'
)){
isMobile
=
true
}
let
showDiv
=
document
.
querySelector
(
'#mobelDiv'
)
&&
document
.
querySelector
(
'#mobelDiv'
)?.
parentNode
.
clientWidth
const
parentMethods
=
{
handleAdd
:
this
.
handleAdd
,
handleModalVisible
:
this
.
handleModalVisible
,
formData
:
this
.
state
.
formData
,
formItem
:
this
.
state
.
formItem
,
isAdd
:
this
.
state
.
isAdd
,
getItem
:
this
.
getItem
,
isView
:
isView
,
};
if
(
!
isSelect
&&!
rights
.
includes
(
'edit'
)
&&!
rights
.
includes
(
'delete'
)
&&!
rights
.
includes
(
"view"
)
&&!
rights
.
includes
(
"viewProcess"
)){
}
else
{
let
width
=
0
;
if
(
rights
&&
rights
.
includes
(
'viewProcess'
)){
width
=
width
+
75
;
}
if
(
rights
&&
rights
.
includes
(
'view'
)){
width
=
width
+
75
;
}
if
(
rights
&&
rights
.
includes
(
'edit'
)){
width
=
width
+
40
;
}
if
(
rights
&&
rights
.
includes
(
'delete'
)){
width
=
width
+
40
;
}
const
column
=
{
title
:
'操作'
,
fixed
:
'right'
,
width
:
width
,
render
:
(
text
,
record
)
=>
{
return
<
Fragment
>
<
div
style
=
{{
textAlign
:
'center'
}}
>
{
isSelect
?
this
.
state
.
selects
.
includes
(
record
[
valueName
])
?
<><
span
>
已选择
<
/span><Divide
r
type
=
"vertical"
/><
/> : <><
a
onClick
=
{
callback
.
bind
(
this
,
record
,
this
.
columns
)}
>
选择
<
/a><Divide
r
type
=
"vertical"
/><
/> : ''
}
{
rights
&&
!
rights
.
includes
(
'view'
)
?
''
:
<><
a
onClick
=
{
this
.
view
.
bind
(
this
,
record
)}
>
查看详情
<
/a><Divider type="vertical"/
><
/>
}
{
rights
&&
!
rights
.
includes
(
'edit'
)
?
''
:
<><
a
onClick
=
{
this
.
modify
.
bind
(
this
,
record
)}
>
编辑
<
/a><Divider type="vertical"/
><
/>
}
{
rights
&&
rights
.
includes
(
"viewProcess"
)
&&
record
.
process_biz_key
?
<><
a
onClick
=
{
this
.
viewProcess
.
bind
(
this
,
record
)}
>
查看流程详情
<
/a><Divider type="vertical"/
><
/>:''
}
{
rights
&&
!
rights
.
includes
(
'delete'
)
?
''
:
<>
<
Popconfirm
title
=
"确定删除该数据?"
onConfirm
=
{
this
.
delete
.
bind
(
this
,
record
)}
okText
=
"确定"
cancelText
=
"取消"
>
<
a
>
删除
<
/a
>
<
/Popconfirm></
>
}
<
/div
>
<
/Fragment
>
}
}
if
(
this
.
columns
.
length
>
0
&&
this
.
columns
[
this
.
columns
.
length
-
1
].
title
==
"操作"
){
this
.
columns
[
this
.
columns
.
length
-
1
]
=
column
;
}
else
{
this
.
columns
.
push
(
column
);
}
}
if
(
this
.
columns
){
/**
* 计算总长度
*/
AllWidth
=
0
this
.
columns
=
this
.
columns
.
map
((
item
,
index
)
=>
{
if
(
isEmpty
(
item
)){
return
item
}
if
(
index
===
this
.
columns
.
length
-
1
&&
this
.
columns
[
this
.
columns
.
length
-
1
].
title
!==
'操作'
){
AllWidth
+=
150
item
.
width
=
''
return
item
}
let
width
=
item
.
width
?
item
.
width
:
150
if
(
!
item
.
width
){
item
.
width
=
150
}
AllWidth
+=
width
return
item
})
if
(
!
isEmpty
(
this
.
columns
[
this
.
columns
.
length
-
1
])
&&
this
.
columns
[
this
.
columns
.
length
-
1
].
title
===
'操作'
){
this
.
columns
[
this
.
columns
.
length
-
2
].
width
=
''
AllWidth
+=
100
}
}
const
xxxx
=
<>
<
Row
gutter
=
{
16
}
>
<
Col
span
=
{
4
}
>
<
Card
bordered
=
{
false
}
style
=
{{
minHeight
:
500
}}
>
<
Tree
showLine
defaultExpandedKeys
=
{[
"0-0"
]}
onSelect
=
{
this
.
onSelect
}
loadData
=
{
this
.
onLoadData
}
>
{
this
.
renderTreeNodes
(
this
.
state
.
treeData
)}
<
/Tree>
<
/Card
>
<
/Col
>
<
Col
span
=
{
20
}
>
<
Card
bordered
=
{
false
}
bodyStyle
=
{{
padding
:
0
}}
>
<
div
className
=
{
styles
.
tableList
}
>
<
div
className
=
{
styles
.
tableListForm
}
>
{
this
.
renderForm
()}
<
/div
>
<
div
className
=
{
styles
.
tableListOperator
}
>
{
notShowBack
?
notShowBack
:
<
Button
icon
=
"rollback"
type
=
"primary"
onClick
=
{
this
.
goBack
}
>
返回
<
/Button>
}
{
rights
&&
!
rights
.
includes
(
'add'
)
?
''
:
<
Button
icon
=
"plus"
type
=
"primary"
onClick
=
{
this
.
add
}
>
新建
<
/Button>
}
{
rights
&&
!
rights
.
includes
(
'searchData'
)
?
''
:
<
SearchInfo
hanldeHighSearch
=
{
this
.
hanldeHighSearch
}
objId
=
{
this
.
state
.
objId
}
/>
}
{
rights
&&
!
rights
.
includes
(
'importData'
)
?
''
:
<
ImportUtil
objId
=
{
this
.
state
.
objId
}
/>
}
{
rights
&&
!
rights
.
includes
(
'exportCurrent'
)
?
''
:
<
ExportCurrentInfo
objId
=
{
this
.
state
.
objId
}
query
=
{
JSON
.
stringify
(
this
.
state
.
formValues
)}
custom
=
{
this
.
props
.
value
?
Base16Encode
(
JSON
.
stringify
(
this
.
props
.
value
)):
null
}
sql
=
{
Base16Encode
(
this
.
props
.
sql
)}
/>
}
{
rights
&&
!
rights
.
includes
(
'exportData'
)
?
''
:
<
ExportInfo
objId
=
{
this
.
state
.
objId
}
/>
}
{
rights
&&
!
rights
.
includes
(
'statistics'
)
?
''
:
<
StatisticsInfo
objId
=
{
this
.
state
.
objId
}
/>
}
{
rights
&&
!
rights
.
includes
(
'delete'
)
?
''
:
selectedRows
.
length
>
0
&&
(
<
span
>
<
Popconfirm
title
=
"确定删除该数据?"
onConfirm
=
{
this
.
batchDelete
}
okText
=
"确定"
cancelText
=
"取消"
>
<
Button
>
批量删除
<
/Button></
Popconfirm
>
<
/span
>
)}
<
/div
>
{
(
!
istableCom
)
||
(
this
.
props
.
value
&&
this
.
props
.
value
.
columns
)?
<
StandardTable
showHeader
=
{
this
.
props
.
showHeader
!=
null
?
this
.
props
.
showHeader
:
true
}
noSelectRow
=
{
this
.
props
.
onSelectRow
==
null
&&
(
rights
==
null
||
!
rights
.
includes
(
'delete'
))
}
rowKey
=
"id"
data
=
{
data
}
isHiddenPage
=
{
this
.
props
.
isHiddenPage
!=
null
?
this
.
props
.
isHiddenPage
:
false
}
columns
=
{
this
.
columns
}
scroll
=
{
this
.
props
.
value
&&
this
.
props
.
value
.
columns
?{}:{
x
:
AllWidth
}}
selectedRows
=
{
selectedRows
}
onSelectRow
=
{
this
.
handleSelectRows
}
onChange
=
{
this
.
handleStandardTableChange
}
loading
=
{
this
.
props
.
loading
}
/
>
:
<
div
id
=
'mobelDiv'
style
=
{{
overflow
:
'hidden'
,
width
:
isMobile
?
showMobileDiv
:
showDiv
,
height
:
'100%'
}}
>
<
div
>
{
get
===
'mobile'
?
<
div
>
手机端
,
请将手机横屏查看
<
/div
>
:
null
}
{
showDiv
&&<
StandardTable
showHeader
=
{
this
.
props
.
showHeader
!=
null
?
this
.
props
.
showHeader
:
true
}
noSelectRow
=
{
this
.
props
.
onSelectRow
==
null
&&
(
rights
==
null
||
!
rights
.
includes
(
'delete'
))
}
rowKey
=
"id"
data
=
{
data
}
columns
=
{
this
.
columns
}
scroll
=
{
this
.
props
.
value
&&
this
.
props
.
value
.
columns
?{}:{
x
:
AllWidth
}}
selectedRows
=
{
selectedRows
}
isHiddenPage
=
{
this
.
props
.
isHiddenPage
!=
null
?
this
.
props
.
isHiddenPage
:
false
}
onSelectRow
=
{
this
.
handleSelectRows
}
onChange
=
{
this
.
handleStandardTableChange
}
loading
=
{
this
.
props
.
loading
}
/
>
}
<
/div
>
<
/div
>
}
<
/div
>
<
/Card></
Col
><
/Row
>
<
CreateForm
{...
parentMethods
}
modalVisible
=
{
modalVisible
}
/></
>
if
(
isFormCom
)
{
return
xxxx
}
return
(
<
PageHeaderWrapper
title
=
""
>
{
xxxx
}
<
/PageHeaderWrapper
>
);
}
}
export
default
TreeList
;
one_stop_public/libs/formList/index.js
浏览文件 @
f26b3f45
...
...
@@ -30,13 +30,11 @@ import StatisticsInfo from '../../App/StatisticsInfo';
import
ImportUtil
from
'../../App/ImportUtil'
;
import
SearchInfo
from
'../../App/SearchInfo'
;
import
{
Base16Encode
}
from
"../../Base16/index"
;
import
baseX
from
'base-x'
import
{
isEmpty
}
from
'lodash'
import
FilePreview
from
"@/webPublic/one_stop_public/filePreview"
;
import
{
queryApiActionPath
}
from
"@/webPublic/one_stop_public/utils/queryConfig"
;
import
UploadCom
from
"@/webPublic/one_stop_public/libs/UploadCom"
;
const
BASE16
=
'0123456789abcdef'
const
bs16
=
baseX
(
BASE16
)
const
FormItem
=
Form
.
Item
;
let
AllWidth
=
0
;
// 表格总长度
const
{
RangePicker
}
=
DatePicker
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论