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
26dba2cd
Commit
26dba2cd
authored
Sep 26, 2021
by
lshan
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
https://gitlab.33.cn/CassiniatSaturn/fns_backend
into lshan
parents
44bda148
e2cdb1de
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
920 additions
and
98 deletions
+920
-98
const.ts
src/components/HeaderSelect2/const.ts
+30
-0
index.vue
src/components/HeaderSelect2/index.vue
+278
-0
addNormalManagerModal.vue
src/components/UserManage/addNormalManagerModal.vue
+0
-0
topBar.vue
src/components/UserManage/topBar.vue
+19
-0
userTable.vue
src/components/UserManage/userTable.vue
+0
-0
productTable.vue
src/components/productManage/productTable.vue
+7
-7
topbar.vue
src/components/productManage/topbar.vue
+8
-4
productColumn.ts
src/const/columns/productColumn.ts
+2
-2
userManagerCol.ts
src/const/columns/userManagerCol.ts
+27
-24
index.ts
src/filter/index.ts
+16
-1
index.ts
src/service/LoanProductService/index.ts
+1
-1
index.ts
src/service/StaffService/index.ts
+149
-13
index.ts
src/store/LoanProductManagement/index.ts
+1
-1
index.ts
src/store/UserManagement/index.ts
+38
-0
types.ts
src/store/UserManagement/types.ts
+44
-0
index.ts
src/store/index.ts
+7
-4
index.ts
src/store/platformUserManagement/index.ts
+44
-0
types.ts
src/store/platformUserManagement/types.ts
+3
-1
staff.ts
src/types/staff.ts
+21
-1
const.ts
...ws/Root/OutletManagement/components/HeaderSelect/const.ts
+1
-1
index.vue
src/views/Root/OutletManagement/index.vue
+13
-0
publish.vue
src/views/Root/Product/Loan/publish.vue
+2
-2
index.ts
src/views/Root/User/Mixin/index.ts
+56
-0
client.vue
src/views/Root/User/client.vue
+68
-17
firstLevel.vue
src/views/Root/User/firstLevel.vue
+6
-8
index.vue
src/views/Root/User/index.vue
+76
-9
getMenuList.ts
src/views/Root/getMenuList.ts
+2
-1
index.vue
src/views/Root/index.vue
+1
-1
No files found.
src/components/HeaderSelect2/const.ts
0 → 100644
View file @
26dba2cd
export
const
fooList
=
[
{
label
:
'所属一级分行'
,
placeholder
:
'请选择一级分行'
,
options
:
[]
as
{
ID
:
number
;
Name
:
string
}[],
disable
:
false
,
value
:
undefined
as
number
|
undefined
,
},
{
label
:
'所属二级分行'
,
placeholder
:
'请选择二级分行'
,
options
:
[]
as
{
ID
:
number
;
Name
:
string
}[],
disable
:
false
,
value
:
undefined
as
number
|
undefined
,
},
{
label
:
'所属一级支行'
,
placeholder
:
'请选择一级支行'
,
options
:
[]
as
{
ID
:
number
;
Name
:
string
}[],
disable
:
false
,
value
:
undefined
as
number
|
undefined
,
},
{
label
:
'所属一级支行'
,
placeholder
:
'请选择二级支行'
,
options
:
[]
as
{
ID
:
number
;
Name
:
string
}[],
disable
:
false
,
value
:
undefined
as
number
|
undefined
,
},
]
src/components/HeaderSelect2/index.vue
0 → 100644
View file @
26dba2cd
<
template
>
<div
class=
"header-select"
>
<FormModelItem
v-for=
"(item, index) in fooList"
:prop=
"`fooProp$
{index}`"
:key="index"
:label="item.label"
>
<a-select
class=
"header-select-item mx-3 my-2"
@
change=
"(value) => handleSelectChange(value, index)"
:placeholder=
"item.placeholder"
:value=
"item.value"
:disabled=
"index + 1
<
=
userLevel
?
true
:
item
.
disable
"
>
<a-select-option
:value=
"option.ID"
:key=
"option.ID"
v-for=
"option in item.options"
>
{{
option
.
Name
}}
</a-select-option
>
</a-select>
</FormModelItem>
</div>
</
template
>
<
script
lang=
"ts"
>
import
{
eLevel
}
from
"@/types/level"
;
import
{
message
}
from
"ant-design-vue"
;
import
StaffService
from
"@/service/StaffService"
;
import
{
fooList
}
from
"./const"
;
import
Vue
,
{
PropType
}
from
"vue"
;
import
{
iOutLet
}
from
"@/service/StaffService/types"
;
import
{
FormModel
}
from
"ant-design-vue"
;
const
FormModelItem
=
FormModel
.
Item
;
export
default
Vue
.
extend
({
components
:
{
FormModelItem
,
FormModel
,
},
props
:
{
fooList
:
{
type
:
Array
as
PropType
<
typeof
fooList
>
,
},
setFooList
:
Function
,
level
:
Number
,
userLevel
:
Number
,
},
data
()
{
return
{};
},
mounted
()
{
this
.
init
();
},
methods
:
{
handleSelectChange
(
value
:
number
,
index
:
number
)
{
const
baseList
=
[...
this
.
fooList
];
baseList
[
index
].
value
=
value
;
const
newList
=
baseList
.
map
((
i
,
idx
)
=>
{
idx
>
index
&&
console
.
log
(
i
);
return
{
...
i
,
options
:
idx
>
index
?
[]
:
i
.
options
,
value
:
idx
>
index
?
undefined
:
i
.
value
,
};
});
this
.
changeFooList
([...
newList
]);
index
+
1
!==
4
&&
this
.
fetchOptions
(
index
+
1
);
},
async
fetchOptions
(
index
:
number
)
{
const
ret
=
await
StaffService
.
getInstance
().
getBranch
({
level
:
index
+
1
,
page_size
:
10000
,
parent_id
:
this
.
fooList
[
index
-
1
].
value
,
});
if
(
ret
.
code
===
200
)
{
const
baseList
=
[...
this
.
fooList
];
baseList
[
index
].
options
=
ret
.
data
.
item
;
this
.
changeFooList
(
baseList
);
}
},
changeFooList
(
v
:
any
[])
{
let
lastIndexhasValue
=
true
;
const
newList
=
v
.
map
((
item
,
index
)
=>
{
if
(
index
>=
this
.
level
)
{
const
shouldDisable
=
!
lastIndexhasValue
;
lastIndexhasValue
=
item
.
value
!==
undefined
;
return
{
...
item
,
disable
:
shouldDisable
,
options
:
shouldDisable
?
[]
:
item
.
options
,
};
}
else
{
return
{
...
item
,
};
}
});
this
.
setFooList
(
newList
);
},
resetList
()
{
const
list
=
this
.
fooList
.
map
((
i
)
=>
{
return
{
...
i
,
disable
:
false
,
value
:
undefined
,
options
:
[],
};
});
this
.
setFooList
([...
list
]);
},
async
init
()
{
this
.
$nextTick
(()
=>
{
// if (this.level === eLevel.firstLevel_branch) {
// this.init_firstLevel(selfOutLet);
// } else if (this.level === eLevel.secondary_branch) {
// this.init_secondLevel(selfOutLet);
// } else if (this.level === eLevel.firstLevel_sub_branch) {
// this.init_first_sub_Level(selfOutLet);
// } else if (this.level === eLevel.secondary_sub_branch) {
// this.init_second_sub_Level(selfOutLet);
// }
});
},
async
initBackAdmin
(
selfOutLet
:
iOutLet
)
{
const
ret
=
await
StaffService
.
getInstance
().
getBranch
({
level
:
eLevel
.
firstLevel_branch
,
});
if
(
ret
.
code
===
200
)
{
const
options
=
ret
.
data
.
item
;
const
baseList
=
[...
this
.
fooList
];
baseList
[
0
].
options
=
options
;
const
newList
=
baseList
.
map
((
item
,
i
)
=>
{
return
{
...
item
,
disable
:
i
>=
1
,
};
});
this
.
setFooList
(
newList
);
}
},
init_firstLevel
(
selfOutLet
:
iOutLet
)
{
const
list
=
this
.
initFooListBasicValues
(
selfOutLet
,
eLevel
.
firstLevel_branch
);
this
.
setFooList
(
list
);
},
async
init_secondLevel
(
selfOutLet
:
iOutLet
)
{
const
{
fid
,
first_branch
,
sid
,
second_branch
}
=
selfOutLet
;
const
list
=
this
.
initFooListBasicValues
(
selfOutLet
,
eLevel
.
secondary_branch
);
this
.
setFooList
(
list
);
const
ret
=
await
StaffService
.
getInstance
().
getBranch
({
level
:
eLevel
.
firstLevel_sub_branch
,
page_size
:
10000
,
parent_id
:
sid
,
});
const
baseList
=
[...
this
.
fooList
];
if
(
ret
.
code
===
200
)
{
baseList
[
2
].
options
=
ret
.
data
.
item
;
}
this
.
setFooList
(
baseList
);
},
async
init_first_sub_Level
(
selfOutLet
:
iOutLet
)
{
const
baseList
=
[...
this
.
fooList
];
const
{
fid
,
first_branch
,
sid
,
second_branch
,
fs_id
,
first_sub_branch
}
=
selfOutLet
;
const
list
=
this
.
initFooListBasicValues
(
selfOutLet
,
eLevel
.
firstLevel_sub_branch
);
this
.
setFooList
(
list
);
const
ret
=
await
StaffService
.
getInstance
().
getBranch
({
level
:
eLevel
.
secondary_sub_branch
,
page_size
:
1000
,
parent_id
:
fs_id
,
});
if
(
ret
.
code
===
200
)
{
baseList
[
3
].
options
=
ret
.
data
.
item
;
}
this
.
setFooList
(
baseList
);
},
init_second_sub_Level
(
selfOutLet
:
iOutLet
)
{
this
.
initFooListBasicValues
(
selfOutLet
,
eLevel
.
secondary_sub_branch
);
},
initFooListBasicValues
(
selfOutLet
:
iOutLet
,
level
:
eLevel
)
{
let
list
=
this
.
fooList
;
const
{
fid
,
first_branch
,
sid
,
second_branch
,
fs_id
,
first_sub_branch
,
ss_id
,
second_sub_branch
,
}
=
selfOutLet
;
if
(
[
eLevel
.
firstLevel_branch
,
eLevel
.
secondary_branch
,
eLevel
.
firstLevel_sub_branch
,
eLevel
.
secondary_sub_branch
,
].
includes
(
level
)
)
{
list
[
0
].
value
=
fid
;
list
[
0
].
options
=
[{
ID
:
fid
,
Name
:
first_branch
}];
list
[
0
].
disable
=
true
;
}
if
(
[
eLevel
.
secondary_branch
,
eLevel
.
firstLevel_sub_branch
,
eLevel
.
secondary_sub_branch
,
].
includes
(
level
)
)
{
list
[
1
].
value
=
sid
;
list
[
1
].
options
=
[{
ID
:
sid
,
Name
:
second_branch
}];
list
[
1
].
disable
=
true
;
}
if
(
[
eLevel
.
firstLevel_sub_branch
,
eLevel
.
secondary_sub_branch
].
includes
(
level
)
)
{
list
[
2
].
value
=
fs_id
;
list
[
2
].
options
=
[{
ID
:
fs_id
,
Name
:
first_sub_branch
}];
list
[
2
].
disable
=
true
;
}
if
([
eLevel
.
secondary_sub_branch
].
includes
(
level
))
{
list
[
3
].
value
=
ss_id
;
list
[
3
].
options
=
[{
ID
:
ss_id
,
Name
:
second_sub_branch
}];
list
[
3
].
disable
=
true
;
}
return
list
;
},
popupScroll1
(
e
:
Event
)
{
let
h
=
e
.
target
as
HTMLElement
;
if
(
h
.
scrollHeight
-
h
.
scrollTop
<=
h
.
clientHeight
)
{
message
.
info
(
"臣妾做不到啊"
);
}
},
popupScroll2
(
e
:
Event
)
{
let
h
=
e
.
target
as
HTMLElement
;
if
(
h
.
scrollHeight
-
h
.
scrollTop
<=
h
.
clientHeight
)
{
message
.
info
(
"臣妾做不到啊"
);
}
},
popupScroll3
(
e
:
Event
)
{
let
h
=
e
.
target
as
HTMLElement
;
if
(
h
.
scrollHeight
-
h
.
scrollTop
<=
h
.
clientHeight
)
{
message
.
info
(
"臣妾做不到啊"
);
}
},
popupScroll4
(
e
:
Event
)
{
let
h
=
e
.
target
as
HTMLElement
;
if
(
h
.
scrollHeight
-
h
.
scrollTop
<=
h
.
clientHeight
)
{
message
.
info
(
"臣妾做不到啊"
);
}
},
},
});
</
script
>
<
style
scoped
lang=
"less"
>
.header-select {
.header-select-item {
width: 200px;
}
}
</
style
>
\ No newline at end of file
src/components/UserManage/addNormalManagerModal.vue
View file @
26dba2cd
This diff is collapsed.
Click to expand it.
src/components/UserManage/topBar.vue
View file @
26dba2cd
...
@@ -58,6 +58,8 @@ import { eLevel } from '@/types/level'
...
@@ -58,6 +58,8 @@ import { eLevel } from '@/types/level'
import
{
addUser
}
from
'./const'
import
{
addUser
}
from
'./const'
import
{
mapActions
,
mapMutations
,
mapState
}
from
'vuex'
import
{
mapActions
,
mapMutations
,
mapState
}
from
'vuex'
import
{
nextTick
}
from
'vue/types/umd'
import
{
nextTick
}
from
'vue/types/umd'
import
{
eAddManagerModalMode
}
from
'@/store/UserManagement/types'
import
{
eTypeOfOperatedObject
,
iUserManagementState
}
from
"@/store/UserManagement/types"
export
default
Vue
.
extend
({
export
default
Vue
.
extend
({
components
:
{
addNormalManagerModal
,
addSuperManagerModal
,
timerange
},
components
:
{
addNormalManagerModal
,
addSuperManagerModal
,
timerange
},
...
@@ -135,6 +137,23 @@ export default Vue.extend({
...
@@ -135,6 +137,23 @@ export default Vue.extend({
})
})
},
},
showModal
()
{
showModal
()
{
const
rankVal
=
(
JSON
.
parse
(
this
.
$route
.
query
.
rankVal
as
string
))
as
{
name
:
string
,
value
:
number
}[];
this
.
$store
.
commit
(
'UserManagement/save'
,
{
modalMode
:
eAddManagerModalMode
.
create
,
// create表示新增
typeOfOperatedObject
:
eTypeOfOperatedObject
.
manager
,
// !!!!要改 表示管理员还是客服经理
searchLevel
:
this
.
level
,
// 当前搜索的层级 如果展示一级分行页面 则是 eLevel.firstLevel_branch
branchDetailMsg
:
{
// 分支行下拉栏的值
fb
:
rankVal
[
0
].
name
,
fb_id
:
rankVal
[
0
].
value
,
sb
:
rankVal
[
1
]
&&
rankVal
[
1
].
name
||
undefined
,
sb_id
:
rankVal
[
1
]
&&
rankVal
[
1
].
value
||
undefined
,
fsb
:
rankVal
[
2
]
&&
rankVal
[
2
].
name
||
undefined
,
fsb_id
:
rankVal
[
2
]
&&
rankVal
[
2
].
value
||
undefined
,
ssb
:
rankVal
[
1
]
&&
rankVal
[
1
].
name
||
undefined
,
ssb_id
:
rankVal
[
1
]
&&
rankVal
[
1
].
value
||
undefined
,
}
}
as
iUserManagementState
)
;(
this
.
$refs
.
addrModal
as
any
).
showModal
()
;(
this
.
$refs
.
addrModal
as
any
).
showModal
()
},
},
},
},
...
...
src/components/UserManage/userTable.vue
View file @
26dba2cd
This diff is collapsed.
Click to expand it.
src/components/productManage/productTable.vue
View file @
26dba2cd
...
@@ -14,7 +14,7 @@
...
@@ -14,7 +14,7 @@
<span
slot=
"name"
slot-scope=
"text"
>
<span
slot=
"name"
slot-scope=
"text"
>
{{ text.inst_name }}-{{ text.product_name }}
{{ text.inst_name }}-{{ text.product_name }}
</span>
</span>
<
template
#
product
_type=
"text"
>
<
template
#
loan
_type=
"text"
>
{{
text
|
filterLoanType
}}
{{
text
|
filterLoanType
}}
</
template
>
</
template
>
<span
slot=
"date"
slot-scope=
"text"
>
<span
slot=
"date"
slot-scope=
"text"
>
...
@@ -53,12 +53,6 @@
...
@@ -53,12 +53,6 @@
<div
v-if=
"record.product_status == eProductStatus.unpublished"
>
<div
v-if=
"record.product_status == eProductStatus.unpublished"
>
<a
@
click=
"toAdd(record)"
>
上架
</a>
<a
@
click=
"toAdd(record)"
>
上架
</a>
<a-divider
type=
"vertical"
/>
<a-divider
type=
"vertical"
/>
<a
@
click=
"toDelete(record)"
>
删除
</a>
</div>
<!-- 上架状态 -->
<div
v-else
>
<a
@
click=
"toRemove(record)"
>
下架
</a>
<a-divider
type=
"vertical"
/>
<a
<a
@
click=
"
@
click=
"
$router.push({
$router.push({
...
@@ -69,6 +63,12 @@
...
@@ -69,6 +63,12 @@
>
编辑
</a
>
编辑
</a
>
>
<a-divider
type=
"vertical"
/>
<a-divider
type=
"vertical"
/>
<a
@
click=
"toDelete(record)"
>
删除
</a>
</div>
<!-- 上架状态 -->
<div
v-else
>
<a
@
click=
"toRemove(record)"
>
下架
</a>
<a-divider
type=
"vertical"
/>
<a
<a
v-if=
"record.product_status == eProductStatus.normal"
v-if=
"record.product_status == eProductStatus.normal"
@
click=
"setAsHot(record)"
@
click=
"setAsHot(record)"
...
...
src/components/productManage/topbar.vue
View file @
26dba2cd
...
@@ -12,13 +12,14 @@
...
@@ -12,13 +12,14 @@
:startTime=
"searchPageReqParams.startTime"
:startTime=
"searchPageReqParams.startTime"
:endTime=
"searchPageReqParams.endTime"
:endTime=
"searchPageReqParams.endTime"
/>
/>
<span
class=
"mr-3"
>
消息
分类
</span>
<span
class=
"mr-3"
>
产品
分类
</span>
<a-select
<a-select
:default-value=
"productType[0]"
:default-value=
"productType[0]"
style=
"width: 120px; margin-right: 10px"
style=
"width: 120px; margin-right: 10px"
v-model=
"searchPageReqParams.type"
v-model=
"searchPageReqParams.type"
@
change=
"handleChange"
>
>
<a-select-option
v-for=
"(type, i) in productType"
:key=
"i"
>
<a-select-option
v-for=
"(type, i) in productType"
:key=
"i"
:value=
"i"
>
{{
type
}}
{{
type
}}
</a-select-option>
</a-select-option>
</a-select>
</a-select>
...
@@ -64,7 +65,7 @@ export default Vue.extend({
...
@@ -64,7 +65,7 @@ export default Vue.extend({
return
{
return
{
searchPageReqParams
:
{
searchPageReqParams
:
{
name
:
""
,
name
:
""
,
type
:
""
,
type
:
0
,
startTime
:
undefined
as
undefined
|
number
,
startTime
:
undefined
as
undefined
|
number
,
endTime
:
undefined
as
undefined
|
number
,
endTime
:
undefined
as
undefined
|
number
,
offset
:
0
,
offset
:
0
,
...
@@ -86,6 +87,9 @@ export default Vue.extend({
...
@@ -86,6 +87,9 @@ export default Vue.extend({
},
},
},
},
methods
:
{
methods
:
{
handleChange
(
val
:
any
){
this
.
searchPageReqParams
.
type
=
val
},
...
mapMutations
(
'loanProductManagement'
,
{
...
mapMutations
(
'loanProductManagement'
,
{
productSave
:
'save'
,
productSave
:
'save'
,
}),
}),
...
@@ -104,7 +108,7 @@ export default Vue.extend({
...
@@ -104,7 +108,7 @@ export default Vue.extend({
},
},
reset
()
{
reset
()
{
this
.
searchPageReqParams
.
name
=
""
;
this
.
searchPageReqParams
.
name
=
""
;
this
.
searchPageReqParams
.
type
=
""
;
this
.
searchPageReqParams
.
type
=
0
;
this
.
searchPageReqParams
.
startTime
=
undefined
;
this
.
searchPageReqParams
.
startTime
=
undefined
;
this
.
searchPageReqParams
.
endTime
=
undefined
;
this
.
searchPageReqParams
.
endTime
=
undefined
;
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
...
...
src/const/columns/productColumn.ts
View file @
26dba2cd
...
@@ -13,8 +13,8 @@ export default[
...
@@ -13,8 +13,8 @@ export default[
{
{
title
:
'产品分类'
,
title
:
'产品分类'
,
align
:
'center'
,
align
:
'center'
,
dataIndex
:
'
product
_type'
,
dataIndex
:
'
loan
_type'
,
scopedSlots
:
{
customRender
:
'
product
_type'
},
scopedSlots
:
{
customRender
:
'
loan
_type'
},
},
},
{
{
title
:
'贷款期限(月)'
,
title
:
'贷款期限(月)'
,
...
...
src/const/columns/userManagerCol.ts
View file @
26dba2cd
...
@@ -5,21 +5,8 @@ const columns:Array<column> =
...
@@ -5,21 +5,8 @@ const columns:Array<column> =
{
{
title
:
'创建日期'
,
title
:
'创建日期'
,
align
:
'center'
,
align
:
'center'
,
dataIndex
:
'time'
,
dataIndex
:
'created_at'
,
role
:[
scopedSlots
:
{
customRender
:
'created_at'
},
eRole
.
superManager
,
eRole
.
firstLevel_branch
,
eRole
.
secondary_branch
,
eRole
.
firstLevel_sub_branch
,
eRole
.
firstLevel_sub_clientManager
,
eRole
.
secondary_sub_branch
,
eRole
.
secondary_sub_clientManager
,
]
},
{
title
:
'uid'
,
align
:
'center'
,
dataIndex
:
'key'
,
role
:[
role
:[
eRole
.
superManager
,
eRole
.
superManager
,
eRole
.
firstLevel_branch
,
eRole
.
firstLevel_branch
,
...
@@ -30,10 +17,24 @@ const columns:Array<column> =
...
@@ -30,10 +17,24 @@ const columns:Array<column> =
eRole
.
secondary_sub_clientManager
,
eRole
.
secondary_sub_clientManager
,
]
]
},
},
// {
// title:'uid',
// align:'center',
// dataIndex:'uuid',
// role:[
// eRole.superManager,
// eRole.firstLevel_branch,
// eRole.secondary_branch,
// eRole.firstLevel_sub_branch,
// eRole.firstLevel_sub_clientManager,
// eRole.secondary_sub_branch,
// eRole.secondary_sub_clientManager,
// ]
// },
{
{
title
:
'姓名'
,
title
:
'姓名'
,
align
:
'center'
,
align
:
'center'
,
dataIndex
:
'name'
,
dataIndex
:
'
user_
name'
,
role
:[
role
:[
eRole
.
superManager
,
eRole
.
superManager
,
eRole
.
firstLevel_branch
,
eRole
.
firstLevel_branch
,
...
@@ -61,7 +62,7 @@ const columns:Array<column> =
...
@@ -61,7 +62,7 @@ const columns:Array<column> =
{
{
title
:
'手机号'
,
title
:
'手机号'
,
align
:
'center'
,
align
:
'center'
,
dataIndex
:
'
account
'
,
dataIndex
:
'
phone
'
,
role
:[
role
:[
eRole
.
superManager
,
eRole
.
superManager
,
eRole
.
firstLevel_branch
,
eRole
.
firstLevel_branch
,
...
@@ -75,7 +76,8 @@ const columns:Array<column> =
...
@@ -75,7 +76,8 @@ const columns:Array<column> =
{
{
title
:
'所在机构层级'
,
title
:
'所在机构层级'
,
align
:
'center'
,
align
:
'center'
,
dataIndex
:
'bank'
,
dataIndex
:
'level'
,
scopedSlots
:
{
customRender
:
'level'
},
role
:[
role
:[
eRole
.
superManager
,
eRole
.
superManager
,
eRole
.
firstLevel_branch
,
eRole
.
firstLevel_branch
,
...
@@ -89,7 +91,7 @@ const columns:Array<column> =
...
@@ -89,7 +91,7 @@ const columns:Array<column> =
{
{
title
:
'所属二级支行'
,
title
:
'所属二级支行'
,
align
:
'center'
,
align
:
'center'
,
dataIndex
:
'second
ary
_sub_branch'
,
dataIndex
:
'second_sub_branch'
,
role
:[
role
:[
eRole
.
secondary_sub_branch
,
eRole
.
secondary_sub_branch
,
eRole
.
secondary_sub_clientManager
,
eRole
.
secondary_sub_clientManager
,
...
@@ -98,7 +100,7 @@ const columns:Array<column> =
...
@@ -98,7 +100,7 @@ const columns:Array<column> =
{
{
title
:
'所属一级支行'
,
title
:
'所属一级支行'
,
align
:
'center'
,
align
:
'center'
,
dataIndex
:
'first
Level
_sub_branch'
,
dataIndex
:
'first_sub_branch'
,
role
:[
role
:[
eRole
.
firstLevel_sub_branch
,
eRole
.
firstLevel_sub_branch
,
eRole
.
secondary_sub_branch
,
eRole
.
secondary_sub_branch
,
...
@@ -109,7 +111,7 @@ const columns:Array<column> =
...
@@ -109,7 +111,7 @@ const columns:Array<column> =
{
{
title
:
'所属二级分行'
,
title
:
'所属二级分行'
,
align
:
'center'
,
align
:
'center'
,
dataIndex
:
'second
ary
_branch'
,
dataIndex
:
'second_branch'
,
role
:[
role
:[
eRole
.
secondary_branch
,
eRole
.
secondary_branch
,
eRole
.
firstLevel_sub_branch
,
eRole
.
firstLevel_sub_branch
,
...
@@ -121,7 +123,7 @@ const columns:Array<column> =
...
@@ -121,7 +123,7 @@ const columns:Array<column> =
{
{
title
:
'所属一级分行'
,
title
:
'所属一级分行'
,
align
:
'center'
,
align
:
'center'
,
dataIndex
:
'first
Level
_branch'
,
dataIndex
:
'first_branch'
,
role
:[
role
:[
eRole
.
firstLevel_branch
,
eRole
.
firstLevel_branch
,
eRole
.
secondary_branch
,
eRole
.
secondary_branch
,
...
@@ -212,7 +214,7 @@ const columns:Array<column> =
...
@@ -212,7 +214,7 @@ const columns:Array<column> =
{
{
title
:
'操作uid'
,
title
:
'操作uid'
,
align
:
'center'
,
align
:
'center'
,
dataIndex
:
'
actionUid
'
,
dataIndex
:
'
operator_name
'
,
role
:[
role
:[
eRole
.
superManager
,
eRole
.
superManager
,
eRole
.
firstLevel_branch
,
eRole
.
firstLevel_branch
,
...
@@ -226,7 +228,8 @@ const columns:Array<column> =
...
@@ -226,7 +228,8 @@ const columns:Array<column> =
{
{
title
:
'状态'
,
title
:
'状态'
,
align
:
'center'
,
align
:
'center'
,
dataIndex
:
'state'
,
dataIndex
:
'status'
,
scopedSlots
:
{
customRender
:
'status'
},
role
:[
role
:[
eRole
.
superManager
,
eRole
.
superManager
,
eRole
.
firstLevel_branch
,
eRole
.
firstLevel_branch
,
...
...
src/filter/index.ts
View file @
26dba2cd
...
@@ -4,6 +4,7 @@ import { editableProductStatus,eGuaranteeType,eProductType} from '@/types/loanPr
...
@@ -4,6 +4,7 @@ import { editableProductStatus,eGuaranteeType,eProductType} from '@/types/loanPr
// import { activityStatus } from "@/service/ActivityService/type"
// import { activityStatus } from "@/service/ActivityService/type"
import
moment
from
'moment'
import
moment
from
'moment'
import
{
activityStatus
}
from
'@/service/ActivityService/type'
import
{
activityStatus
}
from
'@/service/ActivityService/type'
import
{
eLevel
}
from
'@/types/level'
export
default
{
export
default
{
formatDate
(
timeStamp
:
number
)
{
formatDate
(
timeStamp
:
number
)
{
...
@@ -96,6 +97,20 @@ export default {
...
@@ -96,6 +97,20 @@ export default {
return
'已发布'
return
'已发布'
}
}
},
},
filterLevel
(
level
:
eLevel
)
{
switch
(
level
)
{
case
eLevel
.
firstLevel_branch
:
return
'一级分行'
case
eLevel
.
firstLevel_sub_branch
:
return
'一级支行'
case
eLevel
.
secondary_branch
:
return
'二级分行'
case
eLevel
.
secondary_sub_branch
:
return
'二级支行'
default
:
return
false
}
},
filterWorkDay
(
weekend_status
:
number
){
filterWorkDay
(
weekend_status
:
number
){
const
silly
=
'周一至周五'
const
silly
=
'周一至周五'
if
(
weekend_status
===
0
){
if
(
weekend_status
===
0
){
...
@@ -107,7 +122,7 @@ export default {
...
@@ -107,7 +122,7 @@ export default {
}
else
if
(
weekend_status
===
3
){
}
else
if
(
weekend_status
===
3
){
return
'周一至周日'
return
'周一至周日'
}
}
}
}
,
}
as
{
}
as
{
[
key
:
string
]:
(...
args
:
any
)
=>
any
[
key
:
string
]:
(...
args
:
any
)
=>
any
}
}
src/service/LoanProductService/index.ts
View file @
26dba2cd
...
@@ -89,7 +89,7 @@ export default class LoanProductService {
...
@@ -89,7 +89,7 @@ export default class LoanProductService {
items
:
iLoanProdcutItem
[]
items
:
iLoanProdcutItem
[]
total
:
number
total
:
number
}
>
({
}
>
({
url
:
prefix
+
'
/list'
,
url
:
'/loan/query/direct
/list'
,
method
:
'POST'
,
method
:
'POST'
,
data
,
data
,
})
})
...
...
src/service/StaffService/index.ts
View file @
26dba2cd
...
@@ -12,26 +12,54 @@ export default class StaffService {
...
@@ -12,26 +12,54 @@ export default class StaffService {
return
StaffService
.
instance
return
StaffService
.
instance
}
}
modifyStaffStatus
(
data
:
{
status
:
eUserStatusAction
;
uuid
:
string
})
{
addAcm
(
data
:
{
return
baseAxios
({
attr
:
{
url
:
'/staff/modifyStatus'
,
add_same_level
:
boolean
method
:
'PUT'
,
},
data
,
level
:
number
,
name
:
string
,
password
:
string
,
phone
:
string
,
second_sub_branch
:
number
})
{
return
baseAxios
<
{
data
:
any
}
>
({
url
:
'/staff/add/acm'
,
method
:
'post'
,
data
})
})
}
}
deleteStaff
(
uuid
:
string
)
{
addNextLevel
(
data
:
{
return
baseAxios
({
attr
:
{
url
:
'/staff/'
+
uuid
,
add_same_level
:
boolean
method
:
'delete'
,
},
level
:
number
,
name
:
string
,
password
:
string
,
phone
:
string
,
second_sub_branch
:
number
})
{
return
baseAxios
<
{
data
:
any
}
>
({
url
:
'/staff/add/next_level'
,
method
:
'post'
,
data
})
})
}
}
import
(
data
:
{
staffs
:
iStaffItem
[]
})
{
addSameLevel
(
data
:
{
return
baseAxios
({
attr
:
{
url
:
'/staff/import'
,
add_same_level
:
boolean
},
level
:
number
,
name
:
string
,
password
:
string
,
phone
:
string
,
second_sub_branch
:
number
})
{
return
baseAxios
<
{
data
:
any
}
>
({
url
:
'/staff/add/same_level'
,
method
:
'post'
,
method
:
'post'
,
data
,
data
})
})
}
}
...
@@ -47,6 +75,35 @@ export default class StaffService {
...
@@ -47,6 +75,35 @@ export default class StaffService {
params
:
data
,
params
:
data
,
})
})
}
}
deploy
(
data
:
{
level
:
number
,
second_sub_branch
:
number
,
uuid
:
string
})
{
return
baseAxios
<
{
data
:
any
}
>
({
url
:
'/staff/deploy'
,
method
:
'put'
,
data
:
data
})
}
import
(
data
:
{
staffs
:
iStaffItem
[]
})
{
return
baseAxios
({
url
:
'/staff/import'
,
method
:
'post'
,
data
,
})
}
modifyStaffStatus
(
data
:
{
status
:
eUserStatusAction
;
uuid
:
string
})
{
return
baseAxios
({
url
:
'/staff/modifyStatus'
,
method
:
'PUT'
,
data
,
})
}
getSelfOutLet
()
{
getSelfOutLet
()
{
return
baseAxios
<
iOutLet
>
({
return
baseAxios
<
iOutLet
>
({
url
:
'/staff/outlet'
,
url
:
'/staff/outlet'
,
...
@@ -54,4 +111,83 @@ export default class StaffService {
...
@@ -54,4 +111,83 @@ export default class StaffService {
})
})
}
}
queryStaff
(
data
:
{
end
?:
number
,
first_branch
?:
number
,
first_sub_branch
?:
number
,
level
?:
number
,
location
?:
string
,
page
?:
number
,
page_size
?:
number
,
phone
?:
string
,
second_branch
?:
number
,
second_sub_branch
?:
number
,
start
?:
number
,
user_name
?:
string
})
{
return
baseAxios
({
url
:
'/staff/query'
,
method
:
'get'
,
params
:
data
})
}
remarkStaff
(
data
:
{
remark
:
string
,
uuid
:
string
})
{
return
baseAxios
({
url
:
'/staff/remark/user'
,
method
:
'put'
,
params
:
data
})
}
getUserList
(
data
:
{
page
:
number
,
page_size
:
number
})
{
return
baseAxios
({
url
:
'/staff/self/users'
,
method
:
'get'
,
params
:
data
})
}
getNextLevel
(
data
:
{
uuid
:
string
,
role
:
string
})
{
return
baseAxios
({
url
:
'/staff/next_level'
,
method
:
'get'
,
params
:
data
})
}
getStaffList
(
data
:
{
page
:
number
,
page_size
:
number
,
uuid
:
string
})
{
return
baseAxios
({
url
:
'/staff/query/users'
,
method
:
'get'
,
params
:
data
})
}
deleteStaff
(
uuid
:
string
)
{
return
baseAxios
({
url
:
'/staff/'
+
uuid
,
method
:
'delete'
,
})
}
getBankList
()
{
}
}
}
src/store/LoanProductManagement/index.ts
View file @
26dba2cd
...
@@ -30,7 +30,7 @@ export default <Module<iProductModuleState, {}>>{
...
@@ -30,7 +30,7 @@ export default <Module<iProductModuleState, {}>>{
const
ret
=
await
LoanProductService
.
getInstance
().
queryDirectLoanReq
({
const
ret
=
await
LoanProductService
.
getInstance
().
queryDirectLoanReq
({
end_time
:
state
.
end_time
as
number
,
end_time
:
state
.
end_time
as
number
,
limit
:
state
.
limit
,
limit
:
state
.
limit
,
loan_type
:
0
,
loan_type
:
state
.
loan_type
,
offset
:
state
.
offset
as
number
,
offset
:
state
.
offset
as
number
,
product_status
:
0
,
product_status
:
0
,
start_time
:
state
.
start_time
as
number
,
start_time
:
state
.
start_time
as
number
,
...
...
src/store/UserManagement/index.ts
0 → 100644
View file @
26dba2cd
import
{
eLevel
}
from
'@/types/level'
import
{
Module
}
from
'vuex'
import
{
eAddManagerModalMode
,
eTypeOfOperatedObject
,
iUserManagementState
,
}
from
'./types'
export
default
<
Module
<
iUserManagementState
,
{}
>>
{
namespaced
:
true
,
state
:
{
refreshMark
:
NaN
,
modalShow
:
false
,
modalMode
:
eAddManagerModalMode
.
create
,
typeOfOperatedObject
:
eTypeOfOperatedObject
.
manager
,
searchLevel
:
eLevel
.
secondary_branch
,
branchDetailMsg
:
{
// fb: 'zhejiang',
// fb_id: 1,
// sb: 'hz',
// sb_id: 1,
},
personalMsg
:
{
name
:
''
,
uid
:
''
,
phone
:
''
,
branchDetailMsg
:
{},
address
:
''
,
},
address
:
''
,
},
mutations
:
{
save
(
state
,
payload
)
{
Object
.
assign
(
state
,
payload
)
},
},
actions
:
{},
}
src/store/UserManagement/types.ts
0 → 100644
View file @
26dba2cd
import
{
eLevel
}
from
'@/types/level'
export
enum
eAddManagerModalMode
{
edit
,
create
,
}
export
enum
eTypeOfOperatedObject
{
manager
,
clientManager
,
}
export
interface
iBranchDetailMsg
{
fb
:
string
sb
:
string
fsb
:
string
ssb
:
string
fb_id
:
number
sb_id
:
number
fsb_id
:
number
ssb_id
:
number
}
export
interface
iPersonalMsg
{
name
:
string
uid
:
any
phone
:
string
branchDetailMsg
:
Partial
<
Omit
<
iBranchDetailMsg
,
'fb_id'
|
'sb_id'
|
'fsb_id'
|
'ssb_id'
>
>
address
:
string
}
export
interface
iUserManagementState
{
modalShow
:
boolean
modalMode
:
eAddManagerModalMode
/* 模态框的形态 */
typeOfOperatedObject
:
eTypeOfOperatedObject
|
undefined
searchLevel
:
eLevel
|
undefined
/* 当前搜索的层级 */
branchDetailMsg
:
Partial
<
iBranchDetailMsg
>
/* 分支行搜索页面所选中的信息需要设在此处 */
personalMsg
:
iPersonalMsg
/* 调配人员时 该人员的个人信息 */
address
:
string
/* 新地址 */
refreshMark
:
number
/* 供表格刷新的标记,组件监听refreshMark,若变化,则刷新表格 */
}
src/store/index.ts
View file @
26dba2cd
...
@@ -4,19 +4,22 @@ import platformUserManagement from './platformUserManagement/index'
...
@@ -4,19 +4,22 @@ import platformUserManagement from './platformUserManagement/index'
import
{
iPlatformModuleState
}
from
'./platformUserManagement/types'
import
{
iPlatformModuleState
}
from
'./platformUserManagement/types'
import
loanProductManagement
from
'./LoanProductManagement/index'
import
loanProductManagement
from
'./LoanProductManagement/index'
import
{
iProductModuleState
}
from
'./LoanProductManagement/type'
import
{
iProductModuleState
}
from
'./LoanProductManagement/type'
import
UserManagement
from
'./UserManagement/index'
Vue
.
use
(
Vuex
)
Vue
.
use
(
Vuex
)
const
store
=
new
Vuex
.
Store
<
{
platformUserManagement
?:
iPlatformModuleState
,
loanProductManagement
?:
iProductModuleState
}
>
(
const
store
=
new
Vuex
.
Store
<
{
{
platformUserManagement
?:
iPlatformModuleState
loanProductManagement
?:
iProductModuleState
}
>
({
state
:
{},
state
:
{},
mutations
:
{},
mutations
:
{},
actions
:
{},
actions
:
{},
modules
:
{
modules
:
{
platformUserManagement
,
platformUserManagement
,
loanProductManagement
,
loanProductManagement
,
UserManagement
,
},
},
},
})
)
export
default
store
export
default
store
src/store/platformUserManagement/index.ts
View file @
26dba2cd
import
{
PAGE_SIZE
}
from
'@/const/config/page'
import
{
PAGE_SIZE
}
from
'@/const/config/page'
import
UserService
from
'@/service/UserManagementService'
import
UserService
from
'@/service/UserManagementService'
import
StaffService
from
'@/service/StaffService'
import
{
Module
}
from
'vuex'
import
{
Module
}
from
'vuex'
import
{
iListItem
,
iPlatformModuleState
}
from
'./types'
import
{
iListItem
,
iPlatformModuleState
}
from
'./types'
...
@@ -21,6 +22,8 @@ export default <Module<iPlatformModuleState, {}>>{
...
@@ -21,6 +22,8 @@ export default <Module<iPlatformModuleState, {}>>{
userName
:
''
,
userName
:
''
,
total
:
0
,
total
:
0
,
loading
:
false
,
loading
:
false
,
uuid
:
''
,
role
:
''
},
},
mutations
:
{
mutations
:
{
save
(
state
,
payload
)
{
save
(
state
,
payload
)
{
...
@@ -46,5 +49,46 @@ export default <Module<iPlatformModuleState, {}>>{
...
@@ -46,5 +49,46 @@ export default <Module<iPlatformModuleState, {}>>{
state
.
loading
=
false
state
.
loading
=
false
}
}
},
},
async
queryUser
({
state
,
commit
},
payload
)
{
state
.
loading
=
true
console
.
log
(
state
)
StaffService
.
getInstance
().
queryStaff
({
end
:
state
.
end
,
first_branch
:
state
.
firstBranch
,
first_sub_branch
:
state
.
firstSubBranch
,
location
:
state
.
location
,
page
:
state
.
page
,
page_size
:
state
.
page_size
,
phone
:
state
.
phone
,
second_branch
:
state
.
secondBranch
,
second_sub_branch
:
state
.
secondSubBranch
,
start
:
state
.
start
,
user_name
:
state
.
userName
,
level
:
state
.
level
}).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
commit
(
'save'
,
{
list
:
res
.
data
.
item
,
total
:
res
.
data
.
total
})
}
state
.
loading
=
false
})
},
async
queryNext
({
state
,
commit
},
payload
)
{
state
.
loading
=
true
StaffService
.
getInstance
().
getNextLevel
({
uuid
:
state
.
uuid
,
role
:
state
.
role
}).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
commit
(
'save'
,
{
list
:
res
.
data
.
item
,
total
:
res
.
data
.
total
})
}
state
.
loading
=
false
})
}
},
},
}
}
src/store/platformUserManagement/types.ts
View file @
26dba2cd
...
@@ -31,5 +31,7 @@ export interface iPlatformModuleState {
...
@@ -31,5 +31,7 @@ export interface iPlatformModuleState {
start
:
number
|
undefined
start
:
number
|
undefined
userName
:
string
,
userName
:
string
,
total
:
number
total
:
number
loading
:
boolean
loading
:
boolean
,
uuid
:
string
,
role
:
string
}
}
src/types/staff.ts
View file @
26dba2cd
import
{
eRole
}
from
"./role"
;
import
{
eLevel
}
from
"./level"
;
import
{
eNewRoleRelatedToBackEnd
,
eRole
}
from
"./role"
;
import
{
eUserStatus
}
from
"./user"
;
enum
bank
{
enum
bank
{
'一级分行'
,
'一级分行'
,
...
@@ -34,6 +36,24 @@ interface staff{
...
@@ -34,6 +36,24 @@ interface staff{
state
:
string
state
:
string
}
}
export
interface
iStaffQueryResItem
{
bank_name
:
string
created_at
:
number
first_branch
:
string
first_sub_branch
:
string
level
:
eLevel
location
:
string
operator_name
:
string
operator_uuid
:
string
phone
:
string
role
:
eNewRoleRelatedToBackEnd
second_branch
:
string
second_sub_branch
:
string
status
:
eUserStatus
user_name
:
string
uuid
:
string
}
export
{
export
{
bank
,
bank
,
role
,
role
,
...
...
src/views/Root/OutletManagement/components/HeaderSelect/const.ts
View file @
26dba2cd
...
@@ -18,7 +18,7 @@ export const fooList = [
...
@@ -18,7 +18,7 @@ export const fooList = [
value
:
undefined
as
number
|
undefined
,
value
:
undefined
as
number
|
undefined
,
},
},
{
{
placeholder
:
'请选择
一
级支行'
,
placeholder
:
'请选择
二
级支行'
,
options
:
[]
as
{
ID
:
number
;
Name
:
string
}[],
options
:
[]
as
{
ID
:
number
;
Name
:
string
}[],
disable
:
false
,
disable
:
false
,
value
:
undefined
as
number
|
undefined
,
value
:
undefined
as
number
|
undefined
,
...
...
src/views/Root/OutletManagement/index.vue
View file @
26dba2cd
<
template
>
<
template
>
<div>
<div>
<!--
<input
type=
"file"
@
input=
"handleInput"
/>
-->
<div
v-if=
"showbranchFilter"
>
<div
v-if=
"showbranchFilter"
>
<p
class=
"text-2xl font-bold mb-5"
>
网点管理
</p>
<p
class=
"text-2xl font-bold mb-5"
>
网点管理
</p>
<div>
<div>
...
@@ -406,13 +407,25 @@ export default Vue.extend({
...
@@ -406,13 +407,25 @@ export default Vue.extend({
}
}
},
},
methods
:
{
methods
:
{
async
handleInput
(
e
:
Event
)
{
const
ret
=
await
handle
建设银行
excelFileChange
(
e
);
StaffService
.
getInstance
().
import
({
staffs
:
ret
as
any
,
});
},
getLalo
()
{
getLalo
()
{
if
(
"geolocation"
in
window
.
navigator
)
{
window
.
navigator
.
geolocation
.
getCurrentPosition
((
position
)
=>
{
window
.
navigator
.
geolocation
.
getCurrentPosition
((
position
)
=>
{
this
.
formData
.
la
=
position
.
coords
.
latitude
.
toString
();
this
.
formData
.
la
=
position
.
coords
.
latitude
.
toString
();
this
.
formData
.
lo
=
position
.
coords
.
longitude
.
toString
();
this
.
formData
.
lo
=
position
.
coords
.
longitude
.
toString
();
const
form
=
this
.
$refs
.
form
as
FormModel
;
const
form
=
this
.
$refs
.
form
as
FormModel
;
form
.
validateField
([
"la"
,
"lo"
],
(
err
)
=>
{});
form
.
validateField
([
"la"
,
"lo"
],
(
err
)
=>
{});
},
(
error
)
=>
{
message
.
error
(
'获取失败'
)
});
});
}
else
{
message
.
error
(
"浏览器不支持获取GPS"
)
}
},
},
async
clickViewNote
(
record
:
any
)
{
async
clickViewNote
(
record
:
any
)
{
console
.
log
(
record
);
console
.
log
(
record
);
...
...
src/views/Root/Product/Loan/publish.vue
View file @
26dba2cd
...
@@ -60,11 +60,11 @@
...
@@ -60,11 +60,11 @@
</a-form-model-item>
</a-form-model-item>
<a-form-model-item
label=
"担保方式"
:wrapper-col=
"
{ span: 5 }">
<a-form-model-item
label=
"担保方式"
:wrapper-col=
"
{ span: 5 }">
<a-select
<a-select
:default-value=
"guaranteeType[0]"
style=
"width: 120px; margin-right: 10px"
style=
"width: 120px; margin-right: 10px"
@
change=
"changeGuarantee"
@
change=
"changeGuarantee"
v-model=
"form.guarantee"
>
>
<a-select-option
v-for=
"(type,
i) in guaranteeType"
:key=
"i
"
>
<a-select-option
v-for=
"(type,
i) in guaranteeType"
:key=
"type"
:value=
"i+1
"
>
{{
type
}}
{{
type
}}
</a-select-option>
</a-select-option>
</a-select>
</a-select>
...
...
src/views/Root/User/Mixin/index.ts
0 → 100644
View file @
26dba2cd
import
Vue
,
{
PropType
}
from
"vue"
import
StaffService
from
'@/service/StaffService/index'
import
{
eLevel
}
from
"@/types/level"
import
{
mapActions
,
mapMutations
,
mapState
}
from
'vuex'
const
staff
=
new
StaffService
()
export
default
Vue
.
extend
({
data
()
{
return
{
}
},
methods
:
{
...
mapMutations
(
'platformUserManagement'
,
{
platformSave
:
'save'
,
}),
...
mapActions
(
'platformUserManagement'
,
{
platformQuery
:
'queryUser'
,
}),
// getLevel(s: string) {
// switch(s) {
// case '1':
// return eLevel.firstLevel_branch
// case '2':
// return eLevel.secondary_branch
// case '3':
// return eLevel.firstLevel_sub_branch
// default:
// return eLevel.secondary_sub_branch
// }
// },
getLists
(
params
:
any
)
{
// const keys = JSON.parse(this.$route.query.rankVal as string)
// const level = keys.length + ''
// const _level = this.getLevel(level)
this
.
platformSave
({
...
params
})
this
.
platformQuery
()
}
},
created
()
{
const
keys
=
JSON
.
parse
(
this
.
$route
.
query
.
rankVal
as
string
)
const
level
=
this
.
$route
.
query
.
level
const
params
=
{
firstBranch
:
+
keys
[
0
]
||
undefined
,
firstSubBranch
:
+
keys
[
2
]
||
undefined
,
secondBranch
:
+
keys
[
1
]
||
undefined
,
secondSubBranch
:
+
keys
[
3
]
||
undefined
,
level
}
this
.
getLists
(
params
)
}
})
\ No newline at end of file
src/views/Root/User/client.vue
View file @
26dba2cd
...
@@ -5,8 +5,8 @@
...
@@ -5,8 +5,8 @@
<span
class=
" font-semibold"
>
注册时间:
</span>
<span
class=
" font-semibold"
>
注册时间:
</span>
<timerange
class=
" mr-3"
<timerange
class=
" mr-3"
@
getNewTime=
"getNewTime"
/>
@
getNewTime=
"getNewTime"
/>
<a-input
placeholder=
"姓名模糊搜索"
v-model=
"queryParam.
queryN
ame"
style=
" width:150px; margin-right:10px;"
/>
<a-input
placeholder=
"姓名模糊搜索"
v-model=
"queryParam.
user_n
ame"
style=
" width:150px; margin-right:10px;"
/>
<a-input
placeholder=
"手机号模糊搜索"
v-model=
"queryParam.
queryTel
"
style=
" width:150px; margin-right:10px;"
/>
<a-input
placeholder=
"手机号模糊搜索"
v-model=
"queryParam.
phone
"
style=
" width:150px; margin-right:10px;"
/>
<a-button
type=
"primary"
style=
" margin-right:10px;"
@
click=
"query"
>
查询
</a-button>
<a-button
type=
"primary"
style=
" margin-right:10px;"
@
click=
"query"
>
查询
</a-button>
<a-button
type=
"primary"
@
click=
"reset"
>
重置
</a-button>
<a-button
type=
"primary"
@
click=
"reset"
>
重置
</a-button>
<!-- 查看弹窗 -->
<!-- 查看弹窗 -->
...
@@ -44,7 +44,13 @@
...
@@ -44,7 +44,13 @@
</a-form-model>
</a-form-model>
</a-modal>
</a-modal>
<!-- 客户信息列表 -->
<!-- 客户信息列表 -->
<a-table
:columns=
"columns"
:data-source=
"userList"
style=
" text-align: center; margin-top:40px;"
bordered
>
<a-table
:columns=
"columns"
:data-source=
"userList"
style=
" text-align: center; margin-top:40px;"
bordered
:pagination=
"pagination"
@
change=
"changePage"
>
<div
slot=
"note"
slot-scope=
"text"
>
<div
slot=
"note"
slot-scope=
"text"
>
<a
@
click=
"check(text)"
>
查看
</a>
<a
@
click=
"check(text)"
>
查看
</a>
</div>
</div>
...
@@ -61,13 +67,16 @@ import { userList } from '@/mock/index'
...
@@ -61,13 +67,16 @@ import { userList } from '@/mock/index'
import
{
user
}
from
'@/types/user'
import
{
user
}
from
'@/types/user'
import
{
columns
}
from
'@/const/columns/userColumns'
import
{
columns
}
from
'@/const/columns/userColumns'
import
timerange
from
'@/components/TimePicker/index.vue'
import
timerange
from
'@/components/TimePicker/index.vue'
import
StaffService
from
'@/service/StaffService/index'
const
staff
=
new
StaffService
()
export
default
Vue
.
extend
({
export
default
Vue
.
extend
({
components
:{
timerange
},
components
:{
timerange
},
computed
:
{
computed
:
{
userList
():
Array
<
user
>
{
//
userList():Array
<
user
>
{
return
userList
//
return userList
},
//
},
columns
(){
columns
(){
return
columns
return
columns
}
}
...
@@ -78,11 +87,12 @@ export default Vue.extend({
...
@@ -78,11 +87,12 @@ export default Vue.extend({
notes
:
''
notes
:
''
},
},
queryParam
:{
queryParam
:{
start
Time
:
undefined
as
undefined
|
number
,
start
:
undefined
as
undefined
|
number
,
end
Time
:
undefined
as
undefined
|
number
,
end
:
undefined
as
undefined
|
number
,
queryName
:
''
,
user_name
:
''
as
undefined
|
string
,
queryTel
:
''
,
phone
:
''
as
undefined
|
string
,
},
},
userList
:
[]
as
Array
<
user
>
,
visible
:
false
,
visible
:
false
,
show
:
false
,
show
:
false
,
labelCol
:
{
span
:
10
},
labelCol
:
{
span
:
10
},
...
@@ -90,22 +100,62 @@ export default Vue.extend({
...
@@ -90,22 +100,62 @@ export default Vue.extend({
rules
:{
rules
:{
notes
:
[{
required
:
true
,
message
:
'请输入备注内容'
,
trigger
:
'blur'
}],
notes
:
[{
required
:
true
,
message
:
'请输入备注内容'
,
trigger
:
'blur'
}],
},
},
note
:{}
note
:{},
pagination
:
{
current
:
1
,
defaultPageSize
:
10
,
total
:
0
}
}
}
},
},
created
()
{
this
.
getList
()
},
methods
:{
methods
:{
getList
()
{
const
uuid
=
this
.
$route
.
query
.
uuid
as
string
if
(
uuid
)
{
staff
.
getStaffList
({
uuid
:
uuid
,
page
:
this
.
pagination
.
current
,
page_size
:
this
.
pagination
.
defaultPageSize
}).
then
(
res
=>
{
this
.
userList
=
res
.
data
.
item
this
.
pagination
.
total
=
res
.
data
.
total
})
}
else
{
staff
.
getUserList
({
page
:
this
.
pagination
.
current
,
page_size
:
this
.
pagination
.
defaultPageSize
}).
then
(
res
=>
{
this
.
userList
=
res
.
data
.
item
this
.
pagination
.
total
=
res
.
data
.
total
})
}
},
changePage
(
v
:
{
current
:
number
})
{
this
.
pagination
.
current
=
v
.
current
this
.
getList
()
},
getNewTime
(
startTime
:
number
,
endTime
:
number
){
getNewTime
(
startTime
:
number
,
endTime
:
number
){
this
.
queryParam
.
start
Time
=
startTime
this
.
queryParam
.
start
=
startTime
this
.
queryParam
.
end
Time
=
endTime
this
.
queryParam
.
end
=
endTime
},
},
query
(){
query
(){
console
.
log
(
this
.
queryParam
)
console
.
log
(
this
.
queryParam
)
staff
.
queryStaff
({
...
this
.
queryParam
}).
then
(
res
=>
{
console
.
log
(
res
)
this
.
userList
=
res
.
data
.
item
this
.
pagination
.
total
=
res
.
data
.
total
})
},
},
reset
(){
reset
(){
this
.
queryParam
.
start
Time
=
undefined
this
.
queryParam
.
start
=
undefined
this
.
queryParam
.
end
Time
=
undefined
this
.
queryParam
.
end
=
undefined
this
.
queryParam
.
queryN
ame
=
''
this
.
queryParam
.
user_n
ame
=
''
this
.
queryParam
.
queryTel
=
''
this
.
queryParam
.
phone
=
''
},
},
check
(
text
:
user
){
check
(
text
:
user
){
this
.
visible
=
true
this
.
visible
=
true
...
@@ -118,6 +168,7 @@ export default Vue.extend({
...
@@ -118,6 +168,7 @@ export default Vue.extend({
onSubmit
(){
onSubmit
(){
(
this
.
$refs
.
ruleForm
as
FormModel
).
validate
(
valid
=>
{
(
this
.
$refs
.
ruleForm
as
FormModel
).
validate
(
valid
=>
{
if
(
valid
)
{
if
(
valid
)
{
// staff.
this
.
show
=
false
this
.
show
=
false
}
else
{
}
else
{
console
.
log
(
'error submit!!'
);
console
.
log
(
'error submit!!'
);
...
...
src/views/Root/User/firstLevel.vue
View file @
26dba2cd
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
<div>
<div>
<p
class=
" text-2xl font-bold mb-5"
>
浙江省分行信息
</p>
<p
class=
" text-2xl font-bold mb-5"
>
浙江省分行信息
</p>
<top-bar
:level=
"level"
/>
<top-bar
:level=
"level"
/>
<user-table
:level=
"level"
:role=
"role"
:dataSource=
"dataSource"
/>
<user-table
:level=
"level"
:role=
"role"
/>
</div>
</div>
</
template
>
</
template
>
<
script
lang=
"ts"
>
<
script
lang=
"ts"
>
...
@@ -16,6 +16,11 @@ import { firstLevelManager } from "@/mock/index"
...
@@ -16,6 +16,11 @@ import { firstLevelManager } from "@/mock/index"
export
default
Vue
.
extend
({
export
default
Vue
.
extend
({
components
:{
TopBar
,
userTable
},
components
:{
TopBar
,
userTable
},
data
()
{
return
{
// dataSource: [] as PropType
<
staff
[]
>
}
},
props
:{
props
:{
level
:{
level
:{
type
:
Number
as
PropType
<
eLevel
>
,
type
:
Number
as
PropType
<
eLevel
>
,
...
@@ -25,12 +30,6 @@ export default Vue.extend({
...
@@ -25,12 +30,6 @@ export default Vue.extend({
type
:
Number
as
PropType
<
eRole
>
,
type
:
Number
as
PropType
<
eRole
>
,
default
:
eRole
.
firstLevel_branch
default
:
eRole
.
firstLevel_branch
},
},
dataSource
:{
type
:
Array
as
PropType
<
staff
[]
>
,
default
(){
return
firstLevelManager
}
}
},
},
});
});
</
script
>
</
script
>
\ No newline at end of file
src/views/Root/User/index.vue
View file @
26dba2cd
...
@@ -3,12 +3,19 @@
...
@@ -3,12 +3,19 @@
<p
class=
"text-2xl font-bold mb-5"
>
用户管理
</p>
<p
class=
"text-2xl font-bold mb-5"
>
用户管理
</p>
<div>
<div>
<!-- 级联选择 -->
<!-- 级联选择 -->
<a-cascader
<
!--
<
a-cascader
:disabled=
"search.length == 0 ? false : true"
:disabled=
"search.length == 0 ? false : true"
v-model=
"value"
v-model=
"value"
@
change=
"handleChange"
@
change=
"handleChange"
placeholder=
"通过选择搜索"
placeholder=
"通过选择搜索"
style=
"width: 40%; margin-right: 15px"
style=
"width: 40%; margin-right: 15px"
/>
-->
<header-select
ref=
"headerSelect"
:setFooList=
"setFooList"
:fooList=
"fooList"
:level=
"level"
:role=
"role"
/>
/>
<!-- 搜索框 -->
<!-- 搜索框 -->
<a-input
<a-input
...
@@ -36,30 +43,54 @@ import { message } from 'ant-design-vue'
...
@@ -36,30 +43,54 @@ import { message } from 'ant-design-vue'
import
StaffService
from
"@/service/StaffService"
;
import
StaffService
from
"@/service/StaffService"
;
import
{
getUserMsg
}
from
"@/utils/userMsg/userMsg"
import
{
getUserMsg
}
from
"@/utils/userMsg/userMsg"
import
{
eLevel
}
from
'@/types/level'
;
import
{
eLevel
}
from
'@/types/level'
;
import
{
fooList
}
from
"@/views/Root/OutletManagement/components/HeaderSelect/const"
;
import
{
PAGE_SIZE
}
from
"@/const/config/page"
import
{
PAGE_SIZE
}
from
"@/const/config/page"
import
HeaderSelect
from
"@/views/Root/OutletManagement/components/HeaderSelect/index.vue"
;
import
{
mapActions
,
mapMutations
,
mapState
}
from
'vuex'
Vue
.
use
(
Cascader
)
Vue
.
use
(
Cascader
)
Vue
.
prototype
.
$message
=
message
Vue
.
prototype
.
$message
=
message
export
default
Vue
.
extend
({
export
default
Vue
.
extend
({
components
:
{
HeaderSelect
},
computed
:{
computed
:{
options
(){
options
(){
return
options
return
options
}
},
level
():
number
|
undefined
{
return
getUserMsg
()?.
level
;
},
role
()
{
return
getUserMsg
()?.
newRole
;
},
},
},
data
(){
data
(){
return
{
return
{
search
:
''
,
search
:
''
,
value
:[],
value
:[],
fooList
}
}
},
},
mounted
(){
mounted
(){
this
.
clearPostion
()
this
.
getBranchList
()
this
.
getBranchList
()
},
},
methods
:{
methods
:{
handleChange
(){
...
mapMutations
(
'platformUserManagement'
,
{
// 调用请求接口
platformSave
:
'save'
,
console
.
log
(
1
);
}),
this
.
getBranchList
()
clearPostion
()
{
this
.
platformSave
({
location
:
''
,
firstBranch
:
undefined
,
firstSubBranch
:
undefined
,
secondBranch
:
undefined
,
secondSubBranch
:
undefined
,
})
},
setFooList
(
v
:
any
[])
{
this
.
fooList
=
[...
v
];
},
},
async
getBranchList
(){
async
getBranchList
(){
const
userLevel
=
getUserMsg
()?.
level
const
userLevel
=
getUserMsg
()?.
level
...
@@ -75,16 +106,52 @@ export default Vue.extend({
...
@@ -75,16 +106,52 @@ export default Vue.extend({
},
},
query
(){
query
(){
if
(
this
.
value
.
length
==
0
&&
this
.
search
.
length
==
0
){
console
.
log
(
this
.
fooList
)
const
levelList
=
[]
for
(
let
item
of
this
.
fooList
)
{
if
(
item
.
value
)
{
let
name
=
''
for
(
let
i
of
item
.
options
)
{
if
(
i
.
ID
===
item
.
value
)
{
name
=
i
.
Name
}
}
levelList
.
push
({
value
:
item
.
value
,
name
})
}
else
{
break
}
}
if
(
levelList
.
length
==
0
&&
this
.
search
.
length
==
0
){
this
.
$message
.
info
(
'请通过选择或者输入详细地址搜索'
)
this
.
$message
.
info
(
'请通过选择或者输入详细地址搜索'
)
}
else
{
}
else
{
const
search
:
string
|
Array
<
string
>
=
this
.
value
.
length
==
0
?
this
.
search
:
this
.
value
const
search
:
string
|
Array
<
{
value
:
number
,
name
:
string
}
>
=
levelList
.
length
==
0
?
this
.
search
:
levelList
console
.
log
(
search
)
console
.
log
(
search
)
this
.
selectTables
(
search
)
}
}
// this.$router.push({name:'firstLevel'})
// this.$router.push({name:'firstLevel'})
},
},
selectTables
(
arr
:
Array
<
{
value
:
number
,
name
:
string
}
>|
string
)
{
if
(
typeof
arr
===
'string'
)
{
this
.
$router
.
push
({
path
:
'/backend/user/secondarySub'
,
query
:
{
address
:
arr
}})
}
else
{
const
count
=
arr
.
length
switch
(
count
)
{
case
1
:
this
.
$router
.
push
({
path
:
'/backend/user/firstLevel'
,
query
:
{
rankVal
:
JSON
.
stringify
(
arr
)
}})
break
case
2
:
this
.
$router
.
push
({
path
:
'/backend/user/secondary'
,
query
:
{
rankVal
:
JSON
.
stringify
(
arr
)
}})
break
case
3
:
this
.
$router
.
push
({
path
:
'/backend/user/firstSub'
,
query
:
{
rankVal
:
JSON
.
stringify
(
arr
)
}})
break
case
4
:
this
.
$router
.
push
({
path
:
'/backend/user/secondarySub'
,
query
:
{
rankVal
:
JSON
.
stringify
(
arr
)
}})
}
}
},
reset
(){
reset
(){
this
.
value
=
[]
(
this
.
$refs
.
headerSelect
as
any
).
init
();
this
.
search
=
''
this
.
search
=
''
},
},
}
}
...
...
src/views/Root/getMenuList.ts
View file @
26dba2cd
...
@@ -170,7 +170,7 @@ export const menuList: iMenuConfigItem[] = [
...
@@ -170,7 +170,7 @@ export const menuList: iMenuConfigItem[] = [
roles
:
[
roles
:
[
eRole
.
superManager
,
eRole
.
superManager
,
eRole
.
firstLevel_branch
,
eRole
.
firstLevel_branch
,
eRole
.
firstLevel_sub
_branch
,
eRole
.
secondary
_branch
,
],
],
},
},
{
{
...
@@ -198,6 +198,7 @@ export const menuList: iMenuConfigItem[] = [
...
@@ -198,6 +198,7 @@ export const menuList: iMenuConfigItem[] = [
roles
:
[
roles
:
[
eRole
.
superManager
,
eRole
.
superManager
,
eRole
.
firstLevel_branch
,
eRole
.
firstLevel_branch
,
eRole
.
secondary_branch
,
eRole
.
firstLevel_sub_branch
,
eRole
.
firstLevel_sub_branch
,
eRole
.
secondary_sub_branch
,
eRole
.
secondary_sub_branch
,
],
],
...
...
src/views/Root/index.vue
View file @
26dba2cd
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
<div>
<div>
<a-layout
id=
"components-layout-demo-fixed-sider"
>
<a-layout
id=
"components-layout-demo-fixed-sider"
>
<a-layout-sider
width=
"256"
style=
"background: white"
>
<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
<a-menu
style=
"width: 256px"
style=
"width: 256px"
:open-keys
.
sync=
"openKeys"
: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