Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
jinfa-admin
Project
Project
Details
Activity
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
project
jinfa-admin
Commits
9623ea13
Commit
9623ea13
authored
Dec 11, 2020
by
XieZhiXiong
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
http://10.0.0.22:3000/lingxi/lingxi-business-system
into dev
parents
32f8c7c6
2c4fccea
Hide whitespace changes
Inline
Side-by-side
Showing
37 changed files
with
773 additions
and
428 deletions
+773
-428
systemManageRoute.ts
config/routes/systemManageRoute.ts
+8
-3
package.json
package.json
+7
-7
index.js
scripts/services/index.js
+1
-9
app.tsx
src/app.tsx
+5
-1
index.ts
src/constants/index.ts
+5
-4
global.d.ts
src/global/config/global.d.ts
+0
-16
RightContent.tsx
src/layouts/RightContent.tsx
+70
-37
PwdModal.tsx
src/layouts/components/PwdModal.tsx
+112
-0
index.less
src/layouts/index.less
+4
-6
menu.ts
src/locales/zh-CN/menu.ts
+11
-10
index.tsx
src/pages/commodity/effect/index.tsx
+1
-2
index.less
src/pages/home/components/DataCenter/index.less
+7
-12
index.tsx
src/pages/home/components/DataCenter/index.tsx
+55
-44
index.tsx
src/pages/home/components/MemberStatistics/index.tsx
+7
-8
lineChart.tsx
src/pages/home/components/MemberStatistics/lineChart.tsx
+5
-6
index.less
src/pages/home/components/OrderStatistics/index.less
+4
-4
index.tsx
src/pages/home/components/OrderStatistics/index.tsx
+11
-12
index.less
src/pages/home/components/RiseCenter/index.less
+7
-12
index.tsx
src/pages/home/components/RiseCenter/index.tsx
+37
-27
index.less
src/pages/home/components/Settlement/index.less
+6
-6
index.tsx
src/pages/home/components/Settlement/index.tsx
+8
-9
index.less
src/pages/home/components/StatisticsColumn/index.less
+5
-5
index.tsx
src/pages/home/components/StatisticsColumn/index.tsx
+53
-46
index.tsx
src/pages/home/components/TodayAdd/index.tsx
+4
-5
index.less
src/pages/home/index.less
+36
-3
index.tsx
src/pages/home/index.tsx
+38
-42
index.tsx
src/pages/orderSystem/index.tsx
+6
-0
index.tsx
...stem/orderDetail/components/orderPayResultModal/index.tsx
+14
-11
index.tsx
src/pages/pageCustomized/templateDetail/index.tsx
+8
-8
detail.tsx
src/pages/ruleSettingManage/payStrategy/detail.tsx
+12
-11
index.tsx
src/pages/systemManage/platformArg/index.tsx
+36
-20
template.tsx
src/pages/systemManage/platformArg/template.tsx
+73
-0
index.tsx
src/pages/systemManage/sensitiveWords/index.tsx
+2
-4
index.tsx
src/pages/systemManage/unit/index.tsx
+58
-17
template.tsx
src/pages/systemManage/unit/template.tsx
+46
-9
checkBrand.tsx
src/pages/trademark/trademarkWillCheck/checkBrand.tsx
+11
-11
ytt.config.ts
ytt.config.ts
+0
-1
No files found.
config/routes/systemManageRoute.ts
View file @
9623ea13
...
...
@@ -51,11 +51,17 @@ const router = {
hideInMenu
:
true
,
component
:
'@/pages/systemManage/unit/template'
,
},{
// 平台参数列表
// 平台参数列表
path
:
'/system/platformArg'
,
name
:
'platformArg'
,
hidePageHeader
:
true
,
component
:
'@/pages/systemManage/platformArg'
,
},{
// 平台参数列表
path
:
'/system/platformArg/edit'
,
name
:
'platformArgEdit'
,
hidePageHeader
:
true
,
component
:
'@/pages/systemManage/platformArg/template'
,
}]
}
export
default
router
\ No newline at end of file
export
default
router
package.json
View file @
9623ea13
...
...
@@ -17,17 +17,17 @@
"build:dev"
:
"pm2 start scripts/devServer.js"
,
"build:analyze"
:
"ANALYZE=1 umi build"
,
"build:clean"
:
"umi build"
,
"build:scm"
:
"cross-env SITE_ID=1 BACK_GATEWAY=http://lingxi-scm.wg.shushangyun.com yarn build"
,
"build:10"
:
"cross-env SITE_ID=1 BACK_GATEWAY=http://10.0.0.10:8100 yarn build"
,
"build:25"
:
"cross-env SITE_ID=352 BACK_GATEWAY=http://10.0.0.25:8100 yarn build"
,
"build:scm"
:
"cross-env SITE_ID=1 BACK_GATEWAY=http://lingxi-scm.wg.shushangyun.com
SOCKET_URL=ws://lingxi-scm.wg.shushangyun.com
yarn build"
,
"build:10"
:
"cross-env SITE_ID=1 BACK_GATEWAY=http://10.0.0.10:8100
SOCKET_URL=ws://10.0.0.10:9400
yarn build"
,
"build:25"
:
"cross-env SITE_ID=352 BACK_GATEWAY=http://10.0.0.25:8100
SOCKET_URL=ws://10.0.0.25:9400
yarn build"
,
"postinstall"
:
"umi generate tmp"
,
"prettier"
:
"prettier --write '**/*.{js,jsx,tsx,ts,less,md,json}'"
,
"test"
:
"umi-test"
,
"test:coverage"
:
"umi-test --coverage"
,
"start:cross"
:
"cross-env SITE_ID=352 SOCKET_URL=ws://10.0.0.25:
81
00 yarn start"
,
"start:cross-dev"
:
"cross-env SITE_ID=352 SOCKET_URL=ws://10.0.0.25:
8100 yarn start
"
,
"start:10"
:
"cross-env SITE_ID=1 BACK_GATEWAY=http://10.0.0.10:8100 yarn start"
,
"start:scm"
:
"cross-env BACK_GATEWAY=http://lingxi-scm.wg.shushangyun.com SITE_ID=1 yarn start"
"start:cross"
:
"cross-env SITE_ID=352 SOCKET_URL=ws://10.0.0.25:
94
00 yarn start"
,
"start:cross-dev"
:
"cross-env SITE_ID=352 SOCKET_URL=ws://10.0.0.25:
9400 yarn start:dev
"
,
"start:10"
:
"cross-env SITE_ID=1 BACK_GATEWAY=http://10.0.0.10:8100
SOCKET_URL=ws://10.0.0.10:9400
yarn start"
,
"start:scm"
:
"cross-env BACK_GATEWAY=http://lingxi-scm.wg.shushangyun.com S
OCKET_URL=ws://lingxi-scm.wg.shushangyun.com S
ITE_ID=1 yarn start"
},
"lint-staged"
:
{
"*.{js,jsx,less,md,json}"
:
[
...
...
scripts/services/index.js
View file @
9623ea13
...
...
@@ -35,13 +35,6 @@ const axios = Axios.create({
})
const
serviceConfig
=
{
// 用于注册页
userRegister
:
{
useType
:
{
url
:
'/member/menu/register/type'
,
method
:
'get'
}
},
//初始化会员支付策略配置
payConfig
:
{
payInitializeConfig
:
{
...
...
@@ -115,4 +108,4 @@ async function batchAxiosHttps() {
return
isDemo
?
Object
.
assign
(
asyncHttpQueue
,
await
demoFetch
())
:
asyncHttpQueue
}
exports
.
fetchConfig
=
batchAxiosHttps
\ No newline at end of file
exports
.
fetchConfig
=
batchAxiosHttps
src/app.tsx
View file @
9623ea13
...
...
@@ -86,6 +86,10 @@ export function render(oldRender:Function) {
* @param {*} { routes, matchedRoutes, location, action }
*/
export
function
onRouteChange
({
routes
,
matchedRoutes
,
location
,
action
})
{
console
.
log
(
'onRouteChange'
)
// 路由切换时, 自动回到顶部
document
.
body
.
scrollTop
=
document
.
documentElement
.
scrollTop
=
0
;
if
(
isDev
)
{
console
.
log
(
'dev'
)
return
;
...
...
@@ -123,7 +127,7 @@ export function onRouteChange({ routes, matchedRoutes, location, action }) {
history
.
replace
(
'/noAuth'
)
}
else
{
// 未登录
if
(
whiteLists
.
includes
(
location
.
pathname
))
{
// 访问路由在白名单里
}
else
{
...
...
src/constants/index.ts
View file @
9623ea13
export
const
NOT_CHANGE_VALUE
=
'hello, world'
// socket的链接地址, 默认会使用后端接口网关地址
export
const
SOCKET_URL
=
process
.
env
.
SOCKET_URL
||
process
.
env
.
BACK_GATEWAY
?.
replace
(
'http'
,
'ws'
)
||
"ws://10.0.0.25:9400"
export
const
SOCKET_URL
=
process
.
env
.
SOCKET_URL
?.
replace
(
'http|https'
,
'ws'
)
||
process
.
env
.
BACK_GATEWAY
?.
replace
(
'http|https'
,
'ws'
)
// 会员角色类型
export
const
MEMBER_ROLE_LISTS
=
[
...
...
@@ -586,6 +586,7 @@ export const PurchaseOrderOutWorkStateTexts = {
export
const
PurchaseOrderInsideWorkStateTexts
=
{
"-1"
:
'取消订单'
,
0
:
'订单完成'
,
1
:
'新增采购订单'
,
2
:
'一级审核订单'
,
3
:
'二级审核订单'
,
...
...
@@ -605,6 +606,7 @@ export const PurchaseOrderInsideWorkStateTexts = {
// 销售订单内部显示文案
export
const
SaleOrderInsideWorkStateTexts
=
{
0
:
'订单完成'
,
1
:
'待审核订单'
,
2
:
'一级审核订单'
,
3
:
'二级审核订单'
,
...
...
@@ -615,7 +617,7 @@ export const SaleOrderInsideWorkStateTexts = {
8
:
'提交二级审核订单不通过'
,
9
:
'不接受订单'
,
10
:
'待确认支付结果'
,
16
:
'支付结果确认到账'
,
17
:
'支付结果没到账'
,
18
:
'发货单创建'
,
...
...
@@ -651,4 +653,4 @@ export const InquiryStateTexts = {
2
:
'待确认'
,
3
:
'接受报价'
,
4
:
'不接受报价'
,
}
\ No newline at end of file
}
src/global/config/global.d.ts
View file @
9623ea13
export
interface
BusinessType
{
businessTypeId
:
number
;
businessTypeName
:
string
;
}
export
interface
UseType
{
memberTypeId
:
number
;
memberTypeName
:
string
;
businessTypes
:
BusinessType
[];
}
export
interface
UserRegister
{
useType
:
UseType
[];
}
export
interface
RuleConfiguration
{
value
:
number
;
label
:
string
;
...
...
@@ -88,7 +73,6 @@ export interface Global {
}
export
interface
RootObject
{
userRegister
:
UserRegister
;
payConfig
:
PayConfig
;
web
:
Web
;
global
:
Global
;
...
...
src/layouts/RightContent.tsx
View file @
9623ea13
import
React
,
{
useState
,
useEffect
,
useRef
,
useCallback
,
useLayoutEffect
}
from
'react'
import
{
Link
,
history
}
from
'umi'
import
{
Menu
,
Dropdown
,
List
,
Avatar
,
Skeleton
}
from
'antd'
import
{
Menu
,
Dropdown
,
List
,
Avatar
,
Modal
,
Badge
}
from
'antd'
import
{
BellOutlined
,
CaretDownOutlined
}
from
'@ant-design/icons'
import
styles
from
'./index.less'
import
{
removeAuth
,
getAuth
}
from
'@/utils/auth'
...
...
@@ -8,21 +8,43 @@ import { PublicApi } from '@/services/api';
import
moment
from
'moment'
;
import
msg_system
from
'@/asserts/msg_system.png'
import
msg_platform
from
'@/asserts/msg_platform.png'
import
{
SOCKET_URL
}
from
'@/constants'
;
import
PwdModal
from
'./components/PwdModal'
;
import
{
encryptedByAES
}
from
'@/utils/cryptoAes'
const
RightContent
:
React
.
FC
<
{}
>
=
(
props
)
=>
{
const
[
visible
,
setVisible
]
=
useState
(
false
);
const
[
messageData
,
setMessageData
]
=
useState
<
any
[]
>
([]);
const
[
loading
,
setLoading
]
=
useState
(
true
);
const
ws
=
useRef
<
WebSocket
|
null
>
(
null
);
const
[
unreadMsg
,
setUnReadMsg
]
=
useState
<
number
>
(
0
);
const
[
msgloading
,
setMsgLoading
]
=
useState
(
true
);
const
[
editPwdVisible
,
setEditPwdVisible
]
=
useState
(
false
);
const
[
confirmLoading
,
setConfirmLoading
]
=
useState
(
false
);
const
ws
=
useRef
<
WebSocket
|
null
>
(
null
);
const
toLogin
=
()
=>
{
removeAuth
()
history
.
replace
(
'/login'
)
}
const
handleChangePwd
=
useCallback
((
value
:
any
)
=>
{
setConfirmLoading
(
true
)
PublicApi
.
postMemberManageSecurityPswUpdate
({
oldPassword
:
encryptedByAES
(
value
.
oldPwd
),
newPassword
:
encryptedByAES
(
value
.
newPwd
)
}).
then
((
data
)
=>
{
setEditPwdVisible
(
false
);
setConfirmLoading
(
false
);
})
},
[])
const
handleCancel
=
useCallback
(()
=>
{
setEditPwdVisible
(
false
)
},
[])
const
menu
=
(
<
Menu
>
<
Menu
.
Item
>
<
Menu
.
Item
onClick=
{
()
=>
setEditPwdVisible
(
true
)
}
>
密码修改
</
Menu
.
Item
>
<
Menu
.
Item
onClick=
{
toLogin
}
>
...
...
@@ -34,11 +56,11 @@ const RightContent: React.FC<{}> = (props) => {
const
userInfo
=
getAuth
()
useEffect
(()
=>
{
if
(
visible
)
{
setLoading
(
true
)
set
Msg
Loading
(
true
)
PublicApi
.
getReportMessagePlatformPage
({
current
:
'1'
,
pageSize
:
'4'
})
.
then
((
data
)
=>
{
if
(
data
.
code
===
1000
)
{
setLoading
(
false
)
set
Msg
Loading
(
false
)
setMessageData
(
data
.
data
.
data
);
}
})
...
...
@@ -47,17 +69,22 @@ const RightContent: React.FC<{}> = (props) => {
const
webSocketInit
=
useCallback
(()
=>
{
console
.
log
(
ws
.
current
)
if
(
!
ws
.
current
||
ws
.
current
.
readyState
===
3
)
{
ws
.
current
=
new
WebSocket
(
`ws://10.0.0.25:8100/report/websocket?memberId=
${
userInfo
.
memberId
}
&roleId=
${
userInfo
.
memberRoleId
}
`
);
if
(
SOCKET_URL
&&
/ws
\:\/\/
/
.
test
(
SOCKET_URL
)
&&
(
!
ws
.
current
||
ws
.
current
.
readyState
===
3
)
&&
userInfo
)
{
const
url
=
`
${
SOCKET_URL
}
/report/websocket?memberId=
${
userInfo
.
memberId
}
&roleId=
${
userInfo
.
memberRoleId
}
&token=
${
userInfo
.
token
}
&source=
${
99
}
`
ws
.
current
=
new
WebSocket
(
url
);
ws
.
current
.
onopen
=
(
e
)
=>
{
console
.
log
(
e
)
}
ws
.
current
.
onmessage
=
(
e
)
=>
{
console
.
log
(
e
)
const
data
=
JSON
.
parse
(
e
.
data
);
if
(
data
.
type
===
1
)
{
setUnReadMsg
(
data
.
data
)
}
};
ws
.
current
.
onclose
=
(
e
)
=>
{
console
.
log
(
"关闭连接"
)
}
}
ws
.
current
.
onerror
=
(
e
)
=>
{
console
.
log
(
"socket 出错"
)
}
...
...
@@ -65,7 +92,7 @@ const RightContent: React.FC<{}> = (props) => {
},
[
ws
]);
useLayoutEffect
(()
=>
{
//
webSocketInit();
webSocketInit
();
return
()
=>
{
ws
.
current
?.
close
();
};
...
...
@@ -76,6 +103,7 @@ const RightContent: React.FC<{}> = (props) => {
<
div
className=
{
styles
.
header
}
>
消息列表
</
div
>
<
List
itemLayout=
"horizontal"
loading=
{
msgloading
}
dataSource=
{
messageData
}
footer=
{
<
a
className=
{
styles
.
messageFooter
}
href=
"/message/messageList"
>
...
...
@@ -85,17 +113,17 @@ const RightContent: React.FC<{}> = (props) => {
renderItem=
{
(
item
:
any
)
=>
{
return
(
<
List
.
Item
>
<
Skeleton
paragraph=
{
{
rows
:
1
}
}
loading=
{
loading
}
active
avatar
>
{
/* <Skeleton paragraph={{ rows: 1 }} loading={loading} active avatar> */
}
<
div
className=
{
styles
.
msgContainer
}
>
<
div
className=
{
styles
.
msgItemIcon
}
>
<
Avatar
src=
{
item
.
type
==
1
?
msg_system
:
msg_platform
}
/>
</
div
>
<
div
>
<
div
className=
{
styles
.
msgTitle
}
>
{
item
.
title
}
</
div
>
<
div
className=
{
styles
.
msgTime
}
>
{
moment
(
item
.
sendTime
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
}
</
div
>
<
div
className=
{
styles
.
msgTitle
}
>
{
item
.
title
}
</
div
>
<
div
className=
{
styles
.
msgTime
}
>
{
moment
(
item
.
sendTime
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
}
</
div
>
</
div
>
</
div
>
</
Skeleton
>
{
/* </Skeleton> */
}
</
List
.
Item
>
)
}
}
...
...
@@ -103,28 +131,34 @@ const RightContent: React.FC<{}> = (props) => {
</
div
>
)
return
<
div
className=
{
styles
.
lxLayoutRight
}
>
<
Link
to=
"/home"
className=
{
styles
.
lxLink
}
>
返回首页
</
Link
>
<
Dropdown
overlay=
{
menuMessage
}
trigger=
{
[
'click'
]
}
visible=
{
visible
}
>
<
a
href=
""
rel=
"noopener noreferrer"
className=
{
styles
.
topMessage
}
>
<
BellOutlined
onClick=
{
()
=>
setVisible
(
!
visible
)
}
/
>
<
span
className=
"pulse"
></
spa
n
>
</
a
>
</
Dropdown
>
<
Dropdown
overlay=
{
menu
}
>
<
div
className=
{
styles
.
avatarWrap
}
>
<
div
className=
{
styles
.
avatar
}
></
div
>
<
div
className=
"ant-dropdown-link"
onClick=
{
e
=>
e
.
preventDefault
()
}
>
<
span
>
{
userInfo
?.
name
||
'未知用户'
}
</
span
>
<
CaretDownOutlined
/
>
return
(
<
div
className=
{
styles
.
lxLayoutRight
}
>
<
Link
to=
"/home"
className=
{
styles
.
lxLink
}
>
返回首页
</
Link
>
<
Dropdown
overlay=
{
menuMessage
}
trigger=
{
[
'click'
]
}
visible=
{
visible
}
>
<
span
className=
{
styles
.
topMessage
}
>
<
Badge
count=
{
unreadMsg
}
size=
{
"small"
}
>
<
BellOutlined
onClick=
{
()
=>
setVisible
(
!
visible
)
}
/>
</
Badge
>
<
/
span
>
</
Dropdow
n
>
<
Dropdown
overlay=
{
menu
}
>
<
div
className=
{
styles
.
avatarWrap
}
>
<
div
className=
{
styles
.
avatar
}
></
div
>
<
div
className=
"ant-dropdown-link"
onClick=
{
e
=>
e
.
preventDefault
()
}
>
<
span
>
{
userInfo
?.
name
||
'未知用户'
}
</
span
>
<
CaretDownOutlined
/
>
<
/
div
>
</
div
>
</
div
>
</
Dropdown
>
</
div
>
</
Dropdown
>
<
PwdModal
visible=
{
editPwdVisible
}
onCancel=
{
handleCancel
}
onOk=
{
handleChangePwd
}
confirmLoading=
{
confirmLoading
}
/>
</
div
>
)
}
export
default
RightContent
\ No newline at end of file
export
default
RightContent
src/layouts/components/PwdModal.tsx
0 → 100644
View file @
9623ea13
import
React
from
'react'
;
import
{
Modal
,
Input
}
from
'antd'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
{
registerValidationRules
,
createAsyncFormActions
,
FormEffectHooks
}
from
'@formily/antd'
;
const
actions
=
createAsyncFormActions
();
const
Password
=
Input
.
Password
;
registerValidationRules
({
passwordRule
:
value
=>
{
const
pattern
=
/^
(?![
0-9
]
+$
)(?![
a-z
]
+$
)(?![
A-Z
]
+$
)(?!([^
(0-9a-zA-Z)
])
+$
)
^.
{8,16}
$/
;
return
!
pattern
.
test
(
value
)
?
"8-16个字符,由英文字母(区分大小写)、数字组成,请勿使用简单密码。"
:
""
},
passwordIsSame
:
async
(
value
)
=>
{
const
newPwd
=
await
actions
.
getFieldValue
(
'newPwd'
);
return
newPwd
!==
value
?
"两次密码不一致"
:
''
;
}
})
const
schema
=
{
type
:
'object'
,
properties
:
{
layout
:
{
type
:
'object'
,
'x-component'
:
'mega-layout'
,
"x-component-props"
:
{
"labelAlign"
:
"top"
,
"full"
:
true
},
properties
:
{
oldPwd
:
{
type
:
'string'
,
title
:
'旧密码'
,
'x-component'
:
'Password'
,
'x-component-props'
:
{
style
:
{
width
:
'100%'
}
},
'x-rules'
:
[
{
required
:
true
,
message
:
'请填写旧密码'
},
]
},
newPwd
:
{
type
:
'password'
,
title
:
'新密码'
,
'x-rules'
:
[
{
required
:
true
,
message
:
'请填写新密码'
},
{
passwordRule
:
true
,
}
]
},
comfirmPwd
:
{
type
:
'password'
,
title
:
'新密码'
,
'x-rules'
:
[
{
required
:
true
,
message
:
'请填写新密码'
},
{
passwordIsSame
:
true
}
]
}
}
}
}
}
const
PwdModal
=
(
props
)
=>
{
const
{
visible
,
onCancel
,
onOk
,
confirmLoading
}
=
props
;
const
handleSubmit
=
(
value
)
=>
{
!!
onOk
&&
onOk
(
value
)
}
const
handleOk
=
()
=>
{
actions
.
submit
();
}
return
(
<
Modal
visible=
{
visible
}
title=
"修改密码"
onCancel=
{
onCancel
}
confirmLoading=
{
confirmLoading
}
onOk=
{
handleOk
}
maskClosable=
{
false
}
>
{
visible
?
<
NiceForm
components=
{
{
Password
}
}
schema=
{
schema
}
actions=
{
actions
}
onSubmit=
{
handleSubmit
}
></
NiceForm
>
:
null
}
</
Modal
>
)
}
export
default
React
.
memo
(
PwdModal
)
src/layouts/index.less
View file @
9623ea13
...
...
@@ -138,7 +138,6 @@
.topMessage{
color: rgba(255,255,255,.6);
margin-right: 30px;
position: relative;
:global{
.anticon{
font-size: 18px;
...
...
@@ -170,16 +169,16 @@
justify-content: center;
align-items: center;
margin: 0;
border-top: 1px solid #f0f0f0;
text-align: center;
border-top: 1px solid #f0f0f0;
text-align: center;
height: 46px;
line-height: 46px;
font-size: 14px;
span{
flex: 0 0 50%;
&:last-child{
border-left: 1px solid #f0f0f0;
border-left: 1px solid #f0f0f0;
}
cursor: pointer;
}
}
\ No newline at end of file
}
src/locales/zh-CN/menu.ts
View file @
9623ea13
...
...
@@ -61,7 +61,7 @@ export default {
'menu.memberAbility'
:
'会员管理'
,
'menu.memberAbility.memberMaintain'
:
'会员维护'
,
'menu.memberAbility.addMember'
:
'新增会员'
,
'menu.memberAbility.maintainDetail'
:
'会员详情'
,
'menu.memberAbility.maintainDetail'
:
'会员详情'
,
'menu.memberAbility.maintainDetail.basicInfo'
:
'会员基本信息'
,
'menu.memberAbility.maintainDetail.levelInfo'
:
'会员等级信息'
,
'menu.memberAbility.maintainDetail.equityInfo'
:
'权益信息'
,
...
...
@@ -79,7 +79,7 @@ export default {
'menu.memberAbility.memberUpgradeRule'
:
'会员升级规则'
,
'menu.memberAbility.memberLevel'
:
'会员等级'
,
'menu.memberAbility.addEquity'
:
'会员权益设置'
,
//需求单 2020-11-17
'menu.demandOrder'
:
'需求单审核'
,
'menu.demandOrder.demandOrderInquire'
:
'需求单查询'
,
...
...
@@ -97,7 +97,7 @@ export default {
//物流管理
'menu.logisticsManager'
:
'物流管理'
,
'menu.logisticsManager.logisticsList'
:
'物流单查询'
,
//规则
'menu.ruleSettingManager'
:
'平台规则配置'
,
...
...
@@ -158,7 +158,7 @@ export default {
'menu.content.tagsInfo'
:
'标签详情'
,
'menu.content.infomations'
:
'资讯管理'
,
'menu.content.infomationAdd'
:
' 新建资讯'
,
'menu.content.infomationInfo'
:
'咨询详情'
,
'menu.content.infomationInfo'
:
'咨询详情'
,
'menu.content.advertisement'
:
'广告管理'
,
'menu.content.advertisementAdd'
:
'新建广告'
,
'menu.content.advertisementInfo'
:
'广告详情'
,
...
...
@@ -170,11 +170,11 @@ export default {
'menu.content.announceAdd'
:
'新建公告'
,
// 评论管理
'menu.comment'
:
'评论管理'
,
'menu.comment.query'
:
'会员评价查询'
,
'menu.comment.queryDetail'
:
'评价统计'
,
'menu.comment.manage'
:
'评价管理'
,
'menu.comment.manageDetail'
:
'评价管理'
,
'menu.comment'
:
'评论管理'
,
'menu.comment.query'
:
'会员评价查询'
,
'menu.comment.queryDetail'
:
'评价统计'
,
'menu.comment.manage'
:
'评价管理'
,
'menu.comment.manageDetail'
:
'评价管理'
,
// 订单管理
'menu.orderSystem'
:
'订单管理'
,
...
...
@@ -193,7 +193,7 @@ export default {
'menu.balanced.accountPayableDetail'
:
'代付账款明细'
,
'menu.balanced.scorePayable'
:
'积分结算'
,
'menu.balanced.scorePayableDetail'
:
'积分结算详情'
,
// 会员资金账户
'menu.capitalAccount'
:
'会员资金账户'
,
...
...
@@ -221,6 +221,7 @@ export default {
'menu.system.unitAdd'
:
'新建单位'
,
'menu.system.unitEdit'
:
'编辑单位'
,
'menu.system.platformArg'
:
'平台参数'
,
'menu.system.platformArgEdit'
:
'平台参数修改'
,
'menu.productionNotice'
:
'生产通知单管理'
,
'menu.productionNotice.query'
:
'生产通知单查询'
,
...
...
src/pages/commodity/effect/index.tsx
View file @
9623ea13
...
...
@@ -27,4 +27,4 @@ export const searchCustomerCategoryOptionEffect = (context: any, fieldName: stri
})
})
})
}
\ No newline at end of file
}
src/pages/home/components/DataCenter/index.less
View file @
9623ea13
...
...
@@ -4,16 +4,12 @@
color: #909399;
}
.
dataRiskAction
{
.
item
{
display: flex;
> div{
width: 240px;
height: 48px;
background: #FAFBFC;
line-height: 48px;
margin-right: 24px;
> img{
margin: 8px 16px;
}
background: #FAFBFC;
align-items: center;
.icon {
margin: 8px 16px;
}
}
\ No newline at end of file
}
src/pages/home/components/DataCenter/index.tsx
View file @
9623ea13
...
...
@@ -12,49 +12,61 @@ import dataRiskIcon8 from '@/asserts/home-icon-8.png'
const
DataCenter
:
React
.
FC
=
()
=>
{
const
data
=
[
{
title
:
'网站运营数据'
,
icon
:
dataRiskIcon3
},
{
title
:
'APP运营数据'
,
icon
:
dataRiskIcon4
},
{
title
:
'用户分析'
,
icon
:
dataRiskIcon5
},
{
title
:
'商品分析'
,
icon
:
dataRiskIcon6
},
{
title
:
'交易分析'
,
icon
:
dataRiskIcon7
},
{
title
:
'售后分析'
,
icon
:
dataRiskIcon8
}
]
return
(
<
Row
gutter=
{
[
24
,
12
]
}
>
<
Col
span=
{
24
}
>
<
Card
headStyle=
{
{
borderBottom
:
'none'
}
}
title=
{
<>
<
p
>
数据中心
</
p
>
<
p
className=
{
styles
.
dataRiskTip
}
>
实时展示会员数据、交易数据等综合指标的动态趋势,满足数据化运营的需要
</
p
>
</>
}
bordered=
{
false
}
extra=
{
<
a
href=
"#"
>
进入数据中心
</
a
>
}
>
<
div
className=
{
styles
.
dataRiskAction
}
>
<
div
>
<
img
src=
{
dataRiskIcon3
}
alt=
""
/>
<
span
>
网站运营数据
</
span
>
</
div
>
<
div
>
<
img
src=
{
dataRiskIcon4
}
alt=
""
/>
<
span
>
APP运营数据
</
span
>
</
div
>
<
div
>
<
img
src=
{
dataRiskIcon5
}
alt=
""
/>
<
span
>
用户分析
</
span
>
</
div
>
<
div
>
<
img
src=
{
dataRiskIcon6
}
alt=
""
/>
<
span
>
商品分析
</
span
>
</
div
>
<
div
>
<
img
src=
{
dataRiskIcon7
}
alt=
""
/>
<
span
>
交易分析
</
span
>
</
div
>
<
div
>
<
img
src=
{
dataRiskIcon8
}
alt=
""
/>
<
span
>
售后分析
</
span
>
</
div
>
</
div
>
</
Card
>
</
Col
>
</
Row
>
<
Card
headStyle=
{
{
borderBottom
:
'none'
}
}
title=
{
<>
<
p
>
数据中心
</
p
>
<
p
className=
{
styles
.
dataRiskTip
}
>
实时展示会员数据、交易数据等综合指标的动态趋势,满足数据化运营的需要
</
p
>
</>
}
bordered=
{
false
}
extra=
{
<
a
href=
"#"
>
进入数据中心
</
a
>
}
>
<
Row
gutter=
{
[
24
,
24
]
}
>
{
data
.
map
((
item
)
=>
{
return
(
<
Col
xxl=
{
4
}
xl=
{
6
}
lg=
{
6
}
md=
{
8
}
sm=
{
12
}
xs=
{
24
}
key=
{
item
.
title
}
>
<
div
className=
{
styles
.
item
}
>
<
img
src=
{
item
.
icon
}
className=
{
styles
.
icon
}
alt=
""
/>
<
span
>
{
item
.
title
}
</
span
>
</
div
>
</
Col
>
)
})
}
</
Row
>
</
Card
>
)
}
export
default
DataCenter
\ No newline at end of file
export
default
DataCenter
src/pages/home/components/MemberStatistics/index.tsx
View file @
9623ea13
...
...
@@ -16,11 +16,11 @@ export enum TimeEnum {
}
interface
Iprops
{
memberData
:
ImemberData
memberData
:
ImemberData
}
const
MemberStatistics
:
React
.
FC
<
Iprops
>
=
(
props
)
=>
{
const
{
memberData
}
=
props
;
const
{
memberData
}
=
props
;
const
[
timeRadio
,
setTimeRadio
]
=
useState
<
TimeEnum
>
(
TimeEnum
.
WEEK
);
// 设置折线图的data
const
[
currentLineChartData
,
setCurrentLineChartData
]
=
useState
<
Ilist
[]
>
([]);
...
...
@@ -62,9 +62,9 @@ const MemberStatistics: React.FC<Iprops> = (props) => {
}
]
return
(
<
Card
headStyle=
{
{
borderBottom
:
'none'
}
}
title=
"会员统计"
<
Card
headStyle=
{
{
borderBottom
:
'none'
}
}
title=
"会员统计"
bordered=
{
false
}
extra=
{
<
Radio
.
Group
value=
{
timeRadio
}
buttonStyle=
"solid"
size=
"small"
onChange=
{
handleChangeTime
}
>
...
...
@@ -84,7 +84,7 @@ const MemberStatistics: React.FC<Iprops> = (props) => {
{
data
.
map
((
item
)
=>
{
return
(
<
Col
span=
{
6
}
key=
{
item
.
tips
}
>
<
Col
xxl=
{
6
}
xl=
{
6
}
lg=
{
12
}
md=
{
12
}
sm=
{
24
}
xs=
{
24
}
key=
{
item
.
tips
}
>
<
div
className=
{
styles
.
lineDesc
}
>
<
img
src=
{
item
.
icon
}
className=
{
styles
.
icon
}
alt=
""
/>
<
div
className=
{
styles
.
lineDescText
}
>
...
...
@@ -103,4 +103,4 @@ const MemberStatistics: React.FC<Iprops> = (props) => {
)
}
export
default
MemberStatistics
;
\ No newline at end of file
export
default
MemberStatistics
;
src/pages/home/components/MemberStatistics/lineChart.tsx
View file @
9623ea13
...
...
@@ -8,13 +8,13 @@ interface IProps {
const
LineChart
:
React
.
FC
<
IProps
>
=
(
props
)
=>
{
return
(
<
Chart
height=
{
360
}
data=
{
props
.
data
}
forceFit
>
<
Chart
height=
{
360
}
autoFit
data=
{
props
.
data
}
>
<
Legend
position=
"top-left"
/>
{
/* <Axis name="dateTime" />
<Axis name="count"/> */
}
<
LineAdvance
position=
"dateTime*count"
color=
{
'roleName'
}
<
LineAdvance
position=
"dateTime*count"
color=
{
'roleName'
}
point
area
shape=
"smooth"
...
...
@@ -23,4 +23,4 @@ const LineChart: React.FC<IProps> = (props) => {
);
}
export
default
LineChart
;
\ No newline at end of file
export
default
LineChart
;
src/pages/home/components/OrderStatistics/index.less
View file @
9623ea13
...
...
@@ -2,7 +2,7 @@
display: flex;
align-items: center;
margin-top: 14px;
.icon {
display: block;
width: 48px;
...
...
@@ -18,6 +18,7 @@
font-size: 24px;
font-weight: 500;
color: #303133;
overflow: hidden;
}
.lineDescTip{
font-size: 12px;
...
...
@@ -25,5 +26,5 @@
color: #909399;
}
}
}
\ No newline at end of file
}
src/pages/home/components/OrderStatistics/index.tsx
View file @
9623ea13
...
...
@@ -34,30 +34,30 @@ const OrderStatistics: React.FC<Iprops> = (props) => {
const
data
=
[
{
icon
:
todayIcon
,
value
:
orderData
.
today
Count
,
value
:
orderData
.
today
Amount
,
tips
:
`今日营业额(
${
orderData
.
todayCount
}
单)`
},
{
icon
:
weekIcon
,
value
:
orderData
.
week
C
ount
,
tips
:
`最近7日营业额(
${
orderData
.
week
Am
ount
}
单)`
value
:
orderData
.
week
Am
ount
,
tips
:
`最近7日营业额(
${
orderData
.
week
C
ount
}
单)`
},
{
icon
:
monthIcon
,
value
:
orderData
.
month
C
ount
,
tips
:
`最近30日营业额(
${
orderData
.
month
Am
ount
}
单)`
value
:
orderData
.
month
Am
ount
,
tips
:
`最近30日营业额(
${
orderData
.
month
C
ount
}
单)`
},
{
icon
:
totalIcon
,
value
:
orderData
.
total
C
ount
,
value
:
orderData
.
total
Am
ount
,
tips
:
`累计营业额(
${
orderData
.
totalCount
}
单)`
}
]
return
(
<
Card
headStyle=
{
{
borderBottom
:
'none'
}
}
<
Card
headStyle=
{
{
borderBottom
:
'none'
}
}
style=
{
{
height
:
'100%'
}
}
title=
"会员统计"
title=
"会员统计"
bordered=
{
false
}
extra=
{
<
Radio
.
Group
value=
{
timeRadio
}
buttonStyle=
"solid"
size=
"small"
onChange=
{
handleChangeTime
}
>
...
...
@@ -77,7 +77,7 @@ const OrderStatistics: React.FC<Iprops> = (props) => {
{
data
.
map
((
item
,
key
)
=>
{
return
(
<
Col
span=
{
6
}
key=
{
key
}
>
<
Col
xxl=
{
6
}
xl=
{
6
}
lg=
{
12
}
md=
{
12
}
sm=
{
24
}
xs=
{
24
}
key=
{
key
}
>
<
div
className=
{
styles
.
lineDesc
}
>
<
img
src=
{
item
.
icon
}
className=
{
styles
.
icon
}
alt=
""
/>
<
div
className=
{
styles
.
lineDescText
}
>
...
...
@@ -96,4 +96,4 @@ const OrderStatistics: React.FC<Iprops> = (props) => {
)
}
export
default
OrderStatistics
\ No newline at end of file
export
default
OrderStatistics
src/pages/home/components/RiseCenter/index.less
View file @
9623ea13
...
...
@@ -4,16 +4,12 @@
color: #909399;
}
.
dataRiskAction
{
.
item
{
display: flex;
> div{
width: 240px;
height: 48px;
background: #FAFBFC;
line-height: 48px;
margin-right: 24px;
> img{
margin: 8px 16px;
}
background: #FAFBFC;
align-items: center;
.icon {
margin: 8px 16px;
}
}
\ No newline at end of file
}
src/pages/home/components/RiseCenter/index.tsx
View file @
9623ea13
...
...
@@ -10,33 +10,44 @@ import dataRiskIcon2 from '@/asserts/home-icon-2.png'
interface
Iprops
{}
const
RiskCenter
:
React
.
FC
<
Iprops
>
=
()
=>
{
const
data
=
[
{
title
:
'预警规则'
,
icon
:
dataRiskIcon1
},
{
title
:
'预警控制台'
,
icon
:
dataRiskIcon2
},
{
title
:
'预警处理'
,
icon
:
dataRiskIcon1
},
]
return
(
<
Row
gutter=
{
[
24
,
12
]
}
>
<
Col
span=
{
24
}
>
<
Card
headStyle=
{
{
borderBottom
:
'none'
}
}
title=
{
<><
p
>
风控中心
</
p
><
p
className=
{
styles
.
dataRiskTip
}
>
全面的风控体系,监控交易异常、资金异常、行为异常,并实时预警
</
p
></>
}
bordered=
{
false
}
extra=
{
<
a
href=
"#"
>
进入风控中心
</
a
>
}
>
<
div
className=
{
styles
.
dataRiskAction
}
>
<
div
>
<
img
src=
{
dataRiskIcon1
}
alt=
""
/>
<
span
>
预警规则
</
span
>
</
div
>
<
div
>
<
img
src=
{
dataRiskIcon2
}
alt=
""
/>
<
span
>
预警控制台
<
Badge
count=
{
4
}
size=
"small"
/></
span
>
</
div
>
<
div
>
<
img
src=
{
dataRiskIcon1
}
alt=
""
/>
<
span
>
预警处理
</
span
>
</
div
>
</
div
>
</
Card
>
</
Col
>
</
Row
>
<
Card
headStyle=
{
{
borderBottom
:
'none'
}
}
title=
{
<><
p
>
风控中心
</
p
><
p
className=
{
styles
.
dataRiskTip
}
>
全面的风控体系,监控交易异常、资金异常、行为异常,并实时预警
</
p
></>
}
bordered=
{
false
}
extra=
{
<
a
href=
"#"
>
进入风控中心
</
a
>
}
>
<
Row
gutter=
{
[
24
,
24
]
}
>
{
data
.
map
((
item
)
=>
{
return
(
<
Col
xxl=
{
4
}
xl=
{
6
}
lg=
{
6
}
md=
{
8
}
sm=
{
12
}
xs=
{
24
}
key=
{
item
.
title
}
>
<
div
className=
{
styles
.
item
}
>
<
img
src=
{
item
.
icon
}
className=
{
styles
.
icon
}
alt=
""
/>
<
span
>
{
item
.
title
}
<
Badge
count=
{
4
}
size=
"small"
/></
span
>
</
div
>
</
Col
>
)
})
}
</
Row
>
</
Card
>
)
}
export
default
RiskCenter
\ No newline at end of file
export
default
RiskCenter
src/pages/home/components/Settlement/index.less
View file @
9623ea13
// 便签样式
.notePaperBox{
width: 100%;
height:
248px
;
height:
100%
;
background: #6C9CEB;
border-radius: 3px;
.notePaperContainer{
...
...
@@ -50,14 +50,14 @@
top: -5px;
}
}
.noteBody{
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
color: #fff;
color: #fff;
.value {
font-size: 24px;
margin-bottom: 24px;
...
...
@@ -97,9 +97,10 @@
margin-bottom: 0;
}
.lineDescTip {
height: 36px;
font-size: 12px;
color: #909399;
margin-bottom: 0;
}
}
}
\ No newline at end of file
}
src/pages/home/components/Settlement/index.tsx
View file @
9623ea13
...
...
@@ -43,8 +43,8 @@ const Settlement: React.FC = () => {
}
},
[
inViewPort
])
return
(
<
Row
gutter=
{
[
24
,
12
]
}
style=
{
{
marginTop
:
9
,
marginBottom
:
0
}
}
ref=
{
ref
}
>
<
Col
span=
{
5
}
style=
{
{
paddingBottom
:
0
}
}
>
<
Row
gutter=
{
[
24
,
24
]
}
style=
{
{
marginTop
:
9
,
marginBottom
:
0
}
}
ref=
{
ref
}
>
<
Col
xxl=
{
5
}
xl=
{
5
}
lg=
{
12
}
md=
{
12
}
sm=
{
24
}
xs=
{
24
}
style=
{
{
paddingBottom
:
0
}
}
>
<
div
className=
{
styles
.
notePaperBox
}
>
<
div
className=
{
styles
.
notePaperContainer
}
>
<
div
className=
{
styles
.
noteHeader
}
>
...
...
@@ -59,7 +59,7 @@ const Settlement: React.FC = () => {
</
div
>
</
div
>
</
Col
>
<
Col
span=
{
5
}
style=
{
{
paddingBottom
:
0
}
}
>
<
Col
xxl=
{
5
}
xl=
{
5
}
lg=
{
12
}
md=
{
12
}
sm=
{
24
}
xs=
{
24
}
style=
{
{
paddingBottom
:
0
}
}
>
<
div
className=
{
cx
(
styles
.
notePaperBox
,
styles
.
notePaperBoxGreen
)
}
>
<
div
className=
{
styles
.
notePaperContainer
}
>
<
div
className=
{
styles
.
noteHeader
}
>
...
...
@@ -74,7 +74,7 @@ const Settlement: React.FC = () => {
</
div
>
</
div
>
</
Col
>
<
Col
span=
{
7
}
style=
{
{
paddingBottom
:
0
}
}
>
<
Col
xxl=
{
7
}
xl=
{
7
}
lg=
{
12
}
md=
{
12
}
sm=
{
24
}
xs=
{
24
}
style=
{
{
paddingBottom
:
0
}
}
>
<
Row
>
<
Col
span=
{
24
}
style=
{
{
padding
:
0
}
}
>
<
div
className=
{
cx
(
styles
.
lineDesc
,
styles
.
feeCustomCard
)
}
>
...
...
@@ -85,7 +85,7 @@ const Settlement: React.FC = () => {
<
p
className=
{
styles
.
lineDescTip
}
>
待提现申请
</
p
>
</
div
>
</
div
>
<
a
key=
"list-loadmore-more"
>
查看
<
RightOutlined
/></
a
>
<
a
>
查看
<
RightOutlined
/></
a
>
</
div
>
</
Col
>
<
Col
span=
{
24
}
style=
{
{
paddingBottom
:
0
,
marginTop
:
'12px'
}
}
>
...
...
@@ -97,12 +97,12 @@ const Settlement: React.FC = () => {
<
p
className=
{
styles
.
lineDescTip
}
>
待支付提现申请
</
p
>
</
div
>
</
div
>
<
a
key=
"list-loadmore-more"
>
查看
<
RightOutlined
/></
a
>
<
a
>
查看
<
RightOutlined
/></
a
>
</
div
>
</
Col
>
</
Row
>
</
Col
>
<
Col
span=
{
7
}
style=
{
{
paddingBottom
:
0
}
}
>
<
Col
xxl=
{
7
}
xl=
{
7
}
lg=
{
12
}
md=
{
12
}
sm=
{
24
}
xs=
{
24
}
style=
{
{
paddingBottom
:
0
}
}
>
<
Row
>
<
Col
span=
{
24
}
style=
{
{
padding
:
0
}
}
>
<
div
className=
{
cx
(
styles
.
lineDesc
,
styles
.
feeCustomCard
)
}
>
...
...
@@ -134,4 +134,4 @@ const Settlement: React.FC = () => {
)
}
export
default
Settlement
\ No newline at end of file
export
default
Settlement
src/pages/home/components/StatisticsColumn/index.less
View file @
9623ea13
...
...
@@ -22,10 +22,10 @@
justify-content: space-between;
align-items: center;
flex: 1;
&:first-child {
margin-right: 50px;
}
//
&:first-child {
//
margin-right: 50px;
//
}
.left {
display: flex;
flex-direction: row;
...
...
@@ -47,6 +47,6 @@
}
}
}
}
src/pages/home/components/StatisticsColumn/index.tsx
View file @
9623ea13
...
...
@@ -14,14 +14,14 @@ const StatisticsColumn = (props) => {
const
{
loading
,
data
}
=
props
;
return
(
<
Row
gutter=
{
[
24
,
12
]
}
>
<
Col
span=
{
12
}
>
<
Col
xxl=
{
12
}
xl=
{
12
}
lg=
{
12
}
md=
{
24
}
sm=
{
24
}
xs=
{
24
}
>
<
Row
>
<
Col
span=
{
24
}
>
<
Card
headStyle=
{
{
borderBottom
:
'none'
}
}
title=
{
"商品统计"
}
title=
{
"商品统计"
}
bordered=
{
false
}
>
>
{
loading
?
<
Skeleton
active
/>
...
...
@@ -30,76 +30,84 @@ const StatisticsColumn = (props) => {
<
span
>
全部商品
</
span
>
<
p
>
{
data
?.
productCount
}
</
p
>
</
div
>
<
div
className=
{
styles
.
commodityTotalDesc
}
>
<
div
className=
{
styles
.
container
}
>
<
div
className=
{
styles
.
left
}
>
<
img
src=
{
totalCommdity
}
alt=
""
/>
<
div
className=
{
styles
.
lineDescText
}
>
<
p
className=
{
styles
.
lineDescTitle
}
>
{
data
.
addProduct
?.
count
}
</
p
>
<
p
className=
{
styles
.
lineDescTip
}
>
{
data
.
addProduct
?.
name
}
</
p
>
<
Row
gutter=
{
[
24
,
12
]
}
>
<
Col
xxl=
{
12
}
xl=
{
12
}
lg=
{
24
}
md=
{
12
}
sm=
{
24
}
xs=
{
24
}
className=
{
styles
.
commodityTotalDesc
}
>
<
div
className=
{
styles
.
container
}
>
<
div
className=
{
styles
.
left
}
>
<
img
src=
{
totalCommdity
}
alt=
""
/>
<
div
className=
{
styles
.
lineDescText
}
>
<
p
className=
{
styles
.
lineDescTitle
}
>
{
data
.
addProduct
?.
count
}
</
p
>
<
p
className=
{
styles
.
lineDescTip
}
>
{
data
.
addProduct
?.
name
}
</
p
>
</
div
>
</
div
>
<
a
key=
"list-loadmore-more"
>
查看
<
RightOutlined
/></
a
>
</
div
>
<
a
key=
"list-loadmore-more"
>
查看
<
RightOutlined
/></
a
>
</
div
>
<
div
className=
{
styles
.
container
}
>
<
div
className=
{
styles
.
left
}
>
<
img
src=
{
totalIcona3
}
alt=
""
/>
<
div
className=
{
styles
.
lineDescText
}
>
<
p
className=
{
styles
.
lineDescTitle
}
>
{
data
.
toBeProductValify
?.
count
}
</
p
>
<
p
className=
{
styles
.
lineDescTip
}
>
{
data
.
toBeProductValify
?.
name
}
</
p
>
</
Col
>
<
Col
xxl=
{
12
}
xl=
{
12
}
lg=
{
24
}
md=
{
12
}
sm=
{
24
}
xs=
{
24
}
className=
{
styles
.
commodityTotalDesc
}
>
<
div
className=
{
styles
.
container
}
>
<
div
className=
{
styles
.
left
}
>
<
img
src=
{
totalIcona3
}
alt=
""
/>
<
div
className=
{
styles
.
lineDescText
}
>
<
p
className=
{
styles
.
lineDescTitle
}
>
{
data
.
toBeProductValify
?.
count
}
</
p
>
<
p
className=
{
styles
.
lineDescTip
}
>
{
data
.
toBeProductValify
?.
name
}
</
p
>
</
div
>
</
div
>
<
a
key=
"list-loadmore-more"
>
查看
<
RightOutlined
/></
a
>
</
div
>
<
a
key=
"list-loadmore-more"
>
查看
<
RightOutlined
/></
a
>
</
div
>
</
div
>
</
Col
>
</
Row
>
</>
}
</
Card
>
</
Col
>
</
Row
>
</
Col
>
<
Col
span=
{
12
}
>
<
Col
xxl=
{
12
}
xl=
{
12
}
lg=
{
12
}
md=
{
24
}
xs=
{
24
}
>
<
Row
>
<
Col
span=
{
24
}
>
<
Card
headStyle=
{
{
borderBottom
:
'none'
}
}
title=
{
"全部品牌"
}
title=
{
"全部品牌"
}
bordered=
{
false
}
>
{
loading
loading
?
<
Skeleton
active
/>
:
<>
<
div
className=
{
styles
.
commodityTotalTitle
}
>
<
span
>
全部品牌
</
span
>
<
p
>
{
data
?.
brandCount
}
</
p
>
</
div
>
<
div
className=
{
styles
.
commodityTotalDesc
}
>
<
div
className=
{
styles
.
container
}
>
<
div
className=
{
styles
.
left
}
>
<
img
src=
{
totalBrand1
}
alt=
""
/>
<
div
className=
{
styles
.
lineDescText
}
>
<
p
className=
{
styles
.
lineDescTitle
}
>
{
data
.
addBrand
?.
count
}
</
p
>
<
p
className=
{
styles
.
lineDescTip
}
>
{
data
.
addBrand
?.
name
}
</
p
>
<
Row
gutter=
{
[
24
,
12
]
}
>
<
Col
xxl=
{
12
}
xl=
{
12
}
lg=
{
24
}
md=
{
12
}
sm=
{
24
}
xs=
{
24
}
className=
{
styles
.
commodityTotalDesc
}
>
<
div
className=
{
styles
.
container
}
>
<
div
className=
{
styles
.
left
}
>
<
img
src=
{
totalBrand1
}
alt=
""
/>
<
div
className=
{
styles
.
lineDescText
}
>
<
p
className=
{
styles
.
lineDescTitle
}
>
{
data
.
addBrand
?.
count
}
</
p
>
<
p
className=
{
styles
.
lineDescTip
}
>
{
data
.
addBrand
?.
name
}
</
p
>
</
div
>
</
div
>
<
a
key=
"list-loadmore-more"
>
查看
<
RightOutlined
/></
a
>
</
div
>
<
a
key=
"list-loadmore-more"
>
查看
<
RightOutlined
/></
a
>
</
div
>
<
div
className=
{
styles
.
container
}
>
<
div
className=
{
styles
.
left
}
>
<
img
src=
{
totalBrand2
}
alt=
""
/>
<
div
className=
{
styles
.
lineDescText
}
>
<
p
className=
{
styles
.
lineDescTitle
}
>
{
data
.
toBeBrandValify
?.
count
}
</
p
>
<
p
className=
{
styles
.
lineDescTip
}
>
{
data
.
toBeBrandValify
?.
name
}
</
p
>
</
Col
>
<
Col
xxl=
{
12
}
xl=
{
12
}
lg=
{
24
}
md=
{
12
}
sm=
{
24
}
xs=
{
24
}
className=
{
styles
.
commodityTotalDesc
}
>
<
div
className=
{
styles
.
container
}
>
<
div
className=
{
styles
.
left
}
>
<
img
src=
{
totalBrand2
}
alt=
""
/>
<
div
className=
{
styles
.
lineDescText
}
>
<
p
className=
{
styles
.
lineDescTitle
}
>
{
data
.
toBeBrandValify
?.
count
}
</
p
>
<
p
className=
{
styles
.
lineDescTip
}
>
{
data
.
toBeBrandValify
?.
name
}
</
p
>
</
div
>
</
div
>
<
a
key=
"list-loadmore-more"
>
查看
<
RightOutlined
/></
a
>
</
div
>
<
a
key=
"list-loadmore-more"
>
查看
<
RightOutlined
/></
a
>
</
div
>
</
div
>
</
Col
>
</
Row
>
</>
}
</
Card
>
</
Col
>
</
Row
>
...
...
@@ -108,4 +116,4 @@ const StatisticsColumn = (props) => {
)
}
export
default
StatisticsColumn
\ No newline at end of file
export
default
StatisticsColumn
src/pages/home/components/TodayAdd/index.tsx
View file @
9623ea13
...
...
@@ -47,7 +47,7 @@ const TodayAdd: React.FC<Iprops> = (props) => {
{
list
.
map
((
item
,
key
)
=>
{
return
(
<
Col
span=
{
6
}
key=
{
key
}
>
<
Col
xxl=
{
6
}
xl=
{
6
}
lg=
{
12
}
md=
{
12
}
sm=
{
24
}
xs=
{
24
}
key=
{
key
}
>
<
div
className=
{
styles
.
homeCard
}
>
<
div
className=
{
styles
.
body
}
>
<
div
className=
{
styles
.
content
}
>
...
...
@@ -59,7 +59,7 @@ const TodayAdd: React.FC<Iprops> = (props) => {
</
div
>
</
div
>
<
div
className=
{
styles
.
footer
}
>
<
StatusTag
<
StatusTag
title=
{
<>
{
...
...
@@ -70,7 +70,7 @@ const TodayAdd: React.FC<Iprops> = (props) => {
{
item
.
percent
}
%
</>
}
}
type=
{
item
.
percent
>=
0
?
"success"
:
"danger"
}
/>
<
span
>
相比昨日
</
span
>
...
...
@@ -84,4 +84,4 @@ const TodayAdd: React.FC<Iprops> = (props) => {
)
}
export
default
TodayAdd
\ No newline at end of file
export
default
TodayAdd
src/pages/home/index.less
View file @
9623ea13
...
...
@@ -14,7 +14,7 @@
}
.sideAdBox{
height: 100px;
margin:
22px 0px 13
px 0;
margin:
0px 0px 20
px 0;
border-radius: 5px;
background-color: #6C9CEB;
position: relative;
...
...
@@ -34,6 +34,29 @@
}
.members {
padding: 18px 24px;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
border-bottom: 1px solid #F4F5F7;
// background: #F4F5F7;
.text {
font-weight: 500;
color: #303133;
font-size: 24px;
margin-bottom: 8px;
// padding-bottom: 8px;
}
.desc {
font-size: 12px;
font-weight: 400;
color: #909399;
}
}
// 适配
@media screen and (max-width: 1441px) {
.homeCard{
...
...
@@ -59,4 +82,15 @@
}
}
}
}
\ No newline at end of file
}
@media (min-width: 1600px) {
.lastCard {
margin-top: 12px;
}
}
// @media (max-width: 1599px) {
// .lastCard___z6zQF {
// margin-top: 0px;
// }
// }
src/pages/home/index.tsx
View file @
9623ea13
...
...
@@ -46,7 +46,7 @@ const Home: React.FC<{}> = () => {
hasGetData
:
false
,
loading
:
false
,
})
/**
* 顶部新增统计
*/
...
...
@@ -150,43 +150,39 @@ const Home: React.FC<{}> = () => {
{
/* 会员统计 */
}
<
Space
direction=
"vertical"
style=
{
{
width
:
'100%'
}
}
>
<
Row
gutter=
{
[
24
,
12
]
}
>
<
Col
span=
{
18
}
>
<
Col
xxl=
{
18
}
xl=
{
24
}
lg=
{
24
}
>
<
MemberStatistics
memberData=
{
memberData
}
/>
</
Col
>
<
Col
span=
{
6
}
>
<
Card
<
Col
xxl=
{
6
}
xl=
{
24
}
lg=
{
24
}
>
<
Card
headStyle=
{
{
borderBottom
:
'none'
}
}
title=
"待处理会员"
bodyStyle=
{
{
padding
:
'0px'
}
}
title=
"待处理会员"
bordered=
{
false
}
>
<
Row
>
<
Col
span=
{
24
}
>
<
List
itemLayout=
"horizontal"
className=
{
styles
.
sideListBox
}
>
{
processingMemberLoading
?
[
1
,
2
].
map
((
item
)
=>
{
return
<
Skeleton
active
key=
{
item
}
></
Skeleton
>
})
:
processingMembers
.
map
((
item
:
any
,
key
:
number
)
=>
{
return
(
<
List
.
Item
key=
{
item
.
name
}
actions=
{
[<
a
key=
"list-loadmore-more"
>
查看
<
RightOutlined
/></
a
>]
}
>
<
List
.
Item
.
Meta
title=
{
item
.
count
.
toString
()
}
description=
{
<><
Badge
status=
{
PROCESS_STATUS
[
key
]
}
text=
{
item
.
name
}
></
Badge
></>
}
/>
</
List
.
Item
>
)
})
}
</
List
>
</
Col
>
<
Col
span=
{
24
}
>
{
processingMemberLoading
?
[
1
,
2
].
map
((
item
)
=>
{
return
<
Skeleton
active
key=
{
item
}
></
Skeleton
>
})
:
processingMembers
.
map
((
item
:
any
,
key
:
number
)
=>
{
return
(
<
Col
xxl=
{
24
}
xl=
{
12
}
md=
{
12
}
sm=
{
24
}
xs=
{
24
}
key=
{
key
}
>
<
div
className=
{
styles
.
members
}
>
<
div
className=
{
styles
.
numbers
}
>
<
div
className=
{
styles
.
text
}
>
2
</
div
>
<
div
className=
{
styles
.
desc
}
>
<
Badge
status=
{
PROCESS_STATUS
[
key
]
}
text=
{
item
.
name
}
></
Badge
>
</
div
>
</
div
>
<
div
><
a
key=
"list-loadmore-more"
>
查看
<
RightOutlined
/></
a
></
div
>
</
div
>
</
Col
>
)
})
}
<
Col
span=
{
24
}
style=
{
{
padding
:
'0 24px'
}
}
>
<
div
className=
{
styles
.
sideAdBox
}
>
<
a
href=
""
><
span
>
会员维护
<
RightCircleFilled
/></
span
></
a
>
<
img
src=
{
sideIcon
}
alt=
""
/>
...
...
@@ -201,8 +197,8 @@ const Home: React.FC<{}> = () => {
<
div
id=
"trade"
>
<
Space
direction=
"vertical"
style=
{
{
width
:
'100%'
,
height
:
'100%'
}
}
>
<
Row
gutter=
{
[
24
,
12
]
}
style=
{
{
display
:
'flex'
,
flexDirection
:
'row'
}
}
>
<
Col
span=
{
6
}
style=
{
{
display
:
'flex'
,
flexDirection
:
'column'
}
}
>
<
Row
style=
{
{
height
:
'100%'
}
}
>
<
Col
xxl=
{
6
}
xl=
{
24
}
lg=
{
24
}
md=
{
24
}
sm=
{
24
}
xs=
{
24
}
style=
{
{
display
:
'flex'
,
flexDirection
:
'column'
}
}
>
<
Row
style=
{
{
height
:
'100%'
}
}
gutter=
{
[
24
,
12
]
}
>
{
tradeStatus
.
loading
?
[
1
,
2
].
map
((
item
)
=>
{
...
...
@@ -216,12 +212,13 @@ const Home: React.FC<{}> = () => {
})
:
Object
.
keys
(
tradeAndSold
).
map
((
item
,
key
)
=>
{
return
(
<
Col
span=
{
24
}
style=
{
key
==
1
?
{
marginTop
:
'18px'
,
flex
:
1
}
:
{}
}
key=
{
item
}
>
<
Col
xxl=
{
24
}
xl=
{
12
}
lg=
{
12
}
md=
{
24
}
sm=
{
24
}
xs=
{
24
}
key=
{
item
}
>
<
Card
headStyle=
{
{
borderBottom
:
'none'
}
}
title=
{
item
===
'afterSaleList'
?
'待处理售后'
:
'待处理交易'
}
title=
{
item
===
'afterSaleList'
?
'待处理售后'
:
'待处理交易'
}
bordered=
{
false
}
style=
{
{
height
:
'100%'
}
}
className=
{
key
==
1
?
styles
.
lastCard
:
''
}
>
<
List
itemLayout=
"horizontal"
...
...
@@ -242,7 +239,7 @@ const Home: React.FC<{}> = () => {
)
})
}
</
List
>
</
Card
>
</
Col
>
...
...
@@ -251,7 +248,7 @@ const Home: React.FC<{}> = () => {
}
</
Row
>
</
Col
>
<
Col
span=
{
18
}
>
<
Col
xxl=
{
18
}
xl=
{
24
}
lg=
{
24
}
>
<
div
id=
"order"
>
<
OrderStatistics
orderData=
{
orderData
}
/>
</
div
>
...
...
@@ -265,12 +262,12 @@ const Home: React.FC<{}> = () => {
<
StatisticsColumn
loading=
{
productStatus
.
loading
}
data=
{
products
}
/>
</
Space
>
</
div
>
{
/* 付款提现统计 */
}
<
Space
direction=
"vertical"
style=
{
{
width
:
'100%'
}
}
>
<
Settlement
/>
</
Space
>
<
Space
direction=
"vertical"
style=
{
{
width
:
'100%'
}
}
>
<
DataCenter
/>
</
Space
>
...
...
@@ -282,4 +279,4 @@ const Home: React.FC<{}> = () => {
);
}
export
default
Home
\ No newline at end of file
export
default
Home
src/pages/orderSystem/index.tsx
View file @
9623ea13
...
...
@@ -44,6 +44,12 @@ const tableListSchema: ISchema = {
"supplyMembersName"
:
{
type
:
'string'
,
"x-component-props"
:
{
placeholder
:
'请输入采购会员名称'
}
},
"memberName"
:
{
type
:
'string'
,
"x-component-props"
:
{
placeholder
:
'请输入供应会员名称'
}
},
...
...
src/pages/orderSystem/orderDetail/components/orderPayResultModal/index.tsx
View file @
9623ea13
...
...
@@ -4,9 +4,8 @@ import { usePageStatus } from '@/hooks/usePageStatus'
import
{
OrderDetailContext
}
from
'../../context'
import
{
PayOutWorkState
}
from
'@/constants'
import
{
PublicApi
}
from
'@/services/api'
import
{
history
,
Link
}
from
'umi'
import
{
history
}
from
'umi'
import
OverflowText
from
'@/components/OverflowText'
import
{
useHttpRequest
}
from
'@/hooks/useHttpRequest'
export
interface
OrderPayResultModalProps
{
type
:
'default'
|
'preview'
,
...
...
@@ -17,9 +16,8 @@ const OrderPayResultModal:React.FC<OrderPayResultModalProps> = ({type, currentRe
const
{
data
}
=
useContext
(
OrderDetailContext
)
const
{
id
}
=
usePageStatus
()
const
[
visible
,
setVisible
]
=
useState
(
false
)
const
[
isReady
,
setIsReady
]
=
useState
()
const
[
isReady
,
setIsReady
]
=
useState
<
any
>
()
const
canCtlData
=
data
.
paymentInformationResponses
.
find
(
v
=>
v
.
externalState
===
PayOutWorkState
.
READY_CONFIRM_RESULT
)
||
{}
const
{
run
,
loading
}
=
useHttpRequest
(
PublicApi
.
postOrderPlatformConfirmedPaymentResultsOrder
)
const
transData
=
canCtlData
.
payOrderUrls
?.
split
(
','
)
||
[]
useEffect
(()
=>
{
...
...
@@ -35,7 +33,7 @@ const OrderPayResultModal:React.FC<OrderPayResultModalProps> = ({type, currentRe
setVisible
(
false
)
}
const
handleConfirm
=
async
(
isReady
)
=>
{
const
handleConfirm
=
(
isReady
)
=>
{
setIsReady
(
isReady
)
const
params
=
{
state
:
isReady
,
...
...
@@ -43,10 +41,15 @@ const OrderPayResultModal:React.FC<OrderPayResultModalProps> = ({type, currentRe
paymentInformationId
:
canCtlData
.
id
}
const
res
=
await
run
(
params
)
if
(
res
&&
res
.
code
===
1000
)
{
history
.
goBack
()
}
PublicApi
.
postOrderPlatformConfirmedPaymentResultsOrder
(
params
).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
setTimeout
(()
=>
{
history
.
goBack
()
},
1000
)
}
else
{
setIsReady
(
null
)
}
})
}
return
(
...
...
@@ -56,8 +59,8 @@ const OrderPayResultModal:React.FC<OrderPayResultModalProps> = ({type, currentRe
onCancel=
{
handleCancel
}
footer=
{
(
type
===
'default'
&&
transData
)
?
<
Space
>
<
Button
onClick=
{
handleCancel
}
>
取消
</
Button
>
<
Button
loading=
{
isReady
===
0
&&
loading
}
onClick=
{
()
=>
handleConfirm
(
0
)
}
type=
'dashed'
>
确认未到账
</
Button
>
<
Button
loading=
{
isReady
===
1
&&
loading
}
onClick=
{
()
=>
handleConfirm
(
1
)
}
type=
'primary'
>
确认到账
</
Button
>
<
Button
loading=
{
isReady
===
0
}
onClick=
{
()
=>
handleConfirm
(
0
)
}
type=
'dashed'
>
确认未到账
</
Button
>
<
Button
loading=
{
isReady
===
1
}
onClick=
{
()
=>
handleConfirm
(
1
)
}
type=
'primary'
>
确认到账
</
Button
>
</
Space
>
:
null
}
>
<
List
...
...
src/pages/pageCustomized/templateDetail/index.tsx
View file @
9623ea13
...
...
@@ -49,8 +49,10 @@ const TemplateDetail: React.FC<TemplateDetailPropsType> = (props) => {
},
[])
const
fetchDetail
=
()
=>
{
//@ts-ignore
PublicApi
.
getTemplatePlatformFindTemplateDetails
({
id
}).
then
(
res
=>
{
const
param
:
any
=
{
id
}
PublicApi
.
getTemplatePlatformFindTemplateDetails
(
param
).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
setDetailInfo
(
res
.
data
)
}
...
...
@@ -85,11 +87,10 @@ const TemplateDetail: React.FC<TemplateDetailPropsType> = (props) => {
const
confirmShelfShop
=
(
shelf
:
number
)
=>
{
return
new
Promise
((
resolve
)
=>
{
le
t
param
=
{
cons
t
param
=
{
id
,
shelf
}
//@ts-ignore
PublicApi
.
postTemplatePlatformShelfTemplate
(
param
).
then
(
res
=>
{
fetchDetail
()
resolve
()
...
...
@@ -99,10 +100,9 @@ const TemplateDetail: React.FC<TemplateDetailPropsType> = (props) => {
const
confirmUseTemplate
=
()
=>
{
return
new
Promise
((
resolve
)
=>
{
let
param
=
{
const
param
:
any
=
{
id
:
Number
(
id
),
}
//@ts-ignore
PublicApi
.
postTemplatePlatformUseTemplate
(
param
).
then
(
res
=>
{
fetchDetail
()
resolve
()
...
...
@@ -145,7 +145,7 @@ const TemplateDetail: React.FC<TemplateDetailPropsType> = (props) => {
<div className={styles.template_detail}>
<div className={styles.template_info_wrap}>
<div className={styles.template_img_box}>
<div className={cx(styles.type_tag)}>
PC
</div>
<div className={cx(styles.type_tag)}>
{detailInfo?.environment && Environment_Status[detailInfo?.environment].name}
</div>
<img src={detailInfo?.templatePicUrl} />
</div>
<div className={styles.template_info}>
...
...
@@ -219,7 +219,7 @@ const TemplateDetail: React.FC<TemplateDetailPropsType> = (props) => {
<UseModal
title="使用商场模板"
visible={useModalVisible}
onOk={() => { }}
onOk={() => {
console.log()
}}
type={type}
onCancel={() => setUseModalVisible(false)}
/>
...
...
src/pages/ruleSettingManage/payStrategy/detail.tsx
View file @
9623ea13
...
...
@@ -41,8 +41,8 @@ import {
const
payActions
=
createFormActions
()
/**
* @description: 会员弹窗列表
* @param {type}
* @return {type}
* @param {type}
* @return {type}
*/
const
fetchMemberList
=
async
(
params
)
=>
{
const
res
=
await
PublicApi
.
getMemberManageAllProviderPage
(
params
)
...
...
@@ -61,7 +61,7 @@ const PaySetting: React.FC<{}> = () => {
levelList
:
[],
roleList
:
[]
})
const
[
memberRowSelection
,
memberRowCtl
]
=
useRowSelectionTable
({
customKey
:
'
memberI
d'
})
const
[
memberRowSelection
,
memberRowCtl
]
=
useRowSelectionTable
({
customKey
:
'
i
d'
})
const
[
optionType
,
setoptionType
]
=
useState
(
0
)
const
{
preview
,
pageStatus
}
=
usePageStatus
()
// const initValue = useInitValue(PublicApi.getPayPayMemberTacticsDetails)
...
...
@@ -172,15 +172,14 @@ const PaySetting: React.FC<{}> = () => {
PublicApi
.
getPayPayMemberTacticsDetails
({
id
:
usePageStatus
().
id
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
let
{
data
}
=
res
console
.
log
(
'结果'
,
res
.
data
)
payActions
.
setFieldValue
(
'paymentPolicyName'
,
data
.
paymentPolicyName
)
data
.
paymentPolicyPayWayRequests
.
forEach
((
item
:
any
,
index
)
=>
{
payActions
.
setFieldValue
(
`id-
${
index
}
`
,
item
.
id
)
payActions
.
setFieldValue
(
`ruleConfigurationId-
${
index
}
`
,
item
.
ruleConfigurationId
)
// payActions.setFieldValue(`payWayIds-${index}`,item.payWayIds)
const
ids
:
any
=
[];
item
.
payWays
.
forEach
((
v
)
=>
{
payActions
.
setFieldValue
(
`payWayIds-
${
index
}
`
,
v
.
id
)
const
payWayIds
:
any
=
[];
item
.
payWays
.
forEach
((
v
,
idx
)
=>
{
payWayIds
.
push
(
v
.
id
)
payActions
.
setFieldValue
(
`payWayIds-
${
index
}
`
,
payWayIds
)
})
})
payActions
.
setFieldValue
(
'isSelected'
,
data
.
isSelected
)
...
...
@@ -192,6 +191,8 @@ const PaySetting: React.FC<{}> = () => {
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
let
{
data
}
=
res
.
data
memberRowCtl
.
setSelectedRowKeys
(
data
.
map
(
v
=>
v
.
memberId
))
memberRowCtl
.
setSelectRow
(
data
)
payActions
.
setFieldValue
(
'applyMember'
,
data
)
}
})
...
...
@@ -416,6 +417,7 @@ const PaySetting: React.FC<{}> = () => {
}
}
//新增
console
.
log
(
param
,
10086
)
if
(
param
.
memberIdRoleIds
.
length
===
0
&&
values
.
isSelected
===
0
)
{
message
.
error
(
'请选择指定的会员'
);
return
...
...
@@ -493,10 +495,10 @@ const PaySetting: React.FC<{}> = () => {
}
}
tableProps=
{
{
rowKey
:
'
memberI
d'
rowKey
:
'
i
d'
}
}
/>
</
PageHeaderWrapper
>
)
}
export
default
PaySetting
\ No newline at end of file
export
default
PaySetting
src/pages/systemManage/platformArg/index.tsx
View file @
9623ea13
import
React
,
{
useRef
}
from
'react'
;
import
{
Card
,
Row
,
Col
,
Space
,
Button
}
from
'antd'
;
import
{
PlusOutlined
}
from
'@ant-design/icons
'
;
import
{
Card
,
Button
}
from
'antd'
;
import
{
history
}
from
'umi
'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
StandardTable
}
from
'god'
;
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
StatusSwitch
from
'@/components/StatusSwitch'
;
const
SensitiveWords
:
React
.
FC
<
{}
>
=
()
=>
{
const
ref
=
useRef
<
any
>
({});
const
columns
:
ColumnType
<
any
>
[]
=
[
{
title
:
'参数编号'
,
key
:
'
id
'
,
dataIndex
:
'
id
'
,
key
:
'
code
'
,
dataIndex
:
'
code
'
,
},
{
title
:
'参数名称'
,
key
:
'name'
,
dataIndex
:
'name'
,
},
{
title
:
'参数描述'
,
key
:
'
remark
s'
,
dataIndex
:
'
remark
s'
,
key
:
'
detail
s'
,
dataIndex
:
'
detail
s'
,
},{
title
:
'参数值'
,
key
:
'
zhi
'
,
dataIndex
:
'
zhi
'
,
key
:
'
parameterValue
'
,
dataIndex
:
'
parameterValue
'
,
},{
title
:
'状态'
,
key
:
'status'
,
dataIndex
:
'status'
,
key
:
'state'
,
dataIndex
:
'state'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
<
StatusSwitch
fieldNames=
"status"
handleConfirm=
{
()
=>
handleChangeStatus
(
record
.
id
,
record
.
status
)
}
record=
{
record
}
/>
)
},{
title
:
'操作'
,
key
:
'options'
,
dataIndex
:
'options'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Button
type=
'link'
onClick=
{
()
=>
history
.
push
(
`/system/platformArg/edit?id=${record.id}¶meterValue=${record.parameterValue}`
)
}
>
修改
</
Button
>
}
]
const
controllerBtns
=
<
Row
>
<
Col
span=
{
24
}
>
<
Space
direction=
"horizontal"
size=
{
16
}
>
<
Button
type=
"primary"
icon=
{
<
PlusOutlined
/>
}
>
新建
</
Button
>
</
Space
>
</
Col
>
</
Row
>
/**切换状态 */
const
handleChangeStatus
=
async
(
id
:
any
,
status
:
any
)
=>
{
let
_status
=
status
===
1
?
0
:
1
await
PublicApi
.
postManageParameterManageUpdateState
({
id
:
id
,
status
:
_status
})
ref
.
current
.
reload
()
}
/**获取单位列表数据 */
const
fetchdata
=
(
params
:
any
)
=>
{
return
new
Promise
(
resolve
=>
{
PublicApi
.
getManageParameterManagePage
({
...
params
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
resolve
(
res
.
data
)
}
})
})
}
return
(
<
PageHeaderWrapper
>
<
Card
>
<
StandardTable
currentRef=
{
ref
}
columns=
{
columns
}
tableProps=
{
{
rowKew
:
'id'
}
}
tableProps=
{
{
rowKey
:
'id'
}
}
fetchTableData=
{
params
=>
fetchdata
(
params
)
}
/>
</
Card
>
</
PageHeaderWrapper
>
)
}
export
default
SensitiveWords
;
\ No newline at end of file
export
default
SensitiveWords
;
src/pages/systemManage/platformArg/template.tsx
0 → 100644
View file @
9623ea13
import
React
,
{
useEffect
}
from
'react'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
history
}
from
'umi'
;
import
ReutrnEle
from
'@/components/ReturnEle'
;
import
{
Card
,
Form
,
Input
,
Button
,
Space
,
Popconfirm
,
message
}
from
'antd'
;
import
{
PublicApi
}
from
'@/services/api'
;
const
layout
:
any
=
{
colon
:
false
,
labelCol
:
{
style
:
{
width
:
'174px'
}
},
wrapperCol
:
{
span
:
9
},
labelAlign
:
"left"
};
const
tailLayout
=
{
wrapperCol
:
{
style
:
{
marginLeft
:
'174px'
}
},
};
const
Template
:
React
.
FC
<
{}
>
=
()
=>
{
const
[
form
]
=
Form
.
useForm
();
const
{
query
}
=
history
.
location
;
const
onFinish
=
(
values
:
any
)
=>
{
values
.
id
=
query
.
id
;
PublicApi
.
postManageParameterManageUpdate
(
values
).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
history
.
goBack
();
message
.
success
(
'修改敏感词成功'
)
}
})
}
const
confirmCancel
=
()
=>
{
history
.
goBack
()
}
useEffect
(()
=>
{
form
.
setFieldsValue
({
parameterValue
:
query
.
parameterValue
})
},
[])
return
(
<
PageHeaderWrapper
onBack=
{
()
=>
history
.
goBack
()
}
backIcon=
{
<
ReutrnEle
description=
"返回"
/>
}
>
<
Card
>
<
Form
{
...
layout
}
form=
{
form
}
onFinish=
{
onFinish
}
>
<
Form
.
Item
label=
'参数值'
name=
'parameterValue'
rules=
{
[{
required
:
true
,
message
:
'请输入参数值'
}]
}
>
<
Input
/>
</
Form
.
Item
>
<
Form
.
Item
{
...
tailLayout
}
>
<
Space
size=
{
24
}
>
<
Button
type=
'primary'
htmlType=
"submit"
>
保存
</
Button
>
<
Popconfirm
onConfirm=
{
confirmCancel
}
title=
"确定要执行这个操作?"
okText=
"确定"
cancelText=
"取消"
>
<
Button
>
取消
</
Button
>
</
Popconfirm
>
</
Space
>
</
Form
.
Item
>
</
Form
>
</
Card
>
</
PageHeaderWrapper
>
)
}
export
default
Template
;
src/pages/systemManage/sensitiveWords/index.tsx
View file @
9623ea13
...
...
@@ -28,7 +28,6 @@ const SensitiveWords: React.FC<{}> = () => {
}
else
{
message
.
error
(
'请选择要操作的数据'
)
}
}
const
columns
:
ColumnType
<
any
>
[]
=
[
{
...
...
@@ -102,7 +101,7 @@ const SensitiveWords: React.FC<{}> = () => {
<
StandardTable
currentRef=
{
ref
}
columns=
{
columns
}
tableProps=
{
{
rowKe
w
:
'id'
}
}
tableProps=
{
{
rowKe
y
:
'id'
}
}
rowSelection=
{
rowSelection
}
fetchTableData=
{
(
params
)
=>
fetchdata
(
params
)
}
formilyLayouts=
{
{
...
...
@@ -154,4 +153,4 @@ const SensitiveWords: React.FC<{}> = () => {
</
PageHeaderWrapper
>
)
}
export
default
SensitiveWords
;
\ No newline at end of file
export
default
SensitiveWords
;
src/pages/systemManage/unit/index.tsx
View file @
9623ea13
import
React
,
{
useRef
}
from
'react'
;
import
{
Card
,
Row
,
Col
,
Space
,
Button
}
from
'antd'
;
import
{
Card
,
Row
,
Col
,
Space
,
Button
,
Popconfirm
,
message
}
from
'antd'
;
import
{
PlusOutlined
}
from
'@ant-design/icons'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
StandardTable
}
from
'god'
;
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
history
}
from
'umi'
;
import
StatusSwitch
from
'@/components/StatusSwitch'
;
const
SensitiveWords
:
React
.
FC
<
{}
>
=
()
=>
{
const
ref
=
useRef
<
any
>
({});
/**切换状态 */
const
handleChangeStatus
=
async
(
id
:
any
,
status
:
any
)
=>
{
let
_status
=
status
===
true
?
'false'
:
'true'
await
PublicApi
.
getManageUnitUpdateUnitStatus
({
id
:
id
,
status
:
_status
})
ref
.
current
.
reload
()
}
const
confirmCancel
=
(
id
:
number
)
=>
{
PublicApi
.
postManageSensitiveWordDelete
({
id
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
message
.
success
(
'删除成功'
)
ref
.
current
.
Reload
()
}
})
}
const
columns
:
ColumnType
<
any
>
[]
=
[
{
title
:
'ID'
,
...
...
@@ -18,36 +35,60 @@ const SensitiveWords: React.FC<{}> = () => {
dataIndex
:
'name'
,
},
{
title
:
'英文简称'
,
key
:
'
remarks
'
,
dataIndex
:
'
remarks
'
,
key
:
'
englishShortName
'
,
dataIndex
:
'
englishShortName
'
,
},{
title
:
'状态'
,
key
:
'status'
,
dataIndex
:
'status'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
<
StatusSwitch
fieldNames=
"status"
handleConfirm=
{
()
=>
handleChangeStatus
(
record
.
id
,
record
.
status
)
}
record=
{
record
}
/>
)
},{
title
:
'操作'
,
key
:
'options'
,
dataIndex
:
'options'
,
render
:
(
text
:
any
,
record
:
any
)
=>
{
return
(
<>
<
Button
type=
'link'
href=
{
`/system/sensitiveWords/edit?id=${record.id}
}
`}
>
修改
</
Button
>
<
Popconfirm
onConfirm=
{
()
=>
confirmCancel
(
record
.
id
)
}
title=
"确定要执行这个操作?"
okText=
"确定"
cancelText=
"取消"
>
<
Button
type=
'link'
>
删除
</
Button
>
</
Popconfirm
>
</>
)
}
},
]
const
controllerBtns
=
<
Row
>
<
Col
span=
{
24
}
>
<
Space
direction=
"horizontal"
size=
{
16
}
>
<
Button
type=
"primary"
icon=
{
<
PlusOutlined
/>
}
>
新建
</
Button
>
<
Button
type=
"primary"
icon=
{
<
PlusOutlined
/>
}
onClick=
{
()
=>
history
.
push
(
`/system/unit/add`
)
}
>
新建
</
Button
>
</
Space
>
</
Col
>
</
Row
>
/**获取单位列表数据 */
//
const fetchdata = (params: any) => {
//
return new Promise(resolve => {
//
PublicApi.getManageUnitGetUnitList({ ...params }).then(res => {
//
if (res.code === 1000) {
//
resolve(res.data)
//
}
//
})
//
})
//
}
const
fetchdata
=
(
params
:
any
)
=>
{
return
new
Promise
(
resolve
=>
{
PublicApi
.
getManageUnitGetUnitList
({
...
params
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
resolve
(
res
.
data
)
}
})
})
}
return
(
<
PageHeaderWrapper
>
...
...
@@ -55,7 +96,8 @@ const SensitiveWords: React.FC<{}> = () => {
<
StandardTable
currentRef=
{
ref
}
columns=
{
columns
}
tableProps=
{
{
rowKew
:
'id'
}
}
tableProps=
{
{
rowKey
:
'id'
}
}
fetchTableData=
{
(
params
)
=>
fetchdata
(
params
)
}
formilyLayouts=
{
{
justify
:
'space-between'
}
}
...
...
@@ -105,4 +147,4 @@ const SensitiveWords: React.FC<{}> = () => {
</
PageHeaderWrapper
>
)
}
export
default
SensitiveWords
;
\ No newline at end of file
export
default
SensitiveWords
;
src/pages/systemManage/unit/template.tsx
View file @
9623ea13
...
...
@@ -2,7 +2,8 @@ import React from 'react';
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
history
}
from
'umi'
;
import
ReutrnEle
from
'@/components/ReturnEle'
;
import
{
Card
,
Form
,
Input
,
Button
,
Space
}
from
'antd'
;
import
{
Card
,
Form
,
Input
,
Button
,
Space
,
message
,
Popconfirm
}
from
'antd'
;
import
{
PublicApi
}
from
'@/services/api'
;
const
layout
:
any
=
{
colon
:
false
,
labelCol
:
{
style
:
{
width
:
'174px'
}
},
...
...
@@ -10,28 +11,65 @@ const layout: any = {
labelAlign
:
"left"
};
const
tailLayout
=
{
wrapperCol
:
{
style
:
{
marginLeft
:
'174px'
}
},
wrapperCol
:
{
style
:
{
marginLeft
:
'174px'
}
},
};
const
Template
:
React
.
FC
<
{}
>
=
()
=>
{
return
(
const
[
form
]
=
Form
.
useForm
();
const
{
pathname
,
query
}
=
history
.
location
;
const
type
=
pathname
.
split
(
'/'
)[
pathname
.
split
(
'/'
).
length
-
1
];
const
onFinish
=
(
values
:
any
)
=>
{
if
(
type
===
'add'
)
{
PublicApi
.
postManageUnitSaveOrUpdateUnit
(
values
).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
history
.
goBack
();
message
.
success
(
'新增单位成功'
)
}
})
}
else
{
values
.
id
=
query
.
id
;
PublicApi
.
postManageUnitSaveOrUpdateUnit
(
values
).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
history
.
goBack
();
message
.
success
(
'修改单位成功'
)
}
})
}
}
const
confirmCancel
=
()
=>
{
history
.
goBack
()
}
const
Template
:
React
.
FC
<
{}
>
=
()
=>
{
return
(
<
PageHeaderWrapper
onBack=
{
()
=>
history
.
goBack
()
}
backIcon=
{
<
ReutrnEle
description=
"返回"
/>
}
>
<
Card
>
<
Form
form=
{
form
}
{
...
layout
}
onFinish=
{
onFinish
}
>
<
Form
.
Item
label=
'单位名称'
name=
'name'
rules=
{
[{
required
:
true
,
message
:
'请输入单位名称'
}]
}
>
<
Input
/>
</
Form
.
Item
>
<
Form
.
Item
label=
'英文简称'
name=
'enName'
rules=
{
[{
required
:
true
,
message
:
'请输入英文简称'
}]
}
>
<
Form
.
Item
label=
'英文简称'
name=
'en
glishShort
Name'
rules=
{
[{
required
:
true
,
message
:
'请输入英文简称'
}]
}
>
<
Input
/>
</
Form
.
Item
>
<
Form
.
Item
{
...
tailLayout
}
>
<
Space
size=
{
24
}
>
<
Button
type=
'primary'
>
保存
</
Button
>
<
Button
>
取消
</
Button
>
<
Button
type=
'primary'
htmlType=
"submit"
>
保存
</
Button
>
<
Popconfirm
onConfirm=
{
confirmCancel
}
title=
"确定要执行这个操作?"
okText=
"确定"
cancelText=
"取消"
>
<
Button
>
取消
</
Button
>
</
Popconfirm
>
</
Space
>
</
Form
.
Item
>
</
Form
>
...
...
@@ -40,4 +78,4 @@ const Template:React.FC<{}> = () => {
)
}
export
default
Template
;
\ No newline at end of file
export
default
Template
;
src/pages/trademark/trademarkWillCheck/checkBrand.tsx
View file @
9623ea13
...
...
@@ -33,7 +33,7 @@ const CheckBrand: React.FC<{}> = () => {
loadPageData
(
id
)
}
},
[])
const
columns
:
ColumnType
<
any
>
[]
=
[
{
title
:
'序号'
,
...
...
@@ -129,11 +129,11 @@ const CheckBrand: React.FC<{}> = () => {
let
imgArray
=
Object
.
values
(
proveInfo
)
return
imgArray
.
map
((
item
:
any
,
index
:
number
)
=>
<
Col
key=
{
index
}
span=
{
3
}
xxl=
{
3
}
xl=
{
4
}
lg=
{
4
}
>
<
div
className=
{
styles
.
proveBox
}
>
<
Image
<
Image
width=
{
175
}
height=
{
120
}
src=
{
item
}
alt=
"品牌相关证明材料"
src=
{
item
}
alt=
"品牌相关证明材料"
/>
</
div
>
</
Col
>
...
...
@@ -166,14 +166,14 @@ const CheckBrand: React.FC<{}> = () => {
if
(
res
.
code
=
1000
){
handleCancel
()
setDisableCheck
(
true
)
loadPageData
(
brandInfo
.
id
)
loadPageData
(
res
.
data
)
}
})
})
}
const
handleCancel
=
()
=>
{
checkForm
.
resetFields
()
checkForm
.
resetFields
()
setVisibleModal
(
false
)
}
...
...
@@ -188,7 +188,7 @@ const CheckBrand: React.FC<{}> = () => {
backIcon=
{
<
ReutrnEle
logoSrc=
{
brandInfo
?.
logoUrl
}
/>
}
content=
{
content
}
extra=
{
[
<
Button
<
Button
icon=
{
<
CheckSquareOutlined
/>
}
key=
"1"
type=
"primary"
...
...
@@ -232,8 +232,8 @@ const CheckBrand: React.FC<{}> = () => {
layout=
"vertical"
form=
{
checkForm
}
>
<
Form
.
Item
name=
"status"
<
Form
.
Item
name=
"status"
label=
""
rules=
{
[
{
...
...
@@ -249,8 +249,8 @@ const CheckBrand: React.FC<{}> = () => {
</
Radio
.
Group
>
</
Form
.
Item
>
{
checkStatus
===
3
&&
<
Form
.
Item
name=
"checkRemark"
checkStatus
===
3
&&
<
Form
.
Item
name=
"checkRemark"
label=
'审核不通过原因'
rules=
{
[
{
...
...
ytt.config.ts
View file @
9623ea13
...
...
@@ -20,7 +20,6 @@ const getConfigMap = (tokens) => tokens.map(v => ({
enabled
:
false
,
},
outputFilePath
:
`src/services/
${
v
.
name
}
Api`
,
requestFunctionFilePath
:
'request.ts'
,
dataKey
:
'data'
,
projects
:
[
{
...
...
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