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
33a25dad
Commit
33a25dad
authored
Sep 10, 2020
by
maple
Committed by
MrShi
Sep 10, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[new]订单详情
(cherry picked from commit
57f2abfe
)
parent
c568b1a4
Changes
24
Show whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
522 additions
and
373 deletions
+522
-373
config.ts
config/config.ts
+3
-2
index.tsx
src/components/SelectCommunity/index.tsx
+42
-0
index.jsx
src/components/SelectOptions/index.jsx
+1
-3
TableShow.tsx
src/components/TableShow/TableShow.tsx
+6
-5
TimeComfirm.tsx
src/components/TimeComfirm/TimeComfirm.tsx
+32
-0
index.less
src/components/组件模板/index.less
+0
-14
index.tsx
src/components/组件模板/index.tsx
+2
-4
CellList.ts
src/models/CommunityManagement/CellList.ts
+17
-15
CommunityAnnouncement.ts
src/models/CommunityManagement/CommunityAnnouncement.ts
+13
-10
OrderManagement.ts
src/models/CommunityManagement/OrderManagement.ts
+70
-0
Card.tsx
src/pages/CommercialService/Card.tsx
+25
-0
Detail.tsx
src/pages/CommercialService/Detail.tsx
+2
-2
Add.tsx
src/pages/CommunityManagement/CellList/Add.tsx
+52
-62
CellList.tsx
src/pages/CommunityManagement/CellList/CellList.tsx
+5
-10
Add.tsx
src/pages/CommunityManagement/CommunityAnnouncement/Add.tsx
+93
-0
CommunityAnnouncement.tsx
...anagement/CommunityAnnouncement/CommunityAnnouncement.tsx
+10
-1
Order.tsx
src/pages/OrderManagement/Order.tsx
+80
-91
index.less
src/pages/OrderManagement/index.less
+0
-122
UsersDetail.tsx
src/pages/UserManagement/LIFEUserManagement/UsersDetail.tsx
+22
-7
tos.ts
src/services/tos.ts
+4
-22
method.ts
src/utils/method.ts
+14
-0
params.ts
src/utils/params.ts
+14
-0
time.ts
src/utils/time.ts
+12
-1
模板.tsx
模板.tsx
+3
-2
No files found.
config/config.ts
View file @
33a25dad
...
...
@@ -206,14 +206,15 @@ export default defineConfig({
name
:
'celllist'
,
routes
:[
{
path
:
'./'
,
component
:
'./CommunityManagement/CellList/CellList'
},
{
path
:
'./
a
dd'
,
component
:
'./CommunityManagement/CellList/Add'
},
{
path
:
'./
A
dd'
,
component
:
'./CommunityManagement/CellList/Add'
},
]
},
{
path
:
'./CommunityAnnouncement'
,
name
:
'communityannouncement'
,
routes
:
[
{
path
:
"./"
,
component
:
'./CommunityManagement/CommunityAnnouncement/CommunityAnnouncement'
}
{
path
:
"./"
,
component
:
'./CommunityManagement/CommunityAnnouncement/CommunityAnnouncement'
},
{
path
:
"./Add"
,
component
:
'./CommunityManagement/CommunityAnnouncement/Add'
},
]
},
{
...
...
src/components/SelectCommunity/index.tsx
0 → 100644
View file @
33a25dad
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
SelectOptions
from
'../SelectOptions'
;
import
{
connect
}
from
'umi'
const
index
=
(
props
:
any
)
=>
{
const
{
dispatch
,
CommunityList
,
value
,
onChange
}
=
props
;
const
tosCommunityget
=
(
values
:
any
)
=>
{
dispatch
({
type
:
'Init/tosCommunityget'
,
playload
:
values
})};
useEffect
(()
=>
{
if
(
CommunityList
==
null
)
{
tosCommunityget
(
null
)
}
},
[]);
useEffect
(()
=>
{
if
(
CommunityList
!=
null
)
{
onChange
({
index
:
1
,
value
:
CommunityList
})
}
},
[
CommunityList
]);
const
printContent
=
(
values
:
any
)
=>
{
onChange
({
index
:
CommunityList
.
length
==
values
.
length
?
1
:
0
,
value
:
values
})
}
return
(
<>
{
CommunityList
!=
null
?
<
SelectOptions
list=
{
CommunityList
.
sort
()
}
show=
{
true
}
onSubmit=
{
printContent
}
/>:
null
}
</>
);
};
function
mapStateToProps
(
state
:
any
)
{
const
{
CommunityList
}
=
state
.
Init
;
return
{
CommunityList
,
};
}
export
default
connect
(
mapStateToProps
)(
index
);
src/components/SelectOptions/index.jsx
View file @
33a25dad
...
...
@@ -216,11 +216,9 @@ class SelectOptions extends React.Component {
tempAarry
.
push
(
list
[
i
]);
}
}
this
.
setState
({
checkedListOptions
:
tempAarry
,
})
}
render
()
{
...
...
src/components/TableShow/TableShow.tsx
View file @
33a25dad
...
...
@@ -34,13 +34,14 @@ const TableShow = (props:any) => {
// ower_email: "535740436@qq.com"
// ower_name: "测试"
// ower_phone: "微微"
const
key
=
[
const
user_status
=
[[
1
,
"家属"
],[
2
,
"租户"
]]
const
key
=
objectColumns
(
[
[
"User Name"
,
"ower_name"
],
[
"Contact Details"
,
"ower_phone"
],
[
"Email"
,
"ower_email"
],
[
"RelationShip"
,
null
,
(
text
:
any
,
record
:
any
)
=>
(<
Space
size=
"middle"
>
{
record
.
owner_relationship
!=
null
?
user_status
[(
record
.
owner_relationship
)
-
1
][
1
]:
null
}
</
Space
>)],
[
"Actions"
,
null
,
(
text
:
any
,
record
:
any
)
=>
(<
Space
size=
"middle"
>
<
a
onClick=
{
goTo
.
bind
(
this
,
record
)
}
>
Detail
</
a
></
Space
>)],
]
]
)
return
(
...
...
@@ -60,7 +61,7 @@ const TableShow = (props:any) => {
<
Table
title=
{
()
=>
{
return
(<
Row
gutter=
{
32
}
><
Col
>
Unit No:
</
Col
><
Col
>
{
unit
.
living
}
</
Col
><
Col
>
{
props
.
deleteDisable
?
<
Button
type=
"danger"
onClick=
{
deleteUnit
.
bind
(
this
,
unit
.
living
)
}
>
Delete
</
Button
>
:
null
}
</
Col
></
Row
>)
}
}
footer=
{
()
=>
''
}
rowKey=
{
"ower_name"
}
dataSource=
{
unit
.
member
}
columns=
{
objectColumns
(
key
)
}
pagination=
{
false
}
></
Table
>
}
}
footer=
{
()
=>
''
}
rowKey=
{
"ower_name"
}
dataSource=
{
unit
.
member
}
columns=
{
key
}
pagination=
{
false
}
></
Table
>
</
Col
>
<
Col
>
<
Row
>
...
...
src/components/TimeComfirm/TimeComfirm.tsx
0 → 100644
View file @
33a25dad
import
React
,
{
useEffect
,
useState
}
from
'react'
;
import
{
DatePicker
}
from
'antd'
;
import
{
MomentToTime
,
TimeToMoment2
}
from
'@/utils/time'
;
import
moment
from
'moment'
;
const
TimeComfirm
=
(
props
:
any
)
=>
{
const
{
value
,
onChange
}
=
props
const
[
val
,
setVal
]
=
useState
(
null
);
useEffect
(()
=>
{
if
(
value
!=
null
)
{
setVal
(
TimeToMoment2
(
value
))
}
},[
value
])
const
onsubmit
=
(
values
:
any
)
=>
{
onChange
(
MomentToTime
(
values
))
}
return
(
<>
{
val
!=
null
?
<><
DatePicker
showTime
defaultValue=
{
val
}
onOk=
{
onsubmit
}
/></>
:
<
DatePicker
showTime
onOk=
{
onsubmit
}
/>
}
</>
);
};
export
default
TimeComfirm
;
src/components/组件模板/index.less
deleted
100644 → 0
View file @
c568b1a4
// 线栏
.font{
border-left: 5px solid rgba(24,144,255,1);
font-family:'Source Han Sans CN';
font-size: 18px;
font-weight: 600;
color: #000000;
}
.item{
.font();
text-indent: 15px;
}
\ No newline at end of file
src/components/组件模板/
TitleGet
.tsx
→
src/components/组件模板/
index
.tsx
View file @
33a25dad
import
React
from
'react'
;
import
styles
from
'./index.less'
;
const
TitleGet
=
(
props
:
any
)
=>
{
const
index
=
(
props
:
any
)
=>
{
return
(
<>
...
...
@@ -10,4 +8,4 @@ const TitleGet = (props:any) => {
);
};
export
default
TitleGet
;
export
default
index
;
src/models/CommunityManagement/CellList.ts
View file @
33a25dad
...
...
@@ -5,6 +5,7 @@ import { Link, useIntl, connect, Dispatch, history } from 'umi';
import
{
routerRedux
}
from
'dva/router'
import
{
printf
}
from
'@/utils/log'
;
import
{
getObjectInfo
}
from
'@/utils/method'
;
export
default
{
namespace
:
'CellList'
,
...
...
@@ -38,22 +39,23 @@ export default {
const
resp
=
yield
call
(
service
.
RA
,
playload
);
console
.
log
(
resp
)
if
(
resp
.
code
==
500
||
resp
.
error_code
!=
"0000"
)
{
}
//
if (resp.code == 500||resp.error_code!="0000") {
//
}
if
(
resp
.
error_code
!=
"0000"
)
{
getObjectInfo
(
playload
.
body
)
printf
(
playload
,
resp
)
}
else
{
switch
(
playload
.
index
)
{
case
24
:
{
let
Data
=
resp
.
data
;
yield
put
({
type
:
'returnPage'
,
Data
});
}
break
;
}
case
29
:
{
let
Result
=
resp
;
yield
put
({
type
:
'returnResult'
,
Result
});
}
break
;
}
},
*
ResultClear
({
},
{
put
})
{
...
...
src/models/CommunityManagement/CommunityAnnouncement.ts
View file @
33a25dad
...
...
@@ -37,22 +37,25 @@ export default {
const
resp
=
yield
call
(
service
.
RA
,
playload
);
console
.
log
(
resp
)
if
(
resp
.
code
==
500
||
resp
.
error_code
!=
"0000"
)
{
}
if
(
resp
.
error_code
!=
"0000"
)
{
printf
(
playload
,
resp
)
}
else
{
switch
(
playload
.
index
)
{
case
25
:
{
let
Data
=
resp
.
data
;
yield
put
({
type
:
'returnPage'
,
Data
});
}
break
;
case
28
:
{
let
Result
=
resp
;
yield
put
({
type
:
'returnResult'
,
Result
});
}
break
;
}
}
},
*
ResultClear
({
},
{
put
})
{
...
...
src/models/CommunityManagement/OrderManagement.ts
0 → 100644
View file @
33a25dad
import
*
as
service
from
'../../services/tos'
;
import
{
message
}
from
'antd'
;
import
{
Link
,
useIntl
,
connect
,
Dispatch
,
history
}
from
'umi'
;
import
{
routerRedux
}
from
'dva/router'
import
{
printf
}
from
'@/utils/log'
;
export
default
{
namespace
:
'OrderManagement'
,
state
:
{
Data
:
null
,
Result
:
null
,
DataSave
:
null
,
DataSaveDetail
:
null
,
},
reducers
:
{
returnPage
(
state
,
{
Data
})
{
return
{
...
state
,
Data
};
},
returnResult
(
state
,
{
Result
})
{
return
{
...
state
,
Result
};
},
returnDataSave
(
state
,
{
DataSave
})
{
return
{...
state
,
DataSave
}
},
returnDataSaveDetail
(
state
,
{
DataSaveDetail
})
{
return
{...
state
,
DataSaveDetail
}
},
},
effects
:
{
//标准请求
*
RA
({
playload
},
{
call
,
put
})
{
const
resp
=
yield
call
(
service
.
RA
,
playload
);
console
.
log
(
resp
)
if
(
resp
.
code
==
500
||
resp
.
error_code
!=
"0000"
)
{
}
if
(
resp
.
error_code
!=
"0000"
)
{
printf
(
playload
,
resp
)
}
else
{
switch
(
playload
.
index
)
{
case
30
:
{
let
Data
=
resp
;
yield
put
({
type
:
'returnPage'
,
Data
});
}
break
;
}
}
},
*
ResultClear
({
},
{
put
})
{
var
tmp
=
null
yield
put
({
type
:
'returnResult'
,
tmp
}
)
},
*
SA
({
playload
},
{
call
,
put
})
{
var
DataSave
=
playload
yield
put
({
type
:
'returnDataSave'
,
DataSave
}
)
},
},
};
src/pages/CommercialService/Card.tsx
0 → 100644
View file @
33a25dad
import
React
,
{
useState
,
useEffect
,
useRef
}
from
'react'
;
import
{
Input
,
Tabs
,
Table
,
Space
,
Button
}
from
'antd'
;
const
{
TabPane
}
=
Tabs
;
import
{
connect
,
history
}
from
'umi'
;
import
{
RA
}
from
'@/utils/method'
;
const
module
=
"XXX"
const
XXX
=
(
props
:
any
)
=>
{
const
{
dispatch
,
Data
}
=
props
;
const
formRef
=
useRef
(
null
)
return
(
<
div
style=
{
{
width
:
"100%"
,
minWidth
:
1020
,
padding
:
34
,
backgroundColor
:
"#ffffff"
}
}
>
</
div
>
);
};
function
map
(
state
:
any
)
{
const
{
Data
}
=
state
[
module
]
return
{
Data
}
}
export
default
connect
(
map
)(
XXX
);
\ No newline at end of file
src/pages/CommercialService/Detail.tsx
View file @
33a25dad
...
...
@@ -101,7 +101,7 @@ const Detail = (props:any) => {
data=
{
{
userToken
:
"token"
,
imageType
:
'tosCommunityImageReply'
,
extend
:
""
,
extend
s
:
""
,
}
}
defultValue=
{
CurDataDetail
.
pictrues
}
/>:
null
...
...
@@ -130,7 +130,7 @@ const Detail = (props:any) => {
putSubmit=
{
PictureOptionsRowRef
}
data=
{
{
userToken
:
"token"
,
imageType
:
'tosCommunityImageReply'
,
extend
:
""
,
extend
s
:
""
,
}
}
defultValue=
{
[]
}
/>
...
...
src/pages/CommunityManagement/CellList/Add.tsx
View file @
33a25dad
import
React
,
{
useState
,
useEffect
,
useRef
}
from
'react'
;
import
{
Input
,
Tabs
,
Form
,
InputNumber
,
Col
,
Button
,
Row
}
from
'antd'
;
import
{
Input
,
Tabs
,
Form
,
InputNumber
,
Col
,
Button
,
Row
,
message
}
from
'antd'
;
const
{
TabPane
}
=
Tabs
;
import
{
connect
}
from
'umi'
;
...
...
@@ -14,57 +14,55 @@ import { RA } from '@/utils/method';
const
module
=
"CellList"
// const params=[
// ["residentialName":"A8",]
// ["residentialAddress":"TianHe Road No.28"]
// ["residentialHotline":"hotline"]
// ["residentialPhone":"200-8888888"]
// ["residentialEmail":"sales@huahuico.com"]
// ["residentialManagerUserName":"Mr Chen"]
// ["residentialHotlineName":"200-22122221"]
// [ "balouscheduleFile":["A.pdf"],]
// [ "serviceGuideFile":["B.pdf"],]
// ["lifeServiceFile": ["C.pdf"]]
// ]
// 小区名
// #工作时间
// 小区联系方式
// 小区管理员
// 楼巴时刻表
// 物业办事指南
// 保质期服务
// 帮助中心
import
FileUpload
from
'@/components/FileUpload/FileUpload'
import
TitleBack
from
'@/components/TitleBack/TitleBack'
import
SearchOptionsCommnity
from
'@/components/SearchOptions/SearchOptionsCommnity'
import
Line
from
'@/components/Line/Line'
;
import
{
validateMessages
}
from
'@/utils/params'
;
const
Add
=
(
props
:
any
)
=>
{
const
{
dispatch
,
Data
}
=
props
;
const
{
dispatch
,
Result
}
=
props
;
const
formRef
=
useRef
(
null
)
const
onFinish
=
(
values
:
any
)
=>
{
console
.
log
(
values
);
RA
(
29
,
values
,
module
,
dispatch
);
}
const
[
extend
,
setExtend
]
=
useState
(
""
)
useEffect
(()
=>
{
var
obj
=
{
"zipcode"
:
"510000"
,
"residentialName"
:
"T1"
,
"residentialAddress"
:
"广州市黄埔区开创大道"
,
"residentialPhone"
:
"020-83645790"
,
"residentialEmail"
:
"T1community@163.com"
,
"residentialManagerUserName"
:
"刘庆华"
,
"residentialHotlineName"
:
"T1服务"
,
"residentialHotline"
:
"020-83645790"
,
"balouscheduleFile"
:[
"导图1.pdf"
],
"serviceGuideFile"
:[
"导图1.pdf"
],
"lifeServiceFile"
:[
"导图1.pdf"
]
}
// formRef.current.setFieldsValue(obj)
},
[])
},[])
const
validateMessages
=
{
required
:
'${label} is required!'
,
types
:
{
email
:
'${label} is not validate email!'
,
number
:
'${label} is not a validate number!'
,
string
:
'${label} is not a validate number!'
},
string
:
{
range
:
'${label} must be between ${min} and ${max}'
,
},
number
:
{
range
:
'${label} must be between ${min} and ${max}'
,
},
useEffect
(()
=>
{
if
(
Result
!=
null
)
{
console
.
log
(
"页面结果"
)
console
.
log
(
Result
)
if
(
Result
.
error_code
==
undefined
)
{
console
.
log
(
"服务器有问题"
)
message
.
error
(
"服务器有问题,请求失败"
,
5
)
}
}
},
[
Result
])
const
onBillChange
=
(
values
:
any
,
allValues
:
any
)
=>
{
if
(
values
[
"residentialName"
]
!=
null
)
{
var
tmp
=
values
[
"residentialName"
]
console
.
log
(
tmp
.
length
)
setExtend
(
tmp
)
}
}
return
(
...
...
@@ -72,9 +70,9 @@ const Add = (props:any) => {
<
TitleBack
title=
"Add Commnunity Infomation"
></
TitleBack
>
<
Form
ref=
{
formRef
}
{
...
layout
}
name=
"nest-messages"
onFinish=
{
onFinish
}
validateMessages=
{
validateMessages
}
>
<
Form
ref=
{
formRef
}
{
...
layout
}
name=
"nest-messages"
onFinish=
{
onFinish
}
validateMessages=
{
validateMessages
}
onValuesChange=
{
onBillChange
}
>
<
Form
.
Item
name=
{
"
name"
}
label=
"小区名"
rules=
{
[{
required
:
true
}]
}
><
SearchOptionsCommnity
/></
Form
.
Item
>
<
Form
.
Item
name=
{
"
residentialName"
}
label=
"小区名"
rules=
{
[{
required
:
true
}]
}
><
Input
style=
{
{
width
:
200
}
}
/></
Form
.
Item
>
<
Form
.
Item
name=
{
"zipcode"
}
label=
"邮编"
rules=
{
[]
}
><
Input
style=
{
{
width
:
200
}
}
/></
Form
.
Item
>
<
Form
.
Item
name=
{
"residentialAddress"
}
label=
"地址"
rules=
{
[]
}
><
Input
style=
{
{
width
:
300
}
}
/></
Form
.
Item
>
...
...
@@ -91,12 +89,16 @@ const Add = (props:any) => {
<
Form
.
Item
style=
{
{
display
:
'inline-block'
,
width
:
'200'
,
marginLeft
:
20
}
}
name=
{
"residentialHotline"
}
rules=
{
[]
}
><
Input
placeholder=
"热线电话"
/></
Form
.
Item
>
</
Form
.
Item
>
<
Line
/>
{
extend
.
length
>
0
?
<>
<
Form
.
Item
wrapperCol=
{
{
...
layout
.
wrapperCol
,
offset
:
2
}
}
style=
{
{
marginBottom
:
0
}
}
>
<
Form
.
Item
style=
{
{
display
:
'inline-block'
,
width
:
'200'
}
}
name=
{
"balouscheduleFile"
}
><
FileUpload
title=
"choose"
url=
{
"/tos/image/upload"
}
data=
{
{
imageType
:
"tosCreateCommunity"
,
extends
:
"A9"
}
}
reg=
"name"
/></
Form
.
Item
>
<
Form
.
Item
style=
{
{
display
:
'inline-block'
,
width
:
'200'
,
marginLeft
:
100
}
}
name=
{
"serviceGuideFile"
}
><
FileUpload
title=
"choose"
url=
{
"/tos/image/upload"
}
data=
{
{
imageType
:
"tosCreateCommunity"
,
extends
:
"A9"
}
}
reg=
"name"
/></
Form
.
Item
>
<
Form
.
Item
style=
{
{
display
:
'inline-block'
,
width
:
'200'
,
marginLeft
:
100
}
}
name=
{
"lifeServiceFile"
}
><
FileUpload
title=
"choose"
url=
{
"/tos/image/upload"
}
data=
{
{
imageType
:
"tosCreateCommunity"
,
extends
:
"A9"
}
}
reg=
"name"
/></
Form
.
Item
>
<
Form
.
Item
style=
{
{
display
:
'inline-block'
,
width
:
'200'
}
}
name=
{
"balouscheduleFile"
}
><
FileUpload
title=
"楼巴时刻表"
url=
{
"/tos/image/upload"
}
data=
{
{
imageType
:
"tosCreateCommunity"
,
extends
:
extend
}
}
reg=
"name"
/></
Form
.
Item
>
<
Form
.
Item
style=
{
{
display
:
'inline-block'
,
width
:
'200'
,
marginLeft
:
100
}
}
name=
{
"serviceGuideFile"
}
><
FileUpload
title=
"物业办事指南"
url=
{
"/tos/image/upload"
}
data=
{
{
imageType
:
"tosCreateCommunity"
,
extends
:
extend
}
}
reg=
"name"
/></
Form
.
Item
>
<
Form
.
Item
style=
{
{
display
:
'inline-block'
,
width
:
'200'
,
marginLeft
:
100
}
}
name=
{
"lifeServiceFile"
}
><
FileUpload
title=
"保质期服务"
url=
{
"/tos/image/upload"
}
data=
{
{
imageType
:
"tosCreateCommunity"
,
extends
:
extend
}
}
reg=
"name"
/></
Form
.
Item
>
</
Form
.
Item
>
</>
:
null
}
<
Form
.
Item
wrapperCol=
{
{
...
layout
.
wrapperCol
,
offset
:
2
}
}
><
Button
type=
"primary"
htmlType=
"submit"
>
Submit
</
Button
></
Form
.
Item
>
...
...
@@ -108,19 +110,7 @@ const Add = (props:any) => {
};
function
map
(
state
:
any
)
{
const
{
Data
}
=
state
[
module
]
return
{
Data
}
const
{
Result
}
=
state
[
module
]
return
{
Result
}
}
export
default
connect
(
map
)(
Add
);
\ No newline at end of file
{
/* "zipcode":"510000"
"residentialName":"A8",
"residentialAddress":"TianHe Road No.28",
"residentialHotline":"hotline",
"residentialPhone":"200-8888888",
"residentialEmail":"sales@huahuico.com",
"residentialManagerUserName":"Mr Chen",
"residentialHotlineName":"200-22122221",
"balouscheduleFile":["A.pdf"],
"serviceGuideFile":["B.pdf"],
"lifeServiceFile":["C.pdf"] */
}
\ No newline at end of file
src/pages/CommunityManagement/CellList/CellList.tsx
View file @
33a25dad
...
...
@@ -5,14 +5,14 @@ const { TabPane } = Tabs;
import
{
connect
,
history
}
from
'umi'
;
const
columns
=
[
const
columns
=
objectColumns
(
[
[
"Community"
,
"residentialName"
],
[
"Administrator"
,
"residentialManagerUserName"
],
[
"Operation Hours"
,
null
,
(
text
:
any
,
record
:
any
)
=>
(<
div
></
div
>)],
[
"Office Tel"
,
"residentialPhone"
],
[
"Address"
,
"residentialAddress"
],
[
"Actions"
,
null
,
(
text
:
any
,
record
:
any
)
=>
(<
Space
size=
"middle"
>
<
a
>
Detail
</
a
></
Space
>)],
]
]
)
import
TitleSearch
from
'@/components/TitleSearch/TitleSearch'
...
...
@@ -24,17 +24,12 @@ const module="CellList"
const
CellList
=
(
props
:
any
)
=>
{
const
{
dispatch
,
Data
}
=
props
;
const
Pagechange
=
()
=>
{
}
const
[
columnsVal
,
setColumnsVal
]
=
useState
([])
useEffect
(()
=>
{
var
tmp
=
objectColumns
(
columns
)
console
.
log
(
tmp
)
setColumnsVal
(
tmp
)
RA
(
24
,
{
communityName
:
""
},
module
,
dispatch
);
},
[])
useEffect
(()
=>
{
...
...
@@ -46,7 +41,7 @@ const CellList = (props:any) => {
RA
(
24
,
{
communityName
:
values
},
module
,
dispatch
);
}
const
goToAdd
=
()
=>
{
history
.
push
(
"./CellList/
a
dd"
);
history
.
push
(
"./CellList/
A
dd"
);
}
return
(
<
div
style=
{
{
width
:
"100%"
,
minWidth
:
1020
,
padding
:
34
,
backgroundColor
:
"#ffffff"
}
}
>
...
...
@@ -61,7 +56,7 @@ const CellList = (props:any) => {
</
div
>
<
Table
loading=
{
false
}
rowKey=
"id"
style=
{
{
marginTop
:
16
}
}
dataSource=
{
Data
.
rows
}
columns=
{
columns
Val
}
columns=
{
columns
}
pagination=
{
{
current
:
1
,
total
:
Data
.
total
}
}
/>
</>
:
null
...
...
src/pages/CommunityManagement/CommunityAnnouncement/Add.tsx
0 → 100644
View file @
33a25dad
import
React
,
{
useState
,
useEffect
,
useRef
}
from
'react'
;
import
{
Input
,
Tabs
,
message
,
Form
,
Button
}
from
'antd'
;
const
{
TabPane
}
=
Tabs
;
import
{
connect
}
from
'umi'
;
const
layout
=
{
labelCol
:
{
span
:
2
},
// wrapperCol: { span: 8 },
};
import
{
RA
}
from
'@/utils/method'
;
import
TitleBack
from
'@/components/TitleBack/TitleBack'
;
import
FileUpload
from
'@/components/FileUpload/FileUpload'
;
import
{
validateMessages
}
from
'@/utils/params'
;
import
PictureOptionsRow
from
'@/components/PictureOptions/PictureOptionsRow'
;
import
TextArea
from
'antd/lib/input/TextArea'
;
import
SelectOptions
from
'@/components/SelectOptions'
;
import
TitleSearch
from
'@/components/TitleSearch/TitleSearch'
;
import
SelectCommunity
from
'@/components/SelectCommunity'
;
import
Line
from
'@/components/Line/Line'
;
import
TimeComfirm
from
'@/components/TimeComfirm/TimeComfirm'
;
const
module
=
"CommunityAnnouncement"
const
Add
=
(
props
:
any
)
=>
{
const
{
dispatch
,
Result
}
=
props
;
const
formRef
=
useRef
(
null
)
useEffect
(()
=>
{
var
obj
=
{
"noticTitle"
:
"Garden公告"
,
// "communityNum":"珠江丽景小区",
"noticText"
:
"今晚晚上停水4小时"
,
"noticScope"
:
"1"
,
"noticStartTime"
:
"2020-07-01 12:30:00"
,
"noticEndTime"
:
"2020-08-01 9:30:00"
,
"file"
:[
"A.jpg"
]
}
formRef
.
current
.
setFieldsValue
(
obj
)
},
[])
useEffect
(()
=>
{
if
(
Result
!=
null
)
{
console
.
log
(
"页面结果"
)
console
.
log
(
Result
)
if
(
Result
.
error_code
==
undefined
)
{
console
.
log
(
"服务器有问题"
)
message
.
error
(
"服务器有问题,请求失败"
,
5
)
}
}
},
[
Result
])
const
onFinish
=
((
values
:
any
)
=>
{
console
.
log
(
values
)
RA
(
28
,
values
,
module
,
dispatch
);
})
return
(
<
div
style=
{
{
width
:
"100%"
,
minWidth
:
1020
,
padding
:
34
,
backgroundColor
:
"#ffffff"
}
}
>
<
TitleBack
title=
"Add Announcement"
></
TitleBack
>
<
Form
ref=
{
formRef
}
{
...
layout
}
name=
"nest-messages"
onFinish=
{
onFinish
}
validateMessages=
{
validateMessages
}
>
<
Form
.
Item
name=
{
"community"
}
label=
"服务小区"
rules=
{
[]
}
><
SelectCommunity
/></
Form
.
Item
>
<
Form
.
Item
name=
{
"noticTitle"
}
label=
"公告标题"
rules=
{
[]
}
><
Input
style=
{
{
width
:
200
}
}
/></
Form
.
Item
>
<
Form
.
Item
name=
{
"noticText"
}
label=
"公告内容"
rules=
{
[]
}
><
TextArea
style=
{
{
width
:
400
,
height
:
100
}
}
/></
Form
.
Item
>
<
Form
.
Item
style=
{
{
display
:
'inline-block'
,
width
:
'200'
,
marginLeft
:
100
}
}
name=
{
"file"
}
>
<
PictureOptionsRow
action=
"/tos/image/upload"
data=
{
{
imageType
:
'tosNotice'
,
}
}
/>
</
Form
.
Item
>
<
Form
.
Item
name=
{
"noticStartTime"
}
label=
"生效日期"
rules=
{
[]
}
><
TimeComfirm
/></
Form
.
Item
>
<
Form
.
Item
name=
{
"noticEndTime"
}
label=
"结束日期"
rules=
{
[]
}
><
TimeComfirm
/></
Form
.
Item
>
<
Line
></
Line
>
<
Form
.
Item
wrapperCol=
{
{
...
layout
.
wrapperCol
,
offset
:
2
}
}
><
Button
type=
"primary"
htmlType=
"submit"
>
Submit
</
Button
></
Form
.
Item
>
</
Form
>
</
div
>
);
};
function
map
(
state
:
any
)
{
const
{
Result
}
=
state
[
module
]
return
{
Result
}
}
export
default
connect
(
map
)(
Add
);
\ No newline at end of file
src/pages/CommunityManagement/CommunityAnnouncement/CommunityAnnouncement.tsx
View file @
33a25dad
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
connect
,
history
}
from
'umi'
;
import
{
Input
,
Tabs
,
Table
,
Space
,
Button
}
from
'antd'
;
const
{
TabPane
}
=
Tabs
;
import
{
connect
}
from
'umi'
;
import
{
objectColumns
}
from
'@/utils/string'
;
import
{
timestampToTime3
}
from
'@/utils/time'
// communityNum: "A7"
...
...
@@ -27,6 +27,10 @@ const columns = objectColumns( [
[
"Actions"
,
null
,
(
text
:
any
,
record
:
any
)
=>
(<
Space
size=
"middle"
>
<
a
>
Detail
</
a
></
Space
>)],
])
import
{
RA
}
from
'@/utils/method'
;
const
goToAdd
=
()
=>
{
history
.
push
(
"./CommunityAnnouncement/Add"
);
}
const
module
=
"CommunityAnnouncement"
const
CommunityAnnouncement
=
(
props
:
any
)
=>
{
...
...
@@ -36,6 +40,11 @@ const CommunityAnnouncement = (props:any) => {
},[])
return
(
<
div
style=
{
{
width
:
"100%"
,
minWidth
:
1020
,
padding
:
34
,
backgroundColor
:
"#ffffff"
}
}
>
<
div
style=
{
{
height
:
80
,
position
:
"relative"
}
}
>
<
div
style=
{
{
position
:
"absolute"
,
right
:
0
}
}
><
Button
type=
"primary"
onClick=
{
goToAdd
}
>
Create new Announcement
</
Button
></
div
>
</
div
>
{
Data
!=
null
?
<
Table
loading=
{
false
}
...
...
src/pages/OrderManagement/Order.tsx
View file @
33a25dad
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
styles
from
'./index.less'
;
import
{
Input
,
Menu
,
Table
,
Space
}
from
'antd'
;
import
{
Link
,
useIntl
,
connect
,
Dispatch
,
history
}
from
'umi'
;
import
React
,
{
useState
,
useEffect
,
useRef
}
from
'react'
;
import
{
Input
,
Tabs
,
Table
,
Space
,
Button
}
from
'antd'
;
const
{
TabPane
}
=
Tabs
;
import
{
connect
,
history
}
from
'umi'
;
const
orderStatus
=
[[
0
,
"已发单"
],[
1
,
"待上门"
],[
2
,
"进行中"
],[
3
,
"已完成"
],[
4
,
"已取消"
]]
const
columns
=
objectColumns
([
[
"OrderNumber"
,
"orderNumber"
],
[
"Community"
,
"communityName"
],
[
"Owner Name"
,
"ownerName"
],
[
"type"
,
null
,
(
text
:
any
,
record
:
any
)
=>
(<
div
>
{
orderStatus
[
record
.
orderStatus
][
1
]
}
</
div
>)],
[
"Content"
,
"serviceContent"
],
[
"Order Time"
,
null
,
(
text
:
any
,
record
:
any
)
=>
(<
div
>
{
(
record
.
order_send_time
)
}
</
div
>)],
[
"Booking Time"
,
null
,
(
text
:
any
,
record
:
any
)
=>
(<
div
>
{
(
record
.
order_reserve_time
)
}
</
div
>)],
[
"Actions"
,
null
,
(
text
:
any
,
record
:
any
)
=>
(<
Space
size=
"middle"
>
<
a
>
Detail
</
a
></
Space
>)],
])
import
{
RA
}
from
'@/utils/method'
;
import
{
objectColumns
}
from
'@/utils/string'
;
import
TitleSearch
from
'@/components/TitleSearch/TitleSearch'
;
import
{
timestampToTime
}
from
'@/utils/time'
;
const
module
=
"OrderManagement"
const
Order
=
(
props
:
any
)
=>
{
const
{
dispatch
,
Data
}
=
props
;
const
formRef
=
useRef
(
null
)
useEffect
(()
=>
{
RA
(
30
,
{
orderNumber
:
""
,
serviceType
:
"0"
},
module
,
dispatch
)
},[])
return
(
<
div
style=
{
{
width
:
"100%"
,
minWidth
:
1020
,
padding
:
34
,
backgroundColor
:
"#ffffff"
}
}
>
const
dataSource
=
[
{
key
:
'1'
,
name
:
'胡彦斌'
,
age
:
32
,
address
:
'西湖区湖底公园1号'
,
},
];
const
Order
=
(
props
:
{
location
:
any
;
})
=>
{
const
{
formatMessage
}
=
useIntl
();
const
{
location
}
=
props
;
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
menuListNormal
=
[
"A"
,
'Accounting company'
]
const
[
display
,
setDisplay
]
=
useState
(
"A"
);
//小组件:线框
const
pagination
=
{
defaultCurrent
:
1
,
total
:
16
}
const
goToDetail
=
()
=>
{
history
.
push
(
location
.
pathname
+
'/Detail?id=123'
)
Data
!=
null
?
<>
<
TitleSearch
status=
{
[{
name
:
[
"status"
,
"订单状态"
],
data
:
orderStatus
}]
}
listkey=
{
[
'A'
,
'C'
]
}
list=
{
[
'Hello'
,
'world'
]
}
></
TitleSearch
>
<
Table
loading=
{
false
}
rowKey=
"id"
style=
{
{
marginTop
:
16
}
}
dataSource=
{
Data
.
data
.
rows
}
columns=
{
columns
}
pagination=
{
{
current
:
1
,
total
:
Data
.
total
}
}
/>
</>:
null
}
const
goToEdit
=
()
=>
{
history
.
push
(
location
.
pathname
+
'/Edit'
)
}
const
columns
=
[
{
title
:
username
,
dataIndex
:
'name'
,
key
:
'name'
,
},
{
title
:
project
,
dataIndex
:
'age'
,
key
:
'age'
,
},
{
title
:
unit
,
dataIndex
:
'address'
,
key
:
'address'
,
},
{
title
:
status
,
dataIndex
:
'address'
,
key
:
'address'
,
},
{
title
:
submissionTime
,
dataIndex
:
'address'
,
key
:
'address'
,
},
{
title
:
actions
,
key
:
'action'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
<
Space
size=
"middle"
>
<
a
onClick=
{
goToDetail
}
>
Detail
</
a
>
</
Space
>
),
},
];
return
(
<
div
className=
{
styles
.
base
}
>
{
/* 头部组件 */
}
<
div
className=
{
styles
.
box
}
>
<
input
className=
{
styles
.
item1
}
placeholder=
{
nameofowner
}
/>
<
input
className=
{
styles
.
item2
}
placeholder=
{
inputProject
}
/>
<
input
className=
{
styles
.
item4
}
placeholder=
{
inputProject
}
/>
<
button
className=
{
styles
.
item3
}
>
{
search
}
</
button
>
</
div
>
{
/* 内容组件 */
}
<
div
className=
{
styles
.
box2
}
>
</
div
>
{
/* 列表组件 */
}
<
Table
style=
{
{
marginTop
:
16
}
}
dataSource=
{
dataSource
}
columns=
{
columns
}
pagination=
{
pagination
}
/>
</
div
>
);
};
export
default
Order
;
function
map
(
state
:
any
)
{
const
{
Data
}
=
state
[
module
]
return
{
Data
}
}
export
default
connect
(
map
)(
Order
);
// 订单管理模块的order_status int(11) NULL
// /tos/tosOrder/get
// {
// "orderNumber":"123",
// "serviceType":"0"
// }
// 返回的数据
// communityAddress: "TianHeStreet"
// communityId: "0166bd9a1e6f4efca1b867699a649e1d"
// communityName: "A Garden"
// count: 0
// deleted: 0
// extend: ""
// id: "0166bd9a1e6f4efca1b867699a649e1d"
// orderAcceptTime: "Jul 2, 2020 12:00:00 AM"
// orderFinishTime: "Jul 3, 2020 12:00:00 AM"
// orderNumber: "123"
// orderReserveTime: "Jul 3, 2020 12:00:00 AM"
// orderSendTime: "Jul 1, 2020 12:00:00 AM"
// orderStatus: "0"
// ownerId: "0166bd9a1e6f4efca1b867699a649e1d"
// ownerName: "张三"
// ownerPhone: "18817676732"
// serviceContent: "家具维修"
// serviceType: "0"
// order_send_time 发单时间
// order_accept_time 接单时间
// order_reserve_time 预约时间
\ No newline at end of file
src/pages/OrderManagement/index.less
deleted
100644 → 0
View file @
c568b1a4
@import '~antd/lib/style/themes/default.less';
//基石
.base {
width: 100%;
background-color: #ffffff;
padding: 34px;
}
//边栏1
//头部组件
.box{
width: 100%;
height: 34px;
position: relative;
margin-bottom: 56px;
}
.input{
width:200px;
height:32px;
background:none;
outline: none;
border:1px solid rgba(217,217,217,1);
border-radius:2px;
font-size:14px;
font-weight:400;
line-height:30px;
text-indent: 19px;
}
.item1{
.input();
}
.item2{
.input();
margin-left: 20px;
}
.item4{
.input();
margin-left: 20px;
}
.item3{
width:80px;
height:32px;
border:1px solid rgba(24,144,255,1);
border-radius:2px;
background-color:#e7f4ff;
outline: none;
font-size:14px;
font-weight:400;
color:rgba(24,144,255,1);
line-height:30px;
cursor: pointer;
margin-left: 20px;
}
.item3:active{
background-color:#ffffff;
}
//边栏2
.box2{
width: 100%;
height: 40px;
margin-top: 0px;
position: relative;
}
//小组件1
.buttonLine{
width:240px;
height:32px;
border:none;
background:none;
outline: none;
font-size:14px;
font-weight:400;
line-height:30px;
cursor: pointer;
}
.fontgz(){
font-size:16px;
font-family:'Source Han Sans CN;';
font-weight:800;
}
.buttonWait{
.buttonLine();
border-bottom:2px solid#dedede;
color:#454545;
.fontgz();
}
.buttonWait:hover{
border-bottom:3px solid rgba(24,144,255,1);
color:rgba(24,144,255,1);
.fontgz();
}
.buttonChoose{
.buttonLine();
border-bottom:3px solid rgba(24,144,255,1);
color:rgba(24,144,255,1);
.fontgz();
}
.buttonAdd{
background:none;
outline: none;
cursor: pointer;
width:148px;
height:32px;
border:1px solid rgba(24,144,255,1);
color:rgba(24,144,255,1);
border-radius:2px;
position: absolute;
right: 0;
}
.buttonAdd2{
.buttonAdd();
right: 168px;
}
src/pages/UserManagement/LIFEUserManagement/UsersDetail.tsx
View file @
33a25dad
...
...
@@ -20,7 +20,10 @@ const UsersDetail = (props:any) => {
const
[
postman
,
setPostman
]
=
useState
({
extend
:
null
,
tab
:
1
})
const
[
memberDetail
,
setMemberDetail
]
=
useState
(
false
);
const
[
memberData
,
setMemberData
]
=
useState
(
null
);
const
[
editFlag
,
setEditFlag
]
=
useState
(
false
)
const
[
editFlag
,
setEditFlag
]
=
useState
(
false
)
const
user_status
=
[[
1
,
"家属"
],
[
2
,
"租户"
]]
const
formRef
=
useRef
(
null
);
const
onFinish
=
(
values
:
any
)
=>
{
if
(
DataSave
!=
null
)
{
...
...
@@ -78,7 +81,6 @@ const UsersDetail = (props:any) => {
}
},
[])
setEditFlag
const
extendName
=
(
values
:
any
)
=>
{
var
tmp
=
postman
tmp
.
extend
=
values
...
...
@@ -91,7 +93,9 @@ const UsersDetail = (props:any) => {
}
}
const
tableShowCallback
=
(
values
:
any
)
=>
{
const
tableShowCallback
=
(
values
:
any
)
=>
{
console
.
log
(
"成员信息"
)
console
.
log
(
values
)
setMemberData
(
values
)
setMemberDetail
(
true
)
}
...
...
@@ -109,6 +113,9 @@ const UsersDetail = (props:any) => {
}
RA
(
16
,
tmp
);
}
}
const
DeleteMember
=
()
=>
{
}
return
(
<
div
className=
{
styles
.
base
}
>
...
...
@@ -144,8 +151,8 @@ const UsersDetail = (props:any) => {
<
div
>
<
TitleBack
title=
{
"Member Detail"
}
url=
"none"
titleBack=
{
titleBackCallBack
}
></
TitleBack
>
<
Row
>
<
Col
>
Customer Type
</
Col
>
<
Col
>
</
Col
>
<
Col
span=
{
4
}
>
Customer Type
</
Col
>
<
Col
span=
{
4
}
>
{
memberData
.
owner_relationship
!=
null
?
user_status
[(
memberData
.
owner_relationship
)
-
1
][
1
]:
null
}
</
Col
>
</
Row
>
<
Row
gutter=
{
16
}
>
<
Col
span=
{
4
}
>
User Name
</
Col
>
...
...
@@ -156,6 +163,8 @@ const UsersDetail = (props:any) => {
<
Col
span=
{
4
}
>
{
memberData
.
ower_phone
}
</
Col
>
<
Col
span=
{
4
}
>
{
memberData
.
ower_email
}
</
Col
>
</
Row
>
<
Line
></
Line
>
<
Button
type=
"danger"
onClick=
{
DeleteMember
}
>
Delete
</
Button
>
</
div
>
</>
}
...
...
@@ -196,3 +205,9 @@ export default connect(mapStateToProps)(UsersDetail);
// "ownerId":"770da9de6b6c43f6b61bc3d671fa2e89",
// "owerName":"jack-小雄",
// "communityName":"A7"
// http://47.74.233.180:8651/tos/life/community/account/member/del
// {
// "id":"c06286cfe7b843cb96fdfcb987231123",
// "ownerId":"6b359755a36b49c28241a4620fa6539b"
// }
\ No newline at end of file
src/services/tos.ts
View file @
33a25dad
...
...
@@ -92,7 +92,8 @@ const requestList = [
[
"/tos/tosVisitorRecord/get"
,
"26 获取访客记录列表"
],
[
"/tos/contract/add"
,
"27 合同新增和编辑"
],
[
"/tos/tosCommunityNotic/add"
,
"28 新增小区公告接口"
],
[
"/tos/tosManageCommunity/save"
,
"29 新建一个小区"
]
[
"/tos/tosManageCommunity/save"
,
"29 新建一个小区"
],
[
"/tos/tosOrder/get"
,
"30 获取订单详情"
],
]
const
params
=
[
...
...
@@ -112,6 +113,8 @@ export function RA(playload: any) {
console
.
log
(
playload
.
body
)
return
requestAuto
(
url
,
playload
.
body
)
}
// console.log(playload)
// console.log(playload.index)
// console.log(requestList[playload.index])
...
...
@@ -131,24 +134,3 @@ export function RA(playload: any) {
//新增小区公告接口文件上传 http://47.74.233.180:8651/tos/image/upload imageType 参数值为 tosNotice
// 48、新建一个小区
// http://47.74.233.180:8651/tos/tosManageCommunity/save
// {
// "residentialName":"A8",
// "residentialAddress":"TianHe Road No.28",
// "residentialHotline":"hotline",
// "residentialPhone":"200-8888888",
// "residentialEmail":"sales@huahuico.com",
// "residentialManagerUserName":"Mr Chen",
// "residentialHotlineName":"200-22122221",
// "balouscheduleFile":["A.pdf"],
// "serviceGuideFile":["B.pdf"],
// "lifeServiceFile":["C.pdf"]
// }
// 49、新建一个小区-上传楼巴办事指南
// http://localhost:8651/tos/image/upload
// imageType 值为 tosCreateCommunity
// extends 值为 对应小区名 如 A9
src/utils/method.ts
View file @
33a25dad
...
...
@@ -85,3 +85,17 @@ export const Fromate2 = (values:any, reg:string) => {
})
return
result
}
// 获取对象信息
export
const
getObjectInfo
=
(
test
:
any
)
=>
{
console
.
log
(
JSON
.
stringify
(
test
,
null
,
'
\
t'
))
var
array
=
new
Array
()
for
(
let
item
in
test
)
{
array
.
push
([
item
,
typeof
test
[
item
]])
}
console
.
log
(
array
)
console
.
log
(
array
.
length
)
return
array
}
\ No newline at end of file
src/utils/params.ts
0 → 100644
View file @
33a25dad
export
const
validateMessages
=
{
required
:
'${label} is required!'
,
types
:
{
email
:
'${label} is not validate email!'
,
number
:
'${label} is not a validate number!'
,
string
:
'${label} is not a validate number!'
},
string
:
{
range
:
'${label} must be between ${min} and ${max}'
,
},
number
:
{
range
:
'${label} must be between ${min} and ${max}'
,
},
}
\ No newline at end of file
src/utils/time.ts
View file @
33a25dad
...
...
@@ -44,3 +44,14 @@ export const timeToMoment = (tmp: any) => {
var
piece
=
tmp
.
split
(
'-'
)
return
[
moment
(
piece
[
0
],
format
),
moment
(
piece
[
1
],
format
)]
}
export
const
MomentToTime
=
(
tmp
:
any
)
=>
{
if
(
tmp
==
null
)
return
null
return
(
tmp
.
format
(
"YYYY-MM-DD HH:mm:ss"
))
}
export
const
TimeToMoment2
=
(
tmp
:
any
)
=>
{
if
(
tmp
==
null
)
return
null
return
moment
(
tmp
,
"YYYY-MM-DD HH:mm:ss"
)
}
模板.tsx
View file @
33a25dad
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
React
,
{
useState
,
useEffect
,
useRef
}
from
'react'
;
import
{
Input
,
Tabs
,
Table
,
Space
,
Button
}
from
'antd'
;
const
{
TabPane
}
=
Tabs
;
import
{
connect
}
from
'umi'
;
import
{
connect
,
history
}
from
'umi'
;
import
{
RA
}
from
'@/utils/method'
;
...
...
@@ -10,6 +10,7 @@ const module="XXX"
const
XXX
=
(
props
:
any
)
=>
{
const
{
dispatch
,
Data
}
=
props
;
const
formRef
=
useRef
(
null
)
return
(
<
div
style=
{
{
width
:
"100%"
,
minWidth
:
1020
,
padding
:
34
,
backgroundColor
:
"#ffffff"
}
}
>
...
...
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