Merge branch 'dev-2.0' of https://git.mesalab.cn/nezha/nezha-fronted into dev-2.0
This commit is contained in:
@@ -195,5 +195,6 @@ export const fromRoute = {
|
|||||||
project: 'project',
|
project: 'project',
|
||||||
endpointQuery: 'endpointQuery',
|
endpointQuery: 'endpointQuery',
|
||||||
terminalLog: 'terminalLog',
|
terminalLog: 'terminalLog',
|
||||||
operationLog: 'operationLog'
|
operationLog: 'operationLog',
|
||||||
|
menus: 'menus'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ const cn = {
|
|||||||
alert: '告警',
|
alert: '告警',
|
||||||
asset: '资产',
|
asset: '资产',
|
||||||
config: '设置',
|
config: '设置',
|
||||||
|
administration: '行政管理',
|
||||||
|
configuration: '设置',
|
||||||
create: '新增',
|
create: '新增',
|
||||||
edit: '编辑',
|
edit: '编辑',
|
||||||
delete: '删除',
|
delete: '删除',
|
||||||
@@ -836,7 +838,7 @@ const cn = {
|
|||||||
response: '响应'
|
response: '响应'
|
||||||
},
|
},
|
||||||
mib: {
|
mib: {
|
||||||
mib: 'SNMP MIB',
|
mib: 'MIB文件',
|
||||||
fileName: '文件名称',
|
fileName: '文件名称',
|
||||||
remark: '备注',
|
remark: '备注',
|
||||||
updateUser: '更新用户',
|
updateUser: '更新用户',
|
||||||
@@ -964,14 +966,14 @@ const cn = {
|
|||||||
createAssetState: '新增资产状态',
|
createAssetState: '新增资产状态',
|
||||||
editAssetState: '编辑资产状态'
|
editAssetState: '编辑资产状态'
|
||||||
},
|
},
|
||||||
assetMeta: {
|
assetLabel: {
|
||||||
example: '示例',
|
example: '示例',
|
||||||
assetMeta: '资产元数据',
|
assetLabel: '资产标签',
|
||||||
all: '全部',
|
all: '全部',
|
||||||
addGroup: '创建分组',
|
addGroup: '创建分组',
|
||||||
editGroup: '编辑分组',
|
editGroup: '编辑分组',
|
||||||
addMeta: '创建Meta',
|
addLabel: '创建标签',
|
||||||
editMeta: '编辑Meta',
|
editLabel: '编辑标签',
|
||||||
groupName: '名称',
|
groupName: '名称',
|
||||||
key: '键名',
|
key: '键名',
|
||||||
name: '名称',
|
name: '名称',
|
||||||
@@ -980,9 +982,9 @@ const cn = {
|
|||||||
display: '显示',
|
display: '显示',
|
||||||
type: '类型',
|
type: '类型',
|
||||||
params: '参数',
|
params: '参数',
|
||||||
updateMeta: '编辑Meta',
|
updateLabel: '编辑标签',
|
||||||
deleteMeta: '删除 Meta',
|
deleteLabel: '删除标签',
|
||||||
infoMeta: 'Meta 信息',
|
infoLabel: '标签信息',
|
||||||
text: '单行文本',
|
text: '单行文本',
|
||||||
multitext: '多行文本',
|
multitext: '多行文本',
|
||||||
textarea: '文本域',
|
textarea: '文本域',
|
||||||
@@ -1005,7 +1007,7 @@ const cn = {
|
|||||||
decimals: '精度',
|
decimals: '精度',
|
||||||
moreOptionsError: '选项最多20条',
|
moreOptionsError: '选项最多20条',
|
||||||
onlyOptionError: '至少需要一个选项',
|
onlyOptionError: '至少需要一个选项',
|
||||||
metaOptionNull: '请填写选项信息'
|
labelOptionNull: '请填写选项信息'
|
||||||
},
|
},
|
||||||
exprTemp: {
|
exprTemp: {
|
||||||
exprTemp: 'expression模板',
|
exprTemp: 'expression模板',
|
||||||
@@ -1400,216 +1402,10 @@ const cn = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
buttons: {
|
buttons: {
|
||||||
panel: {
|
view: '查看',
|
||||||
view: 'View panel',
|
add: '新增',
|
||||||
toAdd: 'Add panel',
|
edit: '修改',
|
||||||
toEdit: 'Edit panel',
|
delete: '删除'
|
||||||
delete: 'Delete panel',
|
|
||||||
save: 'Save panel',
|
|
||||||
chart: {
|
|
||||||
toAdd: 'Add chart',
|
|
||||||
import: 'Import chart',
|
|
||||||
export: 'Export chart',
|
|
||||||
toEdit: 'Edit chart',
|
|
||||||
save: 'Save chart',
|
|
||||||
delete: 'Delete chart',
|
|
||||||
duplicate: 'Duplicate chart'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
explore: {
|
|
||||||
view: 'View explore',
|
|
||||||
toAdd: 'Add chart',
|
|
||||||
save: 'Save chart'
|
|
||||||
},
|
|
||||||
asset: {
|
|
||||||
view: 'View asset',
|
|
||||||
toAdd: 'Add asset',
|
|
||||||
toEdit: 'Edit asset',
|
|
||||||
toBatchEdit: 'Batch edit asset',
|
|
||||||
delete: 'Delete asset',
|
|
||||||
save: 'Save asset',
|
|
||||||
import: 'Import asset',
|
|
||||||
export: 'Export asset',
|
|
||||||
connect: 'Connect to asset',
|
|
||||||
endpoint: {
|
|
||||||
view: 'View endpoint',
|
|
||||||
toAdd: 'Add endpoint',
|
|
||||||
toEdit: 'Edit endpoint',
|
|
||||||
delete: 'Delete endpoint',
|
|
||||||
save: 'Save endpoint',
|
|
||||||
import: 'Import endpoint',
|
|
||||||
export: 'Export endpoint'
|
|
||||||
},
|
|
||||||
alerts: {
|
|
||||||
view: 'View alerts',
|
|
||||||
delete: 'Delete alerts',
|
|
||||||
export: 'Export alerts'
|
|
||||||
},
|
|
||||||
chart: {
|
|
||||||
toAdd: 'Add chart',
|
|
||||||
toEdit: 'Edit chart',
|
|
||||||
delete: 'Delete chart',
|
|
||||||
save: 'Save chart',
|
|
||||||
import: 'Import chart',
|
|
||||||
export: 'Export chart',
|
|
||||||
duplicate: 'Duplicate chart',
|
|
||||||
sync: 'Sync chart'
|
|
||||||
},
|
|
||||||
vendor: {
|
|
||||||
toAdd: 'Add vendor',
|
|
||||||
save: 'Save chart'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
project: {
|
|
||||||
view: 'View project',
|
|
||||||
toEdit: 'Edit project',
|
|
||||||
delete: 'Delete project',
|
|
||||||
save: 'Save project',
|
|
||||||
topo: {
|
|
||||||
edit: 'Edit topo',
|
|
||||||
save: 'Save topo'
|
|
||||||
},
|
|
||||||
module: {
|
|
||||||
toEdit: 'Edit module',
|
|
||||||
delete: 'Delete module',
|
|
||||||
save: 'Save module'
|
|
||||||
},
|
|
||||||
endpoint: {
|
|
||||||
toAdd: 'Add endpoint',
|
|
||||||
toEdit: 'Edit endpoint',
|
|
||||||
delete: 'Delete endpoint',
|
|
||||||
save: 'Save endpoint',
|
|
||||||
import: 'Import endpoint',
|
|
||||||
export: 'Export endpoint',
|
|
||||||
alerts: {
|
|
||||||
view: 'View alerts',
|
|
||||||
delete: 'Delete alerts',
|
|
||||||
export: 'Export alerts'
|
|
||||||
},
|
|
||||||
query: {
|
|
||||||
view: 'View query',
|
|
||||||
toAdd: 'Add chart',
|
|
||||||
save: 'Save chart'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
message: {
|
|
||||||
view: 'View alerts',
|
|
||||||
delete: 'Delete alerts',
|
|
||||||
export: 'Export alerts'
|
|
||||||
},
|
|
||||||
rule: {
|
|
||||||
view: 'View rule',
|
|
||||||
toAdd: 'Add rule',
|
|
||||||
toEdit: 'Edit rule',
|
|
||||||
delete: 'Delete rule',
|
|
||||||
save: 'Save rule',
|
|
||||||
alerts: {
|
|
||||||
view: 'View alerts',
|
|
||||||
delete: 'Delete alerts',
|
|
||||||
export: 'Export alerts'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
account: {
|
|
||||||
view: 'View account',
|
|
||||||
toAdd: 'Add account',
|
|
||||||
toEdit: 'Edit account',
|
|
||||||
delete: 'Delete account',
|
|
||||||
save: 'Save account'
|
|
||||||
},
|
|
||||||
role: {
|
|
||||||
view: 'View role',
|
|
||||||
toAdd: 'Add role',
|
|
||||||
toEdit: 'Edit role',
|
|
||||||
delete: 'Delete role',
|
|
||||||
save: 'Save role'
|
|
||||||
},
|
|
||||||
prom: {
|
|
||||||
view: 'View prom',
|
|
||||||
toAdd: 'Add prom',
|
|
||||||
toEdit: 'Edit prom',
|
|
||||||
delete: 'Delete prom',
|
|
||||||
save: 'Save prom'
|
|
||||||
},
|
|
||||||
dc: {
|
|
||||||
view: 'View data center',
|
|
||||||
toAdd: 'Add data center',
|
|
||||||
toEdit: 'Edit data center',
|
|
||||||
delete: 'Delete data center',
|
|
||||||
save: 'Save data center',
|
|
||||||
trafficSetting: 'Traffic setting',
|
|
||||||
trafficSettingSave: 'Save traffic setting',
|
|
||||||
cabinet: {
|
|
||||||
view: 'View cabinet',
|
|
||||||
toAdd: 'Add cabinet',
|
|
||||||
toEdit: 'Edit cabinet',
|
|
||||||
delete: 'Delete cabinet',
|
|
||||||
save: 'Save cabinet'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
model: {
|
|
||||||
view: 'View model',
|
|
||||||
toAdd: 'Add model',
|
|
||||||
toEdit: 'Edit model',
|
|
||||||
delete: 'Delete model',
|
|
||||||
save: 'Save model',
|
|
||||||
panel: 'View panel',
|
|
||||||
chart: {
|
|
||||||
view: 'View chart',
|
|
||||||
toAdd: 'Add chart',
|
|
||||||
toEdit: 'Edit chart',
|
|
||||||
delete: 'Delete chart',
|
|
||||||
save: 'Save chart',
|
|
||||||
import: 'Import chart',
|
|
||||||
export: 'Export chart',
|
|
||||||
duplicate: 'Duplicate chart',
|
|
||||||
sync: 'Sync chart'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
snmp: {
|
|
||||||
view: 'View mib file',
|
|
||||||
toAdd: 'Add mib file',
|
|
||||||
toEdit: 'Edit mib file',
|
|
||||||
delete: 'Delete mib file',
|
|
||||||
save: 'Save mib file',
|
|
||||||
download: 'Download mib file',
|
|
||||||
browserExport: 'Export mib browser',
|
|
||||||
browserView: 'View mib browser'
|
|
||||||
},
|
|
||||||
system: {
|
|
||||||
basic: 'Basic save',
|
|
||||||
email: 'Email save',
|
|
||||||
terminal: 'Terminal save',
|
|
||||||
ldap: 'LDAP save',
|
|
||||||
notification: {
|
|
||||||
add: 'Add notification',
|
|
||||||
toEdit: 'Edit notification',
|
|
||||||
delete: 'Delete notification',
|
|
||||||
save: 'Save notification'
|
|
||||||
},
|
|
||||||
link: {
|
|
||||||
add: 'Add link',
|
|
||||||
toEdit: 'Edit link',
|
|
||||||
delete: 'Delete link',
|
|
||||||
save: 'Save link'
|
|
||||||
},
|
|
||||||
reset: 'Reset system config'
|
|
||||||
},
|
|
||||||
header: {
|
|
||||||
header: 'Header',
|
|
||||||
link: 'Link',
|
|
||||||
terminal: 'Terminal',
|
|
||||||
terminalUpload: 'Upload in terminal',
|
|
||||||
terminalDownload: 'Download in terminal',
|
|
||||||
add: {
|
|
||||||
view: 'View add button',
|
|
||||||
project: 'Add project',
|
|
||||||
module: 'Add module',
|
|
||||||
endpoint: 'Add endpoint',
|
|
||||||
rule: 'Add rule',
|
|
||||||
asset: 'Add asset'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
...zhLocale
|
...zhLocale
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ const en = {
|
|||||||
alert: 'Alerts', // "告警"
|
alert: 'Alerts', // "告警"
|
||||||
asset: 'Assets', // '资产'
|
asset: 'Assets', // '资产'
|
||||||
config: 'Settings', // '设置'
|
config: 'Settings', // '设置'
|
||||||
|
administration: 'Administration',
|
||||||
|
configuration: 'configuration',
|
||||||
create: 'New', // '新增'
|
create: 'New', // '新增'
|
||||||
edit: 'Edit', // '编辑'
|
edit: 'Edit', // '编辑'
|
||||||
delete: 'Delete', // '删除'
|
delete: 'Delete', // '删除'
|
||||||
@@ -839,7 +841,7 @@ const en = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
mib: {
|
mib: {
|
||||||
mib: 'SNMP MIB',
|
mib: 'MIB file',
|
||||||
fileName: 'File name',
|
fileName: 'File name',
|
||||||
remark: 'Remark',
|
remark: 'Remark',
|
||||||
updateUser: 'Update user',
|
updateUser: 'Update user',
|
||||||
@@ -967,14 +969,14 @@ const en = {
|
|||||||
createAssetState: 'Create asset state',
|
createAssetState: 'Create asset state',
|
||||||
editAssetState: 'Edit asset state'
|
editAssetState: 'Edit asset state'
|
||||||
},
|
},
|
||||||
assetMeta: {
|
assetLabel: {
|
||||||
example: 'Example',
|
example: 'Example',
|
||||||
assetMeta: 'Asset meta',
|
assetLabel: 'Asset labels',
|
||||||
all: 'All',
|
all: 'All',
|
||||||
addGroup: 'Create group',
|
addGroup: 'Create group',
|
||||||
editGroup: 'Edit group',
|
editGroup: 'Edit group',
|
||||||
addMeta: 'Create meta',
|
addLabel: 'Create label',
|
||||||
editMeta: 'Edit meta',
|
editLabel: 'Edit label',
|
||||||
groupName: 'Name',
|
groupName: 'Name',
|
||||||
key: 'Key',
|
key: 'Key',
|
||||||
name: 'Name',
|
name: 'Name',
|
||||||
@@ -983,9 +985,9 @@ const en = {
|
|||||||
display: 'Display',
|
display: 'Display',
|
||||||
type: 'Type',
|
type: 'Type',
|
||||||
params: 'Params',
|
params: 'Params',
|
||||||
updateMeta: 'Update Meta',
|
updateLabel: 'Update label',
|
||||||
deleteMeta: 'Delete Meta',
|
deleteLabel: 'Delete label',
|
||||||
infoMeta: 'Meta Info',
|
infoLabel: 'Label Info',
|
||||||
text: 'TEXT',
|
text: 'TEXT',
|
||||||
multitext: 'MULTITEXT',
|
multitext: 'MULTITEXT',
|
||||||
textarea: 'TEXTAREA',
|
textarea: 'TEXTAREA',
|
||||||
@@ -1008,7 +1010,7 @@ const en = {
|
|||||||
decimals: 'Decimals',
|
decimals: 'Decimals',
|
||||||
moreOptionsError: 'There are up to 20 options',
|
moreOptionsError: 'There are up to 20 options',
|
||||||
onlyOptionError: 'You need at least one option',
|
onlyOptionError: 'You need at least one option',
|
||||||
metaOptionNull: 'Please input option'
|
labelOptionNull: 'Please input option'
|
||||||
},
|
},
|
||||||
exprTemp: {
|
exprTemp: {
|
||||||
exprTemp: 'Expression template',
|
exprTemp: 'Expression template',
|
||||||
@@ -1284,230 +1286,10 @@ const en = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
buttons: {
|
buttons: {
|
||||||
panel: {
|
|
||||||
view: 'View panel',
|
|
||||||
toAdd: 'Add panel',
|
|
||||||
toEdit: 'Edit panel',
|
|
||||||
delete: 'Delete panel',
|
|
||||||
save: 'Save panel',
|
|
||||||
chart: {
|
|
||||||
toAdd: 'Add chart',
|
|
||||||
import: 'Import chart',
|
|
||||||
export: 'Export chart',
|
|
||||||
toEdit: 'Edit chart',
|
|
||||||
save: 'Save chart',
|
|
||||||
delete: 'Delete chart',
|
|
||||||
duplicate: 'Duplicate chart'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
explore: {
|
|
||||||
view: 'View explore',
|
|
||||||
toAdd: 'Add chart',
|
|
||||||
save: 'Save chart'
|
|
||||||
},
|
|
||||||
asset: {
|
|
||||||
view: 'View asset',
|
|
||||||
toAdd: 'Add asset',
|
|
||||||
toEdit: 'Edit asset',
|
|
||||||
toBatchEdit: 'Batch edit asset',
|
|
||||||
delete: 'Delete asset',
|
|
||||||
save: 'Save asset',
|
|
||||||
import: 'Import asset',
|
|
||||||
export: 'Export asset',
|
|
||||||
connect: 'Connect to asset',
|
|
||||||
endpoint: {
|
|
||||||
view: 'View endpoint',
|
|
||||||
toAdd: 'Add endpoint',
|
|
||||||
toEdit: 'Edit endpoint',
|
|
||||||
delete: 'Delete endpoint',
|
|
||||||
save: 'Save endpoint',
|
|
||||||
import: 'Import endpoint',
|
|
||||||
export: 'Export endpoint'
|
|
||||||
},
|
|
||||||
alerts: {
|
|
||||||
view: 'View alerts',
|
|
||||||
delete: 'Delete alerts',
|
|
||||||
export: 'Export alerts'
|
|
||||||
},
|
|
||||||
chart: {
|
|
||||||
toAdd: 'Add chart',
|
|
||||||
toEdit: 'Edit chart',
|
|
||||||
delete: 'Delete chart',
|
|
||||||
save: 'Save chart',
|
|
||||||
import: 'Import chart',
|
|
||||||
export: 'Export chart',
|
|
||||||
duplicate: 'Duplicate chart',
|
|
||||||
sync: 'Sync chart'
|
|
||||||
},
|
|
||||||
vendor: {
|
|
||||||
toAdd: 'Add vendor',
|
|
||||||
save: 'Save chart'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
project: {
|
|
||||||
view: 'View project',
|
|
||||||
toEdit: 'Edit project',
|
|
||||||
delete: 'Delete project',
|
|
||||||
save: 'Save project',
|
|
||||||
topo: {
|
|
||||||
edit: 'Edit topo',
|
|
||||||
save: 'Save topo'
|
|
||||||
},
|
|
||||||
module: {
|
|
||||||
toEdit: 'Edit module',
|
|
||||||
delete: 'Delete module',
|
|
||||||
save: 'Save module'
|
|
||||||
},
|
|
||||||
endpoint: {
|
|
||||||
toAdd: 'Add endpoint',
|
|
||||||
toEdit: 'Edit endpoint',
|
|
||||||
delete: 'Delete endpoint',
|
|
||||||
save: 'Save endpoint',
|
|
||||||
import: 'Import endpoint',
|
|
||||||
export: 'Export endpoint',
|
|
||||||
alerts: {
|
|
||||||
view: 'View alerts',
|
|
||||||
delete: 'Delete alerts',
|
|
||||||
export: 'Export alerts'
|
|
||||||
},
|
|
||||||
query: {
|
|
||||||
view: 'View query',
|
|
||||||
toAdd: 'Add chart',
|
|
||||||
save: 'Save chart'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
message: {
|
|
||||||
view: 'View alerts',
|
|
||||||
delete: 'Delete alerts',
|
|
||||||
export: 'Export alerts'
|
|
||||||
},
|
|
||||||
rule: {
|
|
||||||
view: 'View rule',
|
|
||||||
toAdd: 'Add rule',
|
|
||||||
toEdit: 'Edit rule',
|
|
||||||
delete: 'Delete rule',
|
|
||||||
save: 'Save rule',
|
|
||||||
alerts: {
|
|
||||||
view: 'View alerts',
|
|
||||||
delete: 'Delete alerts',
|
|
||||||
export: 'Export alerts'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
account: {
|
|
||||||
view: 'View account',
|
|
||||||
toAdd: 'Add account',
|
|
||||||
toEdit: 'Edit account',
|
|
||||||
delete: 'Delete account',
|
|
||||||
save: 'Save account'
|
|
||||||
},
|
|
||||||
role: {
|
|
||||||
view: 'View role',
|
|
||||||
toAdd: 'Add role',
|
|
||||||
toEdit: 'Edit role',
|
|
||||||
delete: 'Delete role',
|
|
||||||
save: 'Save role'
|
|
||||||
},
|
|
||||||
prom: {
|
|
||||||
view: 'View prom',
|
|
||||||
toAdd: 'Add prom',
|
|
||||||
toEdit: 'Edit prom',
|
|
||||||
delete: 'Delete prom',
|
|
||||||
save: 'Save prom'
|
|
||||||
},
|
|
||||||
dc: {
|
|
||||||
view: 'View data center',
|
|
||||||
toAdd: 'Add data center',
|
|
||||||
toEdit: 'Edit data center',
|
|
||||||
delete: 'Delete data center',
|
|
||||||
save: 'Save data center',
|
|
||||||
trafficSetting: 'Traffic setting',
|
|
||||||
trafficSettingSave: 'Save traffic setting',
|
|
||||||
cabinet: {
|
|
||||||
view: 'View cabinet',
|
|
||||||
toAdd: 'Add cabinet',
|
|
||||||
toEdit: 'Edit cabinet',
|
|
||||||
delete: 'Delete cabinet',
|
|
||||||
save: 'Save cabinet'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
model: {
|
|
||||||
view: 'View model',
|
|
||||||
toAdd: 'Add model',
|
|
||||||
toEdit: 'Edit model',
|
|
||||||
delete: 'Delete model',
|
|
||||||
save: 'Save model',
|
|
||||||
panel: 'View panel',
|
|
||||||
chart: {
|
|
||||||
view: 'View chart',
|
|
||||||
toAdd: 'Add chart',
|
|
||||||
toEdit: 'Edit chart',
|
|
||||||
delete: 'Delete chart',
|
|
||||||
save: 'Save chart',
|
|
||||||
import: 'Import chart',
|
|
||||||
export: 'Export chart',
|
|
||||||
duplicate: 'Duplicate chart',
|
|
||||||
sync: 'Sync chart'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
snmp: {
|
|
||||||
view: 'View mib file',
|
|
||||||
toAdd: 'Add mib file',
|
|
||||||
toEdit: 'Edit mib file',
|
|
||||||
delete: 'Delete mib file',
|
|
||||||
save: 'Save mib file',
|
|
||||||
download: 'Download mib file',
|
|
||||||
browserExport: 'Export mib browser',
|
|
||||||
browserView: 'View mib browser'
|
|
||||||
},
|
|
||||||
system: {
|
|
||||||
basic: 'Basic save',
|
|
||||||
email: 'Email save',
|
|
||||||
terminal: 'Terminal save',
|
|
||||||
ldap: 'LDAP save',
|
|
||||||
notification: {
|
|
||||||
add: 'Add notification',
|
|
||||||
toEdit: 'Edit notification',
|
|
||||||
delete: 'Delete notification',
|
|
||||||
save: 'Save notification'
|
|
||||||
},
|
|
||||||
link: {
|
|
||||||
add: 'Add link',
|
|
||||||
toEdit: 'Edit link',
|
|
||||||
delete: 'Delete link',
|
|
||||||
save: 'Save link'
|
|
||||||
},
|
|
||||||
reset: 'Reset system config'
|
|
||||||
},
|
|
||||||
header: {
|
|
||||||
header: 'Header',
|
|
||||||
link: 'Link',
|
|
||||||
terminal: 'Terminal',
|
|
||||||
terminalUpload: 'Upload in terminal',
|
|
||||||
terminalDownload: 'Download in terminal',
|
|
||||||
add: {
|
|
||||||
view: 'View add button',
|
|
||||||
project: 'Add project',
|
|
||||||
module: 'Add module',
|
|
||||||
endpoint: 'Add endpoint',
|
|
||||||
rule: 'Add rule',
|
|
||||||
asset: 'Add asset'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
assetType: {
|
|
||||||
view: 'View',
|
view: 'View',
|
||||||
toAdd: 'Add asset type',
|
add: 'Add',
|
||||||
toEdit: 'Edit asset type',
|
edit: 'Edit',
|
||||||
delete: 'Delete asset type',
|
delete: 'Delete'
|
||||||
save: 'Save asset type'
|
|
||||||
},
|
|
||||||
assetState: {
|
|
||||||
view: 'View',
|
|
||||||
toAdd: 'Add asset state',
|
|
||||||
toEdit: 'Edit asset state',
|
|
||||||
delete: 'Delete asset state',
|
|
||||||
save: 'Save asset state'
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
...enLocale
|
...enLocale
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,14 +37,14 @@ export default {
|
|||||||
asce: tableSet.asce,
|
asce: tableSet.asce,
|
||||||
desc: tableSet.desc,
|
desc: tableSet.desc,
|
||||||
strTodate: tableSet.strTodate,
|
strTodate: tableSet.strTodate,
|
||||||
tableOperation ([command, row, url]) {
|
tableOperation ([command, row]) {
|
||||||
switch (command) {
|
switch (command) {
|
||||||
case 'edit': {
|
case 'edit': {
|
||||||
this.edit(row)
|
this.edit(row)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
case 'delete': {
|
case 'delete': {
|
||||||
this.del(row, url)
|
this.del(row)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
@@ -54,6 +54,9 @@ export default {
|
|||||||
isBuildIn (row) {
|
isBuildIn (row) {
|
||||||
return (row.buildIn && row.buildIn == 1) || (row.builtIn && row.builtIn == 1)
|
return (row.buildIn && row.buildIn == 1) || (row.builtIn && row.builtIn == 1)
|
||||||
},
|
},
|
||||||
|
selectionChange (objs) {
|
||||||
|
this.batchDeleteObjs = objs
|
||||||
|
},
|
||||||
getTableData () {
|
getTableData () {
|
||||||
this.$set(this.searchLabel, 'pageNo', this.pageObj.pageNo)
|
this.$set(this.searchLabel, 'pageNo', this.pageObj.pageNo)
|
||||||
this.$set(this.searchLabel, 'pageSize', this.pageObj.pageSize)
|
this.$set(this.searchLabel, 'pageSize', this.pageObj.pageSize)
|
||||||
@@ -81,7 +84,7 @@ export default {
|
|||||||
cancelButtonText: this.$t('tip.no'),
|
cancelButtonText: this.$t('tip.no'),
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.$delete(this.url).then(response => {
|
this.$delete(this.url + '?ids=' + row.id).then(response => {
|
||||||
if (response.code === 200) {
|
if (response.code === 200) {
|
||||||
this.delFlag = true
|
this.delFlag = true
|
||||||
this.$message({ duration: 2000, type: 'success', message: this.$t('tip.deleteSuccess') })
|
this.$message({ duration: 2000, type: 'success', message: this.$t('tip.deleteSuccess') })
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ export default {
|
|||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
batchDeleteObjs: [],
|
|
||||||
operationWidth: '165' // 操作列宽
|
operationWidth: '165' // 操作列宽
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -35,6 +34,9 @@ export default {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
selectionChange (objs) {
|
||||||
|
this.$emit('selectionChange', objs)
|
||||||
|
},
|
||||||
isBuiltIn (row) {
|
isBuiltIn (row) {
|
||||||
return (row.buildIn && row.buildIn == 1) || (row.builtIn && row.builtIn == 1)
|
return (row.buildIn && row.buildIn == 1) || (row.builtIn && row.builtIn == 1)
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -85,7 +85,9 @@ export default {
|
|||||||
'tree-select': Treeselect
|
'tree-select': Treeselect
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
menu: Object
|
menu: {
|
||||||
|
type: Object
|
||||||
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
isCurrentUser () {
|
isCurrentUser () {
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
<style lang="scss">
|
|
||||||
$--input-focus-border: red;
|
|
||||||
</style>
|
|
||||||
<template>
|
<template>
|
||||||
<div v-clickoutside="{obj:editUser,func:clickOutside}" class="right-box right-box-account">
|
<div v-clickoutside="{obj:editUser,func:clickOutside}" class="right-box right-box-account">
|
||||||
<!-- begin--顶部按钮-->
|
<!-- begin--顶部按钮-->
|
||||||
@@ -96,8 +93,7 @@ $--input-focus-border: red;
|
|||||||
export default {
|
export default {
|
||||||
name: 'accountBox',
|
name: 'accountBox',
|
||||||
props: {
|
props: {
|
||||||
user: Object,
|
user: Object
|
||||||
roles: Array
|
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
isCurrentUser () {
|
isCurrentUser () {
|
||||||
@@ -159,7 +155,8 @@ export default {
|
|||||||
editUser: {},
|
editUser: {},
|
||||||
scripts: [],
|
scripts: [],
|
||||||
selectableScripts: [],
|
selectableScripts: [],
|
||||||
pinChange: ''
|
pinChange: '',
|
||||||
|
roles: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -241,14 +238,6 @@ export default {
|
|||||||
this.scripts = response.data.list
|
this.scripts = response.data.list
|
||||||
this.getSelectableScripts()
|
this.getSelectableScripts()
|
||||||
})
|
})
|
||||||
/* this.scripts = [
|
|
||||||
{id: 1, name: "DOLBY"},
|
|
||||||
{id: 2, name: "IMAX"},
|
|
||||||
{id: 3, name: "CGS"},
|
|
||||||
{id: 4, name: "LUXE"},
|
|
||||||
{id: 5, name: "DST:X"},
|
|
||||||
];
|
|
||||||
this.getSelectableScripts(); */
|
|
||||||
},
|
},
|
||||||
|
|
||||||
getSelectableScripts () {
|
getSelectableScripts () {
|
||||||
@@ -283,13 +272,23 @@ export default {
|
|||||||
this.editUser.notifications.push({ scriptId: scripts.id, account: '' })
|
this.editUser.notifications.push({ scriptId: scripts.id, account: '' })
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
getRoles () {
|
||||||
|
this.roles = []
|
||||||
|
this.$get('sys/role?pageSize=-1').then(response => {
|
||||||
|
if (response.code === 200) {
|
||||||
|
this.roles = response.data.list
|
||||||
|
} else {
|
||||||
|
this.$message.error('load roles faild')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
removeNotification (index) {
|
removeNotification (index) {
|
||||||
this.editUser.notifications.splice(index, 1)
|
this.editUser.notifications.splice(index, 1)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
this.getScripts()
|
this.getScripts()
|
||||||
|
this.getRoles()
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
// 将prop里的user转为组件内部对象
|
// 将prop里的user转为组件内部对象
|
||||||
|
|||||||
121
nezha-fronted/src/components/common/table/settings/menuTable.vue
Normal file
121
nezha-fronted/src/components/common/table/settings/menuTable.vue
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
<template>
|
||||||
|
<el-table
|
||||||
|
id="menuTable"
|
||||||
|
ref="dataTable"
|
||||||
|
:data="tableData"
|
||||||
|
:height="height"
|
||||||
|
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
|
||||||
|
border
|
||||||
|
row-key="id"
|
||||||
|
@header-dragend="dragend"
|
||||||
|
@sort-change="tableDataSort"
|
||||||
|
@selection-change="selectionChange"
|
||||||
|
>
|
||||||
|
<el-table-column
|
||||||
|
:resizable="false"
|
||||||
|
align="center"
|
||||||
|
type="selection"
|
||||||
|
width="55">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
v-for="(item, index) in customTableTitle"
|
||||||
|
v-if="item.show"
|
||||||
|
:key="`col-${index}`"
|
||||||
|
:fixed="item.fixed"
|
||||||
|
:label="item.label"
|
||||||
|
:min-width="`${item.minWidth}`"
|
||||||
|
:prop="item.prop"
|
||||||
|
:resizable="true"
|
||||||
|
:sort-orders="['ascending', 'descending']"
|
||||||
|
:width="`${item.width}`"
|
||||||
|
class="data-column"
|
||||||
|
>
|
||||||
|
<template slot="header">
|
||||||
|
<span>{{item.label}}</span>
|
||||||
|
<div class="col-resize-area"></div>
|
||||||
|
</template>
|
||||||
|
<template slot-scope="scope" :column="item">
|
||||||
|
<template v-if="item.prop === 'name'">
|
||||||
|
<template v-if="scope.row.i18n">
|
||||||
|
<span>{{$t(scope.row.i18n)}}</span>
|
||||||
|
</template>
|
||||||
|
<template v-else-if="scope.row.name">
|
||||||
|
<span>{{scope.row.name}}</span>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<span>-</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else-if="item.prop === 'type'">
|
||||||
|
<span>{{scope.row[item.prop] === 2?$t('config.menus.button'):$t('config.menus.menu')}}</span>
|
||||||
|
</template>
|
||||||
|
<span v-else>{{scope.row[item.prop]}}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
:resizable="false"
|
||||||
|
:width="operationWidth"
|
||||||
|
fixed="right">
|
||||||
|
<div slot="header" class="table-operation-title">{{$t('overall.option')}}</div>
|
||||||
|
<div slot-scope="scope" class="table-operation-items">
|
||||||
|
<button class="table-operation-item" @click="tableOperation(['edit', scope.row])"><i class="nz-icon nz-icon-edit"></i></button>
|
||||||
|
<el-dropdown size="medium" trigger="hover" @command="tableOperation">
|
||||||
|
<div class="table-operation-item table-operation-item--more">
|
||||||
|
<span>…</span><i class="nz-icon nz-icon-arrow-down"></i>
|
||||||
|
</div>
|
||||||
|
<el-dropdown-menu slot="dropdown">
|
||||||
|
<el-dropdown-item :command="['delete', scope.row]"><i class="nz-icon nz-icon-delete"></i><span class="operation-dropdown-text">{{$t('overall.delete')}}</span></el-dropdown-item>
|
||||||
|
</el-dropdown-menu>
|
||||||
|
</el-dropdown>
|
||||||
|
</div>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import table from '@/components/common/mixin/table'
|
||||||
|
export default {
|
||||||
|
name: 'menuTable',
|
||||||
|
mixins: [table],
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
tableTitle: [ // 原table列
|
||||||
|
{
|
||||||
|
label: 'ID',
|
||||||
|
prop: 'id',
|
||||||
|
show: true,
|
||||||
|
width: 200
|
||||||
|
}, {
|
||||||
|
label: this.$t('config.menus.name'),
|
||||||
|
prop: 'name',
|
||||||
|
show: true
|
||||||
|
}, {
|
||||||
|
label: this.$t('config.menus.code'),
|
||||||
|
prop: 'code',
|
||||||
|
show: true
|
||||||
|
}, {
|
||||||
|
label: this.$t('config.menus.i18n'),
|
||||||
|
prop: 'i18n',
|
||||||
|
show: true
|
||||||
|
}, {
|
||||||
|
label: this.$t('config.menus.type'),
|
||||||
|
prop: 'type',
|
||||||
|
show: true
|
||||||
|
}, {
|
||||||
|
label: this.$t('config.menus.route'),
|
||||||
|
prop: 'route',
|
||||||
|
show: true
|
||||||
|
}, {
|
||||||
|
label: this.$t('config.menus.perms'),
|
||||||
|
prop: 'perms',
|
||||||
|
show: true
|
||||||
|
}, {
|
||||||
|
label: this.$t('config.menus.orderNum'),
|
||||||
|
prop: 'orderNum',
|
||||||
|
show: true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -0,0 +1,96 @@
|
|||||||
|
<template>
|
||||||
|
<el-table
|
||||||
|
id="roleTable"
|
||||||
|
ref="dataTable"
|
||||||
|
:data="tableData"
|
||||||
|
:height="height"
|
||||||
|
border
|
||||||
|
@header-dragend="dragend"
|
||||||
|
@sort-change="tableDataSort"
|
||||||
|
@selection-change="selectionChange"
|
||||||
|
>
|
||||||
|
<el-table-column
|
||||||
|
:resizable="false"
|
||||||
|
align="center"
|
||||||
|
type="selection"
|
||||||
|
width="55">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
v-for="(item, index) in customTableTitle"
|
||||||
|
v-if="item.show"
|
||||||
|
:key="`col-${index}`"
|
||||||
|
:fixed="item.fixed"
|
||||||
|
:label="item.label"
|
||||||
|
:min-width="`${item.minWidth}`"
|
||||||
|
:prop="item.prop"
|
||||||
|
:resizable="true"
|
||||||
|
:sort-orders="['ascending', 'descending']"
|
||||||
|
:width="`${item.width}`"
|
||||||
|
class="data-column"
|
||||||
|
>
|
||||||
|
<template slot="header">
|
||||||
|
<span>{{item.label}}</span>
|
||||||
|
<div class="col-resize-area"></div>
|
||||||
|
</template>
|
||||||
|
<template slot-scope="scope" :column="item">
|
||||||
|
<template v-if="item.prop === 'name'">
|
||||||
|
<template v-if="scope.row.i18n">
|
||||||
|
<span>{{$t(scope.row.i18n)}}</span>
|
||||||
|
</template>
|
||||||
|
<template v-else-if="scope.row.name">
|
||||||
|
<span>{{scope.row.name}}</span>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<span>-</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<span v-else>{{scope.row[item.prop]}}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
:resizable="false"
|
||||||
|
:width="operationWidth"
|
||||||
|
fixed="right">
|
||||||
|
<div slot="header" class="table-operation-title">{{$t('overall.option')}}</div>
|
||||||
|
<div slot-scope="scope" class="table-operation-items">
|
||||||
|
<button class="table-operation-item" @click="tableOperation(['edit', scope.row])"><i class="nz-icon nz-icon-edit"></i></button>
|
||||||
|
<el-dropdown size="medium" trigger="hover" @command="tableOperation">
|
||||||
|
<div class="table-operation-item table-operation-item--more">
|
||||||
|
<span>…</span><i class="nz-icon nz-icon-arrow-down"></i>
|
||||||
|
</div>
|
||||||
|
<el-dropdown-menu slot="dropdown">
|
||||||
|
<el-dropdown-item :command="['delete', scope.row]" :disabled="isBuiltIn(scope.row)"><i class="nz-icon nz-icon-delete"></i><span class="operation-dropdown-text">{{$t('overall.delete')}}</span></el-dropdown-item>
|
||||||
|
</el-dropdown-menu>
|
||||||
|
</el-dropdown>
|
||||||
|
</div>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import table from '@/components/common/mixin/table'
|
||||||
|
export default {
|
||||||
|
name: 'roleTable',
|
||||||
|
mixins: [table],
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
tableTitle: [ // 原table列
|
||||||
|
{
|
||||||
|
label: 'ID',
|
||||||
|
prop: 'id',
|
||||||
|
show: true,
|
||||||
|
width: 80
|
||||||
|
}, {
|
||||||
|
label: this.$t('config.roles.name'),
|
||||||
|
prop: 'name',
|
||||||
|
show: true
|
||||||
|
}, {
|
||||||
|
label: this.$t('config.roles.description'),
|
||||||
|
prop: 'remark',
|
||||||
|
show: true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
border
|
border
|
||||||
@header-dragend="dragend"
|
@header-dragend="dragend"
|
||||||
@sort-change="tableDataSort"
|
@sort-change="tableDataSort"
|
||||||
@selection-change="(selection) => { batchDeleteObjs = selection }"
|
@selection-change="selectionChange"
|
||||||
>
|
>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
:resizable="false"
|
:resizable="false"
|
||||||
@@ -26,7 +26,6 @@
|
|||||||
:resizable="true"
|
:resizable="true"
|
||||||
:sort-orders="['ascending', 'descending']"
|
:sort-orders="['ascending', 'descending']"
|
||||||
:width="`${item.width}`"
|
:width="`${item.width}`"
|
||||||
class="data-column"
|
|
||||||
>
|
>
|
||||||
<template slot="header">
|
<template slot="header">
|
||||||
<span>{{item.label}}</span>
|
<span>{{item.label}}</span>
|
||||||
@@ -70,7 +69,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<el-dropdown-menu slot="dropdown">
|
<el-dropdown-menu slot="dropdown">
|
||||||
<el-dropdown-item :command="['edit', scope.row]"><i class="nz-icon nz-icon-edit"></i><span class="operation-dropdown-text">{{$t('overall.edit')}}</span></el-dropdown-item>
|
<el-dropdown-item :command="['edit', scope.row]"><i class="nz-icon nz-icon-edit"></i><span class="operation-dropdown-text">{{$t('overall.edit')}}</span></el-dropdown-item>
|
||||||
<el-dropdown-item :command="['delete', scope.row, `sys/user?ids=${scope.row.id}`]" :disabled="scope.row.id === 1"><i class="nz-icon nz-icon-delete"></i><span class="operation-dropdown-text">{{$t('overall.delete')}}</span></el-dropdown-item>
|
<el-dropdown-item :command="['delete', scope.row]" :disabled="scope.row.id === 1"><i class="nz-icon nz-icon-delete"></i><span class="operation-dropdown-text">{{$t('overall.delete')}}</span></el-dropdown-item>
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,8 +5,6 @@
|
|||||||
<Header></Header>
|
<Header></Header>
|
||||||
<container v-if="containerShow" ref="container"></container>
|
<container v-if="containerShow" ref="container"></container>
|
||||||
</div>
|
</div>
|
||||||
<!--菜单列表-->
|
|
||||||
<menus v-if="isMenuPage"></menus>
|
|
||||||
<!--web-ssh-->
|
<!--web-ssh-->
|
||||||
<web-ssh ref="webSsh"></web-ssh>
|
<web-ssh ref="webSsh"></web-ssh>
|
||||||
<!--table悬浮提示容器-->
|
<!--table悬浮提示容器-->
|
||||||
@@ -18,13 +16,11 @@
|
|||||||
import Header from './header'
|
import Header from './header'
|
||||||
import webSSH from '../cli/webSSH'
|
import webSSH from '../cli/webSSH'
|
||||||
import leftMenu from './leftMenu'
|
import leftMenu from './leftMenu'
|
||||||
import menus from '../page/config/menus'
|
|
||||||
import container from './container'
|
import container from './container'
|
||||||
export default {
|
export default {
|
||||||
name: 'home',
|
name: 'home',
|
||||||
components: {
|
components: {
|
||||||
Header,
|
Header,
|
||||||
menus,
|
|
||||||
leftMenu,
|
leftMenu,
|
||||||
container,
|
container,
|
||||||
'web-ssh': webSSH
|
'web-ssh': webSSH
|
||||||
@@ -34,11 +30,6 @@ export default {
|
|||||||
containerShow: true
|
containerShow: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
|
||||||
isMenuPage: function () {
|
|
||||||
return this.$route.path === '/menu'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
methods: {
|
||||||
refresh () {
|
refresh () {
|
||||||
this.containerShow = false
|
this.containerShow = false
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ export default {
|
|||||||
.el-submenu.is-active .el-submenu__title, .el-submenu.is-active .el-submenu__title>i {
|
.el-submenu.is-active .el-submenu__title, .el-submenu.is-active .el-submenu__title>i {
|
||||||
color: white !important;
|
color: white !important;
|
||||||
}
|
}
|
||||||
.el-submenu.is-opened .el-menu-item:not(.is-active) {
|
.el-submenu.is-opened .el-menu-item:not(.is-active), .el-submenu.is-opened .el-submenu__title {
|
||||||
background-color: #182534 !important;
|
background-color: #182534 !important;
|
||||||
}
|
}
|
||||||
.el-menu-item.is-active {
|
.el-menu-item.is-active {
|
||||||
|
|||||||
@@ -1,144 +1,61 @@
|
|||||||
<style scoped>
|
|
||||||
.menus {
|
|
||||||
position: relative;
|
|
||||||
height: calc(100% - 50px) !important;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<template>
|
<template>
|
||||||
<div class="menus">
|
<div>
|
||||||
<!-- 主页面 -->
|
<nz-data-list
|
||||||
<div class="main-list" >
|
ref="dataList"
|
||||||
<!-- 顶部工具栏 -->
|
:api="url"
|
||||||
<div class="main-modal"></div>
|
:custom-table-title.sync="tools.customTableTitle"
|
||||||
<div class="top-tools" >
|
:from="fromRoute.menus">
|
||||||
<div class="top-tool-main-right" >
|
<template v-slot:top-tool-right>
|
||||||
<div class="top-tool-search">
|
<button id="menus-add" class="top-tool-btn margin-l-20"
|
||||||
<search-input :searchMsg="searchMsg" @search="search" ref="searchInput" ></search-input>
|
type="button" @click="add">
|
||||||
</div>
|
|
||||||
<button :title="$t('overall.createMenus')" @click="add" class="nz-btn nz-btn-size-normal nz-btn-style-light margin-l-20"
|
|
||||||
id="menus-add" type="button">
|
|
||||||
<i class="nz-icon-create-square nz-icon"></i>
|
<i class="nz-icon-create-square nz-icon"></i>
|
||||||
</button>
|
</button>
|
||||||
<delete-button :delete-objs="batchDeleteObjs" :filter-function="(arr)=>{return '?ids='+arr.map(t=>t.id).join(',')}" @before="delFlag=true" @after="getTableData" api="sys/menu" id="menus-list-batch-delete"></delete-button>
|
<delete-button id="menus-list-batch-delete" :api="url" :delete-objs="batchDeleteObjs" @after="getTableData" @before="delFlag=true"></delete-button>
|
||||||
</div>
|
</template>
|
||||||
<!-- 顶部分页组件,当打开底部上滑框时出现 -->
|
<template v-slot="slotProps">
|
||||||
<div class="pagination-top pagination-top-hide display-none"></div>
|
<menu-table
|
||||||
</div>
|
ref="dataTable"
|
||||||
<!-- 自定义table列 -->
|
v-loading="slotProps.loading"
|
||||||
<transition name="el-zoom-in-top">
|
:api="url"
|
||||||
<element-set
|
:custom-table-title="tools.customTableTitle"
|
||||||
id="menu-list"
|
|
||||||
:custom-table-title.sync="tools.customTableTitle"
|
|
||||||
:original-table-title="tableTitle"
|
|
||||||
@close="tools.showCustomTableTitle = false"
|
|
||||||
ref="customTableTitle"
|
|
||||||
v-if="tools.showCustomTableTitle"
|
|
||||||
></element-set>
|
|
||||||
</transition>
|
|
||||||
<el-table
|
|
||||||
id="menu-list-table"
|
|
||||||
:data="tableData"
|
|
||||||
:height="mainTableHeight"
|
:height="mainTableHeight"
|
||||||
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
|
:table-data="tableData"
|
||||||
@selection-change="(selection)=>{this.batchDeleteObjs=selection}"
|
@del="del"
|
||||||
@sort-change="tableDataSort"
|
@edit="edit"
|
||||||
border
|
@orderBy="tableDataSort"
|
||||||
class="nz-table"
|
@reload="getTableData"
|
||||||
ref="menusTable"
|
@selectionChange="selectionChange"></menu-table>
|
||||||
row-key="id"
|
|
||||||
style="width: 100%;"
|
|
||||||
v-loading="tools.loading"
|
|
||||||
>
|
|
||||||
<el-table-column
|
|
||||||
:resizable="false"
|
|
||||||
align="center"
|
|
||||||
type="selection"
|
|
||||||
width="40">
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column
|
|
||||||
:fixed="item.fixed"
|
|
||||||
:key="`col-${index}`"
|
|
||||||
:label="item.label"
|
|
||||||
:prop="item.prop"
|
|
||||||
:resizable="true"
|
|
||||||
:sort-orders="['ascending', 'descending']"
|
|
||||||
v-for="(item, index) in tools.customTableTitle"
|
|
||||||
v-if="item.show"
|
|
||||||
>
|
|
||||||
<template slot="header">
|
|
||||||
<span :title="item.label" class="tag-header" v-if="item.type == 'tag'"><span class="tag-value">{{item.label}}</span><span style="color:orange;"> [Notification]</span></span>
|
|
||||||
<span v-else><span>{{item.label}}</span></span>
|
|
||||||
</template>
|
</template>
|
||||||
<template :column="item" slot-scope="scope">
|
<template v-slot:pagination>
|
||||||
<div class="content-right-options" v-if="item.prop == 'option'">
|
<Pagination ref="Pagination" :page-obj="pageObj" :table-id="tableId" @pageNo='pageNo' @pageSize='pageSize'></Pagination>
|
||||||
<span :id="'menus-edit-'+scope.row.id" :title="$t('overall.edit')" @click="edit(scope.row)" class="content-right-option"><i :class="{'gray-filter':scope.row.buildIn == 1}" class="nz-icon nz-icon-edit"></i></span>
|
|
||||||
|
|
||||||
<span :id="'menus-del-'+scope.row.id" :title="$t('overall.delete')" @click="del(scope.row)" class="content-right-option"><i :class="{'gray-filter':scope.row.buildIn == 1}" class="nz-icon nz-icon-delete"></i></span>
|
|
||||||
</div>
|
|
||||||
<template v-if="item.prop == 'name'">
|
|
||||||
<template v-if="scope.row.i18n">
|
|
||||||
<span>{{$t(scope.row.i18n)}}</span>
|
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="scope.row.name">
|
</nz-data-list>
|
||||||
<span>{{scope.row.name}}</span>
|
|
||||||
</template>
|
|
||||||
<template v-else>
|
|
||||||
<span>-</span>
|
|
||||||
</template>
|
|
||||||
</template>
|
|
||||||
<template v-else-if="item.prop == 'type'">
|
|
||||||
<span>{{scope.row[item.prop] == 2?$t('config.menus.button'):$t('config.menus.menu')}}</span>
|
|
||||||
</template>
|
|
||||||
<span v-else>{{scope.row[item.prop]}}</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column fixed="right" width="28">
|
|
||||||
<template slot="header" :resizable="false">
|
|
||||||
<span @mousedown.stop="!tools.showCustomTableTitle && (tools.showCustomTableTitle = true)" class="nz-table-gear">
|
|
||||||
<i class="nz-icon nz-icon-gear"></i>
|
|
||||||
</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
</el-table>
|
|
||||||
<button :class="{'to-top-is-hover': tools.tableHover}" :style="{top: tools.toTopBtnTop}" @click="toTop(scrollbarWrap)" class="to-top" v-show="tools.showTopBtn " id="menu-list-totop"><i class="nz-icon nz-icon-top"></i></button>
|
|
||||||
</div>
|
|
||||||
<transition name="right-box">
|
<transition name="right-box">
|
||||||
<menu-box :menu="menu" @close="closeRightBox" v-if="rightBox.show"></menu-box>
|
<menu-box v-if="rightBox.show" :menu="object" @close="closeRightBox"></menu-box>
|
||||||
</transition>
|
</transition>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import deleteButton from '../../common/deleteButton'
|
import nzDataList from '@/components/common/table/nzDataList'
|
||||||
import menuBox from '../../common/rightBox/menuBox'
|
import deleteButton from '@/components/common/deleteButton'
|
||||||
import bus from '../../../libs/bus'
|
import menuBox from '@/components/common/rightBox/menuBox'
|
||||||
|
import menuTable from '@/components/common/table/settings/menuTable'
|
||||||
|
import dataListMixin from '@/components/common/mixin/dataList'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'menus',
|
name: 'menus',
|
||||||
components: {
|
components: {
|
||||||
'menu-box': menuBox,
|
nzDataList,
|
||||||
'delete-button': deleteButton
|
menuBox,
|
||||||
|
menuTable,
|
||||||
|
deleteButton
|
||||||
},
|
},
|
||||||
|
mixins: [dataListMixin],
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
// 侧滑
|
url: 'sys/menu',
|
||||||
rightBox: {
|
|
||||||
show: false
|
|
||||||
},
|
|
||||||
/* 工具参数 */
|
|
||||||
tools: {
|
|
||||||
loading: false, // 是否显示table加载动画
|
|
||||||
toTopBtnTop: this.$tableHeight.toTopBtnTop, // to-top按钮的top属性
|
|
||||||
tableHover: false, // 控制滚动条和top按钮同时出现
|
|
||||||
showTopBtn: false, // 显示To top按钮
|
|
||||||
showCustomTableTitle: false, // 自定义列弹框是否显示
|
|
||||||
customTableTitle: [] // 自定义列工具的数据
|
|
||||||
},
|
|
||||||
mainTableHeight: this.$tableHeight.normal, // 主列表table高度
|
|
||||||
batchDeleteObjs: [],
|
|
||||||
menu: {},
|
|
||||||
|
|
||||||
tableId: 'menusTable', // 需要分页的table的id,用于记录每页数量
|
tableId: 'menusTable', // 需要分页的table的id,用于记录每页数量
|
||||||
blankMenu: { // 空白对象
|
blankObject: { // 空白对象
|
||||||
name: '',
|
name: '',
|
||||||
code: '',
|
code: '',
|
||||||
i18n: '',
|
i18n: '',
|
||||||
@@ -148,11 +65,6 @@ export default {
|
|||||||
orderNum: 1,
|
orderNum: 1,
|
||||||
perms: ''
|
perms: ''
|
||||||
},
|
},
|
||||||
pageObj: { // 分页对象
|
|
||||||
pageNo: 1,
|
|
||||||
pageSize: 50,
|
|
||||||
total: 0
|
|
||||||
},
|
|
||||||
tableTitle: [ // 原table列
|
tableTitle: [ // 原table列
|
||||||
{
|
{
|
||||||
label: 'ID',
|
label: 'ID',
|
||||||
@@ -195,7 +107,6 @@ export default {
|
|||||||
fixed: 'right'
|
fixed: 'right'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
tableData: [],
|
|
||||||
searchMsg: { // 给搜索框子组件传递的信息
|
searchMsg: { // 给搜索框子组件传递的信息
|
||||||
zheze_none: true,
|
zheze_none: true,
|
||||||
searchLabelList: [{
|
searchLabelList: [{
|
||||||
@@ -205,146 +116,8 @@ export default {
|
|||||||
label: 'id',
|
label: 'id',
|
||||||
disabled: false
|
disabled: false
|
||||||
}]
|
}]
|
||||||
},
|
|
||||||
searchLabel: {}, // 搜索参数
|
|
||||||
scrollbarWrap: null,
|
|
||||||
delFlag: false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
closeRightBox (refresh) {
|
|
||||||
this.rightBox.show = false
|
|
||||||
if (refresh) {
|
|
||||||
this.delFlag = true
|
|
||||||
this.getTableData()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
edit (u) {
|
|
||||||
if (u.buildIn == 1) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
this.menu = JSON.parse(JSON.stringify(u))
|
|
||||||
this.rightBox.show = true
|
|
||||||
},
|
|
||||||
del (u) {
|
|
||||||
if (u.buildIn == 1) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
this.$confirm(this.$t('tip.confirmDelete'), {
|
|
||||||
confirmButtonText: this.$t('tip.yes'),
|
|
||||||
cancelButtonText: this.$t('tip.no'),
|
|
||||||
type: 'warning'
|
|
||||||
}).then(() => {
|
|
||||||
this.$delete('sys/menu?ids=' + u.id).then(response => {
|
|
||||||
if (response.code === 200) {
|
|
||||||
this.delFlag = true
|
|
||||||
this.$message({ duration: 2000, type: 'success', message: this.$t('tip.deleteSuccess') })
|
|
||||||
this.getTableData()
|
|
||||||
} else {
|
|
||||||
this.$message.error(response.msg)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
},
|
|
||||||
getTableData () {
|
|
||||||
this.$set(this.searchLabel, 'pageNo', this.pageObj.pageNo)
|
|
||||||
this.$set(this.searchLabel, 'pageSize', this.pageObj.pageSize)
|
|
||||||
this.tools.loading = true
|
|
||||||
this.$get('sys/menu', this.searchLabel).then(response => {
|
|
||||||
this.tools.loading = false
|
|
||||||
if (response.code === 200) {
|
|
||||||
this.tableData = response.data.list
|
|
||||||
this.pageObj.total = response.data.total
|
|
||||||
this.tools.loading = false
|
|
||||||
if (!this.scrollbarWrap) {
|
|
||||||
this.$nextTick(() => {
|
|
||||||
this.scrollbarWrap = this.$refs.menusTable.bodyWrapper
|
|
||||||
this.toTopBtnHandler(this.scrollbarWrap)
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
|
||||||
},
|
|
||||||
add () {
|
|
||||||
this.menu = this.newMenu()
|
|
||||||
this.rightBox.show = true
|
|
||||||
},
|
|
||||||
esc () {
|
|
||||||
this.rightBox.show = false
|
|
||||||
},
|
|
||||||
newMenu () {
|
|
||||||
return JSON.parse(JSON.stringify(this.blankMenu))
|
|
||||||
},
|
|
||||||
pageNo (val) {
|
|
||||||
this.pageObj.pageNo = val
|
|
||||||
this.getTableData()
|
|
||||||
},
|
|
||||||
pageSize (val) {
|
|
||||||
this.pageObj.pageSize = val
|
|
||||||
localStorage.setItem('nz-pageSize-' + localStorage.getItem('nz-username') + '-' + this.tableId, val)
|
|
||||||
this.getTableData()
|
|
||||||
},
|
|
||||||
search (searchObj) {
|
|
||||||
this.searchLabel = {}
|
|
||||||
this.pageObj.pageNo = 1
|
|
||||||
for (const item in searchObj) {
|
|
||||||
if (searchObj[item]) {
|
|
||||||
this.$set(this.searchLabel, item, searchObj[item])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (this.$refs.menusTable) {
|
|
||||||
this.$refs.menusTable.bodyWrapper.scrollTop = 0
|
|
||||||
}
|
|
||||||
this.getTableData()
|
|
||||||
},
|
|
||||||
// 数据排序
|
|
||||||
tableDataSort (item) {
|
|
||||||
let orderBy = ''
|
|
||||||
if (item.order === 'ascending') {
|
|
||||||
orderBy = item.prop
|
|
||||||
}
|
|
||||||
if (item.order === 'descending') {
|
|
||||||
orderBy = '-' + item.prop
|
|
||||||
}
|
|
||||||
this.$set(this.searchLabel, 'orderBy', orderBy)
|
|
||||||
this.getTableData()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
watch: {
|
|
||||||
tableData: {
|
|
||||||
deep: true,
|
|
||||||
handler (n) {
|
|
||||||
if (n.length === 0 && this.pageObj.pageNo > 1) {
|
|
||||||
this.pageNo(this.pageObj.pageNo - 1)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!this.delFlag) { // 不是删除时回到顶部
|
|
||||||
this.$refs.menusTable.bodyWrapper.scrollTop = 0
|
|
||||||
} else {
|
|
||||||
this.delFlag = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
created () {
|
|
||||||
// 是否存在分页缓存
|
|
||||||
const pageSize = localStorage.getItem('nz-pageSize-' + localStorage.getItem('nz-username') + '-' + this.tableId)
|
|
||||||
if (pageSize != 'undefined' && pageSize != null) {
|
|
||||||
this.pageObj.pageSize = pageSize
|
|
||||||
}
|
|
||||||
},
|
|
||||||
mounted () {
|
|
||||||
// 初始化表头
|
|
||||||
this.tools.customTableTitle = localStorage.getItem('nz-tableTitle-' + localStorage.getItem('nz-username') + '-' + this.$route.path)
|
|
||||||
? JSON.parse(localStorage.getItem('nz-tableTitle-' + localStorage.getItem('nz-username') + '-' + this.$route.path))
|
|
||||||
: this.tableTitle
|
|
||||||
this.tableTitleReset(this.tableTitle, this.tools.customTableTitle)
|
|
||||||
this.getTableData()
|
|
||||||
},
|
|
||||||
beforeDestroy () {
|
|
||||||
if (this.scrollbarWrap) {
|
|
||||||
this.scrollbarWrap.removeEventListener('scroll', bus.debounce)
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<div style="height: 100%">
|
<div>
|
||||||
<nz-data-list
|
<nz-data-list
|
||||||
ref="dataList"
|
ref="dataList"
|
||||||
:components="['searchInput', 'elementSet']"
|
:api="url"
|
||||||
|
:layout="['searchInput', 'elementSet']"
|
||||||
:custom-table-title.sync="tools.customTableTitle"
|
:custom-table-title.sync="tools.customTableTitle"
|
||||||
:from="fromRoute.role"
|
:from="fromRoute.role"
|
||||||
:search-msg="searchMsg"
|
:search-msg="searchMsg">
|
||||||
:table-id="tableId"
|
|
||||||
:table-title="tableTitle">
|
|
||||||
<template v-slot:top-tool-right>
|
<template v-slot:top-tool-right>
|
||||||
<button id="roles-add" v-has="'role_toAdd'" :title="$t('overall.createRole')" class="top-tool-btn margin-l-20"
|
<button id="roles-add" v-has="'role_toAdd'" :title="$t('overall.createRole')" class="top-tool-btn margin-l-20"
|
||||||
type="button" @click="add">
|
type="button" @click="add">
|
||||||
@@ -16,77 +15,19 @@
|
|||||||
<delete-button id="role-list-batch-delete" v-has="'role_delete'" :delete-objs="batchDeleteObjs" api="sys/role" @after="getTableData" @before="delFlag=true"></delete-button>
|
<delete-button id="role-list-batch-delete" v-has="'role_delete'" :delete-objs="batchDeleteObjs" api="sys/role" @after="getTableData" @before="delFlag=true"></delete-button>
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:default="slotProps">
|
<template v-slot:default="slotProps">
|
||||||
<el-table
|
<role-table
|
||||||
id="role-list-table"
|
|
||||||
ref="dataTable"
|
ref="dataTable"
|
||||||
v-loading="tools.loading"
|
v-loading="slotProps.loading"
|
||||||
:data="tableData"
|
:api="url"
|
||||||
|
:custom-table-title="tools.customTableTitle"
|
||||||
:height="mainTableHeight"
|
:height="mainTableHeight"
|
||||||
border
|
:table-data="tableData"
|
||||||
@header-dragend="dragend"
|
@del="del"
|
||||||
@sort-change="tableDataSort"
|
@edit="edit"
|
||||||
@selection-change="(selection)=>{batchDeleteObjs=selection}"
|
@orderBy="tableDataSort"
|
||||||
>
|
@reload="getTableData"
|
||||||
<el-table-column
|
@selectionChange="selectionChange"
|
||||||
:resizable="false"
|
@showBottomBox="(targetTab, object) => { $refs.dataList.showBottomBox(targetTab, object) }"></role-table>
|
||||||
align="center"
|
|
||||||
type="selection"
|
|
||||||
width="55">
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column
|
|
||||||
v-for="(item, index) in tools.customTableTitle"
|
|
||||||
v-if="item.show"
|
|
||||||
:key="`col-${index}`"
|
|
||||||
:fixed="item.fixed"
|
|
||||||
:label="item.label"
|
|
||||||
:prop="item.prop"
|
|
||||||
:resizable="true"
|
|
||||||
:sort-orders="['ascending', 'descending']"
|
|
||||||
:width="`${item.width}`"
|
|
||||||
class="data-column"
|
|
||||||
>
|
|
||||||
<template slot="header">
|
|
||||||
<span>
|
|
||||||
<span>{{item.label}}</span>
|
|
||||||
<div class="col-resize-area"></div>
|
|
||||||
</span>
|
|
||||||
</template>
|
|
||||||
<template slot-scope="scope" :column="item">
|
|
||||||
<template v-if="item.prop == 'name'">
|
|
||||||
<template v-if="scope.row.i18n">
|
|
||||||
<span>{{$t(scope.row.i18n)}}</span>
|
|
||||||
</template>
|
|
||||||
<template v-else-if="scope.row.name">
|
|
||||||
<span>{{scope.row.name}}</span>
|
|
||||||
</template>
|
|
||||||
<template v-else>
|
|
||||||
<span>-</span>
|
|
||||||
</template>
|
|
||||||
</template>
|
|
||||||
<span v-else>{{scope.row[item.prop]}}</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column
|
|
||||||
:resizable="false"
|
|
||||||
fixed="right"
|
|
||||||
:width="operationWidth">
|
|
||||||
<div slot="header" class="table-operation-title">{{$t('overall.option')}}</div>
|
|
||||||
<div slot-scope="scope" class="table-operation-items">
|
|
||||||
<button class="table-operation-item" @click="$refs.dataList.showBottomBox('operationLog', scope.row)"><i class="nz-icon nz-icon-view1"></i></button>
|
|
||||||
<el-dropdown size="medium" trigger="hover" @command="tableOperation">
|
|
||||||
<div class="table-operation-item table-operation-item--more">
|
|
||||||
<span>…</span><i class="nz-icon nz-icon-arrow-down"></i>
|
|
||||||
</div>
|
|
||||||
<el-dropdown-menu slot="dropdown">
|
|
||||||
<el-dropdown-item :command="['edit', scope.row]" :disabled="isBuildIn(scope.row)"><i class="nz-icon nz-icon-edit"></i><span class="operation-dropdown-text">{{$t('overall.edit')}}</span></el-dropdown-item>
|
|
||||||
<el-dropdown-item :command="['delete', scope.row, `sys/role?ids=${scope.row.id}`]" :disabled="isBuildIn(scope.row)"><i class="nz-icon nz-icon-delete"></i><span class="operation-dropdown-text">{{$t('overall.delete')}}</span></el-dropdown-item>
|
|
||||||
</el-dropdown-menu>
|
|
||||||
</el-dropdown>
|
|
||||||
</div>
|
|
||||||
</el-table-column>
|
|
||||||
</el-table>
|
|
||||||
<!-- 回到table顶部的按钮 -->
|
|
||||||
<button v-show="tools.showTopBtn && slotProps.mainResizeShow" id="role-list-totop" :class="{'to-top-is-hover': tools.tableHover}" :style="{top: tools.toTopBtnTop}" class="to-top" @click="toTop(scrollbarWrap)"><i class="nz-icon nz-icon-top"></i></button>
|
|
||||||
</template>
|
</template>
|
||||||
<!-- 分页组件 -->
|
<!-- 分页组件 -->
|
||||||
<template v-slot:pagination>
|
<template v-slot:pagination>
|
||||||
@@ -102,38 +43,25 @@
|
|||||||
import roleBox from '@/components/common/rightBox/roleBox'
|
import roleBox from '@/components/common/rightBox/roleBox'
|
||||||
import deleteButton from '@/components/common/deleteButton'
|
import deleteButton from '@/components/common/deleteButton'
|
||||||
import nzDataList from '@/components/common/table/nzDataList'
|
import nzDataList from '@/components/common/table/nzDataList'
|
||||||
import tableMixin from '@/components/common/mixin/table'
|
import dataListMixin from '@/components/common/mixin/dataList'
|
||||||
|
import roleTable from '@/components/common/table/settings/roleTable'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'roles',
|
name: 'roles',
|
||||||
components: {
|
components: {
|
||||||
|
roleTable,
|
||||||
roleBox,
|
roleBox,
|
||||||
deleteButton,
|
deleteButton,
|
||||||
nzDataList
|
nzDataList
|
||||||
},
|
},
|
||||||
mixins: [tableMixin],
|
mixins: [dataListMixin],
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
|
url: 'sys/role',
|
||||||
tableId: 'rolesTable', // 需要分页的table的id,用于记录每页数量
|
tableId: 'rolesTable', // 需要分页的table的id,用于记录每页数量
|
||||||
blankObject: { // 空白对象
|
blankObject: { // 空白对象
|
||||||
name: ''
|
name: ''
|
||||||
},
|
},
|
||||||
tableTitle: [ // 原table列
|
|
||||||
{
|
|
||||||
label: 'ID',
|
|
||||||
prop: 'id',
|
|
||||||
show: true,
|
|
||||||
width: 80
|
|
||||||
}, {
|
|
||||||
label: this.$t('config.roles.name'),
|
|
||||||
prop: 'name',
|
|
||||||
show: true
|
|
||||||
}, {
|
|
||||||
label: this.$t('config.roles.description'),
|
|
||||||
prop: 'remark',
|
|
||||||
show: true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
searchMsg: { // 给搜索框子组件传递的信息
|
searchMsg: { // 给搜索框子组件传递的信息
|
||||||
zheze_none: true,
|
zheze_none: true,
|
||||||
searchLabelList: [{
|
searchLabelList: [{
|
||||||
@@ -145,31 +73,6 @@ export default {
|
|||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
getTableData () {
|
|
||||||
if (!this.hasButton('role_view')) {
|
|
||||||
this.$message.error(this.$t('tip.noAccess'))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
this.$set(this.searchLabel, 'pageNo', this.pageObj.pageNo)
|
|
||||||
this.$set(this.searchLabel, 'pageSize', this.pageObj.pageSize)
|
|
||||||
this.tools.loading = true
|
|
||||||
this.$get('sys/role', this.searchLabel).then(response => {
|
|
||||||
this.tools.loading = false
|
|
||||||
if (response.code === 200) {
|
|
||||||
this.tableData = response.data.list
|
|
||||||
this.pageObj.total = response.data.total
|
|
||||||
this.tools.loading = false
|
|
||||||
if (!this.scrollbarWrap) {
|
|
||||||
this.$nextTick(() => {
|
|
||||||
this.scrollbarWrap = this.$refs.rolesTable.bodyWrapper
|
|
||||||
this.toTopBtnHandler(this.scrollbarWrap)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -26,6 +26,7 @@
|
|||||||
@edit="edit"
|
@edit="edit"
|
||||||
@orderBy="tableDataSort"
|
@orderBy="tableDataSort"
|
||||||
@reload="getTableData"
|
@reload="getTableData"
|
||||||
|
@selectionChange="selectionChange"
|
||||||
@showBottomBox="(targetTab, object) => { $refs.dataList.showBottomBox(targetTab, object) }"></user-table>
|
@showBottomBox="(targetTab, object) => { $refs.dataList.showBottomBox(targetTab, object) }"></user-table>
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:pagination>
|
<template v-slot:pagination>
|
||||||
@@ -33,7 +34,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</nz-data-list>
|
</nz-data-list>
|
||||||
<transition name="right-box">
|
<transition name="right-box">
|
||||||
<user-box v-if="rightBox.show" :roles="roles" :user="object" @close="closeRightBox"></user-box>
|
<user-box v-if="rightBox.show" :user="object" @close="closeRightBox"></user-box>
|
||||||
</transition>
|
</transition>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -80,8 +81,7 @@ export default {
|
|||||||
label: 'username',
|
label: 'username',
|
||||||
disabled: false
|
disabled: false
|
||||||
}]
|
}]
|
||||||
},
|
}
|
||||||
roles: []
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -98,16 +98,6 @@ export default {
|
|||||||
}
|
}
|
||||||
this.getTableData()
|
this.getTableData()
|
||||||
})
|
})
|
||||||
},
|
|
||||||
getRoles () {
|
|
||||||
this.roles = []
|
|
||||||
this.$get('sys/role?pageSize=-1').then(response => {
|
|
||||||
if (response.code === 200) {
|
|
||||||
this.roles = response.data.list
|
|
||||||
} else {
|
|
||||||
this.$message.error('load roles faild')
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@@ -116,9 +106,6 @@ export default {
|
|||||||
return localStorage.getItem('nz-username') === username
|
return localStorage.getItem('nz-username') === username
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
mounted () {
|
|
||||||
this.getRoles()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ export default new Router({
|
|||||||
component: resolve => require(['../components/page/asset/asset.vue'], resolve)
|
component: resolve => require(['../components/page/asset/asset.vue'], resolve)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/account',
|
path: '/user',
|
||||||
component: resolve => require(['../components/page/config/user.vue'], resolve)
|
component: resolve => require(['../components/page/config/user.vue'], resolve)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -54,7 +54,7 @@ export default new Router({
|
|||||||
component: resolve => require(['../components/page/config/roles.vue'], resolve)
|
component: resolve => require(['../components/page/config/roles.vue'], resolve)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/promServer',
|
path: '/agent',
|
||||||
component: resolve => require(['../components/page/config/promServer.vue'], resolve)
|
component: resolve => require(['../components/page/config/promServer.vue'], resolve)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -66,7 +66,7 @@ export default new Router({
|
|||||||
component: resolve => require(['../components/page/config/assetState.vue'], resolve)
|
component: resolve => require(['../components/page/config/assetState.vue'], resolve)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/assetMeta',
|
path: '/assetLabel',
|
||||||
component: resolve => require(['../components/page/config/assetMeta.vue'], resolve)
|
component: resolve => require(['../components/page/config/assetMeta.vue'], resolve)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user