|
@ -1,127 +1,196 @@
|
|
<template>
|
|
<template>
|
|
<a-card :bordered="false">
|
|
|
|
<s-table
|
|
|
|
ref="table"
|
|
|
|
size="default"
|
|
|
|
:pagination="false"
|
|
|
|
:loading="loading"
|
|
|
|
:columns="columns"
|
|
|
|
:data="loadData"
|
|
|
|
:rowKey="(record) => record.sessionId"
|
|
|
|
:rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
|
|
|
>
|
|
|
|
<span slot="lastLoginAddress" slot-scope="text">
|
|
|
|
<ellipsis :length="20" tooltip>{{ text }}</ellipsis>
|
|
|
|
</span>
|
|
|
|
<span slot="lastLoginBrowser" slot-scope="text">
|
|
|
|
<ellipsis :length="20" tooltip>{{ text }}</ellipsis>
|
|
|
|
</span>
|
|
|
|
<span slot="action" slot-scope="text, record">
|
|
|
|
<a-popconfirm v-if="hasPerm('sysOnlineUser:forceExist')" placement="topRight" title="是否强制下线该用户?" @confirm="() => forceExist(record)">
|
|
|
|
<a>强制下线</a>
|
|
|
|
</a-popconfirm>
|
|
|
|
</span>
|
|
|
|
</s-table>
|
|
|
|
</a-card>
|
|
|
|
|
|
<div class="webPage">
|
|
|
|
<a-tabs type="card" @change="callback">
|
|
|
|
<a-tab-pane key="1" tab="banner">
|
|
|
|
</a-tab-pane>
|
|
|
|
<a-tab-pane key="2" tab="产品生态亮点">
|
|
|
|
</a-tab-pane>
|
|
|
|
<a-tab-pane key="3" tab="解决方案">
|
|
|
|
</a-tab-pane>
|
|
|
|
<a-tab-pane key="4" tab="新闻中心">
|
|
|
|
</a-tab-pane>
|
|
|
|
|
|
|
|
</a-tabs>
|
|
|
|
<div class="add"><a-button type="primary" icon="plus" @click="$refs.addForm.add()">新增</a-button></div>
|
|
|
|
<a-table
|
|
|
|
class="table"
|
|
|
|
:columns="columns"
|
|
|
|
:pagination='false'
|
|
|
|
:data-source="data"
|
|
|
|
bordered
|
|
|
|
tableLayout="fixed">
|
|
|
|
<span slot="operation" slot-scope="">
|
|
|
|
<a @click="editor">编辑</a>
|
|
|
|
<a-divider type="vertical" />
|
|
|
|
<a @click="articleDelect">删除</a>
|
|
|
|
</span>
|
|
|
|
</a-table>
|
|
|
|
<a-pagination
|
|
|
|
class="pagination"
|
|
|
|
:total="data.length"
|
|
|
|
show-size-changer
|
|
|
|
show-quick-jumper
|
|
|
|
@change="pageChange"
|
|
|
|
@showSizeChange="showChange" />
|
|
|
|
<add-form ref="addForm" />
|
|
|
|
</div>
|
|
</template>
|
|
</template>
|
|
<script>
|
|
<script>
|
|
import { STable, Ellipsis } from '@/components'
|
|
|
|
import { sysOnlineUserForceExist, sysOnlineUserList } from '@/api/modular/system/onlineUserManage'
|
|
|
|
|
|
import addForm from './addForm'
|
|
export default {
|
|
export default {
|
|
components: {
|
|
components: {
|
|
STable,
|
|
|
|
Ellipsis
|
|
|
|
|
|
addForm
|
|
},
|
|
},
|
|
data () {
|
|
data () {
|
|
return {
|
|
return {
|
|
// 查询参数
|
|
|
|
queryParam: {},
|
|
|
|
// 表头
|
|
|
|
columns: [
|
|
|
|
{
|
|
|
|
title: '账号',
|
|
|
|
dataIndex: 'account'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: '昵称',
|
|
|
|
dataIndex: 'nickName'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: '最后登录IP',
|
|
|
|
dataIndex: 'lastLoginIp'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: '最后登录时间',
|
|
|
|
dataIndex: 'lastLoginTime'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: '最后登录地址',
|
|
|
|
dataIndex: 'lastLoginAddress',
|
|
|
|
scopedSlots: { customRender: 'lastLoginAddress' }
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: '最后登录浏览器',
|
|
|
|
dataIndex: 'lastLoginBrowser',
|
|
|
|
scopedSlots: { customRender: 'lastLoginBrowser' }
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: '最后登录所用系统',
|
|
|
|
dataIndex: 'lastLoginOs'
|
|
|
|
}
|
|
|
|
],
|
|
|
|
loading: true,
|
|
|
|
loadData: parameter => {
|
|
|
|
return sysOnlineUserList(Object.assign(parameter, this.queryParam)).then((res) => {
|
|
|
|
if (this.hasPerm('sysOnlineUser:list')) {
|
|
|
|
return res.data
|
|
|
|
} else {
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
return resolve()
|
|
|
|
})
|
|
|
|
|
|
title: '',
|
|
|
|
imageUrl:'',
|
|
|
|
showModify:false,
|
|
|
|
ModifyText:'修改',
|
|
|
|
columns:[
|
|
|
|
{
|
|
|
|
dataIndex: 'key',
|
|
|
|
width: 70,
|
|
|
|
align: 'center',
|
|
|
|
title: '序号',
|
|
|
|
key: 'key',
|
|
|
|
scopedSlots: { customRender: 'key' }
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: '排序',
|
|
|
|
dataIndex: 'oneMenu',
|
|
|
|
align: 'center',
|
|
|
|
key: 'oneMenu'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: 'banner名称',
|
|
|
|
align: 'center',
|
|
|
|
dataIndex: 'twoMenu',
|
|
|
|
key: 'twoMenu'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: '图像',
|
|
|
|
align: 'center',
|
|
|
|
key: 'title',
|
|
|
|
dataIndex: 'title',
|
|
|
|
scopedSlots: { customRender: 'title' }
|
|
|
|
},
|
|
|
|
// {
|
|
|
|
// title: '关联文章',
|
|
|
|
// align: 'center',
|
|
|
|
// key: 'audit',
|
|
|
|
// dataIndex: 'audit',
|
|
|
|
// scopedSlots: { customRender: 'audit' }
|
|
|
|
// },
|
|
|
|
{
|
|
|
|
title: '是否生效',
|
|
|
|
align: 'center',
|
|
|
|
dataIndex: 'auditDate',
|
|
|
|
key: 'auditDate'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: '操作',
|
|
|
|
dataIndex: 'operation',
|
|
|
|
align: 'center',
|
|
|
|
key: 'operation',
|
|
|
|
scopedSlots: { customRender: 'operation' },
|
|
|
|
slots: { title: 'operation' }
|
|
}
|
|
}
|
|
})
|
|
|
|
},
|
|
|
|
selectedRowKeys: [],
|
|
|
|
selectedRows: []
|
|
|
|
}
|
|
|
|
},
|
|
|
|
// 进页面加载
|
|
|
|
created () {
|
|
|
|
if (this.hasPerm('sysOnlineUser:forceExist')) {
|
|
|
|
this.columns.push({
|
|
|
|
title: '操作',
|
|
|
|
width: '150px',
|
|
|
|
dataIndex: 'action',
|
|
|
|
scopedSlots: { customRender: 'action' }
|
|
|
|
})
|
|
|
|
|
|
],
|
|
|
|
data:[
|
|
|
|
{
|
|
|
|
key: '1',
|
|
|
|
oneMenu: 32,
|
|
|
|
twoMenu: 'New York ',
|
|
|
|
title: 'NeYorkNo',
|
|
|
|
audit: 'NewYorkNo',
|
|
|
|
auditDate: 'NewYork ',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
key: '2',
|
|
|
|
oneMenu: 32,
|
|
|
|
twoMenu: 'New York ',
|
|
|
|
title: 'NeYorkNo',
|
|
|
|
audit: 'NewYorkNo',
|
|
|
|
auditDate: 'NewYork ',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
key: '3',
|
|
|
|
oneMenu: 32,
|
|
|
|
twoMenu: 'New York ',
|
|
|
|
title: 'NeYorkNo',
|
|
|
|
audit: 'NewYorkNo',
|
|
|
|
auditDate: 'NewYork ',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
key: '4',
|
|
|
|
oneMenu: 32,
|
|
|
|
twoMenu: 'New York ',
|
|
|
|
title: 'NeYorkNo',
|
|
|
|
audit: 'NewYorkNo',
|
|
|
|
auditDate: 'NewYork ',
|
|
|
|
},
|
|
|
|
]
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
created () {},
|
|
methods: {
|
|
methods: {
|
|
forceExist (record) {
|
|
|
|
sysOnlineUserForceExist(record).then((res) => {
|
|
|
|
if (res.success) {
|
|
|
|
this.$message.success('强制下线成功')
|
|
|
|
// 重新加载表格
|
|
|
|
this.loadDataList()
|
|
|
|
} else {
|
|
|
|
this.$message.error('强制下线失败:' + res.message)
|
|
|
|
}
|
|
|
|
}).catch((err) => {
|
|
|
|
this.$message.error('强制下线错误:' + err.message)
|
|
|
|
})
|
|
|
|
},
|
|
|
|
onSelectChange (selectedRowKeys, selectedRows) {
|
|
|
|
this.selectedRowKeys = selectedRowKeys
|
|
|
|
this.selectedRows = selectedRows
|
|
|
|
}
|
|
|
|
|
|
onChange (selectedRowKeys, selectedRows) {
|
|
|
|
this.selectedRowKeys = selectedRowKeys
|
|
|
|
this.selectedRows = selectedRows
|
|
|
|
},
|
|
|
|
pageChange (value, page) {
|
|
|
|
console.log('pageChange', value)
|
|
|
|
console.log('pageChange', page)
|
|
|
|
},
|
|
|
|
showChange (value, page) {
|
|
|
|
console.log('showChange', value)
|
|
|
|
console.log('showChange', page)
|
|
|
|
},
|
|
|
|
editor () {
|
|
|
|
console.log('bianji')
|
|
|
|
},
|
|
|
|
articleDelect () {
|
|
|
|
console.log('删除')
|
|
|
|
},
|
|
|
|
callback(key) {
|
|
|
|
console.log(key);
|
|
|
|
if(key == '1'){
|
|
|
|
this.columns[2].title = 'banner名称'
|
|
|
|
}else if(key == '2'){
|
|
|
|
this.columns[2].title = '产品亮点名称'
|
|
|
|
}else if(key == '3'){
|
|
|
|
this.columns[2].title = '解决方案名称'
|
|
|
|
}else if(key == '4'){
|
|
|
|
this.columns[2].title = '新闻名称'
|
|
|
|
this.columns.splice(4,0,{
|
|
|
|
title: '关联文章',
|
|
|
|
align: 'center',
|
|
|
|
key: 'audit',
|
|
|
|
dataIndex: 'audit',
|
|
|
|
scopedSlots: { customRender: 'audit' }
|
|
|
|
})
|
|
|
|
}
|
|
|
|
},
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|
|
<style lang="less">
|
|
<style lang="less">
|
|
.table-operator {
|
|
|
|
margin-bottom: 18px;
|
|
|
|
}
|
|
|
|
button {
|
|
|
|
margin-right: 8px;
|
|
|
|
}
|
|
|
|
|
|
.webPage{
|
|
|
|
.ant-tabs-tab{
|
|
|
|
width:200px;
|
|
|
|
text-align:center;
|
|
|
|
}
|
|
|
|
.add{
|
|
|
|
position:absolute;
|
|
|
|
top:145px;
|
|
|
|
right:600px;
|
|
|
|
}
|
|
|
|
.table{
|
|
|
|
margin-bottom:20px;
|
|
|
|
}
|
|
|
|
.pagination{
|
|
|
|
float:right;
|
|
|
|
}
|
|
|
|
}
|
|
</style>
|
|
</style>
|