update 系统管理
This commit is contained in:
parent
05e1ea5842
commit
b7346156dd
@ -13,18 +13,18 @@ export const apiSysRoleSelect = params => {
|
||||
return http({ url: '/lz_management/sys/role/select', method: 'get', params })
|
||||
}
|
||||
|
||||
// 用户编辑
|
||||
// 编辑用户
|
||||
export const apiSysUserInfo = (params, id) => {
|
||||
return http({ url: `/lz_management/sys/user/info${id}`, method: 'get', params })
|
||||
}
|
||||
|
||||
// 提交(用户)
|
||||
// 提交用户
|
||||
export const apiSysUserConfirm = (data, type) => {
|
||||
return http({ url: `/lz_management/sys/user${type}`, method: 'post', data })
|
||||
}
|
||||
|
||||
// 删除用户
|
||||
export const apiSysUserDelete = (data, type) => {
|
||||
export const apiSysUserDelete = data => {
|
||||
return http({ url: `/lz_management/sys/user/delete`, method: 'post', data })
|
||||
}
|
||||
|
||||
@ -36,18 +36,18 @@ export const apiSysRoleList = params => {
|
||||
return http({ url: '/lz_management/sys/role/list', method: 'get', params })
|
||||
}
|
||||
|
||||
// 角色编辑
|
||||
// 编辑角色
|
||||
export const apiSysRoleInfo = (params, id) => {
|
||||
return http({ url: `/lz_management/sys/role/info${id}`, method: 'get', params })
|
||||
}
|
||||
|
||||
// 角色提交
|
||||
// 提交角色
|
||||
export const apiSysRoleConfirm = (data, type) => {
|
||||
return http({ url: `/lz_management/sys/role${type}`, method: 'post', data })
|
||||
}
|
||||
|
||||
// 删除角色
|
||||
export const apiSysRoleDelete = (data, type) => {
|
||||
export const apiSysRoleDelete = data => {
|
||||
return http({ url: `/lz_management/sys/role/delete`, method: 'post', data })
|
||||
}
|
||||
|
||||
@ -64,12 +64,12 @@ export const apiSysMenuSelect = params => {
|
||||
return http({ url: '/lz_management/sys/menu/select', method: 'get', params })
|
||||
}
|
||||
|
||||
// 菜单编辑
|
||||
// 编辑菜单
|
||||
export const apiSysMenuInfo = (params, id) => {
|
||||
return http({ url: `/lz_management/sys/menu/info${id}`, method: 'get', params })
|
||||
}
|
||||
|
||||
// 菜单提交
|
||||
// 提交菜单
|
||||
export const apiSysMenuConfirm = (data, type) => {
|
||||
return http({ url: `/lz_management/sys/menu${type}`, method: 'post', data })
|
||||
}
|
||||
@ -78,3 +78,105 @@ export const apiSysMenuConfirm = (data, type) => {
|
||||
export const apiSysMenuDelete = (data, id) => {
|
||||
return http({ url: `/lz_management/sys/menu/delete${id}`, method: 'post', data })
|
||||
}
|
||||
|
||||
/**
|
||||
* 定时任务
|
||||
*/
|
||||
// 定时任务列表
|
||||
export const apiSysScheduleList = params => {
|
||||
return http({ url: '/lz_management/sys/schedule/list', method: 'get', params })
|
||||
}
|
||||
|
||||
// 删除定时任务
|
||||
export const apiSysScheduleDelete = data => {
|
||||
return http({ url: `/lz_management/sys/schedule/delete`, method: 'post', data })
|
||||
}
|
||||
|
||||
// 暂停定时任务
|
||||
export const apiSysSchedulePause = data => {
|
||||
return http({ url: `/lz_management/sys/schedule/pause`, method: 'post', data })
|
||||
}
|
||||
|
||||
// 恢复定时任务
|
||||
export const apiSysScheduleResume = data => {
|
||||
return http({ url: `/lz_management/sys/schedule/resume`, method: 'post', data })
|
||||
}
|
||||
|
||||
// 立即执行定时任务
|
||||
export const apiSysScheduleRun = data => {
|
||||
return http({ url: `/lz_management/sys/schedule/run`, method: 'post', data })
|
||||
}
|
||||
|
||||
// 定时任务日志列表
|
||||
export const apiSysScheduleLogList = params => {
|
||||
return http({ url: '/lz_management/sys/scheduleLog/list', method: 'get', params })
|
||||
}
|
||||
|
||||
// 定时任务日志失效信息
|
||||
export const apiSysScheduleLogInfo = (params, id) => {
|
||||
return http({ url: `/lz_management/sys/scheduleLog/info${id}`, method: 'get', params })
|
||||
}
|
||||
|
||||
// 编辑定时任务
|
||||
export const apiSysScheduleInfo = (params, id) => {
|
||||
return http({ url: `/lz_management/sys/schedule/info${id}`, method: 'get', params })
|
||||
}
|
||||
|
||||
// 提交定时任务
|
||||
export const apiSysScheduleConfirm = (data, type) => {
|
||||
return http({ url: `/lz_management/sys/schedule${type}`, method: 'post', data })
|
||||
}
|
||||
|
||||
/**
|
||||
* 参数管理
|
||||
*/
|
||||
// 定时任务列表
|
||||
export const apiSysConfigList = params => {
|
||||
return http({ url: '/lz_management/sys/config/list', method: 'get', params })
|
||||
}
|
||||
|
||||
// 删除参数
|
||||
export const apiSysConfigDelete = data => {
|
||||
return http({ url: `/lz_management/sys/config/delete`, method: 'post', data })
|
||||
}
|
||||
|
||||
// 编辑参数
|
||||
export const apiSysConfigInfo = (params, id) => {
|
||||
return http({ url: `/lz_management/sys/config/info${id}`, method: 'get', params })
|
||||
}
|
||||
|
||||
// 提交参数
|
||||
export const apiSysConfigConfirm = (data, type) => {
|
||||
return http({ url: `/lz_management/sys/config${type}`, method: 'post', data })
|
||||
}
|
||||
|
||||
/**
|
||||
* 日志管理
|
||||
*/
|
||||
// 日志管理列表
|
||||
export const apiSysLogList = params => {
|
||||
return http({ url: '/lz_management/sys/log/list', method: 'get', params })
|
||||
}
|
||||
|
||||
/**
|
||||
* 文件上传
|
||||
*/
|
||||
// 文件上传列表
|
||||
export const apiSysOssList = params => {
|
||||
return http({ url: '/lz_management/sys/oss/list', method: 'get', params })
|
||||
}
|
||||
|
||||
// 删除文件上传记录
|
||||
export const apiSysOssDelete = data => {
|
||||
return http({ url: `/lz_management/sys/oss/delete`, method: 'post', data })
|
||||
}
|
||||
|
||||
// 编辑云储存配置
|
||||
export const apiSysOssConfig = params => {
|
||||
return http({ url: `/lz_management/sys/oss/config`, method: 'get', params })
|
||||
}
|
||||
|
||||
// 提交云储存配置
|
||||
export const apiSysOssSaveConfig = params => {
|
||||
return http({ url: `/lz_management/sys/oss/saveConfig`, method: 'get', params })
|
||||
}
|
||||
|
||||
@ -34,10 +34,11 @@ const mainRoutes = {
|
||||
// 2. iframeUrl: 是否通过iframe嵌套展示内容, '以http[s]://开头': 是, '': 否
|
||||
// 提示: 如需要通过iframe嵌套展示内容, 但不通过tab打开, 请自行创建组件使用iframe处理!
|
||||
{ path: '/home', component: _import('common/home'), name: 'home', meta: { title: '首页' } },
|
||||
{ path: '/theme', component: _import('common/theme'), name: 'theme', meta: { title: '主题' } },
|
||||
{ path: '/staff-manage', component: _import('business/staff/staff-manage/index'), name: 'staff-manage', meta: { title: '员工管理', isTab: true, isNoCard: true } },
|
||||
{ path: '/staff-profile', component: _import('business/staff/staff-profile/index'), name: 'staff-profile', meta: { title: '员工概述', isTab: true, isNoCard: true } },
|
||||
{ path: '/staff-archives', component: _import('business/staff/staff-archives/index'), name: 'staff-archives', meta: { title: '员工档案', isTab: true, isNoCard: true } }
|
||||
{ path: '/theme', component: _import('common/theme'), name: 'theme', meta: { title: '主题' } }
|
||||
// { path: '/staff-manage', component: _import('business/staff/staff-manage/index'), name: 'staff-manage', meta: { title: '员工管理', isTab: true, isNoCard: true } },
|
||||
// { path: '/staff-profile', component: _import('business/staff/staff-profile/index'), name: 'staff-profile', meta: { title: '员工概述', isTab: true, isNoCard: true } },
|
||||
// { path: '/staff-archives', component: _import('business/staff/staff-archives/index'), name: 'staff-archives', meta: { title: '员工档案', isTab: true, isNoCard: true } }
|
||||
// { path: '/sys/user/index', component: _import('modules/sys/user/index'), name: 'staff-archives1', meta: { title: '员工档案', isTab: true, isNoCard: true } }
|
||||
],
|
||||
beforeEnter (to, from, next) {
|
||||
let token = Vue.cookie.get('token')
|
||||
@ -108,9 +109,9 @@ function fnAddDynamicMenuRoutes (menuList = [], routes = []) {
|
||||
} else if (menuList[i].url && /\S/.test(menuList[i].url)) {
|
||||
menuList[i].url = menuList[i].url.replace(/^\//, '')
|
||||
var route = {
|
||||
path: menuList[i].url.replace('/', '-'),
|
||||
path: menuList[i].url.replace(/(\/)/g, '-'),
|
||||
component: null,
|
||||
name: menuList[i].url.replace('/', '-'),
|
||||
name: menuList[i].url.replace(/(\/)/g, '-'),
|
||||
meta: {
|
||||
menuId: menuList[i].menuId,
|
||||
title: menuList[i].name,
|
||||
@ -142,10 +143,7 @@ function fnAddDynamicMenuRoutes (menuList = [], routes = []) {
|
||||
{ path: '*', redirect: { name: '404' } }
|
||||
])
|
||||
sessionStorage.setItem('dynamicMenuRoutes', JSON.stringify(mainRoutes.children || '[]'))
|
||||
console.log('\n')
|
||||
console.log('%c!<-------------------- 动态(菜单)路由 s -------------------->', 'color:blue')
|
||||
console.log(mainRoutes.children)
|
||||
console.log('%c!<-------------------- 动态(菜单)路由 e -------------------->', 'color:blue')
|
||||
console.log('%c!<--- 动态(菜单)路由加载完成 --->', 'color:blue', mainRoutes.children)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
:title="!dataForm.id ? '新增' : '修改'"
|
||||
:title="!dataForm.id ? '新增' : '编辑'"
|
||||
:close-on-click-modal="false"
|
||||
:visible.sync="visible">
|
||||
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="100px">
|
||||
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="handleConfirm()" label-width="100px">
|
||||
<el-form-item label="bean名称" prop="beanName">
|
||||
<el-input v-model="dataForm.beanName" placeholder="spring bean名称, 如: testTask"></el-input>
|
||||
</el-form-item>
|
||||
@ -19,12 +19,14 @@
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="visible = false">取消</el-button>
|
||||
<el-button type="primary" @click="dataFormSubmit()">确定</el-button>
|
||||
<el-button type="primary" @click="handleConfirm()">确定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { apiSysScheduleInfo, apiSysScheduleConfirm } from '@/api/api_sys'
|
||||
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
@ -38,55 +40,49 @@
|
||||
status: 0
|
||||
},
|
||||
dataRule: {
|
||||
beanName: [
|
||||
{ required: true, message: '用户名不能为空', trigger: 'blur' }
|
||||
],
|
||||
cronExpression: [
|
||||
{ required: true, message: 'cron表达式不能为空', trigger: 'blur' }
|
||||
]
|
||||
}
|
||||
beanName: [{ required: true, message: '用户名不能为空', trigger: 'blur' }],
|
||||
cronExpression: [{ required: true, message: 'cron表达式不能为空', trigger: 'blur' }]
|
||||
},
|
||||
apiType: '' // api类型
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
init (id) {
|
||||
this.dataForm.id = id || 0
|
||||
this.visible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs['dataForm'].resetFields()
|
||||
if (this.dataForm.id) {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl(`/sys/schedule/info/${this.dataForm.id}`),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams()
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 0) {
|
||||
this.dataForm.beanName = data.schedule.beanName
|
||||
this.dataForm.params = data.schedule.params
|
||||
this.dataForm.cronExpression = data.schedule.cronExpression
|
||||
this.dataForm.remark = data.schedule.remark
|
||||
this.dataForm.status = data.schedule.status
|
||||
}
|
||||
})
|
||||
if (id) {
|
||||
this.dataForm.id = id || 0
|
||||
this.handleEdit()
|
||||
this.apiType = '/update'
|
||||
} else {
|
||||
this.apiType = '/save'
|
||||
}
|
||||
},
|
||||
// 编辑
|
||||
handleEdit () {
|
||||
apiSysScheduleInfo({}, `/${this.dataForm.id}`).then(res => {
|
||||
if (res && res.code === 0) {
|
||||
this.dataForm.beanName = res.schedule.beanName
|
||||
this.dataForm.params = res.schedule.params
|
||||
this.dataForm.cronExpression = res.schedule.cronExpression
|
||||
this.dataForm.remark = res.schedule.remark
|
||||
this.dataForm.status = res.schedule.status
|
||||
}
|
||||
})
|
||||
},
|
||||
// 表单提交
|
||||
dataFormSubmit () {
|
||||
handleConfirm () {
|
||||
this.$refs['dataForm'].validate((valid) => {
|
||||
if (valid) {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl(`/sys/schedule/${!this.dataForm.id ? 'save' : 'update'}`),
|
||||
method: 'post',
|
||||
data: this.$http.adornData({
|
||||
'jobId': this.dataForm.id || undefined,
|
||||
'beanName': this.dataForm.beanName,
|
||||
'params': this.dataForm.params,
|
||||
'cronExpression': this.dataForm.cronExpression,
|
||||
'remark': this.dataForm.remark,
|
||||
'status': !this.dataForm.id ? undefined : this.dataForm.status
|
||||
})
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 0) {
|
||||
let params = {
|
||||
'jobId': this.dataForm.id || undefined,
|
||||
'beanName': this.dataForm.beanName,
|
||||
'params': this.dataForm.params,
|
||||
'cronExpression': this.dataForm.cronExpression,
|
||||
'remark': this.dataForm.remark,
|
||||
'status': !this.dataForm.id ? undefined : this.dataForm.status
|
||||
}
|
||||
apiSysScheduleConfirm(params, this.apiType).then(res => {
|
||||
if (res && res.code === 0) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
@ -97,7 +93,7 @@
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$message.error(data.msg)
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@ -4,73 +4,31 @@
|
||||
:close-on-click-modal="false"
|
||||
:visible.sync="visible"
|
||||
width="75%">
|
||||
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
|
||||
<el-form :inline="true" :model="dataForm" @keyup.enter.native="handleGetTableList()">
|
||||
<el-form-item>
|
||||
<el-input v-model="dataForm.id" placeholder="任务ID" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="getDataList()">查询</el-button>
|
||||
<el-button @click="handleGetTableList()">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
:data="dataList"
|
||||
border
|
||||
v-loading="dataListLoading"
|
||||
height="460"
|
||||
style="width: 100%;">
|
||||
<el-table-column
|
||||
prop="logId"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="80"
|
||||
label="日志ID">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="jobId"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="80"
|
||||
label="任务ID">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="beanName"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="bean名称">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="params"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="参数">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="status"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="状态">
|
||||
<el-table :data="dataList" border v-loading="dataListLoading" height="460" style="width: 100%;">
|
||||
<el-table-column prop="logId" header-align="center" align="center" width="80" label="日志ID"></el-table-column>
|
||||
<el-table-column prop="jobId" header-align="center" align="center" width="80" label="任务ID"></el-table-column>
|
||||
<el-table-column prop="beanName" header-align="center" align="center" label="bean名称"></el-table-column>
|
||||
<el-table-column prop="params" header-align="center" align="center" label="参数"></el-table-column>
|
||||
<el-table-column prop="status" header-align="center" align="center" label="状态">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.status === 0" size="small">成功</el-tag>
|
||||
<el-tag v-else @click.native="showErrorInfo(scope.row.logId)" size="small" type="danger" style="cursor: pointer;">失败</el-tag>
|
||||
<el-tag v-else @click.native="handleShowErrorInfo(scope.row.logId)" size="small" type="danger" style="cursor: pointer;">失败</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="times"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="耗时(单位: 毫秒)">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="createTime"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="180"
|
||||
label="执行时间">
|
||||
</el-table-column>
|
||||
<el-table-column prop="times" header-align="center" align="center" label="耗时(单位: 毫秒)"></el-table-column>
|
||||
<el-table-column prop="createTime" header-align="center" align="center" width="180" label="执行时间"></el-table-column>
|
||||
</el-table>
|
||||
<el-pagination
|
||||
@size-change="sizeChangeHandle"
|
||||
@current-change="currentChangeHandle"
|
||||
@size-change="handleChangeSize"
|
||||
@current-change="handleChangeCurrent"
|
||||
:current-page="pageIndex"
|
||||
:page-sizes="[10, 20, 50, 100]"
|
||||
:page-size="pageSize"
|
||||
@ -81,6 +39,8 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { apiSysScheduleLogList, apiSysScheduleLogInfo } from '@/api/api_sys'
|
||||
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
@ -98,23 +58,18 @@
|
||||
methods: {
|
||||
init () {
|
||||
this.visible = true
|
||||
this.getDataList()
|
||||
this.handleGetTableList()
|
||||
},
|
||||
// 获取数据列表
|
||||
getDataList () {
|
||||
this.dataListLoading = true
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/sys/scheduleLog/list'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({
|
||||
'page': this.pageIndex,
|
||||
'limit': this.pageSize,
|
||||
'jobId': this.dataForm.id
|
||||
})
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 0) {
|
||||
this.dataList = data.page.list
|
||||
this.totalPage = data.page.totalCount
|
||||
handleGetTableList () {
|
||||
apiSysScheduleLogList({
|
||||
'page': this.pageIndex,
|
||||
'limit': this.pageSize,
|
||||
'jobId': this.dataForm.id
|
||||
}).then(res => {
|
||||
if (res && res.code === 0) {
|
||||
this.dataList = res.page.list
|
||||
this.totalPage = res.page.totalCount
|
||||
} else {
|
||||
this.dataList = []
|
||||
this.totalPage = 0
|
||||
@ -123,27 +78,23 @@
|
||||
})
|
||||
},
|
||||
// 每页数
|
||||
sizeChangeHandle (val) {
|
||||
handleChangeSize (val) {
|
||||
this.pageSize = val
|
||||
this.pageIndex = 1
|
||||
this.getDataList()
|
||||
this.handleGetTableList()
|
||||
},
|
||||
// 当前页
|
||||
currentChangeHandle (val) {
|
||||
handleChangeCurrent (val) {
|
||||
this.pageIndex = val
|
||||
this.getDataList()
|
||||
this.handleGetTableList()
|
||||
},
|
||||
// 失败信息
|
||||
showErrorInfo (id) {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl(`/sys/scheduleLog/info/${id}`),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams()
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 0) {
|
||||
this.$alert(data.log.error)
|
||||
handleShowErrorInfo (id) {
|
||||
apiSysScheduleLogInfo({}, `/${id}`).then(res => {
|
||||
if (res && res.code === 0) {
|
||||
this.$alert(res.log.error)
|
||||
} else {
|
||||
this.$message.error(data.msg)
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@ -1,98 +1,53 @@
|
||||
<template>
|
||||
<div class="mod-schedule">
|
||||
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
|
||||
<el-form :inline="true" :model="dataForm" @keyup.enter.native="handleGetTableList()">
|
||||
<el-form-item>
|
||||
<el-input v-model="dataForm.beanName" placeholder="bean名称" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="getDataList()">查询</el-button>
|
||||
<el-button v-if="isAuth('sys:schedule:save')" type="primary" @click="addOrUpdateHandle()">新增</el-button>
|
||||
<el-button v-if="isAuth('sys:schedule:delete')" type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0">批量删除</el-button>
|
||||
<el-button v-if="isAuth('sys:schedule:pause')" type="danger" @click="pauseHandle()" :disabled="dataListSelections.length <= 0">批量暂停</el-button>
|
||||
<el-button v-if="isAuth('sys:schedule:resume')" type="danger" @click="resumeHandle()" :disabled="dataListSelections.length <= 0">批量恢复</el-button>
|
||||
<el-button v-if="isAuth('sys:schedule:run')" type="danger" @click="runHandle()" :disabled="dataListSelections.length <= 0">批量立即执行</el-button>
|
||||
<el-button v-if="isAuth('sys:schedule:log')" type="success" @click="logHandle()">日志列表</el-button>
|
||||
<el-button @click="handleGetTableList()">查询</el-button>
|
||||
<el-button v-if="isAuth('sys:schedule:save')" type="primary" @click="handleAddOrUpdate()">新增</el-button>
|
||||
<el-button v-if="isAuth('sys:schedule:delete')" type="danger" @click="handleDelete()" :disabled="dataListSelections.length <= 0">批量删除</el-button>
|
||||
<el-button v-if="isAuth('sys:schedule:pause')" type="danger" @click="handlePause()" :disabled="dataListSelections.length <= 0">批量暂停</el-button>
|
||||
<el-button v-if="isAuth('sys:schedule:resume')" type="danger" @click="handleResume()" :disabled="dataListSelections.length <= 0">批量恢复</el-button>
|
||||
<el-button v-if="isAuth('sys:schedule:run')" type="danger" @click="handleRun()" :disabled="dataListSelections.length <= 0">批量立即执行</el-button>
|
||||
<el-button v-if="isAuth('sys:schedule:log')" type="success" @click="handleLog()">日志列表</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
:data="dataList"
|
||||
border
|
||||
v-loading="dataListLoading"
|
||||
@selection-change="selectionChangeHandle"
|
||||
style="width: 100%;">
|
||||
<el-table-column
|
||||
type="selection"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="50">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="jobId"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="80"
|
||||
label="ID">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="beanName"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="bean名称">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="params"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="参数">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="cronExpression"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="cron表达式">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="remark"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="备注">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="status"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="状态">
|
||||
<el-table :data="dataList" border v-loading="dataListLoading" @selection-change="handleChangeSelection" style="width: 100%;">
|
||||
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
|
||||
<el-table-column prop="jobId" header-align="center" align="center" width="80" label="ID"></el-table-column>
|
||||
<el-table-column prop="beanName" header-align="center" align="center" label="bean名称"></el-table-column>
|
||||
<el-table-column prop="params" header-align="center" align="center" label="参数"></el-table-column>
|
||||
<el-table-column prop="cronExpression" header-align="center" align="center" label="cron表达式"></el-table-column>
|
||||
<el-table-column prop="remark" header-align="center" align="center" label="备注"></el-table-column>
|
||||
<el-table-column prop="status" header-align="center" align="center" label="状态">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.status === 0" size="small">正常</el-tag>
|
||||
<el-tag v-else size="small" type="danger">暂停</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
fixed="right"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="150"
|
||||
label="操作">
|
||||
<el-table-column fixed="right" header-align="center" align="center" width="150" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button v-if="isAuth('sys:schedule:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.jobId)">修改</el-button>
|
||||
<el-button v-if="isAuth('sys:schedule:delete')" type="text" size="small" @click="deleteHandle(scope.row.jobId)">删除</el-button>
|
||||
<el-button v-if="isAuth('sys:schedule:pause')" type="text" size="small" @click="pauseHandle(scope.row.jobId)">暂停</el-button>
|
||||
<el-button v-if="isAuth('sys:schedule:resume')" type="text" size="small" @click="resumeHandle(scope.row.jobId)">恢复</el-button>
|
||||
<el-button v-if="isAuth('sys:schedule:run')" type="text" size="small" @click="runHandle(scope.row.jobId)">立即执行</el-button>
|
||||
<el-button v-if="isAuth('sys:schedule:update')" type="text" size="small" @click="handleAddOrUpdate(scope.row.jobId)">编辑</el-button>
|
||||
<el-button v-if="isAuth('sys:schedule:delete')" type="text" size="small" @click="handleDelete(scope.row.jobId)">删除</el-button>
|
||||
<el-button v-if="isAuth('sys:schedule:pause')" type="text" size="small" @click="handlePause(scope.row.jobId)">暂停</el-button>
|
||||
<el-button v-if="isAuth('sys:schedule:resume')" type="text" size="small" @click="handleResume(scope.row.jobId)">恢复</el-button>
|
||||
<el-button v-if="isAuth('sys:schedule:run')" type="text" size="small" @click="handleRun(scope.row.jobId)">立即执行</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination
|
||||
@size-change="sizeChangeHandle"
|
||||
@current-change="currentChangeHandle"
|
||||
@size-change="handleChangeSize"
|
||||
@current-change="handleChangeCurrent"
|
||||
:current-page="pageIndex"
|
||||
:page-sizes="[10, 20, 50, 100]"
|
||||
:page-size="pageSize"
|
||||
:total="totalPage"
|
||||
layout="total, sizes, prev, pager, next, jumper">
|
||||
</el-pagination>
|
||||
<!-- 弹窗, 新增 / 修改 -->
|
||||
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
|
||||
<!-- 弹窗, 新增 / 编辑 -->
|
||||
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="handleGetTableList"></add-or-update>
|
||||
<!-- 弹窗, 日志列表 -->
|
||||
<log v-if="logVisible" ref="log"></log>
|
||||
</div>
|
||||
@ -101,6 +56,8 @@
|
||||
<script>
|
||||
import AddOrUpdate from './schedule-add-or-update'
|
||||
import Log from './schedule-log'
|
||||
import { apiSysScheduleList, apiSysScheduleDelete, apiSysSchedulePause, apiSysScheduleResume, apiSysScheduleRun } from '@/api/api_sys'
|
||||
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
@ -122,24 +79,19 @@
|
||||
Log
|
||||
},
|
||||
activated () {
|
||||
this.getDataList()
|
||||
this.handleGetTableList()
|
||||
},
|
||||
methods: {
|
||||
// 获取数据列表
|
||||
getDataList () {
|
||||
this.dataListLoading = true
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/sys/schedule/list'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({
|
||||
'page': this.pageIndex,
|
||||
'limit': this.pageSize,
|
||||
'beanName': this.dataForm.beanName
|
||||
})
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 0) {
|
||||
this.dataList = data.page.list
|
||||
this.totalPage = data.page.totalCount
|
||||
handleGetTableList () {
|
||||
apiSysScheduleList({
|
||||
'page': this.pageIndex,
|
||||
'limit': this.pageSize,
|
||||
'beanName': this.dataForm.beanName
|
||||
}).then(res => {
|
||||
if (res && res.code === 0) {
|
||||
this.dataList = res.page.list
|
||||
this.totalPage = res.page.totalCount
|
||||
} else {
|
||||
this.dataList = []
|
||||
this.totalPage = 0
|
||||
@ -148,30 +100,30 @@
|
||||
})
|
||||
},
|
||||
// 每页数
|
||||
sizeChangeHandle (val) {
|
||||
handleChangeSize (val) {
|
||||
this.pageSize = val
|
||||
this.pageIndex = 1
|
||||
this.getDataList()
|
||||
this.handleGetTableList()
|
||||
},
|
||||
// 当前页
|
||||
currentChangeHandle (val) {
|
||||
handleChangeCurrent (val) {
|
||||
this.pageIndex = val
|
||||
this.getDataList()
|
||||
this.handleGetTableList()
|
||||
},
|
||||
// 多选
|
||||
selectionChangeHandle (val) {
|
||||
handleChangeSelection (val) {
|
||||
this.dataListSelections = val
|
||||
},
|
||||
// 新增 / 修改
|
||||
addOrUpdateHandle (id) {
|
||||
// 新增 / 编辑
|
||||
handleAddOrUpdate (id) {
|
||||
this.addOrUpdateVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.addOrUpdate.init(id)
|
||||
})
|
||||
},
|
||||
// 删除
|
||||
deleteHandle (id) {
|
||||
var ids = id ? [id] : this.dataListSelections.map(item => {
|
||||
handleDelete (id) {
|
||||
let ids = id ? [id] : this.dataListSelections.map(item => {
|
||||
return item.jobId
|
||||
})
|
||||
this.$confirm(`确定对[id=${ids.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
|
||||
@ -179,29 +131,25 @@
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/sys/schedule/delete'),
|
||||
method: 'post',
|
||||
data: this.$http.adornData(ids, false)
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 0) {
|
||||
apiSysScheduleDelete(ids).then(res => {
|
||||
if (res && res.code === 0) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.getDataList()
|
||||
this.handleGetTableList()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$message.error(data.msg)
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
})
|
||||
}).catch(() => {})
|
||||
},
|
||||
// 暂停
|
||||
pauseHandle (id) {
|
||||
var ids = id ? [id] : this.dataListSelections.map(item => {
|
||||
handlePause (id) {
|
||||
let ids = id ? [id] : this.dataListSelections.map(item => {
|
||||
return item.jobId
|
||||
})
|
||||
this.$confirm(`确定对[id=${ids.join(',')}]进行[${id ? '暂停' : '批量暂停'}]操作?`, '提示', {
|
||||
@ -209,29 +157,25 @@
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/sys/schedule/pause'),
|
||||
method: 'post',
|
||||
data: this.$http.adornData(ids, false)
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 0) {
|
||||
apiSysSchedulePause(ids).then(res => {
|
||||
if (res && res.code === 0) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.getDataList()
|
||||
this.handleGetTableList()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$message.error(data.msg)
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
})
|
||||
}).catch(() => {})
|
||||
},
|
||||
// 恢复
|
||||
resumeHandle (id) {
|
||||
var ids = id ? [id] : this.dataListSelections.map(item => {
|
||||
handleResume (id) {
|
||||
let ids = id ? [id] : this.dataListSelections.map(item => {
|
||||
return item.jobId
|
||||
})
|
||||
this.$confirm(`确定对[id=${ids.join(',')}]进行[${id ? '恢复' : '批量恢复'}]操作?`, '提示', {
|
||||
@ -239,28 +183,24 @@
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/sys/schedule/resume'),
|
||||
method: 'post',
|
||||
data: this.$http.adornData(ids, false)
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 0) {
|
||||
apiSysScheduleResume(ids).then(res => {
|
||||
if (res && res.code === 0) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.getDataList()
|
||||
this.handleGetTableList()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$message.error(data.msg)
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
})
|
||||
}).catch(() => {})
|
||||
},
|
||||
// 立即执行
|
||||
runHandle (id) {
|
||||
handleRun (id) {
|
||||
var ids = id ? [id] : this.dataListSelections.map(item => {
|
||||
return item.jobId
|
||||
})
|
||||
@ -269,28 +209,24 @@
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/sys/schedule/run'),
|
||||
method: 'post',
|
||||
data: this.$http.adornData(ids, false)
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 0) {
|
||||
apiSysScheduleRun(ids).then(res => {
|
||||
if (res && res.code === 0) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.getDataList()
|
||||
this.handleGetTableList()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$message.error(data.msg)
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
})
|
||||
}).catch(() => {})
|
||||
},
|
||||
// 日志列表
|
||||
logHandle () {
|
||||
handleLog () {
|
||||
this.logVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.log.init()
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
title="云存储配置"
|
||||
:close-on-click-modal="false"
|
||||
:visible.sync="visible">
|
||||
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="120px">
|
||||
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="handleConfirm()" label-width="120px">
|
||||
<el-form-item size="mini" label="存储类型">
|
||||
<el-radio-group v-model="dataForm.type">
|
||||
<el-radio :label="1">七牛</el-radio>
|
||||
@ -77,12 +77,14 @@
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="visible = false">取消</el-button>
|
||||
<el-button type="primary" @click="dataFormSubmit()">确定</el-button>
|
||||
<el-button type="primary" @click="handleConfirm()">确定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { apiSysOssConfig, apiSysOssSaveConfig } from '@/api/api_sys'
|
||||
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
@ -94,24 +96,16 @@
|
||||
methods: {
|
||||
init (id) {
|
||||
this.visible = true
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/sys/oss/config'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams()
|
||||
}).then(({data}) => {
|
||||
this.dataForm = data && data.code === 0 ? data.config : []
|
||||
apiSysOssConfig({}).then(res => {
|
||||
this.dataForm = res && res.code === 0 ? res.config : []
|
||||
})
|
||||
},
|
||||
// 表单提交
|
||||
dataFormSubmit () {
|
||||
handleConfirm () {
|
||||
this.$refs['dataForm'].validate((valid) => {
|
||||
if (valid) {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/sys/oss/saveConfig'),
|
||||
method: 'post',
|
||||
data: this.$http.adornData(this.dataForm)
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 0) {
|
||||
apiSysOssSaveConfig(this.dataForm).then(res => {
|
||||
if (res && res.code === 0) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
@ -121,7 +115,7 @@
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$message.error(data.msg)
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@ -2,13 +2,13 @@
|
||||
<el-dialog
|
||||
title="上传文件"
|
||||
:close-on-click-modal="false"
|
||||
@close="closeHandle"
|
||||
@close="handleClose"
|
||||
:visible.sync="visible">
|
||||
<el-upload
|
||||
drag
|
||||
:action="url"
|
||||
:before-upload="beforeUploadHandle"
|
||||
:on-success="successHandle"
|
||||
:before-upload="handleBeforeUpload"
|
||||
:on-success="handleSuccess"
|
||||
multiple
|
||||
:file-list="fileList"
|
||||
style="text-align: center;">
|
||||
@ -32,11 +32,11 @@
|
||||
},
|
||||
methods: {
|
||||
init (id) {
|
||||
this.url = this.$http.adornUrl(`/sys/oss/upload?token=${this.$cookie.get('token')}`)
|
||||
this.url = `/lz_management/sys/oss/upload?token=${this.$cookie.get('token')}`
|
||||
this.visible = true
|
||||
},
|
||||
// 上传之前
|
||||
beforeUploadHandle (file) {
|
||||
handleBeforeUpload (file) {
|
||||
if (file.type !== 'image/jpg' && file.type !== 'image/jpeg' && file.type !== 'image/png' && file.type !== 'image/gif') {
|
||||
this.$message.error('只支持jpg、png、gif格式的图片!')
|
||||
return false
|
||||
@ -44,7 +44,7 @@
|
||||
this.num++
|
||||
},
|
||||
// 上传成功
|
||||
successHandle (response, file, fileList) {
|
||||
handleSuccess (response, file, fileList) {
|
||||
this.fileList = fileList
|
||||
this.successNum++
|
||||
if (response && response.code === 0) {
|
||||
@ -62,7 +62,7 @@
|
||||
}
|
||||
},
|
||||
// 弹窗关闭时
|
||||
closeHandle () {
|
||||
handleClose () {
|
||||
this.fileList = []
|
||||
this.$emit('refreshDataList')
|
||||
}
|
||||
|
||||
@ -2,57 +2,25 @@
|
||||
<div class="mod-oss">
|
||||
<el-form :inline="true" :model="dataForm">
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="configHandle()">云存储配置</el-button>
|
||||
<el-button type="primary" @click="uploadHandle()">上传文件</el-button>
|
||||
<el-button type="primary" @click="handleConfig()">云存储配置</el-button>
|
||||
<el-button type="primary" @click="handleUpload()">上传文件</el-button>
|
||||
<el-button type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0">批量删除</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
:data="dataList"
|
||||
border
|
||||
v-loading="dataListLoading"
|
||||
@selection-change="selectionChangeHandle"
|
||||
style="width: 100%;">
|
||||
<el-table-column
|
||||
type="selection"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="50">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="id"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="80"
|
||||
label="ID">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="url"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="URL地址">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="createDate"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="180"
|
||||
label="创建时间">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
fixed="right"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="150"
|
||||
label="操作">
|
||||
<el-table :data="dataList" border v-loading="dataListLoading" @selection-change="handleChangeSelection" style="width: 100%;">
|
||||
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
|
||||
<el-table-column prop="id" header-align="center" align="center" width="80" label="ID"></el-table-column>
|
||||
<el-table-column prop="url" header-align="center" align="center" label="URL地址"></el-table-column>
|
||||
<el-table-column prop="createDate" header-align="center" align="center" width="180" label="创建时间"></el-table-column>
|
||||
<el-table-column fixed="right" header-align="center" align="center" width="150" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" size="small" @click="deleteHandle(scope.row.id)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination
|
||||
@size-change="sizeChangeHandle"
|
||||
@current-change="currentChangeHandle"
|
||||
@size-change="handleChangeSize"
|
||||
@current-change="handleChangeCurrent"
|
||||
:current-page="pageIndex"
|
||||
:page-sizes="[10, 20, 50, 100]"
|
||||
:page-size="pageSize"
|
||||
@ -62,13 +30,15 @@
|
||||
<!-- 弹窗, 云存储配置 -->
|
||||
<config v-if="configVisible" ref="config"></config>
|
||||
<!-- 弹窗, 上传文件 -->
|
||||
<upload v-if="uploadVisible" ref="upload" @refreshDataList="getDataList"></upload>
|
||||
<upload v-if="uploadVisible" ref="upload" @refreshDataList="handleGetTableList"></upload>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Config from './oss-config'
|
||||
import Upload from './oss-upload'
|
||||
import { apiSysOssList, apiSysOssDelete } from '@/api/api_sys'
|
||||
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
@ -88,23 +58,18 @@
|
||||
Upload
|
||||
},
|
||||
activated () {
|
||||
this.getDataList()
|
||||
this.handleGetTableList()
|
||||
},
|
||||
methods: {
|
||||
// 获取数据列表
|
||||
getDataList () {
|
||||
this.dataListLoading = true
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/sys/oss/list'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({
|
||||
'page': this.pageIndex,
|
||||
'limit': this.pageSize
|
||||
})
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 0) {
|
||||
this.dataList = data.page.list
|
||||
this.totalPage = data.page.totalCount
|
||||
handleGetTableList () {
|
||||
apiSysOssList({
|
||||
'page': this.pageIndex,
|
||||
'limit': this.pageSize
|
||||
}).then(res => {
|
||||
if (res && res.code === 0) {
|
||||
this.dataList = res.page.list
|
||||
this.totalPage = res.page.totalCount
|
||||
} else {
|
||||
this.dataList = []
|
||||
this.totalPage = 0
|
||||
@ -113,29 +78,29 @@
|
||||
})
|
||||
},
|
||||
// 每页数
|
||||
sizeChangeHandle (val) {
|
||||
handleChangeSize (val) {
|
||||
this.pageSize = val
|
||||
this.pageIndex = 1
|
||||
this.getDataList()
|
||||
this.handleGetTableList()
|
||||
},
|
||||
// 当前页
|
||||
currentChangeHandle (val) {
|
||||
handleChangeCurrent (val) {
|
||||
this.pageIndex = val
|
||||
this.getDataList()
|
||||
this.handleGetTableList()
|
||||
},
|
||||
// 多选
|
||||
selectionChangeHandle (val) {
|
||||
handleChangeSelection (val) {
|
||||
this.dataListSelections = val
|
||||
},
|
||||
// 云存储配置
|
||||
configHandle () {
|
||||
handleConfig () {
|
||||
this.configVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.config.init()
|
||||
})
|
||||
},
|
||||
// 上传文件
|
||||
uploadHandle () {
|
||||
handleUpload () {
|
||||
this.uploadVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.upload.init()
|
||||
@ -143,7 +108,7 @@
|
||||
},
|
||||
// 删除
|
||||
deleteHandle (id) {
|
||||
var ids = id ? [id] : this.dataListSelections.map(item => {
|
||||
let ids = id ? [id] : this.dataListSelections.map(item => {
|
||||
return item.id
|
||||
})
|
||||
this.$confirm(`确定对[id=${ids.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
|
||||
@ -151,22 +116,18 @@
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/sys/oss/delete'),
|
||||
method: 'post',
|
||||
data: this.$http.adornData(ids, false)
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 0) {
|
||||
apiSysOssDelete(ids).then(res => {
|
||||
if (res && res.code === 0) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.getDataList()
|
||||
this.handleGetTableList()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$message.error(data.msg)
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
})
|
||||
}).catch(() => {})
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
:title="!dataForm.id ? '新增' : '修改'"
|
||||
:title="!dataForm.id ? '新增' : '编辑'"
|
||||
:close-on-click-modal="false"
|
||||
:visible.sync="visible">
|
||||
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px">
|
||||
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="handleConfirm()" label-width="80px">
|
||||
<el-form-item label="参数名" prop="paramKey">
|
||||
<el-input v-model="dataForm.paramKey" placeholder="参数名"></el-input>
|
||||
</el-form-item>
|
||||
@ -16,12 +16,14 @@
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="visible = false">取消</el-button>
|
||||
<el-button type="primary" @click="dataFormSubmit()">确定</el-button>
|
||||
<el-button type="primary" @click="handleConfirm()">确定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { apiSysConfigInfo, apiSysConfigConfirm } from '@/api/api_sys'
|
||||
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
@ -33,51 +35,44 @@
|
||||
remark: ''
|
||||
},
|
||||
dataRule: {
|
||||
paramKey: [
|
||||
{ required: true, message: '参数名不能为空', trigger: 'blur' }
|
||||
],
|
||||
paramValue: [
|
||||
{ required: true, message: '参数值不能为空', trigger: 'blur' }
|
||||
]
|
||||
}
|
||||
paramKey: [{ required: true, message: '参数名不能为空', trigger: 'blur' }],
|
||||
paramValue: [{ required: true, message: '参数值不能为空', trigger: 'blur' }]
|
||||
},
|
||||
apiType: '' // api类型
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
init (id) {
|
||||
this.dataForm.id = id || 0
|
||||
this.visible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs['dataForm'].resetFields()
|
||||
if (this.dataForm.id) {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl(`/sys/config/info/${this.dataForm.id}`),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams()
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 0) {
|
||||
this.dataForm.paramKey = data.config.paramKey
|
||||
this.dataForm.paramValue = data.config.paramValue
|
||||
this.dataForm.remark = data.config.remark
|
||||
}
|
||||
})
|
||||
if (id) {
|
||||
this.dataForm.id = id || 0
|
||||
this.handleEdit()
|
||||
this.apiType = '/update'
|
||||
} else {
|
||||
this.apiType = '/save'
|
||||
}
|
||||
},
|
||||
handleEdit () {
|
||||
apiSysConfigInfo({}, `/${this.dataForm.id}`).then(res => {
|
||||
if (res && res.code === 0) {
|
||||
this.dataForm.paramKey = res.config.paramKey
|
||||
this.dataForm.paramValue = res.config.paramValue
|
||||
this.dataForm.remark = res.config.remark
|
||||
}
|
||||
})
|
||||
},
|
||||
// 表单提交
|
||||
dataFormSubmit () {
|
||||
// 提交
|
||||
handleConfirm () {
|
||||
this.$refs['dataForm'].validate((valid) => {
|
||||
if (valid) {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl(`/sys/config/${!this.dataForm.id ? 'save' : 'update'}`),
|
||||
method: 'post',
|
||||
data: this.$http.adornData({
|
||||
'id': this.dataForm.id || undefined,
|
||||
'paramKey': this.dataForm.paramKey,
|
||||
'paramValue': this.dataForm.paramValue,
|
||||
'remark': this.dataForm.remark
|
||||
})
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 0) {
|
||||
let params = {
|
||||
'id': this.dataForm.id || undefined,
|
||||
'paramKey': this.dataForm.paramKey,
|
||||
'paramValue': this.dataForm.paramValue,
|
||||
'remark': this.dataForm.remark
|
||||
}
|
||||
apiSysConfigConfirm(params, this.apiType).then(res => {
|
||||
if (res && res.code === 0) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
@ -88,7 +83,7 @@
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$message.error(data.msg)
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@ -1,67 +1,31 @@
|
||||
<template>
|
||||
<div class="mod-config">
|
||||
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
|
||||
<el-form :inline="true" :model="dataForm" @keyup.enter.native="handleGetTableList()">
|
||||
<el-form-item>
|
||||
<el-input v-model="dataForm.paramKey" placeholder="参数名" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="getDataList()">查询</el-button>
|
||||
<el-button type="primary" @click="addOrUpdateHandle()">新增</el-button>
|
||||
<el-button type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0">批量删除</el-button>
|
||||
<el-button @click="handleGetTableList()">查询</el-button>
|
||||
<el-button type="primary" @click="handleAddOrUpdate()">新增</el-button>
|
||||
<el-button type="danger" @click="handleDelete()" :disabled="dataListSelections.length <= 0">批量删除</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
:data="dataList"
|
||||
border
|
||||
v-loading="dataListLoading"
|
||||
@selection-change="selectionChangeHandle"
|
||||
style="width: 100%;">
|
||||
<el-table-column
|
||||
type="selection"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="50">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="id"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="80"
|
||||
label="ID">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="paramKey"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="参数名">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="paramValue"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="参数值">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="remark"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="备注">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
fixed="right"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="150"
|
||||
label="操作">
|
||||
<el-table :data="dataList" border v-loading="dataListLoading" @selection-change="handleSelectionChange" style="width: 100%;">
|
||||
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
|
||||
<el-table-column prop="id" header-align="center" align="center" width="80" label="ID"></el-table-column>
|
||||
<el-table-column prop="paramKey" header-align="center" align="center" label="参数名"></el-table-column>
|
||||
<el-table-column prop="paramValue" header-align="center" align="center" label="参数值"></el-table-column>
|
||||
<el-table-column prop="remark" header-align="center" align="center" label="备注"></el-table-column>
|
||||
<el-table-column fixed="right" header-align="center" align="center" width="150" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">修改</el-button>
|
||||
<el-button type="text" size="small" @click="deleteHandle(scope.row.id)">删除</el-button>
|
||||
<el-button type="text" size="small" @click="handleAddOrUpdate(scope.row.id)">编辑</el-button>
|
||||
<el-button type="text" size="small" @click="handleDelete(scope.row.id)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination
|
||||
@size-change="sizeChangeHandle"
|
||||
@current-change="currentChangeHandle"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"
|
||||
:current-page="pageIndex"
|
||||
:page-sizes="[10, 20, 50, 100]"
|
||||
:page-size="pageSize"
|
||||
@ -69,12 +33,14 @@
|
||||
layout="total, sizes, prev, pager, next, jumper">
|
||||
</el-pagination>
|
||||
<!-- 弹窗, 新增 / 修改 -->
|
||||
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
|
||||
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="handleGetTableList"></add-or-update>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import AddOrUpdate from './config-add-or-update'
|
||||
import { apiSysConfigList, apiSysConfigDelete } from '@/api/api_sys'
|
||||
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
@ -94,24 +60,19 @@
|
||||
AddOrUpdate
|
||||
},
|
||||
activated () {
|
||||
this.getDataList()
|
||||
this.handleGetTableList()
|
||||
},
|
||||
methods: {
|
||||
// 获取数据列表
|
||||
getDataList () {
|
||||
this.dataListLoading = true
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/sys/config/list'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({
|
||||
'page': this.pageIndex,
|
||||
'limit': this.pageSize,
|
||||
'paramKey': this.dataForm.paramKey
|
||||
})
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 0) {
|
||||
this.dataList = data.page.list
|
||||
this.totalPage = data.page.totalCount
|
||||
handleGetTableList () {
|
||||
apiSysConfigList({
|
||||
'page': this.pageIndex,
|
||||
'limit': this.pageSize,
|
||||
'paramKey': this.dataForm.paramKey
|
||||
}).then(res => {
|
||||
if (res && res.code === 0) {
|
||||
this.dataList = res.page.list
|
||||
this.totalPage = res.page.totalCount
|
||||
} else {
|
||||
this.dataList = []
|
||||
this.totalPage = 0
|
||||
@ -120,30 +81,30 @@
|
||||
})
|
||||
},
|
||||
// 每页数
|
||||
sizeChangeHandle (val) {
|
||||
handleSizeChange (val) {
|
||||
this.pageSize = val
|
||||
this.pageIndex = 1
|
||||
this.getDataList()
|
||||
this.handleGetTableList()
|
||||
},
|
||||
// 当前页
|
||||
currentChangeHandle (val) {
|
||||
handleCurrentChange (val) {
|
||||
this.pageIndex = val
|
||||
this.getDataList()
|
||||
this.handleGetTableList()
|
||||
},
|
||||
// 多选
|
||||
selectionChangeHandle (val) {
|
||||
handleSelectionChange (val) {
|
||||
this.dataListSelections = val
|
||||
},
|
||||
// 新增 / 修改
|
||||
addOrUpdateHandle (id) {
|
||||
// 新增 / 编辑
|
||||
handleAddOrUpdate (id) {
|
||||
this.addOrUpdateVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.addOrUpdate.init(id)
|
||||
})
|
||||
},
|
||||
// 删除
|
||||
deleteHandle (id) {
|
||||
var ids = id ? [id] : this.dataListSelections.map(item => {
|
||||
handleDelete (id) {
|
||||
let ids = id ? [id] : this.dataListSelections.map(item => {
|
||||
return item.id
|
||||
})
|
||||
this.$confirm(`确定对[id=${ids.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
|
||||
@ -151,22 +112,18 @@
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/sys/config/delete'),
|
||||
method: 'post',
|
||||
data: this.$http.adornData(ids, false)
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 0) {
|
||||
apiSysConfigDelete(ids).then(res => {
|
||||
if (res && res.code === 0) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.getDataList()
|
||||
this.handleGetTableList()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$message.error(data.msg)
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
})
|
||||
}).catch(() => {})
|
||||
|
||||
@ -1,77 +1,26 @@
|
||||
<template>
|
||||
<div class="mod-log">
|
||||
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
|
||||
<el-form :inline="true" :model="dataForm" @keyup.enter.native="handleGetTableList()">
|
||||
<el-form-item>
|
||||
<el-input v-model="dataForm.key" placeholder="用户名/用户操作" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="getDataList()">查询</el-button>
|
||||
<el-button @click="handleGetTableList()">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
:data="dataList"
|
||||
border
|
||||
v-loading="dataListLoading"
|
||||
style="width: 100%">
|
||||
<el-table-column
|
||||
prop="id"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="80"
|
||||
label="ID">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="username"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="用户名">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="operation"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="用户操作">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="method"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="150"
|
||||
:show-overflow-tooltip="true"
|
||||
label="请求方法">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="params"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="150"
|
||||
:show-overflow-tooltip="true"
|
||||
label="请求参数">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="time"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="执行时长(毫秒)">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="ip"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="150"
|
||||
label="IP地址">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="createDate"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="180"
|
||||
label="创建时间">
|
||||
</el-table-column>
|
||||
<el-table :data="dataList" border v-loading="dataListLoading" style="width: 100%">
|
||||
<el-table-column prop="id" header-align="center" align="center" width="80" label="ID"></el-table-column>
|
||||
<el-table-column prop="username" header-align="center" align="center" label="用户名"></el-table-column>
|
||||
<el-table-column prop="operation" header-align="center" align="center" label="用户操作"></el-table-column>
|
||||
<el-table-column prop="method" header-align="center" align="center" width="150" :show-overflow-tooltip="true" label="请求方法"></el-table-column>
|
||||
<el-table-column prop="params" header-align="center" align="center" width="150" :show-overflow-tooltip="true" label="请求参数"></el-table-column>
|
||||
<el-table-column prop="time" header-align="center" align="center" label="执行时长(毫秒)"></el-table-column>
|
||||
<el-table-column prop="ip" header-align="center" align="center" width="150" label="IP地址"></el-table-column>
|
||||
<el-table-column prop="createDate" header-align="center" align="center" width="180" label="创建时间"></el-table-column>
|
||||
</el-table>
|
||||
<el-pagination
|
||||
@size-change="sizeChangeHandle"
|
||||
@current-change="currentChangeHandle"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"
|
||||
:current-page="pageIndex"
|
||||
:page-sizes="[10, 20, 50, 100]"
|
||||
:page-size="pageSize"
|
||||
@ -82,6 +31,8 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { apiSysLogList } from '@/api/api_sys'
|
||||
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
@ -97,24 +48,19 @@
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.getDataList()
|
||||
this.handleGetTableList()
|
||||
},
|
||||
methods: {
|
||||
// 获取数据列表
|
||||
getDataList () {
|
||||
this.dataListLoading = true
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/sys/log/list'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({
|
||||
'page': this.pageIndex,
|
||||
'limit': this.pageSize,
|
||||
'key': this.dataForm.key
|
||||
})
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 0) {
|
||||
this.dataList = data.page.list
|
||||
this.totalPage = data.page.totalCount
|
||||
handleGetTableList () {
|
||||
apiSysLogList({
|
||||
'page': this.pageIndex,
|
||||
'limit': this.pageSize,
|
||||
'key': this.dataForm.key
|
||||
}).then(res => {
|
||||
if (res && res.code === 0) {
|
||||
this.dataList = res.page.list
|
||||
this.totalPage = res.page.totalCount
|
||||
} else {
|
||||
this.dataList = []
|
||||
this.totalPage = 0
|
||||
@ -123,15 +69,15 @@
|
||||
})
|
||||
},
|
||||
// 每页数
|
||||
sizeChangeHandle (val) {
|
||||
handleSizeChange (val) {
|
||||
this.pageSize = val
|
||||
this.pageIndex = 1
|
||||
this.getDataList()
|
||||
this.handleGetTableList()
|
||||
},
|
||||
// 当前页
|
||||
currentChangeHandle (val) {
|
||||
handleCurrentChange (val) {
|
||||
this.pageIndex = val
|
||||
this.getDataList()
|
||||
this.handleGetTableList()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user