Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
T
TOSTUMI
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Maple
TOSTUMI
Commits
177a89dd
Commit
177a89dd
authored
Oct 28, 2020
by
cellee
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'final' of
http://120.77.240.215:9701/Maple/tostumi.git
into final
parents
5b1d2f00
de18cd4d
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
629 additions
and
435 deletions
+629
-435
TitleSearch.tsx
src/components/TitleSearch/TitleSearch.tsx
+12
-31
PropertyManagement.ts
src/models/PropertyManagement.ts
+11
-17
ChargeDetail.less
src/pages/PropertyManagement/ChargeDetail.less
+12
-0
ChargeDetail.tsx
src/pages/PropertyManagement/ChargeDetail.tsx
+8
-4
ChargeManager.tsx
src/pages/PropertyManagement/ChargeManager.tsx
+74
-30
Users.tsx
src/pages/UserManagement/LIFEUserManagement/Users.tsx
+175
-127
UsersAdd.less
src/pages/UserManagement/LIFEUserManagement/UsersAdd.less
+31
-5
UsersAdd.tsx
src/pages/UserManagement/LIFEUserManagement/UsersAdd.tsx
+24
-32
Edit.tsx
src/pages/UserManagement/ServiceProviderManagement/Edit.tsx
+97
-70
ServiceProviderManagement.tsx
...t/ServiceProviderManagement/ServiceProviderManagement.tsx
+185
-119
No files found.
src/components/TitleSearch/TitleSearch.tsx
View file @
177a89dd
...
...
@@ -14,30 +14,25 @@ import { gray } from 'chalk';
import
SearchOptionsCommnity
from
'../SearchOptions/SearchOptionsCommnity'
;
const
TitleSearch
=
(
props
:
any
)
=>
{
// console.log("===================================", props)
const
{
dispatch
,
CommunityList
}
=
props
;
const
{
dispatch
,
CommunityList
,
single
,
checklist
,
status
,
communitySelect
,
defaultValue
,
time
,
username
,
}
=
props
;
const
key
=
props
.
listkey
;
console
.
log
(
props
);
const
name
=
props
.
list
;
// const single = props.single
// const checklist = props.checklist;
// const status = props.status;
// const communitySelect = props.communitySelect
// const defaultValue = props.defaultValue;
// const time = props.time;
// username 为 小区列表管理者名字筛选
const
{
single
,
checklist
,
status
,
communitySelect
,
defaultValue
,
time
,
username
}
=
props
;
const
community
=
props
.
community
;
const
[
selectOptions
,
setSelectOptions
]
=
useState
(
true
);
const
[
communitys
,
setCommunitys
]
=
useState
(
CommunityList
);
const
[
communitySingle
,
setCommunitySingle
]
=
useState
(
null
);
const
[
datePicker
,
setDate
]
=
useState
(
null
);
const
[
datePicker
,
setDate
]
=
useState
(
null
as
any
);
const
[
form
]
=
Form
.
useForm
();
...
...
@@ -197,23 +192,9 @@ const TitleSearch = (props: any) => {
);
};
function
mapStateToProps
(
state
:
any
)
{
// console.log("state参数",state)
const
{
CommunityList
}
=
state
.
Init
;
return
{
CommunityList
,
};
}
export
default
connect
(
mapStateToProps
)(
TitleSearch
);
// time={["key","预订时间筛选"]}
// status = [{name:"status",data:["处理", "未处理"]}]
// listkey={['A', 'C']} list={['订单状态', '预订时间筛选']}
// <TitleSearch
// status={[{
// name: ["status", "订单状态"],
// data: [[0, "全部"], [1, "已申请"], [2, "已预订"], [3, "已使用"], [4, "已取消"]]
// }]}
// time={["key", "预订时间筛选"]}
// community={"communityName"}
// // single={true}
// onSubmit={CallBackTitleSearch} />
src/models/PropertyManagement.ts
View file @
177a89dd
import
*
as
service
from
'../services/PropertyManagementServices'
;
import
{
message
}
from
'antd'
;
import
{
routerRedux
}
from
'dva/router'
export
default
{
namespace
:
'PropertyManagement'
,
state
:
{
Data
:
''
,
CurData
:
''
,
Data
:
null
,
CurData
:
''
,
},
reducers
:
{
returnData
(
state
,
{
Data
}
)
{
returnData
(
state
:
{},
{
Data
}:
any
)
{
return
{
...
state
,
Data
};
},
returnCurData
(
state
,
{
CurData
}
)
{
returnCurData
(
state
:
{},
{
CurData
}:
any
)
{
return
{
...
state
,
CurData
};
},
},
effects
:
{
//获取物业费列表
*
get
({
playload
}
,
{
call
,
put
}
)
{
console
.
log
(
playload
)
*
get
({
playload
}
:
any
,
{
call
,
put
}:
any
)
{
console
.
log
(
playload
)
;
const
resp
=
yield
call
(
service
.
get
,
playload
);
console
.
log
(
resp
)
let
Data
=
resp
.
data
.
rows
;
yield
put
({
type
:
'returnData'
,
Data
,
});
console
.
log
(
resp
)
;
let
Data
=
resp
.
data
;
yield
put
({
type
:
'returnData'
,
Data
});
},
*
getById
({
playload
}
,
{
call
,
put
}
)
{
*
getById
({
playload
}
:
any
,
{
call
,
put
}:
any
)
{
let
CurData
=
playload
;
yield
put
({
type
:
'returnCurData'
,
CurData
,
});
yield
put
({
type
:
'returnCurData'
,
CurData
});
},
},
};
src/pages/PropertyManagement/ChargeDetail.less
View file @
177a89dd
...
...
@@ -139,3 +139,15 @@
.box4 {
padding-left: 200px;
}
.time1 {
position: absolute;
top: -60px;
left: 200px;
}
.time2 {
position: absolute;
top: -60px;
left: 285px;
}
src/pages/PropertyManagement/ChargeDetail.tsx
View file @
177a89dd
...
...
@@ -53,6 +53,8 @@ const ChargeDetail = (props: any) => {
/>
<
div
className=
{
styles
.
box2
}
>
<
div
className=
{
styles
.
time1
}
>
uploadTime :
</
div
>
<
div
className=
{
styles
.
time2
}
>
01-01-2020
</
div
>
<
div
className=
{
styles
.
item21
}
>
Project (community)
</
div
>
<
div
className=
{
styles
.
item22
}
>
{
CurData
.
communityName
}
</
div
>
<
div
className=
{
styles
.
item23
}
>
Street name
</
div
>
...
...
@@ -63,17 +65,19 @@ const ChargeDetail = (props: any) => {
<
div
className=
{
styles
.
item26
}
>
{
CurData
.
roomNumber
}
</
div
>
<
div
className=
{
styles
.
item27
}
>
业主姓名
</
div
>
</
div
>
{
/* <>{stringSplit(CurData.billFileUrl, 'm/cash')}</> */
}
{
/*
<div className={styles.box4}>
<>
{
stringSplit
(
CurData
.
billFileUrl
,
'm/cash'
)
}
</>
<
div
className=
{
styles
.
box4
}
>
<
Pagination
simple
defaultCurrent=
{
curpage
}
total=
{
pages
*
10
}
onChange=
{
pageChange
}
/>
</div>
*/
}
</
div
>
<>
<
Tooltip
title=
{
scale
==
1.3
?
'点击放大查看'
:
'还原视图'
}
>
<
div
className=
{
scale
==
1.3
?
styles
.
box3out
:
null
}
>
<
div
className=
{
scale
==
1.3
?
styles
.
box3
:
styles
.
box3of
}
onClick=
{
lookup
}
>
<
PDF
key=
"pdfjs"
file=
{
stringSplit
(
CurData
.
billFileUrl
,
'm/cash'
)
}
file=
{
'data:application/pdf;base64,'
+
stringSplit
(
CurData
.
billFileUrl
,
'm/cash'
)
}
workerSrc=
"//cdnjs.cloudflare.com/ajax/libs/pdf.js/2.2.228/pdf.worker.js"
scale=
{
scale
}
page=
{
curpage
}
...
...
src/pages/PropertyManagement/ChargeManager.tsx
View file @
177a89dd
...
...
@@ -8,40 +8,28 @@ import { Link, useIntl, connect, Dispatch, history } from 'umi';
import
{
timestampToTime
}
from
'../../utils/time'
;
import
{
values
}
from
'lodash'
;
import
{
filterObj
,
urlEncode
}
from
'@/utils/method'
;
import
TitleSearch
from
'../../components/TitleSearch/TitleSearch'
;
let
readyData
:
object
=
{
tosOwnerName
:
''
,
communityName
:
''
,
pageNum
:
1
,
};
const
ChargeManager
=
(
props
:
any
)
=>
{
const
{
formatMessage
}
=
useIntl
();
const
{
dispatch
,
location
,
Data
}
=
props
;
const
get
=
(
values
:
any
)
=>
{
dispatch
({
type
:
'PropertyManagement/get'
,
playload
:
values
});
};
const
getById
=
(
values
:
any
)
=>
{
dispatch
({
type
:
'PropertyManagement/getById'
,
playload
:
values
});
};
useEffect
(()
=>
{
get
(
null
);
},
[]);
const
nameofowner
=
formatMessage
({
id
:
'R.charge.input.nameofowner'
});
const
inputProject
=
formatMessage
({
id
:
'R.charge.input.project'
});
const
{
formatMessage
}
=
useIntl
();
const
username
=
formatMessage
({
id
:
'R.charge.username'
});
const
project
=
formatMessage
({
id
:
'R.charge.project'
});
const
unit
=
formatMessage
({
id
:
'R.charge.unit'
});
const
status
=
formatMessage
({
id
:
'R.charge.status'
});
const
submissionTime
=
formatMessage
({
id
:
'R.charge.submissionTime'
});
const
actions
=
formatMessage
({
id
:
'R.charge.actions'
});
const
search
=
formatMessage
({
id
:
'R.charge.search'
});
const
addaccount
=
formatMessage
({
id
:
'R.charge.addaccount'
});
const
paymentsetting
=
formatMessage
({
id
:
'R.charge.paymentsetting'
});
const
menuListNormal
=
[
'A'
,
'Accounting company'
];
const
[
display
,
setDisplay
]
=
useState
(
'A'
);
//小组件:线框
const
pagination
=
{
defaultCurrent
:
15
,
total
:
16
,
};
const
[
loading
,
setLoading
]
=
useState
(
false
);
const
goToDetail
=
(
values
:
any
)
=>
{
getById
(
values
);
...
...
@@ -50,6 +38,55 @@ const ChargeManager = (props: any) => {
const
goToAddAccout
=
()
=>
{
history
.
push
(
location
.
pathname
+
'/AccoutingDetail'
);
};
const
getById
=
(
values
:
any
)
=>
{
dispatch
({
type
:
'PropertyManagement/getById'
,
playload
:
values
});
};
const
get
=
(
values
:
any
)
=>
{
dispatch
({
type
:
'PropertyManagement/get'
,
playload
:
values
});
};
useEffect
(()
=>
{
if
(
location
.
query
)
{
readyData
=
{
...
readyData
,
...
location
.
query
,
};
setLoading
(
true
);
get
({
...
readyData
,
});
}
},
[
location
]);
useEffect
(()
=>
{
if
(
Data
!=
null
)
{
console
.
log
(
Data
);
setLoading
(
false
);
}
},
[
Data
]);
const
TitleSearchContent
=
(
comment
:
any
)
=>
{
history
.
push
(
location
.
pathname
+
urlEncode
(
filterObj
({
...
comment
,
pageNum
:
1
,
}),
),
);
};
const
changePage
=
(
values
:
any
)
=>
{
let
tmp
=
{
...
location
.
query
,
pageNum
:
values
.
current
,
};
history
.
push
(
location
.
pathname
+
urlEncode
(
filterObj
(
tmp
)));
};
const
columns
=
[
{
title
:
username
,
dataIndex
:
'tosOwnerName'
},
{
title
:
project
,
dataIndex
:
'communityName'
},
...
...
@@ -69,20 +106,25 @@ const ChargeManager = (props: any) => {
),
},
];
const
TitleSearchContent
=
(
comment
:
any
)
=>
{
console
.
log
(
comment
);
const
pagination
=
{
defaultPageSize
:
15
,
total
:
Data
&&
Data
.
page
.
totalRow
,
showSizeChanger
:
false
,
};
return
(
<
div
className=
{
styles
.
base
}
>
<
TitleSearch
listkey=
{
[
'tosOwnerName'
,
'communityName'
]
}
list=
{
[
'tosOwnerName'
,
'communityName'
]
}
onSubmit=
{
TitleSearchContent
}
defaultValue=
{
{
...
readyData
}
}
/>
{
/* 内容组件 */
}
<
div
className=
{
styles
.
box2
}
>
{
menuListNormal
.
map
((
item
,
index
)
=>
{
{
/* {
menuListNormal.map((item, index) => {
return (
<button
key={'bt' + index}
...
...
@@ -94,20 +136,22 @@ const ChargeManager = (props: any) => {
{item}
</button>
);
})
}
<
button
className=
{
styles
.
buttonAdd
2
}
onClick=
{
goToAddAccout
}
>
})}
*/
}
<
button
className=
{
styles
.
buttonAdd
}
onClick=
{
goToAddAccout
}
>
+
{
addaccount
}{
' '
}
</
button
>
<
button
className=
{
styles
.
buttonAdd
}
>
{
paymentsetting
}
</
button
>
{
/* <button className={styles.buttonAdd}>{paymentsetting}</button> */
}
</
div
>
{
/* 列表组件 */
}
<
Table
style=
{
{
marginTop
:
16
}
}
rowKey=
{
'id'
}
dataSource=
{
Data
}
loading=
{
loading
}
dataSource=
{
Data
!=
null
?
Data
.
list
:
[]
}
columns=
{
columns
}
pagination=
{
pagination
}
onChange=
{
changePage
}
/>
</
div
>
);
...
...
src/pages/UserManagement/LIFEUserManagement/Users.tsx
View file @
177a89dd
...
...
@@ -8,64 +8,86 @@ import { Link, useIntl, connect, Dispatch, history } from 'umi';
import
TitleSearch
from
'../../../components/TitleSearch/TitleSearch'
;
import
{
timestampToTime
}
from
'../../../utils/time'
;
import
{
PAGE
,
RA
,
URLCLEAR
,
getCookie
,
DataClear
,
URL
,
filterObjbyTg
,
urlEncode
,
filterObj
}
from
'@/utils/method'
;
import
{
PAGE
,
RA
,
URLCLEAR
,
getCookie
,
DataClear
,
URL
,
filterObjbyTg
,
urlEncode
,
filterObj
,
}
from
'@/utils/method'
;
import
PageData
from
'@/models/Common/PageData'
;
const
module
=
"User"
const
module2
=
"History"
const
module3
=
"PageData"
const
Users
=
(
props
:
any
)
=>
{
const
module
=
'User'
;
const
module2
=
'History'
;
const
module3
=
'PageData'
;
// const string2mean = [[0, "未注册"], [1, "注册"], [2, "注销"]]
const
string2mean
=
[
[
0
,
'Unregistered'
],
[
1
,
'Registered'
],
[
2
,
'Deregistered'
],
];
// 筛选条件对象
let
readyData
:
any
=
{
pageNum
:
1
,
owerName
:
''
,
communityArray
:
[],
};
// 节流阀
let
flag
:
boolean
=
false
;
const
Users
=
(
props
:
any
)
=>
{
const
{
formatMessage
}
=
useIntl
();
const
{
dispatch
,
location
,
Data
,
CommunityList
,
pageData
,
history_url
}
=
props
;
const
SA
=
(
values
:
any
)
=>
{
dispatch
({
type
:
'User/SA'
,
playload
:
values
})
};
const
nameofowner
=
formatMessage
({
id
:
'R.charge.input.nameofowner'
})
const
inputProject
=
formatMessage
({
id
:
'R.charge.input.project'
})
const
username
=
formatMessage
({
id
:
'R.charge.username'
})
const
project
=
formatMessage
({
id
:
'R.charge.project'
})
const
unit
=
formatMessage
({
id
:
'R.charge.unit'
})
const
status
=
formatMessage
({
id
:
'R.charge.status'
})
const
submissionTime
=
formatMessage
({
id
:
'R.charge.submissionTime'
})
const
actions
=
formatMessage
({
id
:
'R.charge.actions'
})
const
search
=
formatMessage
({
id
:
'R.charge.search'
})
const
addaccount
=
formatMessage
({
id
:
'R.charge.addaccount'
})
const
paymentsetting
=
formatMessage
({
id
:
'R.charge.paymentsetting'
})
// const string2mean = [[0, "未注册"], [1, "注册"], [2, "注销"]]
const
string2mean
=
[[
0
,
"Unregistered"
],
[
1
,
"Registered"
],
[
2
,
"Deregistered"
]]
const
[
curString
,
setCurString
]
=
useState
({
defaultCurrent
:
1
})
const
[
loading
,
setLoading
]
=
useState
(
false
)
const
[
fileUploading
,
setFileUploading
]
=
useState
(
false
)
const
SA
=
(
values
:
any
)
=>
{
dispatch
({
type
:
'User/SA'
,
playload
:
values
});
};
const
[
compent
,
setCompent
]
=
useState
({
loading
:
false
,
fileUploading
:
false
})
const
[
pageStart
,
setPageStart
]
=
useState
(
false
)
const
username
=
formatMessage
({
id
:
'R.charge.username'
});
const
project
=
formatMessage
({
id
:
'R.charge.project'
});
const
unit
=
formatMessage
({
id
:
'R.charge.unit'
});
const
status
=
formatMessage
({
id
:
'R.charge.status'
});
const
submissionTime
=
formatMessage
({
id
:
'R.charge.submissionTime'
});
const
actions
=
formatMessage
({
id
:
'R.charge.actions'
});
const
[
TestData
,
setTestData
]
=
useState
({})
// 存储当前页码
const
[
pageNum
,
setPageNum
]
=
useState
(
1
)
// 存储小区筛选条件
const
[
readyData
,
setReadyData
]
=
useState
(
null
as
any
)
const
[
loading
,
setLoading
]
=
useState
(
false
);
const
[
fileUploading
,
setFileUploading
]
=
useState
(
false
);
const
[
compent
,
setCompent
]
=
useState
({
loading
:
false
,
fileUploading
:
false
});
// 表格模块
const
columns
=
[
{
title
:
username
,
dataIndex
:
'owerName'
,
},
{
title
:
project
,
dataIndex
:
'communityName'
,
},
// { title: project, dataIndex: 'unit', },
// { title: unit, dataIndex: 'living', },
{
title
:
unit
,
render
:
(
text
:
any
,
record
:
any
)
=>
(<
div
>
{
record
.
buildingNumber
+
"#"
+
record
.
floorNumber
+
"—"
+
record
.
roomNumber
}
</
div
>)
},
{
title
:
status
,
dataIndex
:
'enable'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(<
div
>
{
string2mean
[
text
][
1
]
}
</
div
>)
},
{
title
:
submissionTime
,
render
:
(
text
:
any
,
record
:
any
)
=>
(<
div
>
{
timestampToTime
(
record
.
createTime
.
time
)
}
</
div
>)
},
{
title
:
username
,
dataIndex
:
'owerName'
},
{
title
:
project
,
dataIndex
:
'communityName'
},
{
title
:
unit
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
<
div
>
{
record
.
buildingNumber
+
'#'
+
record
.
floorNumber
+
'—'
+
record
.
roomNumber
}
</
div
>
),
},
{
title
:
status
,
dataIndex
:
'enable'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
div
>
{
string2mean
[
text
][
1
]
}
</
div
>,
},
{
title
:
submissionTime
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
div
>
{
timestampToTime
(
record
.
createTime
.
time
)
}
</
div
>,
},
{
title
:
actions
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
<
Space
size=
"middle"
>
<
a
onClick=
{
goToEdit
.
bind
(
this
,
record
)
}
disabled=
{
record
.
enable
==
2
?
true
:
false
}
>
Edit
</
a
>
<
a
onClick=
{
goToEdit
.
bind
(
this
,
record
)
}
disabled=
{
record
.
enable
==
2
?
true
:
false
}
>
Edit
</
a
>
<
a
onClick=
{
goToDetail
.
bind
(
this
,
record
)
}
>
Detail
</
a
>
</
Space
>
),
...
...
@@ -75,132 +97,156 @@ const Users = (props: any) => {
// 上传的模块
const
propsUpload
=
{
name
:
'file'
,
action
:
()
=>
{
return
"http://47.74.233.180:8651/tos/excel/upload?userId="
+
getCookie
(
"id"
)
},
action
:
()
=>
{
return
'http://47.74.233.180:8651/tos/excel/upload?userId='
+
getCookie
(
'id'
);
},
beforeUpload
:
(
file
:
any
)
=>
{
if
(
file
.
type
!==
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
)
{
if
(
file
.
type
!==
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
)
{
message
.
error
(
`
${
file
.
name
}
file format is incorrect!`
);
}
return
file
.
type
===
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
;
},
onChange
(
info
:
any
)
{
if
(
info
.
file
.
status
==
'uploading'
)
{
setFileUploading
(
true
)
setFileUploading
(
true
)
;
}
if
(
info
.
file
.
status
===
'done'
)
{
if
(
info
.
file
.
response
.
error_code
==
"0000"
)
{
history
.
push
(
location
.
pathname
+
"/Result"
)
if
(
info
.
file
.
response
.
error_code
==
'0000'
)
{
history
.
push
(
location
.
pathname
+
'/Result'
);
}
else
{
history
.
push
(
location
.
pathname
+
"/ResultFailed"
)
message
.
error
(
`
${
info
.
file
.
name
}
file upload failed.`
+
'failed count is '
+
info
.
file
.
response
.
data
.
count
);
setFileUploading
(
false
)
history
.
push
(
location
.
pathname
+
'/ResultFailed'
);
message
.
error
(
`
${
info
.
file
.
name
}
file upload failed.`
+
'failed count is '
+
info
.
file
.
response
.
data
.
count
,
);
setFileUploading
(
false
);
}
}
else
if
(
info
.
file
.
status
===
'error'
)
{
message
.
error
(
`
${
info
.
file
.
name
}
file upload failed.`
);
setFileUploading
(
false
)
setFileUploading
(
false
)
;
}
},
showUploadList
:
false
,
}
}
;
//
判断数据是否回来
//
监听路由变化更新数据
useEffect
(()
=>
{
if
(
Data
!=
null
)
{
setLoading
(
false
)
if
(
location
.
query
)
{
readyData
=
{
...
readyData
,
...
location
.
query
,
};
}
},
[
Data
])
useEffect
(()
=>
{
if
(
location
.
query
.
owerName
)
{
setTestData
({
OwnerName
:
location
.
query
.
owerName
})
if
(
CommunityList
&&
flag
===
false
)
{
flag
=
true
;
getList
(
CommunityList
);
}
setPageNum
(
parseInt
(
location
.
query
.
pageNum
)
||
1
)
},
[
location
]);
setLoading
(
true
)
// 监听小区列表是否回来
useEffect
(()
=>
{
if
(
CommunityList
&&
flag
===
false
)
{
flag
=
true
;
getList
(
CommunityList
);
}
},
[
CommunityList
]);
// 请求拿取数据
const
getList
=
(
CommunityList
:
[])
=>
{
if
(
readyData
.
communityArray
.
length
===
0
)
{
readyData
.
communityArray
=
CommunityList
;
}
setLoading
(
true
);
//获取数据
RA
(
12
,
{
owerName
:
location
.
query
.
owerName
!==
undefined
?
(
location
.
query
.
owerName
)
:
null
,
communityArray
:
(
readyData
===
null
||
readyData
.
length
===
0
)
?
CommunityList
:
readyData
,
pageNum
:
location
.
query
.
pageNum
||
1
},
module
,
dispatch
);
RA
(
12
,
{
...
readyData
,
},
module
,
dispatch
,
);
};
},
[
location
])
// 判断数据是否回来
useEffect
(()
=>
{
if
(
Data
!=
null
)
{
flag
=
false
;
setLoading
(
false
);
}
},
[
Data
]);
const
goToDetail
=
(
values
:
any
,
e
:
any
)
=>
{
SA
(
values
)
PAGE
(
readyData
,
module3
,
dispatch
)
//保存页面参数
history
.
push
(
location
.
pathname
+
'/Detail'
)
}
SA
(
values
)
;
history
.
push
(
location
.
pathname
+
'/Detail'
);
};
const
goToEdit
=
(
values
:
any
,
e
:
any
)
=>
{
SA
(
values
)
PAGE
(
readyData
,
module3
,
dispatch
)
URL
({
pathname
:
location
.
pathname
+
'/Edit'
,
status
:
1
},
module2
,
dispatch
)
history
.
push
(
location
.
pathname
+
'/Edit'
)
}
SA
(
values
);
URL
({
pathname
:
location
.
pathname
+
'/Edit'
,
status
:
1
},
module2
,
dispatch
);
history
.
push
(
location
.
pathname
+
'/Edit'
);
};
const
goToAdd
=
()
=>
{
URL
({
pathname
:
location
.
pathname
+
'/Add'
,
status
:
1
},
module2
,
dispatch
)
history
.
push
(
location
.
pathname
+
'/Add'
)
}
URL
({
pathname
:
location
.
pathname
+
'/Add'
,
status
:
1
},
module2
,
dispatch
)
;
history
.
push
(
location
.
pathname
+
'/Add'
)
;
}
;
// LIFE用户管理页面的搜索按钮
const
CallBackTitleSearch
=
(
comment
:
any
)
=>
{
// 将筛选条件存储起来
setReadyData
(
comment
.
serviceCommunityList
)
setPageNum
(
1
)
console
.
log
(
comment
);
readyData
.
communityArray
=
comment
.
serviceCommunityList
;
/*页面跳转*/
if
(
comment
.
OwnerName
)
{
history
.
push
(
location
.
pathname
+
urlEncode
(
filterObj
({
history
.
push
(
location
.
pathname
+
urlEncode
(
filterObj
({
owerName
:
comment
.
OwnerName
,
pageNum
:
1
,
})))
}
else
{
history
.
push
(
location
.
pathname
+
urlEncode
(
filterObj
({
pageNum
:
1
,
})))
}
}
}),
),
);
};
// 切换页码
const
pageChange
=
(
values
:
any
)
=>
{
// 将当前页码存储起来
setPageNum
(
values
.
current
)
/*页面跳转*/
var
tmp
=
filterObjbyTg
(
location
.
query
,
[])
tmp
[
"pageNum"
]
=
values
.
current
location
.
query
.
owerName
?
tmp
[
"owerName"
]
=
location
.
query
.
owerName
:
null
history
.
push
(
location
.
pathname
+
urlEncode
(
tmp
))
}
var
tmp
=
filterObjbyTg
(
location
.
query
,
[
'owerName'
]);
tmp
[
'pageNum'
]
=
values
.
current
;
history
.
push
(
location
.
pathname
+
urlEncode
(
tmp
));
};
return
(
<
div
className=
{
styles
.
base
}
>
{
/* 头部组件 */
}
<
TitleSearch
listkey=
{
[
"OwnerName"
]
}
list=
{
[
"Owner Name"
]
}
community=
{
"serviceCommunityList"
}
listkey=
{
[
'OwnerName'
]
}
list=
{
[
'Owner Name'
]
}
community=
{
'serviceCommunityList'
}
onSubmit=
{
CallBackTitleSearch
}
defaultValue=
{
TestData
}
checklist=
{
pageData
}
defaultValue=
{
{
OwnerName
:
readyData
.
owerName
}
}
checklist=
{
readyData
.
communityArray
.
length
!==
0
?
readyData
.
communityArray
:
null
}
/>
{
/* 内容组件 */
}
<
div
className=
{
styles
.
box2
}
>
<
button
className=
{
styles
.
buttonAdd2
}
onClick=
{
goToAdd
}
>
Create New Owner
</
button
>
<
div
className=
{
styles
.
buttonAdd
}
>
<
button
className=
{
styles
.
buttonAdd2
}
onClick=
{
goToAdd
}
>
Create New Owner
</
button
>
<
div
className=
{
styles
.
buttonAdd
}
>
<
Upload
{
...
propsUpload
}
>
<
Button
icon=
{
compent
.
fileUploading
?
null
:
<
UploadOutlined
/>
}
>
{
compent
.
fileUploading
?
{
compent
.
fileUploading
?
(
<>
<
Spin
indicator=
{
<
LoadingOutlined
style=
{
{
fontSize
:
16
}
}
spin
/>
}
/>
Uploading
</>
:
"Batch Upload"
}
)
:
(
'Batch Upload'
)
}
</
Button
>
</
Upload
>
</
div
>
...
...
@@ -208,25 +254,31 @@ const Users = (props: any) => {
{
/* 列表组件 */
}
<
Table
rowKey=
{
"id"
}
rowKey=
{
'id'
}
loading=
{
loading
}
style=
{
{
marginTop
:
16
}
}
dataSource=
{
Data
!=
null
?
Data
.
data
.
list
:
[]
}
columns=
{
columns
}
pagination=
{
Data
!=
null
?
{
current
:
pageNum
,
total
:
Data
.
data
.
page
.
totalRow
,
showSizeChanger
:
false
,
pageSize
:
Data
.
data
.
page
.
curPageSize
}
:
{}
}
onChange=
{
pageChange
}
/>
pagination=
{
Data
!=
null
?
{
current
:
readyData
.
pageNum
,
total
:
Data
.
data
.
page
.
totalRow
,
showSizeChanger
:
false
,
pageSize
:
Data
.
data
.
page
.
curPageSize
,
}
:
{}
}
onChange=
{
pageChange
}
/>
</
div
>
);
};
function
mapStateToProps
(
state
:
any
)
{
const
{
sourceData
,
DataSave
,
Data
,
}
=
state
.
User
;
const
{
sourceData
,
DataSave
,
Data
}
=
state
.
User
;
const
{
history_url
}
=
state
.
History
;
const
{
pageData
}
=
state
.
PageData
;
const
{
token
}
=
state
.
login
;
const
{
CommunityList
}
=
state
.
Init
;
return
{
Data
,
...
...
@@ -234,12 +286,8 @@ function mapStateToProps(state: any) {
sourceData
,
pageData
,
history_url
,
// token
CommunityList
,
};
}
export
default
connect
(
mapStateToProps
)(
Users
);
src/pages/UserManagement/LIFEUserManagement/UsersAdd.less
View file @
177a89dd
...
...
@@ -88,31 +88,57 @@
}
.box2item3 {
position: absolute;
left: 362
px;
top: -15
px;
}
.box2item4 {
position: absolute;
left: 461px;
left: 100px;
top: -10px;
}
.box2item5 {
position: absolute;
left: 475px;
left: 115px;
top: -15px;
}
.box2item6 {
position: absolute;
left: 561px;
left: 200px;
top: -10px;
}
.box2item7 {
position: absolute;
left: 583px;
left: 230px;
top: -15px;
}
.box3 {
width: 100%;
height: 34px;
position: relative;
z-index: 40;
}
.box3item1 {
padding-left: 146px;
}
.box5 {
position: absolute;
left: 370px;
width: 340px;
height: 60px;
&::after {
content: '';
width: 100%;
height: 100%;
position: absolute;
top: 55px;
left: 0;
z-index: 20;
background-color: #fff;
}
}
.ant-form-item-explain {
margin-top: 5px;
}
src/pages/UserManagement/LIFEUserManagement/UsersAdd.tsx
View file @
177a89dd
import
React
,
{
useState
,
useEffect
,
useRef
}
from
'react'
;
import
styles
from
'./UsersAdd.less'
;
import
{
Input
,
Menu
,
Table
,
Space
,
Pagination
,
Spin
,
Button
,
Form
,
Row
,
Col
,
message
}
from
'antd'
;
import
{
Input
,
Spin
,
Button
,
Form
,
message
}
from
'antd'
;
import
{
Link
,
useIntl
,
connect
,
Dispatch
}
from
'umi'
;
import
{
connect
}
from
'umi'
;
import
Line
from
'../../../components/Line/Line'
;
import
TitleBack
from
'../../../components/TitleBack/TitleBack'
;
...
...
@@ -10,9 +10,8 @@ import SearchOptionsCommnity from '../../../components/SearchOptions/SearchOptio
import
{
checkParam
,
RA
}
from
'../../../utils/method'
;
import
{
validateMessages
}
from
'@/utils/params'
;
// import "./UsersAddInput.less"
const
module
=
'User'
;
let
verifyNum
=
0
;
const
UsersAdd
=
(
props
:
any
)
=>
{
const
{
dispatch
,
communityInfo
}
=
props
;
...
...
@@ -22,13 +21,11 @@ const UsersAdd = (props: any) => {
const
[
loading
,
setLoading
]
=
useState
(
false
);
const
onFinish
=
(
values
:
any
)
=>
{
console
.
log
(
values
);
if
(
postman
.
extend
!=
null
)
{
values
.
communityName
=
postman
.
extend
;
}
else
{
values
.
communityName
=
null
;
}
// var tmp = Object.keys(values);
if
(
checkParam
(
values
))
{
values
.
owerPhone
=
null
;
values
.
owerEmail
=
null
;
...
...
@@ -46,9 +43,7 @@ const UsersAdd = (props: any) => {
setPostman
(
tmp
);
};
useEffect
(()
=>
{
console
.
log
(
communityInfo
);
if
(
communityInfo
!=
null
)
{
console
.
log
(
communityInfo
);
if
(
postman
.
extend
!=
null
)
{
formRef
.
current
.
setFieldsValue
({
addressAndpostalCode
:
...
...
@@ -61,7 +56,6 @@ const UsersAdd = (props: any) => {
},
[
communityInfo
]);
const
checkData
=
(
rule
:
any
,
value
:
any
,
callback
:
any
)
=>
{
console
.
log
(
rule
,
value
);
if
(
value
)
{
if
(
/^
[
a-zA-Z0-9
]
+$/g
.
test
(
value
))
{
callback
();
...
...
@@ -97,23 +91,29 @@ const UsersAdd = (props: any) => {
<
div
className=
{
styles
.
box2item2
}
>
<
SearchOptionsCommnity
alone=
{
true
}
opname=
{
extendName
}
/>
</
div
>
<
div
className=
{
styles
.
box5
}
>
<
Form
.
Item
>
<
Input
.
Group
>
<
div
className=
{
styles
.
box2item3
}
>
<
Form
.
Item
name=
"buildingNumber"
rules=
{
[{
validator
:
checkData
}]
}
>
<
Form
.
Item
name=
"buildingNumber"
noStyle
rules=
{
[{
validator
:
checkData
}]
}
>
<
Input
placeholder=
"Building"
style=
{
{
width
:
94
}
}
/>
</
Form
.
Item
>
</
div
>
<
div
className=
{
styles
.
box2item4
}
>
#
</
div
>
<
div
className=
{
styles
.
box2item5
}
>
<
Form
.
Item
name=
"floorNumber"
rules=
{
[{
validator
:
checkData
}]
}
>
<
Form
.
Item
name=
"floorNumber"
noStyle
rules=
{
[{
validator
:
checkData
}]
}
>
<
Input
placeholder=
"Floor"
style=
{
{
width
:
80
}
}
/>
</
Form
.
Item
>
</
div
>
<
div
className=
{
styles
.
box2item6
}
>
——
</
div
>
<
div
className=
{
styles
.
box2item7
}
>
<
Form
.
Item
name=
"roomNumber"
rules=
{
[{
validator
:
checkData
}]
}
>
<
Form
.
Item
name=
"roomNumber"
noStyle
rules=
{
[{
validator
:
checkData
}]
}
>
<
Input
placeholder=
"Room"
style=
{
{
width
:
112
}
}
/>
</
Form
.
Item
>
</
div
>
</
Input
.
Group
>
</
Form
.
Item
>
</
div
>
</
div
>
<
div
className=
{
styles
.
box3
}
>
...
...
@@ -148,11 +148,3 @@ function mapStateToProps(state: any) {
};
}
export
default
connect
(
mapStateToProps
)(
UsersAdd
);
// "owerName":"孟浩",
// "owerPhone":"18813787878",
// "owerEmail":"sale@huahuico.com",
// "communityName":"A7",
// "buildingNumber":"A1",
// "floorNumber":"11",
// "roomNumber":"388",
// "addressAndpostalCode":"工业大道3689561"
src/pages/UserManagement/ServiceProviderManagement/Edit.tsx
View file @
177a89dd
...
...
@@ -8,68 +8,83 @@ import SelectOptions from '../../../components/SelectOptions/index';
import
TitleBack
from
'../../../components/TitleBack/TitleBack'
;
import
{
RA
}
from
'@/utils/method'
;
const
module
=
"User"
const
module
=
'User'
;
let
options
:
Array
<
{}
>
=
[];
const
Edit
=
(
props
:
any
)
=>
{
const
{
dispatch
,
CurData
,
SaveChooseData
,
location
,
CommunityList
,
DataServices
}
=
props
;
const
TosTosServiceProviderSave
=
(
values
:
any
)
=>
{
dispatch
({
type
:
'ServiceProvider/TosTosServiceProviderSave'
,
playload
:
values
})
};
const
TosTosServiceProviderSave
=
(
values
:
any
)
=>
{
dispatch
({
type
:
'ServiceProvider/TosTosServiceProviderSave'
,
playload
:
values
});
};
const
[
CList
,
setCList
]
=
useState
(
CommunityList
);
const
[
SList
,
setSList
]
=
useState
([
"1"
])
const
[
load
,
setload
]
=
useState
(
false
)
const
printContent
=
(
List
:
any
)
=>
{
setCList
(
List
)
}
const
formRef
=
useRef
(
null
);
const
[
load
,
setload
]
=
useState
(
false
);
const
printContent
=
(
List
:
any
)
=>
{
setCList
(
List
);
};
const
formRef
=
useRef
(
null
as
any
);
useEffect
(()
=>
{
console
.
log
(
SaveChooseData
)
RA
(
43
,
{
serviceName
:
""
},
module
,
dispatch
)
RA
(
43
,
{},
module
,
dispatch
);
},
[]);
useEffect
(()
=>
{
if
(
DataServices
!=
null
)
{
var
tmp
=
DataServices
.
data
.
serviceScopeList
;
options
=
tmp
.
map
((
v
:
string
,
i
:
number
)
=>
{
return
{
label
:
v
,
value
:
i
.
toString
(),
};
});
}
},
[
DataServices
]);
console
.
log
(
DataServices
)
var
tmp
=
DataServices
.
data
.
serviceScopeList
console
.
log
(
tmp
)
useEffect
(()
=>
{
if
(
SaveChooseData
!=
null
)
{
formRef
.
current
.
setFieldsValue
(
SaveChooseData
)
console
.
log
(
SaveChooseData
);
console
.
log
(
options
);
let
arr
:
[]
=
[];
SaveChooseData
.
serviceScopeList
.
forEach
((
v
:
any
)
=>
{
options
.
forEach
((
ele
:
any
)
=>
{
if
(
v
===
ele
.
label
)
{
arr
.
push
(
ele
.
value
as
never
);
}
});
});
SaveChooseData
.
serviceScopeList
=
arr
;
formRef
.
current
.
setFieldsValue
(
SaveChooseData
);
}
},
[
DataServices
])
},
[
SaveChooseData
]);
const
onFinish
=
(
values
:
any
)
=>
{
var
val
=
values
val
.
serviceCommunityList
=
CList
// val.serviceScopeList = SList
val
.
creator
=
"admin"
;
val
.
updater
=
"admin"
;
setload
(
true
)
TosTosServiceProviderSave
(
val
)
};
const
onFinishFailed
=
(
errorInfo
:
any
)
=>
{
console
.
log
(
'Failed:'
,
errorInfo
)
var
val
=
values
;
val
.
serviceCommunityList
=
CList
;
val
.
creator
=
'admin'
;
val
.
updater
=
'admin'
;
setload
(
true
);
TosTosServiceProviderSave
(
val
);
};
return
(
<
div
className=
{
styles
.
base
}
>
{
/* 头部组件v1.2 */
}
<
TitleBack
title=
"Edit Service Provider"
/>
<
Form
ref=
{
formRef
}
name=
"basic"
onFinish=
{
onFinish
}
onFinishFailed=
{
onFinishFailed
}
>
<
Form
ref=
{
formRef
}
name=
"basic"
onFinish=
{
onFinish
}
>
<
Spin
spinning=
{
load
}
tip=
"In the submission,Please Wait..."
>
<
div
className=
{
styles
.
box1
}
>
<
div
className=
{
styles
.
box1item1
}
>
Company Name
</
div
>
<
div
className=
{
styles
.
box1item2
}
>
<
Form
.
Item
name=
"providerName"
rules=
{
[{
<
Form
.
Item
name=
"providerName"
rules=
{
[
{
required
:
true
,
message
:
"Please enter the company name!"
}]
}
message
:
'Please enter the company name!'
,
},
]
}
>
<
Input
style=
{
{
width
:
260
}
}
placeholder=
"Please enter company name"
/>
</
Form
.
Item
>
...
...
@@ -78,10 +93,12 @@ const Edit = (props: any) => {
<
div
className=
{
styles
.
box1item4
}
>
<
Form
.
Item
name=
"providerAddress"
rules=
{
[{
rules=
{
[
{
required
:
true
,
message
:
"Please enter your office address!"
}]
}
message
:
'Please enter your office address!'
,
},
]
}
>
<
Input
style=
{
{
width
:
200
}
}
placeholder=
"Single Line Input"
/>
</
Form
.
Item
>
...
...
@@ -90,19 +107,25 @@ const Edit = (props: any) => {
<
div
className=
{
styles
.
line
}
></
div
>
<
SelectOptions
list=
{
CommunityList
.
sort
()
}
checklist=
{
SaveChooseData
!=
null
?
SaveChooseData
.
serviceCommunityList
:
null
}
onSubmit=
{
printContent
}
/>
<
SelectOptions
list=
{
CommunityList
?
CommunityList
.
sort
()
:
[]
}
checklist=
{
SaveChooseData
!=
null
?
SaveChooseData
.
serviceCommunityList
:
null
}
onSubmit=
{
printContent
}
/>
<
div
className=
{
styles
.
box2
}
>
<
div
className=
{
styles
.
box2item1
}
>
Services Available
</
div
>
<
div
className=
{
styles
.
box2item2
}
>
<
Form
.
Item
name=
"serviceScopeList"
rules=
{
[{
rules=
{
[
{
required
:
true
,
message
:
"Please select at least one service available!"
}]
}
message
:
'Please select at least one service available!'
,
},
]
}
>
<
Checkbox
.
Group
options=
{
DataServices
!=
null
?
DataServices
.
data
.
serviceScopeList
:
null
}
/>
<
Checkbox
.
Group
options=
{
options
as
any
}
/>
</
Form
.
Item
>
</
div
>
</
div
>
...
...
@@ -112,59 +135,63 @@ const Edit = (props: any) => {
<
div
className=
{
styles
.
box3item2
}
>
<
Form
.
Item
name=
"contactName"
rules=
{
[{
rules=
{
[
{
required
:
true
,
message
:
"Please enter the name of the person in charge!"
}]
}
message
:
'Please enter the name of the person in charge!'
,
},
]
}
>
<
Input
style=
{
{
width
:
200
}
}
placeholder=
"Please enter a name"
/>
<
Input
style=
{
{
width
:
200
}
}
placeholder=
"Please enter a name"
/>
</
Form
.
Item
>
</
div
>
</
div
>
<
div
className=
{
styles
.
box4
}
>
<
div
className=
{
styles
.
box4item1
}
>
Contact Details
</
div
>
<
div
className=
{
styles
.
box4item2
}
><
Form
.
Item
name=
"contactPhone"
><
Input
style=
{
{
width
:
200
}
}
placeholder=
"Telephone"
/></
Form
.
Item
></
div
>
<
div
className=
{
styles
.
box4item2
}
>
<
Form
.
Item
name=
"contactPhone"
>
<
Input
style=
{
{
width
:
200
}
}
placeholder=
"Telephone"
/>
</
Form
.
Item
>
</
div
>
<
div
className=
{
styles
.
box4item3
}
>
<
Form
.
Item
name=
"contactEmail"
rules=
{
[{
rules=
{
[
{
required
:
true
,
type
:
"email"
,
message
:
"Please enter the correct email address!"
}]
}
type
:
'email'
,
message
:
'Please enter the correct email address!'
,
},
]
}
>
<
Input
style=
{
{
width
:
200
}
}
placeholder=
"E-mail"
/></
Form
.
Item
></
div
>
<
Input
style=
{
{
width
:
200
}
}
placeholder=
"E-mail"
/>
</
Form
.
Item
>
</
div
>
</
div
>
<
div
className=
{
styles
.
line
}
></
div
>
<
Form
.
Item
>
<
Button
type=
"primary"
htmlType=
"submit"
>
Submit
</
Button
>
<
Button
type=
"primary"
htmlType=
"submit"
>
Submit
</
Button
>
</
Form
.
Item
>
</
Spin
>
</
Form
>
</
div
>
);
};
function
mapStateToProps
(
state
:
any
)
{
const
{
CurData
,
SaveChooseData
}
=
state
.
ServiceProvider
;
const
{
DataServices
,
}
=
state
.
User
;
const
{
DataServices
}
=
state
.
User
;
const
{
CommunityList
}
=
state
.
Init
;
return
{
CurData
,
SaveChooseData
,
CommunityList
,
DataServices
DataServices
,
};
}
export
default
connect
(
mapStateToProps
)(
Edit
);
src/pages/UserManagement/ServiceProviderManagement/ServiceProviderManagement.tsx
View file @
177a89dd
...
...
@@ -4,176 +4,243 @@ import styles from './index.less';
import
{
Form
,
Input
,
Spin
,
Table
,
Space
,
Button
}
from
'antd'
;
import
{
LoadingOutlined
}
from
'@ant-design/icons'
;
import
{
urlEncode
,
filterObj
,
filterObjbyTg
}
from
'@/utils/method'
;
import
{
urlEncode
,
filterObj
,
filterObjbyTg
,
RA
}
from
'@/utils/method'
;
import
{
Link
,
useIntl
,
connect
,
Dispatch
,
history
}
from
'umi'
;
import
TitleSearch
from
'../../../components/TitleSearch/TitleSearch'
;
import
{
TosSecurityGuarderGet
}
from
'@/services/tos'
;
const
module
=
'User'
;
// 服务范围数据
let
options
:
Array
<
[]
>
=
[];
// 筛选参数
let
readyData
:
any
=
{
pageNum
:
1
,
serviceCommunityList
:
[],
serviceScope
:
''
,
providerName
:
''
,
};
// 节流阀
let
flag
=
false
;
const
ServiceProviderManagement
=
(
props
:
any
)
=>
{
const
{
formatMessage
}
=
useIntl
();
const
[
pageNum
,
setPageNum
]
=
useState
(
1
)
const
[
loading
,
setLoading
]
=
useState
(
false
)
const
[
loading
,
setLoading
]
=
useState
(
false
);
const
[
testData
,
setTestData
]
=
useState
(
null
as
any
)
;
const
{
dispatch
,
location
,
Data
,
CommunityList
,
DataServices
}
=
props
;
const
{
dispatch
,
location
,
Data
,
CommunityList
}
=
props
;
const
RA
=
(
index
:
any
,
values
:
any
)
=>
{
dispatch
({
type
:
'ServiceProvider/RA'
,
playload
:
{
index
:
index
,
body
:
values
}
})
};
const
TosTosServiceProviderGet
=
(
values
:
any
)
=>
{
dispatch
({
type
:
'ServiceProvider/TosTosServiceProviderGet'
,
playload
:
values
})
const
SaveChooseData
=
(
values
:
any
)
=>
{
dispatch
({
type
:
'ServiceProvider/SaveChooseData'
,
playload
:
values
});
};
const
SaveChooseData
=
(
values
:
any
)
=>
{
dispatch
({
type
:
'ServiceProvider/SaveChooseData'
,
playload
:
values
})
};
// const GetList = () => {
// if (CommunityList != null) {
// TosTosServiceProviderGet({
// providerName: "",
// serviceCommunityList: CommunityList
// })
// }
// }
// useEffect(() => {
// console.log(CommunityList)
// GetList()
// }, [CommunityList]);
const
goToDetail
=
(
values
:
any
,
e
:
any
)
=>
{
SaveChooseData
(
values
)
history
.
push
(
location
.
pathname
+
'/Detail'
)
}
SaveChooseData
(
values
)
;
history
.
push
(
location
.
pathname
+
'/Detail'
)
;
}
;
const
goToCreate
=
()
=>
{
SaveChooseData
(
null
)
history
.
push
(
location
.
pathname
+
'/Edit'
)
}
SaveChooseData
(
null
)
;
history
.
push
(
location
.
pathname
+
'/Edit'
)
;
}
;
const
goToEdit
=
(
values
:
any
,
e
:
any
)
=>
{
SaveChooseData
(
values
)
history
.
push
(
location
.
pathname
+
'/Edit'
)
}
const
goToServices
=
()
=>
{
history
.
push
(
location
.
pathname
+
'/Services'
)
}
SaveChooseData
(
values
);
history
.
push
(
location
.
pathname
+
'/Edit'
);
};
const
goToServices
=
()
=>
{
history
.
push
(
location
.
pathname
+
'/Services'
);
};
const
columns
=
[
{
title
:
"Service Provider"
,
dataIndex
:
'providerName'
,
},
{
title
:
"contact Name"
,
dataIndex
:
'contactName'
,
},
{
title
:
'Service Provider'
,
dataIndex
:
'providerName'
},
{
title
:
'contact Name'
,
dataIndex
:
'contactName'
},
{
title
:
"Contacts"
,
title
:
'Contacts'
,
dataIndex
:
'contactPhone'
,
},
/*{ title: "Contact Details",dataIndex: 'contactEmail',},*/
{
title
:
"Services Available"
,
dataIndex
:
'serviceScope'
,
title
:
'Services Available'
,
dataIndex
:
'serviceScopeList'
,
render
:
(
text
:
any
,
record
:
any
)
=>
{
let
str
:
string
=
''
;
text
.
forEach
((
v
:
string
,
i
:
number
)
=>
{
str
+=
i
===
text
.
length
-
1
?
v
:
v
+
','
;
});
return
str
;
},
},
{
title
:
"Account Status"
,
dataIndex
:
'enable'
,
},
{
title
:
'Account Status'
,
dataIndex
:
'enable'
},
{
title
:
"Actions"
,
title
:
'Actions'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
<
Space
size=
"middle"
><
a
onClick=
{
goToDetail
.
bind
(
this
,
record
)
}
>
Detail
</
a
><
a
onClick=
{
goToEdit
.
bind
(
this
,
record
)
}
>
edit
</
a
></
Space
>
<
Space
size=
"middle"
>
<
a
onClick=
{
goToDetail
.
bind
(
this
,
record
)
}
>
Detail
</
a
>
<
a
onClick=
{
goToEdit
.
bind
(
this
,
record
)
}
>
edit
</
a
>
</
Space
>
),
},
];
const
dataSource
=
(
values
:
any
)
=>
{
let
tmp
=
values
;
for
(
let
items
in
tmp
)
{
switch
(
tmp
[
items
].
enable
)
{
case
0
:
tmp
[
items
].
enable
=
"unregistered"
;
break
;
case
1
:
tmp
[
items
].
enable
=
"registered"
;
break
;
case
2
:
break
;
}
}
for
(
let
items
in
tmp
)
{
switch
(
tmp
[
items
].
serviceScope
)
{
case
0
:
tmp
[
items
].
serviceScope
=
"清洁"
;
break
;
case
1
:
tmp
[
items
].
serviceScope
=
"维修"
;
break
;
case
2
:
tmp
[
items
].
serviceScope
=
"保安"
;
break
;
case
3
:
tmp
[
items
].
serviceScope
=
"会计"
;
break
;
}
}
return
tmp
;
}
// 拿取服务商列表
useEffect
(()
=>
{
RA
(
43
,
{},
module
,
dispatch
);
},
[]);
useEffect
(()
=>
{
if
(
Data
!=
null
)
{
setLoading
(
false
)
console
.
log
(
"核查的地方"
)
console
.
log
(
Data
)
if
(
Data
Services
)
{
options
=
DataServices
.
data
.
serviceScopeList
.
map
((
v
:
string
,
i
:
number
)
=>
{
return
[
i
,
v
];
});
}
},
[
Data
])
},
[
Data
Services
]);
useEffect
(()
=>
{
// 请求
const
TosTosServiceProviderGet
=
()
=>
{
if
(
readyData
.
serviceCommunityList
.
length
===
0
)
{
readyData
.
serviceCommunityList
=
CommunityList
;
}
dispatch
({
type
:
'ServiceProvider/TosTosServiceProviderGet'
,
playload
:
{
...
readyData
},
});
};
setPageNum
(
1
)
setLoading
(
true
)
TosTosServiceProviderGet
({
// 监听路由url
useEffect
(()
=>
{
if
(
location
.
query
)
{
readyData
=
{
...
readyData
,
...
location
.
query
,
serviceCommunityList
:
(
testData
===
null
||
testData
.
length
===
0
)
?
CommunityList
:
testData
,
pageNum
:
1
})
};
}
if
(
CommunityList
&&
flag
===
false
)
{
flag
=
true
;
setLoading
(
true
);
TosTosServiceProviderGet
();
}
},
[
location
]);
},
[
location
])
// 监听小区数据
useEffect
(()
=>
{
if
(
CommunityList
&&
flag
===
false
)
{
flag
=
true
;
setLoading
(
true
);
TosTosServiceProviderGet
();
}
},
[
CommunityList
]);
const
CallBackTitleSearch
=
(
comment
:
any
)
=>
{
console
.
log
(
comment
)
console
.
log
(
location
.
pathname
)
// 数据核查
useEffect
(()
=>
{
if
(
Data
!=
null
)
{
flag
=
false
;
setLoading
(
false
);
}
},
[
Data
]);
//页面搜索
setTestData
(
comment
.
serviceCommunityList
)
history
.
push
(
location
.
pathname
+
urlEncode
(
filterObj
({
const
CallBackTitleSearch
=
(
comment
:
any
)
=>
{
readyData
.
serviceCommunityList
=
comment
.
serviceCommunityList
;
history
.
push
(
location
.
pathname
+
urlEncode
(
filterObj
({
providerName
:
comment
.
providerName
,
serviceScope
:
comment
.
status
,
pageNum
:
location
.
query
.
pageNum
||
1
})))
}
pageNum
:
1
,
}),
),
);
};
// 切换页码
const
pageChange
=
(
values
:
any
)
=>
{
// setPageNum(values.current)
console
.
log
(
values
)
/*页面跳转*/
var
tmp
=
filterObjbyTg
(
location
.
query
,
[])
tmp
[
"pageNum"
]
=
values
.
current
history
.
push
(
location
.
pathname
+
urlEncode
(
tmp
))
}
let
tmp
=
filterObjbyTg
(
location
.
query
,
[
'providerName'
,
'serviceScope'
]);
tmp
[
'pageNum'
]
=
values
.
current
;
history
.
push
(
location
.
pathname
+
urlEncode
(
tmp
));
};
// 数据处理
const
dataSource
=
(
values
:
any
)
=>
{
let
tmp
=
values
;
for
(
let
items
in
tmp
)
{
switch
(
tmp
[
items
].
enable
)
{
case
0
:
tmp
[
items
].
enable
=
'unregistered'
;
break
;
case
1
:
tmp
[
items
].
enable
=
'registered'
;
break
;
case
2
:
break
;
}
}
for
(
let
items
in
tmp
)
{
for
(
let
items1
in
tmp
[
items
].
serviceScopeList
)
{
switch
(
tmp
[
items
].
serviceScopeList
[
items1
])
{
case
'0'
:
tmp
[
items
].
serviceScopeList
[
items1
]
=
'保安'
;
break
;
case
'1'
:
tmp
[
items
].
serviceScopeList
[
items1
]
=
'会计'
;
break
;
case
'2'
:
tmp
[
items
].
serviceScopeList
[
items1
]
=
'维修'
;
break
;
case
'3'
:
tmp
[
items
].
serviceScopeList
[
items1
]
=
'清洁'
;
break
;
}
}
}
return
tmp
;
};
// table组件配置
const
pagination
=
{
current
:
pageNum
,
current
:
readyData
.
pageNum
,
total
:
Data
!==
null
?
Data
.
page
.
totalRow
:
null
,
showSizeChanger
:
false
}
showSizeChanger
:
false
,
};
return
(
<
div
className=
{
styles
.
base
}
>
{
/* 头部组件 */
}
<
TitleSearch
listkey=
{
[
"providerName"
]
}
list=
{
[
"Service Provider"
]
}
status=
{
[{
name
:
[
"status"
,
"服务范围"
],
data
:
[[
null
,
"全部"
],
[
0
,
"清洁"
],
[
1
,
"维修"
],
[
2
,
"保安"
],
[
3
,
"会计"
]]
}]
}
community=
{
"serviceCommunityList"
}
onSubmit=
{
CallBackTitleSearch
}
/>
listkey=
{
[
'providerName'
]
}
list=
{
[
'Service Provider'
]
}
status=
{
[
{
name
:
[
'status'
,
'服务范围'
],
data
:
[[
null
,
'全部'
],
...
options
],
},
]
}
community=
{
'serviceCommunityList'
}
onSubmit=
{
CallBackTitleSearch
}
defaultValue=
{
{
providerName
:
readyData
.
providerName
,
status
:
readyData
.
serviceScope
?
parseInt
(
readyData
.
serviceScope
)
:
undefined
,
}
}
checklist=
{
readyData
.
serviceCommunityList
.
length
!==
0
?
readyData
.
serviceCommunityList
:
null
}
/>
{
/* 内容组件 */
}
<
div
className=
{
styles
.
box2
}
>
<
button
className=
{
styles
.
buttonAdd2
}
onClick=
{
goToServices
}
>
Avail Services
</
button
>
<
button
className=
{
styles
.
buttonAdd
}
onClick=
{
goToCreate
}
>
Create New
</
button
>
<
button
className=
{
styles
.
buttonAdd2
}
onClick=
{
goToServices
}
>
Avail Services
</
button
>
<
button
className=
{
styles
.
buttonAdd
}
onClick=
{
goToCreate
}
>
Create New
</
button
>
</
div
>
{
/* 列表组件 */
}
<
Spin
spinning=
{
Data
!=
null
?
false
:
true
}
>
<
Table
size=
"small"
rowKey=
{
"id"
}
<
Table
size=
"small"
rowKey=
{
'id'
}
style=
{
{
marginTop
:
16
}
}
loading=
{
loading
}
columns=
{
columns
}
...
...
@@ -182,20 +249,19 @@ const ServiceProviderManagement = (props: any) => {
onChange=
{
pageChange
}
/>
</
Spin
>
</
div
>
);
};
function
mapStateToProps
(
state
:
any
)
{
const
{
Data
}
=
state
.
ServiceProvider
;
const
{
DataProvider
}
=
state
.
User
;
const
{
DataProvider
,
DataServices
}
=
state
.
User
;
const
{
CommunityList
}
=
state
.
Init
;
return
{
Data
,
DataProvider
,
CommunityList
CommunityList
,
DataServices
,
};
}
...
...
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