Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
fns_backend
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Zhang Xiaojie
fns_backend
Commits
88b5b090
Commit
88b5b090
authored
Sep 15, 2021
by
Zhang Xiaojie
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of gitlab.33.cn:CassiniatSaturn/fns_backend into dev
parents
838c98df
63d5edf2
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
217 additions
and
81 deletions
+217
-81
addSuperManagerModal.vue
src/components/UserManage/addSuperManagerModal.vue
+3
-1
superManagerTable.vue
src/components/UserManage/superManagerTable.vue
+29
-12
topBar.vue
src/components/UserManage/topBar.vue
+1
-0
bannerColumns.ts
src/const/columns/bannerColumns.ts
+18
-19
upload.ts
src/const/config/upload.ts
+13
-0
index.ts
src/filter/index.ts
+37
-8
index.ts
src/service/BannerManagementService/index.ts
+16
-9
types.ts
src/service/BannerManagementService/types.ts
+9
-0
index.ts
src/service/FileService/index.ts
+44
-0
index.ts
src/service/StaffService/index.ts
+9
-2
index.ts
src/service/UserManagementService/index.ts
+2
-2
index.ts
src/service/index.ts
+2
-2
banner.ts
src/types/banner.ts
+21
-9
role.ts
src/types/role.ts
+1
-1
user.ts
src/types/user.ts
+11
-4
index.vue
src/views/Login/index.vue
+0
-11
index.vue
src/views/Root/Banner/index.vue
+0
-0
index.vue
src/views/Root/index.vue
+1
-1
No files found.
src/components/UserManage/addSuperManagerModal.vue
View file @
88b5b090
...
...
@@ -26,6 +26,7 @@
<a-form-model-item
label=
"手机号"
prop=
"tel"
>
<a-input
v-model=
"form.tel"
:maxLength=
"11"
placeholder=
"请输入手机号"
style=
"width: 200px;"
/>
...
...
@@ -93,7 +94,7 @@ export default Vue.extend({
{
required
:
true
,
message
:
'请输入名称'
,
max
:
6
,
trigger
:
'blur'
},
],
tel
:
[
{
required
:
true
,
message
:
'请输入手机号'
,
max
:
11
,
trigger
:
'blur'
},
{
required
:
true
,
message
:
'请输入手机号'
,
len
:
11
,
trigger
:
'blur'
},
],
bank
:
[{
required
:
true
,
message
:
'请输入所属银行'
,
trigger
:
'blur'
}],
}
...
...
@@ -142,6 +143,7 @@ export default Vue.extend({
)
if
(
ret
&&
ret
.
code
===
200
)
{
message
.
success
(
'发布成功'
)
this
.
$store
.
dispatch
(
'platformUserManagement/query'
)
}
}
else
{
return
false
...
...
src/components/UserManage/superManagerTable.vue
View file @
88b5b090
...
...
@@ -8,29 +8,40 @@
style=
"text-align: center;"
bordered
>
<span
slot=
"level"
>
超级
管理员
</span>
<span
slot=
"level"
>
银行
管理员
</span>
<template
#
created_at=
"text"
>
{{
text
|
formatDate
}}
</
template
>
<
template
#
status=
"text"
>
{{
text
|
filterUserStatus
}}
{{
text
|
platform
filterUserStatus
}}
</
template
>
<div
slot=
"action"
slot-scope=
"text, record"
>
<a
:class=
"record.status == eUserStatus.enable ? 'undeleteable' : ' '"
:class=
"
record.status == eUserResStatus.enable_notOnPosition ||
record.status === eUserResStatus.enable_onPosition
? 'undeleteable'
: ' '
"
@
click=
"showModal(record, 0)"
>
删除
</a>
<a-divider
type=
"vertical"
/>
<a
v-if=
"record.status == eUserStatus.disable"
v-if=
"
record.status == eUserResStatus.disable_noPosition ||
record.status === eUserResStatus.disable_notOnPosition
"
@
click=
"showModal(record, 1)"
>
启用
</a>
<a
v-else-if=
"eUserStatus.enable === record.status"
v-else-if=
"
record.status === eUserResStatus.enable_notOnPosition ||
eUserResStatus.enable_onPosition
"
@
click=
"showModal(record, 2)"
>
禁用
...
...
@@ -65,7 +76,7 @@ import { modalType } from './const'
import
{
getPlatformUserManagementTableColumns
}
from
'@/const/columns/superManagerColumn'
import
{
mapActions
,
mapMutations
,
mapState
}
from
'vuex'
import
StaffService
from
'@/service/StaffService'
import
{
eUserStatus
}
from
'@/types/user'
import
{
eUser
ReqStatus
,
eUserRes
Status
}
from
'@/types/user'
export
default
Vue
.
extend
({
computed
:
{
...
...
@@ -90,7 +101,8 @@ export default Vue.extend({
show
:
false
,
content
:
''
,
title
:
''
,
eUserStatus
,
eUserReqStatus
,
eUserResStatus
,
}
},
methods
:
{
...
...
@@ -121,19 +133,24 @@ export default Vue.extend({
}
this
.
show
=
true
},
handleOk
()
{
async
handleOk
()
{
if
(
this
.
type
==
modalType
.
delete
)
{
await
StaffService
.
getInstance
().
deleteStaff
(
this
.
uuid
)
}
else
if
(
this
.
type
==
modalType
.
on
)
{
StaffService
.
getInstance
().
modifyStaffStatus
({
await
StaffService
.
getInstance
().
modifyStaffStatus
({
uuid
:
this
.
uuid
,
status
:
eUserStatus
.
enable
,
status
:
eUser
Req
Status
.
enable
,
})
}
else
if
(
this
.
type
==
modalType
.
off
)
{
StaffService
.
getInstance
().
modifyStaffStatus
({
await
StaffService
.
getInstance
().
modifyStaffStatus
({
uuid
:
this
.
uuid
,
status
:
eUserStatus
.
disable
,
status
:
eUser
Req
Status
.
disable
,
})
}
this
.
$store
.
commit
(
'/platformUserManagement/save'
,
{
page
:
1
,
})
this
.
$store
.
dispatch
(
'/platformUserManagement/query'
)
this
.
show
=
false
},
},
...
...
src/components/UserManage/topBar.vue
View file @
88b5b090
...
...
@@ -42,6 +42,7 @@
class=
"my-1"
:is=
"type == 1 ? 'addNormalManagerModal' : 'addSuperManagerModal'"
ref=
"addrModal"
:userType=
"type"
:level=
"level"
/>
</div>
...
...
src/const/columns/bannerColumns.ts
View file @
88b5b090
import
{
column
}
from
"@/types/column"
const
columns
:
Array
<
column
>=
[
import
{
column
}
from
'@/types/column'
const
columns
:
Array
<
column
>
=
[
{
title
:
'发布时间'
,
align
:
'center'
,
dataIndex
:
'time'
,
align
:
'center'
,
dataIndex
:
'created_at'
,
scopedSlots
:
{
customRender
:
'created_at'
},
},
{
title
:
'banner名称'
,
align
:
'center'
,
dataIndex
:
'
nam
e'
,
align
:
'center'
,
dataIndex
:
'
titl
e'
,
},
{
title
:
'banner位置'
,
align
:
'center'
,
align
:
'center'
,
dataIndex
:
'location'
,
scopedSlots
:
{
customRender
:
'location'
},
},
{
title
:
'图片'
,
align
:
'center'
,
dataIndex
:
'
path
'
,
scopedSlots
:
{
customRender
:
'
path
'
},
align
:
'center'
,
dataIndex
:
'
file_name
'
,
scopedSlots
:
{
customRender
:
'
file_name
'
},
},
{
title
:
'状态'
,
align
:
'center'
,
dataIndex
:
'state'
,
align
:
'center'
,
dataIndex
:
'banner_status'
,
scopedSlots
:
{
customRender
:
'banner_status'
},
},
{
title
:
'操作'
,
align
:
'center'
,
align
:
'center'
,
key
:
'action'
,
scopedSlots
:
{
customRender
:
'action'
},
}
}
,
]
export
{
columns
}
\ No newline at end of file
export
{
columns
}
src/const/config/upload.ts
0 → 100644
View file @
88b5b090
export
const
ACCEPT_IMAGE_TYPE
=
'.jpg,.jpep,.png'
export
function
isAcceptImageType
(
file
:
File
)
{
const
isCorrectType
=
file
.
name
.
match
(
/
(\.
jpg|
\.
jpep|
\.
png
)
$/
)
return
!!
isCorrectType
}
export
const
TOAST_TEXT
=
'请上传jpg或jpep或png文件'
// 最大上传大小 40M
export
const
MAX_IMAGE_SIZE
=
1024
*
1024
*
40
export
const
TOAST_TEXT2
=
'请上传小于40M的图片'
src/filter/index.ts
View file @
88b5b090
import
{
eUserStatus
}
from
'@/types/user'
import
{
eBannerLocation
,
eBannerStatus
}
from
'@/types/banner'
import
{
eUserResStatus
}
from
'@/types/user'
import
moment
from
'moment'
export
default
{
...
...
@@ -10,16 +11,44 @@ export default {
return
''
}
},
filterUserStatus
(
status
:
eUserStatus
)
{
filterUserStatus
(
status
:
eUser
Res
Status
)
{
switch
(
status
)
{
case
eUser
Status
.
disable
:
case
eUser
ResStatus
.
disable_noPosition
:
return
'禁用'
case
eUserStatus
.
enable
:
case
eUserResStatus
.
disable_notOnPosition
:
return
'禁用'
case
eUserResStatus
.
enable_notOnPosition
:
return
'启用/不在岗'
case
eUserResStatus
.
enable_onPosition
:
return
'启用/在岗'
}
},
platformfilterUserStatus
(
status
:
eUserResStatus
)
{
switch
(
status
)
{
case
eUserResStatus
.
disable_noPosition
:
return
'禁用'
case
eUserResStatus
.
disable_notOnPosition
:
return
'禁用'
case
eUserResStatus
.
enable_notOnPosition
:
return
'启用'
case
eUserResStatus
.
enable_onPosition
:
return
'启用'
case
eUserStatus
.
onPosition
:
return
'在岗'
case
eUserStatus
.
notOnPosition
:
return
'不在岗'
}
},
filterBannerLocation
(
status
:
eBannerLocation
)
{
switch
(
status
)
{
case
eBannerLocation
.
home
:
return
'首页'
}
},
filtereBannerStatus
(
status
:
eBannerStatus
)
{
switch
(
status
)
{
case
eBannerStatus
.
editable
:
return
'未发布'
case
eBannerStatus
.
delete
:
return
'删除'
case
eBannerStatus
.
published
:
return
'已发布'
}
},
}
as
{
...
...
src/service/BannerManagementService/index.ts
View file @
88b5b090
import
baseAxios
from
'../index'
import
{
banner_status
}
from
'@/views/Root/Banner/const'
import
{
iBannerItem
}
from
'./types'
import
{
eBannerStatus
}
from
'@/types/banner'
const
prefix
=
'/banner/admin'
// 新增banner信息
...
...
@@ -17,12 +19,18 @@ export function bannerAdd(data: {
// 查询banner列表
export
function
bannerQuery
(
data
:
{
banner_status
:
0
location
:
0
end_time
:
number
start_time
:
number
banner_status
:
eBannerStatus
location
:
number
end_time
?:
number
start_time
?:
number
limit
?:
number
offset
?:
number
})
{
return
baseAxios
({
return
baseAxios
<
{
count
:
number
items
:
iBannerItem
[]
total
:
number
}
>
({
url
:
prefix
+
'/list'
,
method
:
'POST'
,
data
,
...
...
@@ -31,12 +39,12 @@ export function bannerQuery(data: {
// 修改banner状态
export
function
bannerModify
(
data
:
{
banner_status
:
banner_s
tatus
uuid
:
string
banner_status
:
eBannerS
tatus
uuid
:
string
})
{
return
baseAxios
({
url
:
prefix
+
'/modify'
,
method
:
'POST'
,
data
,
})
}
\ No newline at end of file
}
src/service/BannerManagementService/types.ts
0 → 100644
View file @
88b5b090
export
interface
iBannerItem
{
banner_status
:
number
created_at
:
number
file_name
:
string
location
:
number
title
:
string
update_at
:
number
uuid
:
string
}
src/service/FileService/index.ts
0 → 100644
View file @
88b5b090
import
baseAxios
from
'../index'
export
default
class
FileService
{
static
instance
:
FileService
static
getInstance
()
{
if
(
!
FileService
.
instance
)
{
FileService
.
instance
=
new
FileService
()
}
return
FileService
.
instance
}
download
(
file_hash
:
string
)
{
return
(
baseAxios
({
method
:
'get'
,
url
:
'/image/download'
,
params
:
{
file_hash
,
},
})
as
unknown
)
as
Promise
<
File
>
}
getImageSrc
(
file_hash
:
string
)
{
return
`/proxyApi/api/v1/image/show?file_hash=
${
file_hash
}
`
}
showImage
(
file_hash
:
string
)
{
return
(
baseAxios
({
method
:
'get'
,
url
:
'/image/show'
,
params
:
{
file_hash
,
},
})
as
unknown
)
as
Promise
<
File
>
}
uploadImage
(
uploadFile
:
File
)
{
const
fd
=
new
FormData
()
fd
.
append
(
'uploadFile'
,
uploadFile
)
return
baseAxios
<
string
>
({
method
:
'post'
,
url
:
'/image/upload'
,
data
:
fd
,
})
}
}
src/service/StaffService/index.ts
View file @
88b5b090
import
{
eUserStatus
}
from
'@/types/user'
import
{
eUser
Req
Status
}
from
'@/types/user'
import
baseAxios
from
'../index'
export
default
class
StaffService
{
...
...
@@ -10,11 +10,18 @@ export default class StaffService {
return
StaffService
.
instance
}
modifyStaffStatus
(
data
:
{
status
:
eUserStatus
;
uuid
:
string
})
{
modifyStaffStatus
(
data
:
{
status
:
eUser
Req
Status
;
uuid
:
string
})
{
return
baseAxios
({
url
:
'/staff/modifyStatus'
,
method
:
'PUT'
,
data
,
})
}
deleteStaff
(
uuid
:
string
)
{
return
baseAxios
({
url
:
'/staff/'
+
uuid
,
method
:
'delete'
,
})
}
}
src/service/UserManagementService/index.ts
View file @
88b5b090
import
{
eLevel
}
from
'@/types/level'
import
{
eNewRoleRelatedToBackEnd
}
from
'@/types/role'
import
{
eUserStatus
}
from
'@/types/user'
import
{
eUser
Req
Status
}
from
'@/types/user'
import
{
eUserType
}
from
'@/types/userType'
import
baseAxios
from
'../index'
...
...
@@ -142,7 +142,7 @@ export default class UserService {
role
:
string
second_branch
:
string
second_sub_branch
:
string
status
:
eUserStatus
status
:
eUser
Req
Status
user_name
:
string
uuid
:
string
}[]
...
...
src/service/index.ts
View file @
88b5b090
...
...
@@ -14,8 +14,8 @@ const baseAxios = axios.create({
baseAxios
.
interceptors
.
response
.
use
(
(
value
:
AxiosResponse
<
iRet
>
)
=>
{
const
ret
=
value
.
data
if
(
ret
.
code
!==
200
)
{
if
(
ret
.
code
===
504
)
{
if
(
ret
.
code
!==
undefined
&&
ret
.
code
!==
200
)
{
if
(
ret
.
code
===
504
)
{
// deleteUserMsg();
}
message
.
error
(
ret
.
msg
)
...
...
src/types/banner.ts
View file @
88b5b090
export
interface
banner
{
key
:
string
time
:
string
,
name
:
string
,
location
:
string
,
path
:
string
,
state
:
string
}
\ No newline at end of file
export
interface
banner
{
key
:
string
time
:
string
name
:
string
location
:
string
path
:
string
state
:
string
}
export
enum
eBannerLocation
{
all
=
0
,
home
=
1
,
}
// 0:全部状态,1:可编辑,2:已发布,3:删除
export
enum
eBannerStatus
{
all
=
0
,
editable
=
1
,
published
=
2
,
delete
=
3
,
}
src/types/role.ts
View file @
88b5b090
export
enum
eRole
{
platform_management
,
// 平台管理员
superManager
,
// 超级管理员 也
叫 银行管理员
superManager
,
// 超级管理员 也叫 银行管理员
firstLevel_branch
,
// 一级分行管理员
secondary_branch
,
// 二级分行管理员
...
...
src/types/user.ts
View file @
88b5b090
...
...
@@ -7,9 +7,16 @@ export interface user {
note
?:
string
}
export
enum
eUserStatus
{
disable
=
0
,
enable
=
1
,
onPosition
=
2
,
export
enum
eUser
Req
Status
{
disable
=
1
,
enable
=
2
,
onPosition
=
3
,
notOnPosition
=
4
,
}
export
enum
eUserResStatus
{
disable_notOnPosition
=
0
,
disable_noPosition
=
1
,
enable_notOnPosition
=
2
,
enable_onPosition
=
3
,
}
src/views/Login/index.vue
View file @
88b5b090
...
...
@@ -235,8 +235,6 @@ export default Vue.extend({
this
.
$router
.
push
({
name
:
"home"
,
});
}
else
{
message
.
warn
(
ret
.
msg
);
}
},
async
handleClickLogin
()
{
...
...
@@ -256,15 +254,6 @@ export default Vue.extend({
console
.
log
(
err
);
}
this
.
loading
=
false
;
// setUserMsg({
// userInfo: 'lakds',
// token: 'aldksfj',
// role: eRole.superManager,
// })
// this.$router.push({
// name: 'home'
// })
}
else
{
return
false
;
}
...
...
src/views/Root/Banner/index.vue
View file @
88b5b090
This diff is collapsed.
Click to expand it.
src/views/Root/index.vue
View file @
88b5b090
...
...
@@ -2,7 +2,7 @@
<div>
<a-layout
id=
"components-layout-demo-fixed-sider"
>
<a-layout-sider
width=
"256"
style=
"background: white"
>
<div
class=
"text-center text-lg my-3"
>
合同
后台
</div>
<div
class=
"text-center text-lg my-3"
>
普惠金融
后台
</div>
<a-menu
style=
"width: 256px"
:open-keys
.
sync=
"openKeys"
...
...
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