Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Z
zhichan
Overview
Overview
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
蒋勇
zhichan
Commits
59f0b415
Commit
59f0b415
authored
Apr 23, 2020
by
蒋勇
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
d
parent
42a5a9d6
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
445 additions
and
190 deletions
+445
-190
iview-admin/src/api/data.js
+24
-1
iview-admin/src/api/meta.js
+1
-0
iview-admin/src/api/user.js
+3
-6
iview-admin/src/components/login-form/login-form.vue
+1
-1
iview-admin/src/components/main/main.vue
+3
-1
iview-admin/src/components/tables/tables.vue
+13
-0
iview-admin/src/config/index.js
+2
-2
iview-admin/src/libs/axios.js
+2
-1
iview-admin/src/mock/data.js
+3
-2
iview-admin/src/mock/index.js
+3
-3
iview-admin/src/router/index.js
+1
-0
iview-admin/src/router/routers.js
+59
-10
iview-admin/src/store/module/metainfo/userinfo.js
+81
-81
iview-admin/src/store/module/user.js
+36
-23
iview-admin/src/view/components/tables/biztables.vue
+130
-33
iview-admin/src/view/components/tables/forms/childs/modelselects.vue
+20
-2
iview-admin/src/view/components/tables/forms/forms.vue
+26
-21
iview-admin/src/view/login/login.vue
+6
-3
iview-admin/src/view/userinfo/userinfo_page.vue
+31
-0
No files found.
iview-admin/src/api/data.js
View file @
59f0b415
import
axios
from
'@/libs/api.request'
import
axios
from
'@/libs/api.request'
export
const
getTableData
=
(
url
,
query
)
=>
{
export
const
getTableData
=
(
url
,
query
)
=>
{
console
.
log
(
url
)
console
.
log
(
url
,
"========================"
)
return
axios
.
request
({
return
axios
.
request
({
url
:
url
,
url
:
url
,
method
:
'post'
,
method
:
'post'
,
data
:
query
data
:
query
})
})
}
}
export
const
saveFormData
=
(
url
,
data
)
=>
{
return
axios
.
request
({
url
:
url
,
method
:
'post'
,
data
:
data
})
}
export
const
deleteData
=
(
url
,
data
)
=>
{
return
axios
.
request
({
url
:
url
,
method
:
'post'
,
data
:
data
})
}
export
const
bulkDeleteData
=
(
url
,
data
)
=>
{
return
axios
.
request
({
url
:
url
,
method
:
'post'
,
data
:
data
})
}
export
const
getDragList
=
()
=>
{
export
const
getDragList
=
()
=>
{
return
axios
.
request
({
return
axios
.
request
({
...
...
iview-admin/src/api/meta.js
View file @
59f0b415
import
axios
from
'@/libs/api.request'
import
axios
from
'@/libs/api.request'
export
const
refQuery
=
(
url
,
q
)
=>
{
export
const
refQuery
=
(
url
,
q
)
=>
{
console
.
log
(
">>>>>>>>>>>."
,
url
,
q
)
return
axios
.
request
({
return
axios
.
request
({
url
:
url
,
url
:
url
,
method
:
'post'
,
method
:
'post'
,
...
...
iview-admin/src/api/user.js
View file @
59f0b415
...
@@ -6,7 +6,7 @@ export const login = ({ userName, password }) => {
...
@@ -6,7 +6,7 @@ export const login = ({ userName, password }) => {
password
password
}
}
return
axios
.
request
({
return
axios
.
request
({
url
:
'login'
,
url
:
'
/web/auth/userCtl/pm
login'
,
data
,
data
,
method
:
'post'
method
:
'post'
})
})
...
@@ -14,11 +14,8 @@ export const login = ({ userName, password }) => {
...
@@ -14,11 +14,8 @@ export const login = ({ userName, password }) => {
export
const
getUserInfo
=
(
token
)
=>
{
export
const
getUserInfo
=
(
token
)
=>
{
return
axios
.
request
({
return
axios
.
request
({
url
:
'get_info'
,
url
:
'/web/auth/userCtl/getUserInfo'
,
params
:
{
method
:
'post'
token
},
method
:
'get'
})
})
}
}
...
...
iview-admin/src/components/login-form/login-form.vue
View file @
59f0b415
...
@@ -43,7 +43,7 @@ export default {
...
@@ -43,7 +43,7 @@ export default {
data
()
{
data
()
{
return
{
return
{
form
:
{
form
:
{
userName
:
'
super_admin
'
,
userName
:
''
,
password
:
''
password
:
''
}
}
}
}
...
...
iview-admin/src/components/main/main.vue
View file @
59f0b415
...
@@ -4,8 +4,10 @@
...
@@ -4,8 +4,10 @@
<side-menu
accordion
ref=
"sideMenu"
:active-name=
"$route.name"
:collapsed=
"collapsed"
@
on-select=
"turnToPage"
:menu-list=
"menuList"
>
<side-menu
accordion
ref=
"sideMenu"
:active-name=
"$route.name"
:collapsed=
"collapsed"
@
on-select=
"turnToPage"
:menu-list=
"menuList"
>
<!-- 需要放在菜单上面的内容,如Logo,写在side-menu标签内部,如下 -->
<!-- 需要放在菜单上面的内容,如Logo,写在side-menu标签内部,如下 -->
<div
class=
"logo-con"
>
<div
class=
"logo-con"
>
<
img
v-show=
"!collapsed"
:src=
"maxLogo"
key=
"max-logo"
/
>
<
!--
<img
v-show=
"!collapsed"
:src=
"maxLogo"
key=
"max-logo"
/>
--
>
<img
v-show=
"collapsed"
:src=
"minLogo"
key=
"min-logo"
/>
<img
v-show=
"collapsed"
:src=
"minLogo"
key=
"min-logo"
/>
<div
v-show=
"!collapsed"
style=
"font-size:28px;color:white"
>
<Icon
type=
"ios-apps"
size=
"28"
color=
"white"
/>
智慧中台
</div>
</div>
</div>
</side-menu>
</side-menu>
</Sider>
</Sider>
...
...
iview-admin/src/components/tables/tables.vue
View file @
59f0b415
...
@@ -54,6 +54,9 @@
...
@@ -54,6 +54,9 @@
@
on-row-dblclick=
"onRowDblclick"
@
on-row-dblclick=
"onRowDblclick"
@
on-expand=
"onExpand"
@
on-expand=
"onExpand"
>
>
<template
v-for=
"cl in tmplcols"
slot-scope=
"
{ row, index }" :slot="cl.key">
<div
:key=
"'tml'+cl.prop"
v-html=
"formatCol(row,cl.key,index)"
></div>
</
template
>
<slot
name=
"header"
slot=
"header"
></slot>
<slot
name=
"header"
slot=
"header"
></slot>
<slot
name=
"footer"
slot=
"footer"
></slot>
<slot
name=
"footer"
slot=
"footer"
></slot>
<slot
name=
"loading"
slot=
"loading"
></slot>
<slot
name=
"loading"
slot=
"loading"
></slot>
...
@@ -89,6 +92,12 @@ export default {
...
@@ -89,6 +92,12 @@ export default {
return
[];
return
[];
}
}
},
},
formatCol
:{
type
:
Function
,
default
(){
return
(
row
,
key
,
index
)
=>
row
[
key
]
}
},
columns
:
{
columns
:
{
type
:
Array
,
type
:
Array
,
default
()
{
default
()
{
...
@@ -366,6 +375,10 @@ export default {
...
@@ -366,6 +375,10 @@ export default {
computed
:{
computed
:{
searchcols
:
function
(){
searchcols
:
function
(){
return
this
.
columns
?
this
.
columns
.
filter
(
item
=>
item
.
insearch
):[]
return
this
.
columns
?
this
.
columns
.
filter
(
item
=>
item
.
insearch
):[]
},
tmplcols
(){
let
rtns
=
this
.
columns
.
filter
(
item
=>
{
return
item
.
slot
&&
item
.
slot
!=
""
})
return
rtns
}
}
}
}
};
};
...
...
iview-admin/src/config/index.js
View file @
59f0b415
...
@@ -2,7 +2,7 @@ export default {
...
@@ -2,7 +2,7 @@ export default {
/**
/**
* @description 配置显示在浏览器标签的title
* @description 配置显示在浏览器标签的title
*/
*/
title
:
'
iView-admin
'
,
title
:
'
智慧中台
'
,
/**
/**
* @description token在Cookie中存储的天数,默认1天
* @description token在Cookie中存储的天数,默认1天
*/
*/
...
@@ -12,7 +12,7 @@ export default {
...
@@ -12,7 +12,7 @@ export default {
* 如果不使用,则需要在路由中给需要在菜单中展示的路由设置meta: {title: 'xxx'}
* 如果不使用,则需要在路由中给需要在菜单中展示的路由设置meta: {title: 'xxx'}
* 用来在菜单中显示文字
* 用来在菜单中显示文字
*/
*/
useI18n
:
tru
e
,
useI18n
:
fals
e
,
/**
/**
* @description api请求基础路径
* @description api请求基础路径
*/
*/
...
...
iview-admin/src/libs/axios.js
View file @
59f0b415
import
axios
from
'axios'
import
axios
from
'axios'
import
store
from
'@/store'
import
store
from
'@/store'
import
{
getToken
}
from
'./util'
// import { Spin } from 'iview'
// import { Spin } from 'iview'
const
addErrorLog
=
errorInfo
=>
{
const
addErrorLog
=
errorInfo
=>
{
const
{
statusText
,
status
,
request
:
{
responseURL
}
}
=
errorInfo
const
{
statusText
,
status
,
request
:
{
responseURL
}
}
=
errorInfo
...
@@ -21,7 +22,7 @@ class HttpRequest {
...
@@ -21,7 +22,7 @@ class HttpRequest {
const
config
=
{
const
config
=
{
baseURL
:
this
.
baseUrl
,
baseURL
:
this
.
baseUrl
,
headers
:
{
headers
:
{
//
Authorization
:
"Bearer "
+
getToken
()
}
}
}
}
return
config
return
config
...
...
iview-admin/src/mock/data.js
View file @
59f0b415
...
@@ -12,9 +12,10 @@ export const getTableData = req => {
...
@@ -12,9 +12,10 @@ export const getTableData = req => {
let
tableData
=
[]
let
tableData
=
[]
doCustomTimes
(
100
,
()
=>
{
doCustomTimes
(
100
,
()
=>
{
tableData
.
push
(
Mock
.
mock
({
tableData
.
push
(
Mock
.
mock
({
name
:
'@name'
,
userName
:
'@name'
,
nickName
:
'@name'
,
email
:
'@email'
,
email
:
'@email'
,
create
T
ime
:
'@date'
create
d_t
ime
:
'@date'
}))
}))
})
})
rtn
.
status
=
0
;
rtn
.
status
=
0
;
...
...
iview-admin/src/mock/index.js
View file @
59f0b415
...
@@ -11,9 +11,9 @@ Mock.setup({
...
@@ -11,9 +11,9 @@ Mock.setup({
// 登录相关和获取用户信息
// 登录相关和获取用户信息
Mock
.
mock
(
/
\/
login/
,
login
)
Mock
.
mock
(
/
\/
login/
,
login
)
Mock
.
mock
(
/
\/
get_info/
,
getUserInfo
)
//
Mock.mock(/\/get_info/, getUserInfo)
Mock
.
mock
(
/
\/
logout/
,
logout
)
Mock
.
mock
(
/
\/
logout/
,
logout
)
Mock
.
mock
(
/.*findAndCountAll/
,
getTableData
)
//
Mock.mock(/.*findAndCountAll/, getTableData)
Mock
.
mock
(
/
\/
get_drag_list/
,
getDragList
)
Mock
.
mock
(
/
\/
get_drag_list/
,
getDragList
)
Mock
.
mock
(
/
\/
save_error_logger/
,
'success'
)
Mock
.
mock
(
/
\/
save_error_logger/
,
'success'
)
Mock
.
mock
(
/
\/
image
\/
upload/
,
uploadImage
)
Mock
.
mock
(
/
\/
image
\/
upload/
,
uploadImage
)
...
@@ -26,6 +26,6 @@ Mock.mock(/\/message\/count/, messageCount)
...
@@ -26,6 +26,6 @@ Mock.mock(/\/message\/count/, messageCount)
Mock
.
mock
(
/
\/
get_org_data/
,
getOrgData
)
Mock
.
mock
(
/
\/
get_org_data/
,
getOrgData
)
Mock
.
mock
(
/
\/
get_tree_select_data/
,
getTreeSelectData
)
Mock
.
mock
(
/
\/
get_tree_select_data/
,
getTreeSelectData
)
Mock
.
mock
(
/.*refQuery/
,
refQuery
)
//
Mock.mock(/.*refQuery/, refQuery)
export
default
Mock
export
default
Mock
iview-admin/src/router/index.js
View file @
59f0b415
...
@@ -24,6 +24,7 @@ const turnTo = (to, access, next) => {
...
@@ -24,6 +24,7 @@ const turnTo = (to, access, next) => {
router
.
beforeEach
((
to
,
from
,
next
)
=>
{
router
.
beforeEach
((
to
,
from
,
next
)
=>
{
iView
.
LoadingBar
.
start
()
iView
.
LoadingBar
.
start
()
const
token
=
getToken
()
const
token
=
getToken
()
console
.
log
(
token
,
to
.
name
)
if
(
!
token
&&
to
.
name
!==
LOGIN_PAGE_NAME
)
{
if
(
!
token
&&
to
.
name
!==
LOGIN_PAGE_NAME
)
{
// 未登录且要跳转的页面不是登录页
// 未登录且要跳转的页面不是登录页
next
({
next
({
...
...
iview-admin/src/router/routers.js
View file @
59f0b415
...
@@ -42,7 +42,7 @@ export default [
...
@@ -42,7 +42,7 @@ export default [
name
:
'home'
,
name
:
'home'
,
meta
:
{
meta
:
{
hideInMenu
:
true
,
hideInMenu
:
true
,
title
:
'
首页
'
,
title
:
'
仪表盘
'
,
notCache
:
true
,
notCache
:
true
,
icon
:
'md-home'
icon
:
'md-home'
},
},
...
@@ -51,6 +51,64 @@ export default [
...
@@ -51,6 +51,64 @@ export default [
]
]
},
},
{
{
path
:
'/user'
,
name
:
'user'
,
meta
:
{
icon
:
'ios-settings'
,
title
:
'系统管理'
},
component
:
Main
,
children
:
[
{
path
:
'user_info'
,
name
:
'user_info'
,
meta
:
{
icon
:
'ios-man'
,
title
:
'用户信息'
},
component
:
()
=>
import
(
'@/view/userinfo/userinfo_page.vue'
)
},
{
path
:
'update_paste_page'
,
name
:
'update_paste_page'
,
meta
:
{
icon
:
'md-clipboard'
,
title
:
'角色信息'
},
component
:
()
=>
import
(
'@/view/update/update-paste.vue'
)
}
]
},
{
path
:
'/opinfo'
,
name
:
'opinfo'
,
meta
:
{
icon
:
'ios-podium'
,
title
:
'运营管理'
},
component
:
Main
,
children
:
[
{
path
:
'channel_info'
,
name
:
'channel_info'
,
meta
:
{
icon
:
'ios-man-outline'
,
title
:
'渠道信息'
},
component
:
()
=>
import
(
'@/view/update/update-table.vue'
)
},
{
path
:
'update_paste_page'
,
name
:
'update_paste_page'
,
meta
:
{
icon
:
'md-clipboard'
,
title
:
'结算信息'
},
component
:
()
=>
import
(
'@/view/update/update-paste.vue'
)
}
]
},
{
path
:
''
,
path
:
''
,
name
:
'doc'
,
name
:
'doc'
,
meta
:
{
meta
:
{
...
@@ -171,15 +229,6 @@ export default [
...
@@ -171,15 +229,6 @@ export default [
component
:
()
=>
import
(
'@/view/components/cropper/cropper.vue'
)
component
:
()
=>
import
(
'@/view/components/cropper/cropper.vue'
)
},
},
{
{
path
:
'tables_page'
,
name
:
'tables_page'
,
meta
:
{
icon
:
'md-grid'
,
title
:
'多功能表格'
},
component
:
()
=>
import
(
'@/view/components/tables/tables.vue'
)
},
{
path
:
'split_pane_page'
,
path
:
'split_pane_page'
,
name
:
'split_pane_page'
,
name
:
'split_pane_page'
,
meta
:
{
meta
:
{
...
...
iview-admin/src/store/module/metainfo/userinfo.js
View file @
59f0b415
export
default
{
export
default
{
bizCode
:
"userinfo"
,
bizCode
:
"userinfo"
,
name
:
"用户信息维护"
,
name
:
"用户信息维护"
,
list
:
[
list
:
[
{
title
:
'姓名'
,
key
:
'name'
,
sortable
:
true
,
insearch
:
true
},
{
title
:
'账号'
,
key
:
'userName'
,
sortable
:
true
,
insearch
:
true
},
//slot--自定义列 insearch--是否快速查询
{
title
:
'邮件'
,
key
:
'email'
,
editable
:
true
,
insearch
:
true
},
{
title
:
'昵称'
,
key
:
'nickName'
,
sortable
:
true
,
insearch
:
true
},
{
title
:
'创建时间'
,
key
:
'createTime'
},
{
title
:
'角色'
,
key
:
'roleName'
,
sortable
:
false
,
insearch
:
false
,
slot
:
'roleName'
},
{
{
title
:
'邮件'
,
key
:
'mail'
,
editable
:
true
,
insearch
:
true
},
title
:
'Handle'
,
{
title
:
'创建时间'
,
key
:
'created_time'
},
key
:
'handle'
,
{
button
:
[
//这个数组中内容,需要按照权限字符串,在服务端构造
title
:
'Handle'
,
]
key
:
'handle'
,
}
button
:
[
//这个数组中内容,需要按照权限字符串,在服务端构造
],
]
"form"
:{
}
name
:
"xxx"
,
],
main
:[
"form"
:
{
// {
name
:
"xxx"
,
// "title":"控制信息",
main
:
[
// ctls:[
// {
// {"type":"switch","label":"是否管理员","prop":"isAdmin","opentext":"是","closetext":"否","trurcolor":"","falsecolor":"","placeHolder":"请输入单次使用消耗的宝币数","style":""},
// "title":"控制信息",
// // {"type":"select","refModel":"pmproduct","isMulti":false,"label":"所属产品","prop":"pmproduct_id","labelField":"name","valueField":"id","style":""},
// ctls:[
// {"type":"dic-select","dicName":"app_type","isMulti":true,"label":"所属产品","prop":"apptype","placeHolder":"请选择 应用类型"},
// {"type":"switch","label":"是否管理员","prop":"isAdmin","opentext":"是","closetext":"否","trurcolor":"","falsecolor":"","placeHolder":"请输入单次使用消耗的宝币数","style":""},
// {"type":"model-select","refModel":"user","isMulti":false,"label":"所属产品","prop":"uid","placeHolder":"请选择 应用类型","labelField":"name","valueField":"id"},
// // {"type":"select","refModel":"pmproduct","isMulti":false,"label":"所属产品","prop":"pmproduct_id","labelField":"name","valueField":"id","style":""},
// {"type":"remote-select","refModel":"user","isMulti":false,"label":"所属产品x","prop":"xid","placeHolder":"请选择 应用类型","labelField":"name","valueField":"id"},
// {"type":"dic-select","dicName":"app_type","isMulti":true,"label":"所属产品","prop":"apptype","placeHolder":"请选择 应用类型"},
// {"type":"checkgroup","refModel":"user","label":"所属产品","prop":"mmmid","placeHolder":"请选择 应用类型","labelField":"name","valueField":"id","isBorder":true},
// {"type":"model-select","refModel":"user","isMulti":false,"label":"所属产品","prop":"uid","placeHolder":"请选择 应用类型","labelField":"name","valueField":"id"},
// {"type":"radiogroup","refModel":"user","label":"所属产品","prop":"xmmmid","placeHolder":"请选择 应用类型","labelField":"name","valueField":"id","isBorder":true},
// {"type":"remote-select","refModel":"user","isMulti":false,"label":"所属产品x","prop":"xid","placeHolder":"请选择 应用类型","labelField":"name","valueField":"id"},
// ]
// {"type":"checkgroup","refModel":"user","label":"所属产品","prop":"mmmid","placeHolder":"请选择 应用类型","labelField":"name","valueField":"id","isBorder":true},
// },
// {"type":"radiogroup","refModel":"user","label":"所属产品","prop":"xmmmid","placeHolder":"请选择 应用类型","labelField":"name","valueField":"id","isBorder":true},
{
// ]
"title"
:
"基本信息"
,
// },
"key"
:
"baseinfo"
,
{
ctls
:[
"title"
:
"基本信息"
,
{
"type"
:
"input"
,
"label"
:
"姓名"
,
"prop"
:
"name"
,
"placeHolder"
:
"登录账号"
,
"style"
:
""
,
rules
:[
{
"required"
:
true
,
"message"
:
' '
,
"trigger"
:
'blur'
},]},
"key"
:
"baseinfo"
,
{
"type"
:
"input"
,
"label"
:
"邮件"
,
"prop"
:
"email"
,
"placeHolder"
:
"昵称"
,
"style"
:
""
,
rules
:[
{
"required"
:
true
,
"message"
:
' '
,
"trigger"
:
'blur'
},]},
ctls
:
[
{
"type"
:
"input"
,
"label"
:
"创建时间"
,
"prop"
:
"createTime"
,
"placeHolder"
:
"请输入电话"
,
"style"
:
""
,
rules
:[
{
"validator"
:
"validatex"
,
"trigger"
:
'blur'
},{
"required"
:
true
,
"message"
:
' '
,
"trigger"
:
'blur'
},]},
{
"type"
:
"input"
,
"label"
:
"昵称"
,
"prop"
:
"nickName"
,
"placeHolder"
:
"请输入昵称"
,
"style"
:
""
,
rules
:
[{
"required"
:
true
,
"message"
:
' '
,
"trigger"
:
'blur'
},]
},
// {"type":"select","refModel":"auth.role","isMulti":true,"label":"角色","prop":"roles","labelField":"name","valueField":"id","style":""},
{
"type"
:
"input"
,
"label"
:
"邮件"
,
"prop"
:
"mail"
,
"placeHolder"
:
"请输入邮件"
,
"style"
:
""
,
rules
:
[{
"required"
:
true
,
"message"
:
' '
,
"trigger"
:
'blur'
},]
},
]
{
"type"
:
"model-select"
,
"refModel"
:
"auth.role"
,
"isMulti"
:
true
,
"label"
:
"角色"
,
"prop"
:
"roles"
,
"labelField"
:
"name"
,
"valueField"
:
"id"
,
"style"
:
""
},
}
],
lists
:[
{
title
:
"子列表"
,
refBizCode
:
"xxx"
}
]
]
},
}
"search"
:{
],
name
:
"search"
,
lists
:
[
main
:[
{
{
title
:
"子列表"
,
"title"
:
"基本信息"
,
refBizCode
:
"xxx"
"key"
:
"baseinfo"
,
}
ctls
:[
]
{
"type"
:
"input"
,
"label"
:
"姓名"
,
"prop"
:
"name"
,
"placeHolder"
:
"登录账号"
,
"style"
:
""
,
rules
:[
{
"required"
:
true
,
"message"
:
' '
,
"trigger"
:
'blur'
},]},
},
{
"type"
:
"input"
,
"label"
:
"邮件"
,
"prop"
:
"email"
,
"placeHolder"
:
"昵称"
,
"style"
:
""
,
rules
:[
{
"required"
:
true
,
"message"
:
' '
,
"trigger"
:
'blur'
},]},
"search"
:
{
{
"type"
:
"input"
,
"label"
:
"创建时间"
,
"prop"
:
"createTime"
,
"placeHolder"
:
"请输入电话"
,
"style"
:
""
,
rules
:[
{
"validator"
:
"validatex"
,
"trigger"
:
'blur'
},{
"required"
:
true
,
"message"
:
' '
,
"trigger"
:
'blur'
},]},
name
:
"search"
,
// {"type":"select","refModel":"auth.role","isMulti":true,"label":"角色","prop":"roles","labelField":"name","valueField":"id","style":""},
main
:
[
]
{
}
"title"
:
"基本信息"
,
"key"
:
"baseinfo"
,
ctls
:
[
{
"type"
:
"input"
,
"label"
:
"昵称"
,
"prop"
:
"nickName"
,
"placeHolder"
:
"昵称"
,
"style"
:
""
,
rules
:
[]
},
{
"type"
:
"input"
,
"label"
:
"邮件"
,
"prop"
:
"mail"
,
"placeHolder"
:
"邮件"
,
"style"
:
""
,
rules
:
[]
},
// {"type":"select","refModel":"auth.role","isMulti":true,"label":"角色","prop":"roles","labelField":"name","valueField":"id","style":""},
]
]
},
"auths"
:{
"add"
:[
{
"icon"
:
"ios-add-circle-outline"
,
"title"
:
"新增"
,
"type"
:
"text"
,
"key"
:
"create"
,
"isOnGrid"
:
true
},
{
"icon"
:
"el-icon-save"
,
"title"
:
"保存"
,
"type"
:
"text"
,
"key"
:
"save"
,
"isOnForm"
:
true
},
],
"edit"
:[
{
"icon"
:
"el-icon-edit"
,
"title"
:
"修改"
,
"type"
:
"text"
,
"key"
:
"edit"
,
"isInRow"
:
true
},
],
"delete"
:[
{
"icon"
:
"el-icon-remove"
,
"title"
:
"删除"
,
"type"
:
"text"
,
"key"
:
"delete"
,
"isInRow"
:
true
},
{
"icon"
:
"el-icon-edit"
,
"title"
:
"停用"
,
"type"
:
"text"
,
"key"
:
"stopUser"
,
"isInRow"
:
true
,
"boolProp"
:
"isEnabled"
,
"falseText"
:
"启用"
},
],
"common"
:[
{
"icon"
:
"el-icon-cancel"
,
"title"
:
"取消"
,
"type"
:
"text"
,
"key"
:
"cancel"
,
"isOnForm"
:
true
},
{
"icon"
:
"el-icon-cancel"
,
"title"
:
"取消"
,
"type"
:
"text"
,
"key"
:
"cancel-search"
,
"isInSearch"
:
true
},
{
"icon"
:
"el-icon-cancel"
,
"title"
:
"搜索"
,
"type"
:
"text"
,
"key"
:
"start-search"
,
"isInSearch"
:
true
},
{
"icon"
:
"ios-search-outline"
,
"title"
:
"高级"
,
"type"
:
"text"
,
"key"
:
"adv-search"
,
"isOnGrid"
:
true
},
],
}
}
}
]
\ No newline at end of file
},
"auths"
:
{
"add"
:
[
{
"icon"
:
"ios-add-circle-outline"
,
"title"
:
"新增"
,
"type"
:
"text"
,
"key"
:
"create"
,
"isOnGrid"
:
true
},
{
"icon"
:
"ios-square-outline"
,
"title"
:
"保存"
,
"type"
:
"text"
,
"key"
:
"save"
,
"isOnForm"
:
true
},
{
"icon"
:
"ios-cloud-download-outline"
,
"title"
:
"下载"
,
"type"
:
"text"
,
"key"
:
"export"
,
"isOnGrid"
:
true
},
],
"edit"
:
[
{
"icon"
:
"ios-create-outline"
,
"title"
:
"修改"
,
"type"
:
"text"
,
"key"
:
"edit"
,
"isInRow"
:
true
}
],
"delete"
:
[
{
"icon"
:
"ios-trash-outline"
,
"title"
:
"删除"
,
"type"
:
"text"
,
"key"
:
"deletes"
,
"isOnGrid"
:
true
},
{
"icon"
:
"ios-trash-outline"
,
"title"
:
"删除"
,
"type"
:
"text"
,
"key"
:
"delete"
,
"isInRow"
:
true
},
],
"common"
:
[
{
"icon"
:
"ios-undo-outline"
,
"title"
:
"取消"
,
"type"
:
"text"
,
"key"
:
"cancel"
,
"isOnForm"
:
true
},
{
"icon"
:
"ios-undo-outline"
,
"title"
:
"取消"
,
"type"
:
"text"
,
"key"
:
"cancel-search"
,
"isInSearch"
:
true
},
{
"icon"
:
"ios-search-outline"
,
"title"
:
"搜索"
,
"type"
:
"text"
,
"key"
:
"start-search"
,
"isInSearch"
:
true
},
{
"icon"
:
"ios-search-outline"
,
"title"
:
"高级"
,
"type"
:
"text"
,
"key"
:
"adv-search"
,
"isOnGrid"
:
true
},
],
}
}
iview-admin/src/store/module/user.js
View file @
59f0b415
...
@@ -81,14 +81,47 @@ export default {
...
@@ -81,14 +81,47 @@ export default {
userName
,
userName
,
password
password
}).
then
(
res
=>
{
}).
then
(
res
=>
{
const
data
=
res
.
data
const
rtn
=
res
.
data
commit
(
'setToken'
,
data
.
token
)
console
.
log
(
rtn
)
resolve
()
if
(
rtn
.
status
==
0
){
commit
(
'setToken'
,
rtn
.
data
.
token
)
commit
(
'setAvatar'
,
"https://file.iviewui.com/dist/a0e88e83800f138b94d2414621bd9704.png"
)
commit
(
'setUserName'
,
rtn
.
data
.
user
.
userName
)
commit
(
'setUserId'
,
rtn
.
data
.
user
.
id
)
commit
(
'setAccess'
,
[
'super_admin'
,
'admin'
])
commit
(
'setHasGetInfo'
,
true
)
resolve
(
rtn
.
data
)
}
else
{
reject
(
rtn
.
data
)
}
}).
catch
(
err
=>
{
}).
catch
(
err
=>
{
reject
(
err
)
reject
(
err
)
})
})
})
})
},
},
// 获取用户相关信息
getUserInfo
({
state
,
commit
})
{
return
new
Promise
((
resolve
,
reject
)
=>
{
try
{
getUserInfo
(
state
.
token
).
then
(
res
=>
{
const
rtn
=
res
.
data
if
(
rtn
.
status
==
0
){
commit
(
'setAvatar'
,
"https://file.iviewui.com/dist/a0e88e83800f138b94d2414621bd9704.png"
)
commit
(
'setUserName'
,
rtn
.
data
.
userName
)
commit
(
'setUserId'
,
rtn
.
data
.
id
)
commit
(
'setAccess'
,
[
'super_admin'
,
'admin'
])
commit
(
'setHasGetInfo'
,
true
)
rtn
.
data
.
access
=
[
'super_admin'
,
'admin'
]
resolve
(
rtn
.
data
)
}
else
{
reject
(
rtn
.
data
)
}
})
}
catch
(
error
)
{
reject
(
error
)
}
})
},
// 退出登录
// 退出登录
handleLogOut
({
state
,
commit
})
{
handleLogOut
({
state
,
commit
})
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
...
@@ -105,26 +138,6 @@ export default {
...
@@ -105,26 +138,6 @@ export default {
// resolve()
// resolve()
})
})
},
},
// 获取用户相关信息
getUserInfo
({
state
,
commit
})
{
return
new
Promise
((
resolve
,
reject
)
=>
{
try
{
getUserInfo
(
state
.
token
).
then
(
res
=>
{
const
data
=
res
.
data
commit
(
'setAvatar'
,
data
.
avatar
)
commit
(
'setUserName'
,
data
.
name
)
commit
(
'setUserId'
,
data
.
user_id
)
commit
(
'setAccess'
,
data
.
access
)
commit
(
'setHasGetInfo'
,
true
)
resolve
(
data
)
}).
catch
(
err
=>
{
reject
(
err
)
})
}
catch
(
error
)
{
reject
(
error
)
}
})
},
// 此方法用来获取未读消息条数,接口只返回数值,不返回消息列表
// 此方法用来获取未读消息条数,接口只返回数值,不返回消息列表
getUnreadMessageCount
({
state
,
commit
})
{
getUnreadMessageCount
({
state
,
commit
})
{
getUnreadCount
().
then
(
res
=>
{
getUnreadCount
().
then
(
res
=>
{
...
...
iview-admin/src/view/components/tables/tables.vue
→
iview-admin/src/view/components/tables/
biz
tables.vue
View file @
59f0b415
...
@@ -20,6 +20,7 @@
...
@@ -20,6 +20,7 @@
editable
editable
searchable
searchable
search-place=
"top"
search-place=
"top"
:loading=
"tblloading"
highlightRow
highlightRow
v-model=
"tableData"
v-model=
"tableData"
:columns=
"colswithauth"
:columns=
"colswithauth"
...
@@ -27,8 +28,9 @@
...
@@ -27,8 +28,9 @@
@
on-exec=
"doexec"
@
on-exec=
"doexec"
@
on-select=
"onsels"
@
on-select=
"onsels"
@
on-adv-search=
"advsearch"
@
on-adv-search=
"advsearch"
:formatCol=
"formatCol"
>
>
<
template
v-slot:tblbtnarea=
"slotProps"
>
<
template
v-slot:tblbtnarea=
"slotProps"
>
<Button
<Button
v-for=
"bt in onlistbtns"
v-for=
"bt in onlistbtns"
:key=
"bt.key"
:key=
"bt.key"
...
@@ -83,9 +85,9 @@
...
@@ -83,9 +85,9 @@
<
script
>
<
script
>
import
Tables
from
"_c/tables"
;
import
Tables
from
"_c/tables"
;
import
Forms
from
"./forms/forms"
;
import
Forms
from
"./forms/forms"
;
import
{
getTableData
}
from
"@/api/data"
;
import
{
getTableData
,
saveFormData
,
deleteData
,
bulkDeleteData
}
from
"@/api/data"
;
export
default
{
export
default
{
name
:
"
tables_page
"
,
name
:
"
biztables
"
,
components
:
{
components
:
{
Tables
,
Tables
,
Forms
Forms
...
@@ -114,18 +116,23 @@ export default {
...
@@ -114,18 +116,23 @@ export default {
default
()
{
default
()
{
return
[];
return
[];
}
}
}
},
formatCol
:{
type
:
Function
,
default
(){
return
(
row
,
key
,
index
)
=>
row
[
key
]
}
},
},
},
data
()
{
data
()
{
this
.
packageName
=
"auth"
;
this
.
metaName
=
"user_info"
;
return
{
return
{
tblloading
:
false
,
metainfo
:
this
.
$store
.
getters
[
this
.
metaName
],
metainfo
:
this
.
$store
.
getters
[
this
.
metaName
],
tableData
:
[],
tableData
:
[],
isdel
:
false
,
isdel
:
false
,
modal_loading
:
false
,
modal_loading
:
false
,
currentRow
:
null
,
currentRow
:
null
,
currentSels
:
null
,
currentSels
:
[]
,
pageInfo
:
{
pageInfo
:
{
pageNo
:
1
,
pageNo
:
1
,
pageSize
:
10
,
pageSize
:
10
,
...
@@ -134,7 +141,7 @@ export default {
...
@@ -134,7 +141,7 @@ export default {
searchModel
:
{},
searchModel
:
{},
showsearch
:
false
,
showsearch
:
false
,
showedform
:
false
,
showedform
:
false
,
fm_status
:
"normal"
,
fm_status
:
"normal"
,
sum_fields
:
this
.
sumfields
?
this
.
sumfields
:
[],
sum_fields
:
this
.
sumfields
?
this
.
sumfields
:
[],
avg_fields
:
this
.
avgfields
?
this
.
avgfields
:
[],
avg_fields
:
this
.
avgfields
?
this
.
avgfields
:
[],
...
@@ -142,10 +149,16 @@ export default {
...
@@ -142,10 +149,16 @@ export default {
?
this
.
calcfields
?
this
.
calcfields
:
[{
label
:
"余额"
,
value
:
1000
}],
:
[{
label
:
"余额"
,
value
:
1000
}],
sumdata
:
{},
sumdata
:
{},
avgdata
:
{}
avgdata
:
{},
clickcount
:
{
save
:
0
},
isrowdel
:
true
};
};
},
},
methods
:
{
methods
:
{
deepclone
(
objin
)
{
let
rtnstr
=
JSON
.
stringify
(
objin
);
return
JSON
.
parse
(
rtnstr
);
},
onpagechange
()
{
onpagechange
()
{
this
.
fetchData
();
this
.
fetchData
();
},
},
...
@@ -171,43 +184,118 @@ export default {
...
@@ -171,43 +184,118 @@ export default {
this
.
fetchData
();
this
.
fetchData
();
},
},
onsels
(
sels
,
lastsel
)
{
onsels
(
sels
,
lastsel
)
{
this
.
currentSels
=
currentSels
;
console
.
log
(
"dddddddddddddddddddddddddddd"
)
;
this
.
current
Row
=
lastsel
;
this
.
current
Sels
=
sels
;
},
},
delpost
()
{
delpost
()
{
let
url
=
""
if
(
this
.
isrowdel
){
//行删除
let
url
=
this
.
buildUrl
(
"delete"
)
let
data
=
{
id
:
this
.
currentRow
.
id
}
deleteData
(
url
,
data
).
then
(
res
=>
{
if
(
res
.
data
.
data
.
status
==
0
){
this
.
$Message
.
success
(
"当前记录已经成功删除."
);
this
.
fetchData
()
}
else
{
this
.
$Message
.
success
(
"当前记录删除失败,请重试或联系管理员."
);
}
})
}
else
{
//多行删除
let
url
=
this
.
buildUrl
(
"bulkDelete"
)
let
ids
=
this
.
currentSels
.
map
(
item
=>
{
return
item
.
id
})
bulkDeleteData
(
url
,
ids
).
then
(
res
=>
{
if
(
res
.
data
.
data
.
status
==
0
){
this
.
$Message
.
success
(
"批量删除已经成功完成."
);
this
.
currentSels
=
[]
this
.
fetchData
()
}
else
{
this
.
$Message
.
success
(
"当前删除失败,请重试或联系管理员."
);
}
})
}
this
.
modal_loading
=
true
;
this
.
modal_loading
=
true
;
setTimeout
(()
=>
{
setTimeout
(()
=>
{
this
.
isdel
=
false
;
this
.
isdel
=
false
;
this
.
modal_loading
=
false
;
this
.
modal_loading
=
false
;
this
.
currentRow
=
null
;
this
.
currentRow
=
null
;
},
20
00
);
},
5
00
);
},
},
doexec
(
key
,
row
)
{
doexec
(
key
,
row
)
{
if
(
key
==
"delete"
)
{
if
(
key
==
"delete"
)
{
this
.
currentRow
=
row
;
this
.
currentRow
=
row
;
this
.
isdel
=
true
;
this
.
isdel
=
true
;
this
.
isrowdel
=
true
;
}
if
(
key
==
"deletes"
){
if
(
this
.
currentSels
.
length
==
0
){
}
else
{
this
.
isdel
=
true
;
this
.
isrowdel
=
false
;
}
}
}
if
(
key
==
"edit"
)
{
if
(
key
==
"edit"
)
{
this
.
fm_status
=
"edit"
this
.
fm_status
=
"edit"
;
this
.
showedform
=
true
;
this
.
showedform
=
true
;
setTimeout
(()
=>
{
this
.
$refs
.
edform
.
formModel
=
this
.
deepclone
(
row
);
},
100
);
}
}
if
(
key
==
"create"
)
{
if
(
key
==
"create"
)
{
this
.
fm_status
=
"create"
this
.
fm_status
=
"create"
;
this
.
showedform
=
true
;
this
.
showedform
=
true
;
}
}
if
(
key
==
"save"
)
{
if
(
key
==
"save"
)
{
this
.
fm_status
=
"normal"
if
(
this
.
clickcount
[
"save"
]
==
0
)
{
this
.
showedform
=
false
;
this
.
clickcount
[
"save"
]
=
this
.
clickcount
[
"save"
]
+
1
;
let
url
=
""
;
let
msg
=
""
;
if
(
this
.
fm_status
==
"edit"
)
{
url
=
this
.
buildUrl
(
"update"
);
msg
=
"当前的更新操作已成功."
;
}
if
(
this
.
fm_status
==
"create"
)
{
url
=
this
.
buildUrl
(
"create"
);
msg
=
"当前的新增操作已成功."
;
}
saveFormData
(
url
,
row
).
then
(
res
=>
{
let
rtn
=
res
.
data
console
.
log
(
rtn
)
if
(
rtn
.
status
==
0
)
{
this
.
$refs
.
edform
.
resetForm
();
this
.
fm_status
=
"normal"
;
this
.
showedform
=
false
;
this
.
clickcount
[
"save"
]
=
this
.
clickcount
[
"save"
]
-
1
;
this
.
$Message
.
success
(
msg
);
this
.
fetchData
()
}
else
{
this
.
fm_status
=
"normal"
;
this
.
showedform
=
false
;
this
.
$Message
.
error
(
"当前操作失败,请稍后重试或联系管理员."
);
this
.
fetchData
()
}
});
}
else
{
this
.
$Message
.
warning
(
"当前进行了重复的无效操作."
);
}
}
}
if
(
key
==
"cancel"
)
{
if
(
key
==
"cancel"
)
{
this
.
fm_status
=
"normal"
this
.
fm_status
=
"normal"
;
this
.
showedform
=
false
;
this
.
showedform
=
false
;
this
.
$refs
.
edform
.
resetForm
();
if
(
this
.
clickcount
[
"save"
]
==
1
){
this
.
clickcount
[
"save"
]
=
this
.
clickcount
[
"save"
]
-
1
}
}
}
if
(
key
==
"export"
)
{
if
(
key
==
"export"
)
{
this
.
exportExcel
()
this
.
exportExcel
()
;
}
}
if
(
key
==
"adv-search"
)
{
if
(
key
==
"adv-search"
)
{
this
.
advsearch
()
this
.
advsearch
()
;
}
}
console
.
log
(
key
,
row
);
console
.
log
(
key
,
row
);
},
},
...
@@ -227,21 +315,29 @@ export default {
...
@@ -227,21 +315,29 @@ export default {
filename
:
`table-
${
new
Date
().
valueOf
()}
.csv`
filename
:
`table-
${
new
Date
().
valueOf
()}
.csv`
});
});
},
},
fetchData
(
q
)
{
buildUrl
(
methodName
)
{
let
modelname
=
this
.
metaName
.
split
(
"_"
);
let
modelname
=
this
.
metaName
.
split
(
"_"
)[
0
];
console
.
log
(
modelname
,
">>>>>>>>>>>>>>>>>>"
)
let
url
=
let
url
=
"/web/"
+
"/web/"
+
this
.
packageName
+
"/"
+
modelname
+
"Ctl/"
+
methodName
;
this
.
packageName
+
"/"
+
return
url
;
modelname
+
},
"Ctl/"
+
fetchData
(
q
)
{
"findAndCountAll"
;
let
url
=
this
.
buildUrl
(
"findAndCountAll"
);
console
.
log
(
url
);
let
query
=
this
.
buildQuery
(
q
);
let
query
=
this
.
buildQuery
(
q
);
this
.
tblloading
=
true
getTableData
(
url
,
query
).
then
(
res
=>
{
getTableData
(
url
,
query
).
then
(
res
=>
{
console
.
log
(
res
.
data
);
let
rtn
=
res
.
data
this
.
tableData
=
res
.
data
.
data
.
results
.
rows
;
if
(
rtn
.
status
==
0
){
this
.
pageInfo
.
total
=
res
.
data
.
data
.
results
.
count
;
console
.
log
(
res
.
data
);
this
.
tableData
=
rtn
.
data
.
results
.
rows
;
this
.
pageInfo
.
total
=
rtn
.
data
.
results
.
count
;
this
.
tblloading
=
false
}
else
{
//this.$Message.error("查询数据有问题,请稍后重试或联系管理员");
this
.
tblloading
=
false
}
});
});
}
}
},
},
...
@@ -286,6 +382,7 @@ export default {
...
@@ -286,6 +382,7 @@ export default {
});
});
this
.
metainfo
[
"list"
].
forEach
(
c
=>
{
this
.
metainfo
[
"list"
].
forEach
(
c
=>
{
if
(
c
.
key
==
"handle"
)
{
if
(
c
.
key
==
"handle"
)
{
c
.
button
=
[]
c
.
button
.
push
(...
listbtns
);
c
.
button
.
push
(...
listbtns
);
}
}
});
});
...
...
iview-admin/src/view/components/tables/forms/childs/modelselects.vue
View file @
59f0b415
...
@@ -4,10 +4,11 @@
...
@@ -4,10 +4,11 @@
style=
"width:150px"
style=
"width:150px"
@
on-change=
"onchange"
@
on-change=
"onchange"
clearable
clearable
transfer
:multiple=
"isMulti"
:multiple=
"isMulti"
:placeholder=
"placeHolder"
:placeholder=
"placeHolder"
>
>
<Option
v-for=
"item in
datasource
"
:value=
"item.value"
:key=
"item.value"
>
{{
item
.
label
}}
</Option>
<Option
v-for=
"item in
transdatas
"
:value=
"item.value"
:key=
"item.value"
>
{{
item
.
label
}}
</Option>
</Select>
</Select>
</
template
>
</
template
>
<
script
>
<
script
>
...
@@ -31,6 +32,21 @@ export default {
...
@@ -31,6 +32,21 @@ export default {
this
.
sels
=
nv
;
this
.
sels
=
nv
;
}
}
},
},
computed
:{
transdatas
(){
if
(
this
.
labelField
&&
this
.
valueField
){
let
mrtn
=
this
.
datasource
.
map
(
item
=>
{
return
{
value
:
item
[
this
.
valueField
],
label
:
item
[
this
.
labelField
]
}
})
return
mrtn
}
else
{
return
this
.
datasource
}
}
},
methods
:
{
methods
:
{
onchange
(
v
)
{
onchange
(
v
)
{
console
.
log
(
"============="
,
v
);
console
.
log
(
"============="
,
v
);
...
@@ -39,11 +55,13 @@ export default {
...
@@ -39,11 +55,13 @@ export default {
initDataSource
(
slike
)
{
initDataSource
(
slike
)
{
// this.datasource=[]
// this.datasource=[]
let
query
=
{};
let
query
=
{};
let
url
=
"/web/common/"
+
this
.
refModel
+
"Ctl/refQuery"
;
let
p
=
this
.
refModel
.
split
(
"."
).
join
(
"/"
)
let
url
=
"/web/"
+
p
+
"Ctl/refQuery"
;
query
.
fields
=
[
this
.
labelField
,
this
.
valueField
];
query
.
fields
=
[
this
.
labelField
,
this
.
valueField
];
query
.
likestr
=
slike
;
query
.
likestr
=
slike
;
query
.
refwhere
=
this
.
refwhere
?
this
.
refwhere
:
{};
query
.
refwhere
=
this
.
refwhere
?
this
.
refwhere
:
{};
refQuery
(
url
,
query
).
then
(
r
=>
{
refQuery
(
url
,
query
).
then
(
r
=>
{
console
.
log
(
">>>>>>>>>>>>>>>>>>>>..=================="
)
if
(
r
.
data
){
if
(
r
.
data
){
this
.
datasource
=
r
.
data
;
this
.
datasource
=
r
.
data
;
}
}
...
...
iview-admin/src/view/components/tables/forms/forms.vue
View file @
59f0b415
...
@@ -2,14 +2,14 @@
...
@@ -2,14 +2,14 @@
<div>
<div>
<Card
style=
"height:100%"
>
<Card
style=
"height:100%"
>
<p
slot=
"title"
>
<p
slot=
"title"
>
<Icon
type=
"ios-
film-outline"
></Icon
>
<Icon
type=
"ios-
paper-outline"
/
>
{{
forminfo
.
name
}}
{{
forminfo
.
name
}}
</p>
</p>
<Form
ref=
"ofm"
:model=
"formModel"
:rules=
"metaRules"
>
<Form
ref=
"ofm"
:model=
"formModel"
:rules=
"metaRules"
>
<template
v-if=
"forminfo.lists && forminfo.lists.length>0"
>
<template
v-if=
"forminfo.lists && forminfo.lists.length>0"
>
<Tabs
value=
"main"
>
<Tabs
value=
"main"
>
<TabPane
label=
"表单信息"
name=
"main"
>
<TabPane
label=
"表单信息"
name=
"main"
>
<template
v-for=
"group in forminfo.main"
>
<template
v-for=
"group in forminfo.main"
>
<Divider
orientation=
"left"
:key=
"group.title"
>
{{
group
.
title
}}
</Divider>
<Divider
orientation=
"left"
:key=
"group.title"
>
{{
group
.
title
}}
</Divider>
<Row
type=
"flex"
justify=
"space-around"
align=
"top"
:key=
"'r'+group.title"
>
<Row
type=
"flex"
justify=
"space-around"
align=
"top"
:key=
"'r'+group.title"
>
<Col
:xs=
"2"
:sm=
"4"
:md=
"6"
:lg=
"8"
v-for=
"ctl in group.ctls"
:key=
"ctl.prop"
>
<Col
:xs=
"2"
:sm=
"4"
:md=
"6"
:lg=
"8"
v-for=
"ctl in group.ctls"
:key=
"ctl.prop"
>
...
@@ -34,6 +34,8 @@
...
@@ -34,6 +34,8 @@
:refModel=
"ctl.refModel"
:refModel=
"ctl.refModel"
:placeHolder=
"ctl.placeHolder"
:placeHolder=
"ctl.placeHolder"
:isMulti=
"ctl.isMulti"
:isMulti=
"ctl.isMulti"
:labelField=
"ctl.labelField"
:valueField=
"ctl.valueField"
></ModelSelect>
></ModelSelect>
</
template
>
</
template
>
<
template
v-if=
"ctl.type=='remote-select'"
>
<
template
v-if=
"ctl.type=='remote-select'"
>
...
@@ -42,6 +44,8 @@
...
@@ -42,6 +44,8 @@
:refModel=
"ctl.refModel"
:refModel=
"ctl.refModel"
:placeHolder=
"ctl.placeHolder"
:placeHolder=
"ctl.placeHolder"
:isMulti=
"ctl.isMulti"
:isMulti=
"ctl.isMulti"
:labelField=
"ctl.labelField"
:valueField=
"ctl.valueField"
></RemoteSelect>
></RemoteSelect>
</
template
>
</
template
>
<
template
v-if=
"ctl.type=='switch'"
>
<
template
v-if=
"ctl.type=='switch'"
>
...
@@ -74,9 +78,12 @@
...
@@ -74,9 +78,12 @@
</Row>
</Row>
</template>
</template>
</TabPane>
</TabPane>
<TabPane
v-for=
"lst in forminfo.lists"
:key=
"lst.refBizCode"
:label=
"lst.title"
:name=
"lst.refBizCode"
>
<TabPane
标签二的内容
v-for=
"lst in forminfo.lists"
</TabPane>
:key=
"lst.refBizCode"
:label=
"lst.title"
:name=
"lst.refBizCode"
>
标签二的内容
</TabPane>
</Tabs>
</Tabs>
</template>
</template>
<
template
v-else
v-for=
"group in forminfo.main"
>
<
template
v-else
v-for=
"group in forminfo.main"
>
...
@@ -145,9 +152,7 @@
...
@@ -145,9 +152,7 @@
</template>
</template>
</Form>
</Form>
<div
class=
"form-footer"
>
<div
class=
"form-footer"
>
<slot
:fm=
"formModel"
>
<slot
:fm=
"formModel"
></slot>
</slot>
</div>
</div>
</Card>
</Card>
</div>
</div>
...
@@ -202,8 +207,8 @@ export default {
...
@@ -202,8 +207,8 @@ export default {
}
}
},
},
methods
:
{
methods
:
{
resetForm
(){
resetForm
()
{
this
.
$refs
.
ofm
.
resetFields
()
this
.
$refs
.
ofm
.
resetFields
();
},
},
validatex
(
rule
,
value
,
callback
)
{
validatex
(
rule
,
value
,
callback
)
{
if
(
this
.
refvalidatemethod
)
{
if
(
this
.
refvalidatemethod
)
{
...
@@ -256,14 +261,14 @@ export default {
...
@@ -256,14 +261,14 @@ export default {
</
script
>
</
script
>
<
style
>
<
style
>
.form-footer
{
.form-footer
{
width
:
100%
;
width
:
100%
;
position
:
absolute
;
position
:
absolute
;
bottom
:
0
;
bottom
:
0
;
left
:
0
;
left
:
0
;
border-top
:
1px
solid
#e8e8e8
;
border-top
:
1px
solid
#e8e8e8
;
padding
:
10px
16px
;
padding
:
10px
16px
;
text-align
:
right
;
text-align
:
right
;
background
:
#fff
;
background
:
#fff
;
}
}
</
style
>
</
style
>
iview-admin/src/view/login/login.vue
View file @
59f0b415
...
@@ -29,11 +29,14 @@ export default {
...
@@ -29,11 +29,14 @@ export default {
]),
]),
handleSubmit
({
userName
,
password
})
{
handleSubmit
({
userName
,
password
})
{
this
.
handleLogin
({
userName
,
password
}).
then
(
res
=>
{
this
.
handleLogin
({
userName
,
password
}).
then
(
res
=>
{
this
.
getUserInfo
().
then
(
res
=>
{
this
.
$router
.
push
({
this
.
$router
.
push
({
name
:
this
.
$config
.
homeName
name
:
this
.
$config
.
homeName
})
})
})
}).
catch
(
err
=>
{
this
.
$Notice
.
error
({
title
:
'系统通知'
,
desc
:
'账号或密码有误!'
});
})
})
}
}
}
}
...
...
iview-admin/src/view/userinfo/userinfo_page.vue
0 → 100644
View file @
59f0b415
<
template
>
<div>
<BizTable
:formatCol=
"formatCol"
metaName=
"user_info"
packageName=
"auth"
isMulti
></BizTable>
</div>
</
template
>
<
script
>
import
BizTable
from
"../components/tables/biztables"
export
default
{
name
:
'userinfo_page'
,
data
()
{
return
{
}
},
components
:
{
BizTable
},
methods
:{
formatCol
(
row
,
key
,
index
){
if
(
key
==
"roleName"
){
let
rolestr
=
row
.
Roles
.
map
(
item
=>
item
.
name
).
join
(
","
)
row
.
roles
=
row
.
Roles
.
map
(
item
=>
item
.
id
)
return
`<span style="color:red">rolestr</span>`
}
return
row
[
key
]
}
}
}
</
script
>
<
style
>
</
style
>
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