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
f7414378
Commit
f7414378
authored
Nov 05, 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
039c5669
d9e51e4e
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
97 additions
and
125 deletions
+97
-125
History.ts
src/models/Common/History.ts
+12
-15
CardDetail.tsx
src/pages/CommercialService/CardDetail.tsx
+2
-2
PropertyServices.tsx
src/pages/CommercialService/PropertyServices.tsx
+3
-3
Renovation.tsx
src/pages/CommercialService/Renovation.tsx
+6
-5
ChargeManager.tsx
src/pages/PropertyManagement/ChargeManager.tsx
+1
-1
Edit.tsx
src/pages/UserManagement/ServiceProviderManagement/Edit.tsx
+2
-1
ServiceProviderManagement.tsx
...t/ServiceProviderManagement/ServiceProviderManagement.tsx
+19
-20
index.tsx
src/pages/user/login/components/Login/index.tsx
+6
-0
index.tsx
src/pages/user/login/index.tsx
+46
-78
No files found.
src/models/Common/History.ts
View file @
f7414378
import
{
message
}
from
'antd'
;
import
{
routerRedux
}
from
'dva/router'
import
{
routerRedux
}
from
'dva/router'
;
export
default
{
namespace
:
'History'
,
state
:
{
pageData
:
null
,
history_url
:
null
,
history_url
:
null
,
},
reducers
:
{
...
...
@@ -14,29 +14,26 @@ export default {
return
{
...
state
,
pageData
};
},
returnURL
(
state
,
{
history_url
})
{
return
{
...
state
,
history_url
};
return
{
...
state
,
history_url
};
},
},
effects
:
{
//页面处理
*
PAGE
({
playload
},
{
put
})
{
*
PAGE
({
playload
},
{
put
})
{
let
pageData
=
playload
;
yield
put
({
type
:
'PageData'
,
pageData
,
});
yield
put
({
type
:
'PageData'
,
pageData
});
},
//链接
*
URL
({
playload
},
{
put
})
{
let
history_url
=
playload
;
console
.
log
(
"保存地址"
+
JSON
.
stringify
(
playload
));
yield
put
({
type
:
'returnURL'
,
history_url
});
console
.
log
(
'保存地址'
+
JSON
.
stringify
(
playload
));
yield
put
({
type
:
'returnURL'
,
history_url
});
},
*
URLCLEAR
({},
{
put
})
{
let
history_url
=
null
;
yield
put
({
type
:
'returnURL'
,
history_url
});
},
*
URLCLEAR
({
},
{
put
})
{
let
history_url
=
null
;
yield
put
({
type
:
'returnURL'
,
history_url
});
}
},
};
src/pages/CommercialService/CardDetail.tsx
View file @
f7414378
...
...
@@ -151,7 +151,7 @@ const CardDetail = (props: any) => {
<
Col
span=
{
4
}
>
<
Form
.
Item
name=
"applyStatus"
>
<
Radio
.
Group
>
<
Radio
value=
{
'3'
}
>
Agre
e
</
Radio
>
<
Radio
value=
{
'3'
}
>
Receiv
e
</
Radio
>
</
Radio
.
Group
>
</
Form
.
Item
>
</
Col
>
...
...
@@ -194,7 +194,7 @@ const CardDetail = (props: any) => {
<
Col
span=
{
4
}
>
<
Form
.
Item
name=
"applyStatus"
>
<
Radio
.
Group
>
<
Radio
value=
{
'3'
}
>
Agre
e
</
Radio
>
<
Radio
value=
{
'3'
}
>
Receiv
e
</
Radio
>
</
Radio
.
Group
>
</
Form
.
Item
>
</
Col
>
...
...
src/pages/CommercialService/PropertyServices.tsx
View file @
f7414378
...
...
@@ -26,7 +26,7 @@ const goToName = ['Reply', 'Detail'];
const
module
=
'CommunityService'
;
// 页码
let
pageNum
:
number
=
1
;
let
pageNum
:
any
=
1
;
const
PropertyServices
=
(
props
:
any
)
=>
{
const
{
dispatch
,
location
,
Data
}
=
props
;
...
...
@@ -162,8 +162,8 @@ const PropertyServices = (props: any) => {
columns=
{
columns
}
dataSource=
{
Data
!=
null
?
Data
.
data
.
rows
:
[]
}
pagination=
{
{
defaultPageSize
:
15
,
defaultCurrent
:
pageNum
,
pageSize
:
Data
!=
null
?
Data
.
data
.
page
.
curPageSize
:
0
,
current
:
parseInt
(
pageNum
)
,
total
:
Data
!=
null
?
Data
.
data
.
page
.
totalRow
:
0
,
showSizeChanger
:
false
,
}
}
...
...
src/pages/CommercialService/Renovation.tsx
View file @
f7414378
...
...
@@ -12,8 +12,7 @@ import { objectColumns, stringTab } from '@/utils/string';
import
{
timestampToTime
}
from
'@/utils/time'
;
const
module
=
'CommunityService'
;
let
pageNum
:
number
=
1
;
let
pageNum
:
any
=
1
;
const
Renovation
=
(
props
:
any
)
=>
{
// const decoration_status = [[0, "待处理"], [1, "已批准"], [2, "已拒绝"]]
const
decoration_status
=
[
...
...
@@ -59,9 +58,10 @@ const Renovation = (props: any) => {
const
{
dispatch
,
Data8
,
location
}
=
props
;
useEffect
(()
=>
{
pageNum
=
1
;
//分页设置
if
(
location
.
query
.
pageNum
!=
null
)
{
pageNum
=
parseInt
(
location
.
query
.
pageNum
)
;
pageNum
=
location
.
query
.
pageNum
;
}
else
{
pageNum
=
1
;
}
...
...
@@ -111,6 +111,7 @@ const Renovation = (props: any) => {
tmp
[
'pageNum'
]
=
values
.
current
;
history
.
push
(
location
.
pathname
+
urlEncode
(
tmp
));
};
return
(
<
div
style=
{
{
width
:
'100%'
,
minWidth
:
1020
,
padding
:
34
,
backgroundColor
:
'#ffffff'
}
}
>
<>
...
...
@@ -130,8 +131,8 @@ const Renovation = (props: any) => {
columns=
{
columns
}
onChange=
{
PageChange
}
pagination=
{
{
current
:
pa
geNum
,
defaultPageSize
:
15
,
current
:
pa
rseInt
(
pageNum
)
,
pageSize
:
Data8
!==
null
?
Data8
.
data
.
page
.
curPageSize
:
null
,
total
:
Data8
!==
null
?
Data8
.
data
.
page
.
totalRow
:
null
,
showSizeChanger
:
false
,
}
}
...
...
src/pages/PropertyManagement/ChargeManager.tsx
View file @
f7414378
...
...
@@ -159,7 +159,7 @@ const ChargeManager = (props: any) => {
loading=
{
loading
}
onChange=
{
changePage
}
pagination=
{
{
defaultPageSize
:
15
,
pageSize
:
Data
!==
null
?
Data
.
page
.
curPageSize
:
0
,
showSizeChanger
:
false
,
total
:
Data
!==
null
?
Data
.
page
.
totalRow
:
''
,
current
:
Data
!==
null
?
Data
.
page
.
currentPage
:
1
,
...
...
src/pages/UserManagement/ServiceProviderManagement/Edit.tsx
View file @
f7414378
...
...
@@ -181,7 +181,8 @@ const Edit = (props: any) => {
message
:
'Please enter the name of the person in charge!'
,
},
{
len
:
2
,
min
:
2
,
max
:
30
,
message
:
'It must be between 2 and 30'
,
},
]
}
...
...
src/pages/UserManagement/ServiceProviderManagement/ServiceProviderManagement.tsx
View file @
f7414378
...
...
@@ -23,7 +23,7 @@ let readyData: any = {
providerName
:
''
,
};
// 节流阀
let
flag
=
false
;
let
flag
:
boolean
=
false
;
const
ServiceProviderManagement
=
(
props
:
any
)
=>
{
const
[
loading
,
setLoading
]
=
useState
(
false
);
...
...
@@ -183,13 +183,6 @@ const ServiceProviderManagement = (props: any) => {
return
tmp
;
};
// table组件配置
const
pagination
=
{
current
:
readyData
.
pageNum
,
total
:
Data
!==
null
?
Data
.
page
.
totalRow
:
null
,
showSizeChanger
:
false
,
};
return
(
<
div
className=
{
styles
.
base
}
>
{
/* 头部组件 */
}
...
...
@@ -224,18 +217,24 @@ const ServiceProviderManagement = (props: any) => {
</
div
>
{
/* 列表组件 */
}
<
Spin
spinning=
{
Data
!=
null
?
false
:
true
}
>
<
Table
size=
"small"
rowKey=
{
'id'
}
style=
{
{
marginTop
:
16
}
}
loading=
{
loading
}
columns=
{
columns
}
dataSource=
{
Data
!=
null
?
dataSource
(
Data
.
rows
)
:
null
}
pagination=
{
Data
!=
null
?
pagination
:
{}
}
onChange=
{
pageChange
}
/>
</
Spin
>
<
Table
rowKey=
{
'id'
}
style=
{
{
marginTop
:
16
}
}
loading=
{
loading
}
columns=
{
columns
}
dataSource=
{
Data
!=
null
?
dataSource
(
Data
.
rows
)
:
[]
}
pagination=
{
Data
!=
null
?
{
current
:
parseInt
(
readyData
.
pageNum
),
total
:
Data
.
page
.
totalRow
,
showSizeChanger
:
false
,
pageSize
:
Data
.
page
.
curPageSize
,
}
:
{}
}
onChange=
{
pageChange
}
/>
</
div
>
);
};
...
...
src/pages/user/login/components/Login/index.tsx
View file @
f7414378
...
...
@@ -22,6 +22,7 @@ export interface LoginProps {
}
interface
LoginType
extends
React
.
FC
<
LoginProps
>
{
//
Tab
:
typeof
LoginTab
;
Submit
:
typeof
LoginSubmit
;
UserName
:
React
.
FunctionComponent
<
LoginItemProps
>
;
...
...
@@ -57,13 +58,18 @@ const Login: LoginType = (props) => {
<
LoginContext
.
Provider
value=
{
{
tabUtil
:
{
// 将参数id添加到tabs中,根据tabs是否为空来判断是否渲染Tab组件
addTab
:
(
id
)
=>
{
setTabs
([...
tabs
,
id
]);
},
// 剔除id
removeTab
:
(
id
)
=>
{
setTabs
(
tabs
.
filter
((
currentId
)
=>
currentId
!==
id
));
},
},
// 参数传递activeItem,根据Login的active属性判断
// 如果active[type]存在 则将activeItem添加到active[type]中
// 如果不存在,则active[type]设置为Array属性,并将activeItem添加进去
updateActive
:
(
activeItem
)
=>
{
if
(
!
active
)
return
;
if
(
active
[
type
])
{
...
...
src/pages/user/login/index.tsx
View file @
f7414378
import
{
AlipayCircleOutlined
,
TaobaoCircleOutlined
,
WeiboCircleOutlined
,
ArrowLeftOutlined
,
}
from
'@ant-design/icons'
;
import
{
ArrowLeftOutlined
}
from
'@ant-design/icons'
;
import
{
Alert
,
Checkbox
,
Input
,
message
,
Form
,
Button
}
from
'antd'
;
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
React
,
{
useState
,
useEffect
,
useCallback
}
from
'react'
;
import
{
Link
,
connect
,
Dispatch
,
history
,
Redirect
}
from
'umi'
;
import
{
StateType
}
from
'@/models/login'
;
import
{
LoginParamsType
}
from
'@/services/login'
;
import
{
LoginParamsType
,
getFakeCaptcha
}
from
'@/services/login'
;
import
{
ConnectState
}
from
'@/models/connect'
;
import
LoginForm
from
'./components/Login'
;
import
styles
from
'./style.less'
;
import
e
from
'express'
;
const
{
Tab
,
UserName
,
Password
,
Mobile
,
Captcha
,
Submit
}
=
LoginForm
;
interface
LoginProps
{
dispatch
:
Dispatch
;
userLogin
:
StateType
;
submitting
?:
boolean
;
}
let
flag
=
false
;
const
Login
:
React
.
FC
<
LoginProps
>
=
(
props
)
=>
{
const
{
userLogin
=
{},
submitting
}
=
props
;
const
{
userLogin
=
{},
submitting
,
dispatch
}
=
props
;
const
{
status
,
type
:
loginType
}
=
userLogin
;
const
[
type
,
setType
]
=
useState
<
string
>
(
'account'
);
const
[
userName
,
setUsername
]
=
useState
(
''
);
// const [password, setPasswd] = useState('');
const
[
forgetflag
,
setForgetFlag
]
=
useState
(
false
);
const
{
dispatch
}
=
props
;
const
[
count
,
setCount
]
=
useState
<
number
>
(
60
);
const
[
timing
,
setTiming
]
=
useState
(
false
);
// 提交按钮
const
handleSubmit
=
(
values
:
LoginParamsType
)
=>
{
console
.
log
(
values
);
if
(
forgetflag
)
{
...
...
@@ -49,33 +39,35 @@ const Login: React.FC<LoginProps> = (props) => {
message
.
error
(
'The username or password cannot be empty!'
);
}
};
// 用户名
const
usernameHandle
=
(
e
:
any
)
=>
{
setUsername
(
e
.
target
.
value
);
};
// const passwdHandle = (e: any) => {
// setPasswd(e.target.value);
// };
// 登录
const
returnHandle
=
(
e
:
any
)
=>
{
history
.
push
(
'/user/login'
);
};
// 忘记密码
const
gotoForgetHandle
=
(
e
:
any
)
=>
{
history
.
push
(
'/user/forget'
);
};
const
handleSend
=
(
e
:
any
)
=>
{
console
.
log
(
userName
)
;
if
(
timing
)
return
;
if
(
userName
!==
''
&&
/^
[
a-z0-9
]
+
([
._
\\
-
]
*
[
a-z0-9
])
*@
([
a-z0-9
]
+
[
-a-z0-9
]
*
[
a-z0-9
]
+.
){1,63}[
a-z0-9
]
+$/
.
test
(
userName
)
)
{
console
.
log
(
'邮箱正确!'
);
flag
=
true
;
onGetCaptcha
(
'mobile'
)
;
}
else
{
message
.
warning
(
'Please enter the correct email address!'
);
}
};
// 监听路由
useEffect
(()
=>
{
if
(
location
.
pathname
==
'/user/forget'
)
{
setForgetFlag
(
true
);
...
...
@@ -84,63 +76,39 @@ const Login: React.FC<LoginProps> = (props) => {
}
},
[
location
.
pathname
]);
const
timeOut
=
()
=>
{
if
(
flag
)
{
let
number
=
60
;
let
timeId
=
setTimeout
(()
=>
{
number
--
;
if
(
number
===
0
)
{
flag
=
false
;
clearTimeout
(
timeId
);
}
},
60000
);
return
number
;
const
onGetCaptcha
=
useCallback
(
async
(
mobile
:
string
)
=>
{
const
result
=
await
getFakeCaptcha
(
mobile
);
console
.
log
(
result
);
if
(
result
===
false
)
{
return
;
}
};
message
.
success
(
'获取验证码成功!验证码为:1234'
);
setTiming
(
true
);
},
[]);
useEffect
(()
=>
{
console
.
log
(
'计算秒数'
);
let
interval
:
number
=
0
;
console
.
log
(
timing
);
if
(
timing
)
{
interval
=
window
.
setInterval
(()
=>
{
setCount
((
preSecond
)
=>
{
if
(
preSecond
<=
1
)
{
setTiming
(
false
);
clearInterval
(
interval
);
// 重置秒数
return
60
;
}
return
preSecond
-
1
;
});
},
1000
);
}
return
()
=>
clearInterval
(
interval
);
},
[
timing
]);
return
(
<
div
>
{
/* {forgetflag ? (
<div style={{ position: 'absolute', top: -50, cursor: 'pointer' }} onClick={returnHandle}>
<ArrowLeftOutlined style={{ fontSize: '28px' }} />
</div>
) : (
<div />
)}
<LoginForm activeKey={type} onTabChange={setType} onSubmit={handleSubmit}>
<div className={styles.box1}>
{forgetflag ? 'Please enter email address' : 'Account Name'}
</div>
<input className={styles.input} onChange={usernameHandle} />
<div className={styles.box1}>
{forgetflag ? 'Please enter a verification code' : 'Password'}
</div>
{forgetflag ? (
<div className={styles.box2}>
<input className={styles.input5} onChange={passwdHandle} />
<div className={styles.button2} style={{ float: 'right' }} onClick={handleSend}>
Send
</div>
</div>
) : (
<div>
<input className={styles.input2} onChange={passwdHandle} type="password" />
<div>
<div className={styles.input3} onClick={gotoForgetHandle}>
Forget Password
</div>
<div className={styles.input4}>
{status === 'error' && loginType === 'account' && !submitting && (
<div>Wrong account or password</div>
)}
</div>
</div>
</div>
)}
<Submit className={styles.button} loading={submitting} style={{ width: 330 }}>
{forgetflag ? 'Next' : '登录'}
</Submit>
</LoginForm> */
}
{
forgetflag
?
(
<
div
style=
{
{
position
:
'absolute'
,
top
:
-
50
,
cursor
:
'pointer'
}
}
onClick=
{
returnHandle
}
>
<
ArrowLeftOutlined
style=
{
{
fontSize
:
'28px'
}
}
/>
...
...
@@ -153,7 +121,7 @@ const Login: React.FC<LoginProps> = (props) => {
{
forgetflag
?
'Please enter email address'
:
'Account Name'
}
</
div
>
<
Form
.
Item
name=
"userName"
>
<
input
className=
{
styles
.
input
}
onChange=
{
usernameHandle
}
/>
<
input
className=
{
styles
.
input
}
value=
{
userName
||
''
}
onChange=
{
usernameHandle
}
/>
</
Form
.
Item
>
<
div
className=
{
styles
.
box1
}
>
{
forgetflag
?
'Please enter a verification code'
:
'Password'
}
...
...
@@ -162,7 +130,7 @@ const Login: React.FC<LoginProps> = (props) => {
<
div
className=
{
styles
.
box2
}
>
<
input
className=
{
styles
.
input5
}
/>
<
div
className=
{
styles
.
button2
}
style=
{
{
float
:
'right'
}
}
onClick=
{
handleSend
}
>
{
flag
?
timeOut
:
'Send'
}
{
timing
?
`${count} 秒`
:
'Send'
}
</
div
>
</
div
>
)
:
(
...
...
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