列表加入日期搜索与导出功能
This commit is contained in:
@@ -22,7 +22,7 @@
|
|||||||
"clipboard": "1.7.1",
|
"clipboard": "1.7.1",
|
||||||
"codemirror": "^5.38.0",
|
"codemirror": "^5.38.0",
|
||||||
"connect": "3.6.6",
|
"connect": "3.6.6",
|
||||||
"echarts": "4.1.0",
|
"echarts": "^4.1.0",
|
||||||
"element-ui": "^2.12.0",
|
"element-ui": "^2.12.0",
|
||||||
"file-saver": "1.3.8",
|
"file-saver": "1.3.8",
|
||||||
"js-cookie": "2.2.0",
|
"js-cookie": "2.2.0",
|
||||||
|
|||||||
@@ -30,3 +30,12 @@ export function edit(data) {
|
|||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function downloadDept(params) {
|
||||||
|
return request({
|
||||||
|
url: 'api/dept/download',
|
||||||
|
method: 'get',
|
||||||
|
params,
|
||||||
|
responseType: 'blob'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -22,3 +22,12 @@ export function edit(data) {
|
|||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function downloadDict(params) {
|
||||||
|
return request({
|
||||||
|
url: 'api/dict/download',
|
||||||
|
method: 'get',
|
||||||
|
params,
|
||||||
|
responseType: 'blob'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -35,3 +35,12 @@ export function edit(data) {
|
|||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function downloadJob(params) {
|
||||||
|
return request({
|
||||||
|
url: 'api/job/download',
|
||||||
|
method: 'get',
|
||||||
|
params,
|
||||||
|
responseType: 'blob'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -30,3 +30,12 @@ export function edit(data) {
|
|||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function downloadStorage(params) {
|
||||||
|
return request({
|
||||||
|
url: 'api/localStorage/download',
|
||||||
|
method: 'get',
|
||||||
|
params,
|
||||||
|
responseType: 'blob'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -6,3 +6,12 @@ export function getErrDetail(id) {
|
|||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function downloadLog(params) {
|
||||||
|
return request({
|
||||||
|
url: 'api/logs/download',
|
||||||
|
method: 'get',
|
||||||
|
params,
|
||||||
|
responseType: 'blob'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -37,3 +37,12 @@ export function edit(data) {
|
|||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function downloadMenu(params) {
|
||||||
|
return request({
|
||||||
|
url: 'api/menus/download',
|
||||||
|
method: 'get',
|
||||||
|
params,
|
||||||
|
responseType: 'blob'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -6,3 +6,12 @@ export function del(key) {
|
|||||||
method: 'delete'
|
method: 'delete'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function downloadOnline(params) {
|
||||||
|
return request({
|
||||||
|
url: 'auth/online/download',
|
||||||
|
method: 'get',
|
||||||
|
params,
|
||||||
|
responseType: 'blob'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -14,3 +14,12 @@ export function delAll(ids) {
|
|||||||
data: ids
|
data: ids
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function downloadPicture(params) {
|
||||||
|
return request({
|
||||||
|
url: 'api/pictures/download',
|
||||||
|
method: 'get',
|
||||||
|
params,
|
||||||
|
responseType: 'blob'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -43,3 +43,12 @@ export function delAll(ids) {
|
|||||||
data: ids
|
data: ids
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function downloadQiNiu(params) {
|
||||||
|
return request({
|
||||||
|
url: 'api/qiNiuContent/download/list',
|
||||||
|
method: 'get',
|
||||||
|
params,
|
||||||
|
responseType: 'blob'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -33,3 +33,12 @@ export function edit(data) {
|
|||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function downloadRedis(params) {
|
||||||
|
return request({
|
||||||
|
url: 'api/redis/download',
|
||||||
|
method: 'get',
|
||||||
|
params,
|
||||||
|
responseType: 'blob'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -60,3 +60,12 @@ export function editMenu(data) {
|
|||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function downloadRole(params) {
|
||||||
|
return request({
|
||||||
|
url: 'api/roles/download',
|
||||||
|
method: 'get',
|
||||||
|
params,
|
||||||
|
responseType: 'blob'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -36,3 +36,21 @@ export function execution(id) {
|
|||||||
method: 'put'
|
method: 'put'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function downloadJobs(params) {
|
||||||
|
return request({
|
||||||
|
url: 'api/jobs/download',
|
||||||
|
method: 'get',
|
||||||
|
params,
|
||||||
|
responseType: 'blob'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function downloadLogs(params) {
|
||||||
|
return request({
|
||||||
|
url: 'api/jobs/download/log',
|
||||||
|
method: 'get',
|
||||||
|
params,
|
||||||
|
responseType: 'blob'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -7,10 +7,12 @@ export function add(data) {
|
|||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
export function downloadUser() {
|
|
||||||
|
export function downloadUser(params) {
|
||||||
return request({
|
return request({
|
||||||
url: 'api/users/download',
|
url: 'api/users/download',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
|
params,
|
||||||
responseType: 'blob'
|
responseType: 'blob'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { initData } from '@/api/data'
|
|||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
loading: true, data: [], page: 0, size: 10, total: 0, url: '', params: {}, query: {}, time: 50, isAdd: false
|
loading: true, data: [], page: 0, size: 10, total: 0, url: '', params: {}, query: {}, time: 50, isAdd: false, downloadLoading: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|||||||
@@ -32,9 +32,9 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<el-dialog :visible.sync="dialog" title="异常详情" append-to-body top="0" width="85%">
|
<el-dialog :visible.sync="dialog" title="异常详情" append-to-body top="0" width="85%">
|
||||||
<span>
|
<pre>
|
||||||
{{ errorInfo }}
|
{{ errorInfo }}
|
||||||
</span>
|
</pre>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<!--分页组件-->
|
<!--分页组件-->
|
||||||
<el-pagination
|
<el-pagination
|
||||||
@@ -75,6 +75,11 @@ export default {
|
|||||||
const value = query.value
|
const value = query.value
|
||||||
this.params = { page: this.page, size: this.size, sort: sort }
|
this.params = { page: this.page, size: this.size, sort: sort }
|
||||||
if (value) { this.params['blurry'] = value }
|
if (value) { this.params['blurry'] = value }
|
||||||
|
this.params['logType'] = 'ERROR'
|
||||||
|
if (query.date) {
|
||||||
|
this.params['startTime'] = query.date[0]
|
||||||
|
this.params['endTime'] = query.date[1]
|
||||||
|
}
|
||||||
return true
|
return true
|
||||||
},
|
},
|
||||||
info(id) {
|
info(id) {
|
||||||
|
|||||||
@@ -66,6 +66,11 @@ export default {
|
|||||||
const value = query.value
|
const value = query.value
|
||||||
this.params = { page: this.page, size: this.size, sort: sort }
|
this.params = { page: this.page, size: this.size, sort: sort }
|
||||||
if (value) { this.params['blurry'] = value }
|
if (value) { this.params['blurry'] = value }
|
||||||
|
this.params['logType'] = 'INFO'
|
||||||
|
if (query.date) {
|
||||||
|
this.params['startTime'] = query.date[0]
|
||||||
|
this.params['endTime'] = query.date[1]
|
||||||
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +1,55 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<el-input v-model="query.value" clearable placeholder="请输入你要搜索的内容" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
<el-input v-model="query.value" clearable placeholder="请输入你要搜索的内容" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
||||||
|
<el-date-picker
|
||||||
|
v-model="query.date"
|
||||||
|
type="daterange"
|
||||||
|
range-separator=":"
|
||||||
|
class="el-range-editor--small filter-item"
|
||||||
|
style="height: 30.5px;width: 220px"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"/>
|
||||||
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="$parent.toQuery">搜索</el-button>
|
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="$parent.toQuery">搜索</el-button>
|
||||||
|
<!-- 导出 -->
|
||||||
|
<div style="display: inline-block;">
|
||||||
|
<el-button
|
||||||
|
:loading="downloadLoading"
|
||||||
|
size="mini"
|
||||||
|
class="filter-item"
|
||||||
|
type="warning"
|
||||||
|
icon="el-icon-download"
|
||||||
|
@click="download">导出</el-button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { downloadFile } from '@/utils/index'
|
||||||
|
import { downloadLog } from '@/api/log'
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
query: {
|
query: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: true
|
required: true
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
downloadLoading: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
download() {
|
||||||
|
this.$parent.beforeInit()
|
||||||
|
this.downloadLoading = true
|
||||||
|
downloadLog(this.$parent.params).then(result => {
|
||||||
|
downloadFile(result, '系统日志列表', 'xlsx')
|
||||||
|
this.downloadLoading = false
|
||||||
|
}).catch(() => {
|
||||||
|
this.downloadLoading = false
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -3,6 +3,16 @@
|
|||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<el-input v-model="query.value" clearable placeholder="全表模糊搜索" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
<el-input v-model="query.value" clearable placeholder="全表模糊搜索" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
||||||
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toQuery">搜索</el-button>
|
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toQuery">搜索</el-button>
|
||||||
|
<!-- 导出 -->
|
||||||
|
<div style="display: inline-block;">
|
||||||
|
<el-button
|
||||||
|
:loading="downloadLoading"
|
||||||
|
size="mini"
|
||||||
|
class="filter-item"
|
||||||
|
type="warning"
|
||||||
|
icon="el-icon-download"
|
||||||
|
@click="download">导出</el-button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!--表格渲染-->
|
<!--表格渲染-->
|
||||||
<el-table v-loading="loading" :data="data" size="small" style="width: 100%;">
|
<el-table v-loading="loading" :data="data" size="small" style="width: 100%;">
|
||||||
@@ -46,8 +56,8 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import initData from '@/mixins/initData'
|
import initData from '@/mixins/initData'
|
||||||
import { parseTime } from '@/utils/index'
|
import { parseTime, downloadFile } from '@/utils/index'
|
||||||
import { del } from '@/api/online'
|
import { del, downloadOnline } from '@/api/online'
|
||||||
export default {
|
export default {
|
||||||
name: 'OnlineUser',
|
name: 'OnlineUser',
|
||||||
mixins: [initData],
|
mixins: [initData],
|
||||||
@@ -86,6 +96,16 @@ export default {
|
|||||||
this.$refs[index].doClose()
|
this.$refs[index].doClose()
|
||||||
console.log(err.response.data.message)
|
console.log(err.response.data.message)
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
download() {
|
||||||
|
this.beforeInit()
|
||||||
|
this.downloadLoading = true
|
||||||
|
downloadOnline(this.params).then(result => {
|
||||||
|
downloadFile(result, '在线用户列表', 'xlsx')
|
||||||
|
this.downloadLoading = false
|
||||||
|
}).catch(() => {
|
||||||
|
this.downloadLoading = false
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,17 @@
|
|||||||
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toQuery">搜索</el-button>
|
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toQuery">搜索</el-button>
|
||||||
<div style="display: inline-block;">
|
<div style="display: inline-block;">
|
||||||
<!-- 清空缓存 -->
|
<!-- 清空缓存 -->
|
||||||
<el-button v-permission="['admin','redis:del']" :loading="deleteAllLoading" type="warning" size="mini" class="filter-item" icon="el-icon-delete" @click="deleteAll">清空缓存</el-button>
|
<el-button v-permission="['admin','redis:del']" :loading="deleteAllLoading" type="danger" size="mini" class="filter-item" icon="el-icon-delete" @click="deleteAll">清空</el-button>
|
||||||
|
</div>
|
||||||
|
<!-- 导出 -->
|
||||||
|
<div style="display: inline-block;">
|
||||||
|
<el-button
|
||||||
|
:loading="downloadLoading"
|
||||||
|
size="mini"
|
||||||
|
class="filter-item"
|
||||||
|
type="warning"
|
||||||
|
icon="el-icon-download"
|
||||||
|
@click="download">导出</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!--表格渲染-->
|
<!--表格渲染-->
|
||||||
@@ -56,7 +66,8 @@
|
|||||||
<script>
|
<script>
|
||||||
import checkPermission from '@/utils/permission' // 权限判断函数
|
import checkPermission from '@/utils/permission' // 权限判断函数
|
||||||
import initData from '@/mixins/initData'
|
import initData from '@/mixins/initData'
|
||||||
import { del, delAll } from '@/api/redis'
|
import { del, delAll, downloadRedis } from '@/api/redis'
|
||||||
|
import { downloadFile } from '@/utils/index'
|
||||||
export default {
|
export default {
|
||||||
name: 'Redis',
|
name: 'Redis',
|
||||||
mixins: [initData],
|
mixins: [initData],
|
||||||
@@ -115,6 +126,16 @@ export default {
|
|||||||
this.deleteAllLoading = false
|
this.deleteAllLoading = false
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
download() {
|
||||||
|
this.beforeInit()
|
||||||
|
this.downloadLoading = true
|
||||||
|
downloadRedis(this.params).then(result => {
|
||||||
|
downloadFile(result, '缓存列表', 'xlsx')
|
||||||
|
this.downloadLoading = false
|
||||||
|
}).catch(() => {
|
||||||
|
this.downloadLoading = false
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,15 @@
|
|||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<el-input v-model="query.value" clearable placeholder="输入部门名称搜索" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
<el-input v-model="query.value" clearable placeholder="输入部门名称搜索" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
||||||
|
<el-date-picker
|
||||||
|
v-model="query.date"
|
||||||
|
type="daterange"
|
||||||
|
range-separator=":"
|
||||||
|
class="el-range-editor--small filter-item"
|
||||||
|
style="height: 30.5px;width: 220px"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"/>
|
||||||
<el-select v-model="query.enabled" clearable placeholder="状态" class="filter-item" style="width: 90px" @change="toQuery">
|
<el-select v-model="query.enabled" clearable placeholder="状态" class="filter-item" style="width: 90px" @change="toQuery">
|
||||||
<el-option v-for="item in enabledTypeOptions" :key="item.key" :label="item.display_name" :value="item.key"/>
|
<el-option v-for="item in enabledTypeOptions" :key="item.key" :label="item.display_name" :value="item.key"/>
|
||||||
</el-select>
|
</el-select>
|
||||||
@@ -17,6 +26,16 @@
|
|||||||
icon="el-icon-plus"
|
icon="el-icon-plus"
|
||||||
@click="add">新增</el-button>
|
@click="add">新增</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- 导出 -->
|
||||||
|
<div style="display: inline-block;">
|
||||||
|
<el-button
|
||||||
|
:loading="downloadLoading"
|
||||||
|
size="mini"
|
||||||
|
class="filter-item"
|
||||||
|
type="warning"
|
||||||
|
icon="el-icon-download"
|
||||||
|
@click="download">导出</el-button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!--表单组件-->
|
<!--表单组件-->
|
||||||
<eForm ref="form" :is-add="isAdd" :dicts="dict.dept_status"/>
|
<eForm ref="form" :is-add="isAdd" :dicts="dict.dept_status"/>
|
||||||
@@ -62,8 +81,8 @@
|
|||||||
<script>
|
<script>
|
||||||
import checkPermission from '@/utils/permission'
|
import checkPermission from '@/utils/permission'
|
||||||
import initData from '@/mixins/initData'
|
import initData from '@/mixins/initData'
|
||||||
import { del, edit } from '@/api/dept'
|
import { del, edit, downloadDept } from '@/api/dept'
|
||||||
import { parseTime } from '@/utils/index'
|
import { parseTime, downloadFile } from '@/utils/index'
|
||||||
import eForm from './form'
|
import eForm from './form'
|
||||||
export default {
|
export default {
|
||||||
name: 'Dept',
|
name: 'Dept',
|
||||||
@@ -96,6 +115,10 @@ export default {
|
|||||||
const value = query.value
|
const value = query.value
|
||||||
const enabled = query.enabled
|
const enabled = query.enabled
|
||||||
if (value) { this.params['name'] = value }
|
if (value) { this.params['name'] = value }
|
||||||
|
if (query.date) {
|
||||||
|
this.params['startTime'] = query.date[0]
|
||||||
|
this.params['endTime'] = query.date[1]
|
||||||
|
}
|
||||||
if (enabled !== '' && enabled !== null) { this.params['enabled'] = enabled }
|
if (enabled !== '' && enabled !== null) { this.params['enabled'] = enabled }
|
||||||
return true
|
return true
|
||||||
},
|
},
|
||||||
@@ -157,6 +180,16 @@ export default {
|
|||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
data.enabled = !data.enabled
|
data.enabled = !data.enabled
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
download() {
|
||||||
|
this.beforeInit()
|
||||||
|
this.downloadLoading = true
|
||||||
|
downloadDept(this.params).then(result => {
|
||||||
|
downloadFile(result, '部门列表', 'xlsx')
|
||||||
|
this.downloadLoading = false
|
||||||
|
}).catch(() => {
|
||||||
|
this.downloadLoading = false
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,16 @@
|
|||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<el-input v-model="query.value" clearable placeholder="输入名称或者描述搜索" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
<el-input v-model="query.value" clearable placeholder="输入名称或者描述搜索" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
||||||
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toQuery">搜索</el-button>
|
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toQuery">搜索</el-button>
|
||||||
|
<!-- 导出 -->
|
||||||
|
<div style="display: inline-block;">
|
||||||
|
<el-button
|
||||||
|
:loading="downloadLoading"
|
||||||
|
size="mini"
|
||||||
|
class="filter-item"
|
||||||
|
type="warning"
|
||||||
|
icon="el-icon-download"
|
||||||
|
@click="download">导出</el-button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!--表格渲染-->
|
<!--表格渲染-->
|
||||||
<el-table v-loading="loading" :data="data" size="small" highlight-current-row style="width: 100%;" @current-change="handleCurrentChange">
|
<el-table v-loading="loading" :data="data" size="small" highlight-current-row style="width: 100%;" @current-change="handleCurrentChange">
|
||||||
@@ -77,8 +87,9 @@
|
|||||||
<script>
|
<script>
|
||||||
import checkPermission from '@/utils/permission'
|
import checkPermission from '@/utils/permission'
|
||||||
import initData from '@/mixins/initData'
|
import initData from '@/mixins/initData'
|
||||||
import { del } from '@/api/dict'
|
import { del, downloadDict } from '@/api/dict'
|
||||||
import dictDetail from '../dictDetail/index'
|
import dictDetail from '../dictDetail/index'
|
||||||
|
import { downloadFile } from '@/utils/index'
|
||||||
import eForm from './form'
|
import eForm from './form'
|
||||||
export default {
|
export default {
|
||||||
name: 'Dict',
|
name: 'Dict',
|
||||||
@@ -147,6 +158,16 @@ export default {
|
|||||||
remark: data.remark
|
remark: data.remark
|
||||||
}
|
}
|
||||||
_this.dialog = true
|
_this.dialog = true
|
||||||
|
},
|
||||||
|
download() {
|
||||||
|
this.beforeInit()
|
||||||
|
this.downloadLoading = true
|
||||||
|
downloadDict(this.params).then(result => {
|
||||||
|
downloadFile(result, '字典列表', 'xlsx')
|
||||||
|
this.downloadLoading = false
|
||||||
|
}).catch(() => {
|
||||||
|
this.downloadLoading = false
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,15 @@
|
|||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<el-input v-model="query.value" clearable placeholder="输入岗位名称搜索" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
<el-input v-model="query.value" clearable placeholder="输入岗位名称搜索" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
||||||
|
<el-date-picker
|
||||||
|
v-model="query.date"
|
||||||
|
type="daterange"
|
||||||
|
range-separator=":"
|
||||||
|
class="el-range-editor--small filter-item"
|
||||||
|
style="height: 30.5px;width: 220px"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"/>
|
||||||
<el-select v-model="query.enabled" clearable placeholder="状态" class="filter-item" style="width: 90px" @change="toQuery">
|
<el-select v-model="query.enabled" clearable placeholder="状态" class="filter-item" style="width: 90px" @change="toQuery">
|
||||||
<el-option v-for="item in enabledTypeOptions" :key="item.key" :label="item.display_name" :value="item.key"/>
|
<el-option v-for="item in enabledTypeOptions" :key="item.key" :label="item.display_name" :value="item.key"/>
|
||||||
</el-select>
|
</el-select>
|
||||||
@@ -17,6 +26,16 @@
|
|||||||
icon="el-icon-plus"
|
icon="el-icon-plus"
|
||||||
@click="add">新增</el-button>
|
@click="add">新增</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- 导出 -->
|
||||||
|
<div style="display: inline-block;">
|
||||||
|
<el-button
|
||||||
|
:loading="downloadLoading"
|
||||||
|
size="mini"
|
||||||
|
class="filter-item"
|
||||||
|
type="warning"
|
||||||
|
icon="el-icon-download"
|
||||||
|
@click="download">导出</el-button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!--表单组件-->
|
<!--表单组件-->
|
||||||
<eForm ref="form" :is-add="isAdd" :dicts="dict.job_status"/>
|
<eForm ref="form" :is-add="isAdd" :dicts="dict.job_status"/>
|
||||||
@@ -79,8 +98,8 @@
|
|||||||
<script>
|
<script>
|
||||||
import checkPermission from '@/utils/permission'
|
import checkPermission from '@/utils/permission'
|
||||||
import initData from '@/mixins/initData'
|
import initData from '@/mixins/initData'
|
||||||
import { del, edit } from '@/api/job'
|
import { del, edit, downloadJob } from '@/api/job'
|
||||||
import { parseTime } from '@/utils/index'
|
import { parseTime, downloadFile } from '@/utils/index'
|
||||||
import eForm from './form'
|
import eForm from './form'
|
||||||
export default {
|
export default {
|
||||||
name: 'Job',
|
name: 'Job',
|
||||||
@@ -113,6 +132,10 @@ export default {
|
|||||||
const value = query.value
|
const value = query.value
|
||||||
const enabled = query.enabled
|
const enabled = query.enabled
|
||||||
if (value) { this.params['name'] = value }
|
if (value) { this.params['name'] = value }
|
||||||
|
if (query.date) {
|
||||||
|
this.params['startTime'] = query.date[0]
|
||||||
|
this.params['endTime'] = query.date[1]
|
||||||
|
}
|
||||||
if (enabled !== '' && enabled !== null) { this.params['enabled'] = enabled }
|
if (enabled !== '' && enabled !== null) { this.params['enabled'] = enabled }
|
||||||
return true
|
return true
|
||||||
},
|
},
|
||||||
@@ -173,6 +196,16 @@ export default {
|
|||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
data.enabled = !data.enabled
|
data.enabled = !data.enabled
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
download() {
|
||||||
|
this.beforeInit()
|
||||||
|
this.downloadLoading = true
|
||||||
|
downloadJob(this.params).then(result => {
|
||||||
|
downloadFile(result, '岗位列表', 'xlsx')
|
||||||
|
this.downloadLoading = false
|
||||||
|
}).catch(() => {
|
||||||
|
this.downloadLoading = false
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,15 @@
|
|||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<el-input v-model="query.value" clearable placeholder="模糊搜索" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
<el-input v-model="query.value" clearable placeholder="模糊搜索" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
||||||
|
<el-date-picker
|
||||||
|
v-model="query.date"
|
||||||
|
type="daterange"
|
||||||
|
range-separator=":"
|
||||||
|
class="el-range-editor--small filter-item"
|
||||||
|
style="height: 30.5px;width: 220px"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"/>
|
||||||
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toQuery">搜索</el-button>
|
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toQuery">搜索</el-button>
|
||||||
<!-- 新增 -->
|
<!-- 新增 -->
|
||||||
<div v-permission="['admin','menu:add']" style="display: inline-block;margin: 0px 2px;">
|
<div v-permission="['admin','menu:add']" style="display: inline-block;margin: 0px 2px;">
|
||||||
@@ -14,6 +23,16 @@
|
|||||||
icon="el-icon-plus"
|
icon="el-icon-plus"
|
||||||
@click="add">新增</el-button>
|
@click="add">新增</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- 导出 -->
|
||||||
|
<div style="display: inline-block;">
|
||||||
|
<el-button
|
||||||
|
:loading="downloadLoading"
|
||||||
|
size="mini"
|
||||||
|
class="filter-item"
|
||||||
|
type="warning"
|
||||||
|
icon="el-icon-download"
|
||||||
|
@click="download">导出</el-button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!--表单组件-->
|
<!--表单组件-->
|
||||||
<eForm ref="form" :is-add="isAdd"/>
|
<eForm ref="form" :is-add="isAdd"/>
|
||||||
@@ -81,8 +100,8 @@
|
|||||||
<script>
|
<script>
|
||||||
import checkPermission from '@/utils/permission' // 权限判断函数
|
import checkPermission from '@/utils/permission' // 权限判断函数
|
||||||
import initData from '@/mixins/initData'
|
import initData from '@/mixins/initData'
|
||||||
import { del } from '@/api/menu'
|
import { del, downloadMenu } from '@/api/menu'
|
||||||
import { parseTime } from '@/utils/index'
|
import { parseTime, downloadFile } from '@/utils/index'
|
||||||
import eForm from './form'
|
import eForm from './form'
|
||||||
export default {
|
export default {
|
||||||
name: 'Menu',
|
name: 'Menu',
|
||||||
@@ -108,6 +127,10 @@ export default {
|
|||||||
const value = query.value
|
const value = query.value
|
||||||
this.params = { page: this.page, size: this.size, sort: sort }
|
this.params = { page: this.page, size: this.size, sort: sort }
|
||||||
if (value) { this.params['blurry'] = value }
|
if (value) { this.params['blurry'] = value }
|
||||||
|
if (query.date) {
|
||||||
|
this.params['startTime'] = query.date[0]
|
||||||
|
this.params['endTime'] = query.date[1]
|
||||||
|
}
|
||||||
return true
|
return true
|
||||||
},
|
},
|
||||||
subDelete(id) {
|
subDelete(id) {
|
||||||
@@ -142,6 +165,16 @@ export default {
|
|||||||
changExpand() {
|
changExpand() {
|
||||||
this.expand = !this.expand
|
this.expand = !this.expand
|
||||||
this.init()
|
this.init()
|
||||||
|
},
|
||||||
|
download() {
|
||||||
|
this.beforeInit()
|
||||||
|
this.downloadLoading = true
|
||||||
|
downloadMenu(this.params).then(result => {
|
||||||
|
downloadFile(result, '菜单列表', 'xlsx')
|
||||||
|
this.downloadLoading = false
|
||||||
|
}).catch(() => {
|
||||||
|
this.downloadLoading = false
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +1,14 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog :visible.sync="dialog" :close-on-click-modal="false" :before-close="cancel" :title="isAdd ? '新增角色' : '编辑角色'" append-to-body width="500px">
|
<el-dialog :visible.sync="dialog" :close-on-click-modal="false" :before-close="cancel" :title="isAdd ? '新增角色' : '编辑角色'" append-to-body width="520px">
|
||||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
<el-form ref="form" :inline="true" :model="form" :rules="rules" size="small" label-width="80px">
|
||||||
<el-form-item label="角色名称" prop="name">
|
<el-form-item label="角色名称" prop="name">
|
||||||
<el-input v-model="form.name" style="width: 370px;"/>
|
<el-input v-model="form.name" style="width: 145px;"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="角色权限">
|
<el-form-item label="角色权限" prop="permission">
|
||||||
<el-input v-model="form.permission" style="width: 370px;"/>
|
<el-input v-model="form.permission" style="width: 145px;"/>
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="角色级别" prop="sort">
|
|
||||||
<el-input-number v-model.number="form.level" :min="1" controls-position="right" style="width: 370px;"/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="数据范围">
|
<el-form-item label="数据范围">
|
||||||
<el-select v-model="form.dataScope" style="width: 370px" placeholder="请选择数据范围" @change="changeScope">
|
<el-select v-model="form.dataScope" style="width: 145px" placeholder="请选择数据范围" @change="changeScope">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in dateScopes"
|
v-for="item in dateScopes"
|
||||||
:key="item"
|
:key="item"
|
||||||
@@ -19,11 +16,14 @@
|
|||||||
:value="item"/>
|
:value="item"/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="角色级别" prop="sort">
|
||||||
|
<el-input-number v-model.number="form.level" :min="1" controls-position="right" style="width: 145px;"/>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item v-if="form.dataScope === '自定义'" label="数据权限">
|
<el-form-item v-if="form.dataScope === '自定义'" label="数据权限">
|
||||||
<treeselect v-model="deptIds" :options="depts" multiple style="width: 370px" placeholder="请选择" />
|
<treeselect v-model="deptIds" :options="depts" multiple style="width: 380px" placeholder="请选择" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="描述信息">
|
<el-form-item label="描述信息">
|
||||||
<el-input v-model="form.remark" style="width: 370px;" rows="5" type="textarea"/>
|
<el-input v-model="form.remark" style="width: 380px;" rows="5" type="textarea"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
@@ -54,6 +54,9 @@ export default {
|
|||||||
rules: {
|
rules: {
|
||||||
name: [
|
name: [
|
||||||
{ required: true, message: '请输入名称', trigger: 'blur' }
|
{ required: true, message: '请输入名称', trigger: 'blur' }
|
||||||
|
],
|
||||||
|
permission: [
|
||||||
|
{ required: true, message: '请输入权限', trigger: 'blur' }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,15 @@
|
|||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<el-input v-model="query.value" clearable placeholder="输入名称或者描述搜索" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
<el-input v-model="query.value" clearable placeholder="输入名称或者描述搜索" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
||||||
|
<el-date-picker
|
||||||
|
v-model="query.date"
|
||||||
|
type="daterange"
|
||||||
|
range-separator=":"
|
||||||
|
class="el-range-editor--small filter-item"
|
||||||
|
style="height: 30.5px;width: 220px"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"/>
|
||||||
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toQuery">搜索</el-button>
|
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toQuery">搜索</el-button>
|
||||||
<!-- 新增 -->
|
<!-- 新增 -->
|
||||||
<div v-permission="['admin','roles:add']" style="display: inline-block;margin: 0px 2px;">
|
<div v-permission="['admin','roles:add']" style="display: inline-block;margin: 0px 2px;">
|
||||||
@@ -16,6 +25,16 @@
|
|||||||
icon="el-icon-plus"
|
icon="el-icon-plus"
|
||||||
@click="add">新增</el-button>
|
@click="add">新增</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- 导出 -->
|
||||||
|
<div style="display: inline-block;">
|
||||||
|
<el-button
|
||||||
|
:loading="downloadLoading"
|
||||||
|
size="mini"
|
||||||
|
class="filter-item"
|
||||||
|
type="warning"
|
||||||
|
icon="el-icon-download"
|
||||||
|
@click="download">导出</el-button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<el-row :gutter="15">
|
<el-row :gutter="15">
|
||||||
<!--角色管理-->
|
<!--角色管理-->
|
||||||
@@ -100,9 +119,9 @@ import checkPermission from '@/utils/permission'
|
|||||||
import initData from '@/mixins/initData'
|
import initData from '@/mixins/initData'
|
||||||
import { del } from '@/api/role'
|
import { del } from '@/api/role'
|
||||||
import { getMenusTree } from '@/api/menu'
|
import { getMenusTree } from '@/api/menu'
|
||||||
import { parseTime } from '@/utils/index'
|
import { parseTime, downloadFile } from '@/utils/index'
|
||||||
import eForm from './form'
|
import eForm from './form'
|
||||||
import { editMenu, get } from '@/api/role'
|
import { editMenu, get, downloadRole } from '@/api/role'
|
||||||
export default {
|
export default {
|
||||||
name: 'Role',
|
name: 'Role',
|
||||||
components: { eForm },
|
components: { eForm },
|
||||||
@@ -134,6 +153,10 @@ export default {
|
|||||||
const value = query.value
|
const value = query.value
|
||||||
this.params = { page: this.page, size: this.size, sort: sort }
|
this.params = { page: this.page, size: this.size, sort: sort }
|
||||||
if (value) { this.params['blurry'] = value }
|
if (value) { this.params['blurry'] = value }
|
||||||
|
if (query.date) {
|
||||||
|
this.params['startTime'] = query.date[0]
|
||||||
|
this.params['endTime'] = query.date[1]
|
||||||
|
}
|
||||||
// 清空菜单的选中
|
// 清空菜单的选中
|
||||||
this.$refs.menu.setCheckedKeys([])
|
this.$refs.menu.setCheckedKeys([])
|
||||||
return true
|
return true
|
||||||
@@ -231,6 +254,16 @@ export default {
|
|||||||
_this.deptIds[i] = _this.form.depts[i].id
|
_this.deptIds[i] = _this.form.depts[i].id
|
||||||
}
|
}
|
||||||
_this.dialog = true
|
_this.dialog = true
|
||||||
|
},
|
||||||
|
download() {
|
||||||
|
this.beforeInit()
|
||||||
|
this.downloadLoading = true
|
||||||
|
downloadRole(this.params).then(result => {
|
||||||
|
downloadFile(result, '角色列表', 'xlsx')
|
||||||
|
this.downloadLoading = false
|
||||||
|
}).catch(() => {
|
||||||
|
this.downloadLoading = false
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,15 @@
|
|||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<el-input v-model="query.value" clearable placeholder="输入任务名称搜索" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
<el-input v-model="query.value" clearable placeholder="输入任务名称搜索" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
||||||
|
<el-date-picker
|
||||||
|
v-model="query.date"
|
||||||
|
type="daterange"
|
||||||
|
range-separator=":"
|
||||||
|
class="el-range-editor--small filter-item"
|
||||||
|
style="height: 30.5px;width: 220px"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"/>
|
||||||
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toQuery">搜索</el-button>
|
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toQuery">搜索</el-button>
|
||||||
<!-- 新增 -->
|
<!-- 新增 -->
|
||||||
<div v-permission="['admin','timing:add']" style="display: inline-block;margin: 0px 2px;">
|
<div v-permission="['admin','timing:add']" style="display: inline-block;margin: 0px 2px;">
|
||||||
@@ -14,14 +23,24 @@
|
|||||||
icon="el-icon-plus"
|
icon="el-icon-plus"
|
||||||
@click="dialog = true;isAdd = true">新增</el-button>
|
@click="dialog = true;isAdd = true">新增</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- 导出 -->
|
||||||
|
<div style="display: inline-block;">
|
||||||
|
<el-button
|
||||||
|
:loading="downloadLoading"
|
||||||
|
size="mini"
|
||||||
|
class="filter-item"
|
||||||
|
type="warning"
|
||||||
|
icon="el-icon-download"
|
||||||
|
@click="download">导出</el-button>
|
||||||
|
</div>
|
||||||
<!-- 任务日志 -->
|
<!-- 任务日志 -->
|
||||||
<div style="display: inline-block;">
|
<div style="display: inline-block;">
|
||||||
<el-button
|
<el-button
|
||||||
class="filter-item"
|
class="filter-item"
|
||||||
size="mini"
|
size="mini"
|
||||||
type="warning"
|
type="info"
|
||||||
icon="el-icon-tickets"
|
icon="el-icon-tickets"
|
||||||
@click="doLog">执行日志</el-button>
|
@click="doLog">日志</el-button>
|
||||||
<Log ref="log"/>
|
<Log ref="log"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -110,8 +129,8 @@
|
|||||||
<script>
|
<script>
|
||||||
import checkPermission from '@/utils/permission'
|
import checkPermission from '@/utils/permission'
|
||||||
import initData from '@/mixins/initData'
|
import initData from '@/mixins/initData'
|
||||||
import { del, updateIsPause, execution, add, edit } from '@/api/timing'
|
import { del, updateIsPause, execution, add, edit, downloadJobs } from '@/api/timing'
|
||||||
import { parseTime } from '@/utils/index'
|
import { parseTime, downloadFile } from '@/utils/index'
|
||||||
import Log from './log'
|
import Log from './log'
|
||||||
export default {
|
export default {
|
||||||
name: 'Timing',
|
name: 'Timing',
|
||||||
@@ -153,6 +172,10 @@ export default {
|
|||||||
const value = query.value
|
const value = query.value
|
||||||
this.params = { page: this.page, size: this.size, sort: sort }
|
this.params = { page: this.page, size: this.size, sort: sort }
|
||||||
if (value) { this.params['jobName'] = value }
|
if (value) { this.params['jobName'] = value }
|
||||||
|
if (query.date) {
|
||||||
|
this.params['startTime'] = query.date[0]
|
||||||
|
this.params['endTime'] = query.date[1]
|
||||||
|
}
|
||||||
return true
|
return true
|
||||||
},
|
},
|
||||||
execute(id) {
|
execute(id) {
|
||||||
@@ -258,6 +281,16 @@ export default {
|
|||||||
this.isAdd = false
|
this.isAdd = false
|
||||||
this.form = { id: data.id, jobName: data.jobName, beanName: data.beanName, methodName: data.methodName, params: data.params, cronExpression: data.cronExpression, isPause: data.isPause.toString(), remark: data.remark }
|
this.form = { id: data.id, jobName: data.jobName, beanName: data.beanName, methodName: data.methodName, params: data.params, cronExpression: data.cronExpression, isPause: data.isPause.toString(), remark: data.remark }
|
||||||
this.dialog = true
|
this.dialog = true
|
||||||
|
},
|
||||||
|
download() {
|
||||||
|
this.beforeInit()
|
||||||
|
this.downloadLoading = true
|
||||||
|
downloadJobs(this.params).then(result => {
|
||||||
|
downloadFile(result, '任务列表', 'xlsx')
|
||||||
|
this.downloadLoading = false
|
||||||
|
}).catch(() => {
|
||||||
|
this.downloadLoading = false
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,10 +3,29 @@
|
|||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<el-input v-model="query.value" clearable placeholder="输入任务名称搜索" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
<el-input v-model="query.value" clearable placeholder="输入任务名称搜索" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
||||||
|
<el-date-picker
|
||||||
|
v-model="query.date"
|
||||||
|
type="daterange"
|
||||||
|
range-separator=":"
|
||||||
|
class="el-range-editor--small filter-item"
|
||||||
|
style="height: 30.5px;width: 220px"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"/>
|
||||||
<el-select v-model="query.isSuccess" placeholder="日志状态" clearable class="filter-item" style="width: 110px" @change="toQuery">
|
<el-select v-model="query.isSuccess" placeholder="日志状态" clearable class="filter-item" style="width: 110px" @change="toQuery">
|
||||||
<el-option v-for="item in enabledTypeOptions" :key="item.key" :label="item.display_name" :value="item.key"/>
|
<el-option v-for="item in enabledTypeOptions" :key="item.key" :label="item.display_name" :value="item.key"/>
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toQuery">搜索</el-button>
|
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toQuery">搜索</el-button>
|
||||||
|
<!-- 导出 -->
|
||||||
|
<div style="display: inline-block;">
|
||||||
|
<el-button
|
||||||
|
:loading="downloadLoading"
|
||||||
|
size="mini"
|
||||||
|
class="filter-item"
|
||||||
|
type="warning"
|
||||||
|
icon="el-icon-download"
|
||||||
|
@click="download">导出</el-button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!--表格渲染-->
|
<!--表格渲染-->
|
||||||
<el-table v-loading="loading" :data="data" size="small" style="width: 100%;margin-top: -10px;">
|
<el-table v-loading="loading" :data="data" size="small" style="width: 100%;margin-top: -10px;">
|
||||||
@@ -52,7 +71,8 @@
|
|||||||
<script>
|
<script>
|
||||||
import checkPermission from '@/utils/permission'
|
import checkPermission from '@/utils/permission'
|
||||||
import initData from '@/mixins/initData'
|
import initData from '@/mixins/initData'
|
||||||
import { parseTime } from '@/utils/index'
|
import { downloadLogs } from '@/api/timing'
|
||||||
|
import { parseTime, downloadFile } from '@/utils/index'
|
||||||
export default {
|
export default {
|
||||||
mixins: [initData],
|
mixins: [initData],
|
||||||
data() {
|
data() {
|
||||||
@@ -86,12 +106,26 @@ export default {
|
|||||||
this.size = 6
|
this.size = 6
|
||||||
this.params = { page: this.page, size: this.size, sort: sort }
|
this.params = { page: this.page, size: this.size, sort: sort }
|
||||||
if (value) { this.params['jobName'] = value }
|
if (value) { this.params['jobName'] = value }
|
||||||
|
if (query.date) {
|
||||||
|
this.params['startTime'] = query.date[0]
|
||||||
|
this.params['endTime'] = query.date[1]
|
||||||
|
}
|
||||||
if (isSuccess !== '' && isSuccess !== null) { this.params['isSuccess'] = isSuccess }
|
if (isSuccess !== '' && isSuccess !== null) { this.params['isSuccess'] = isSuccess }
|
||||||
return true
|
return true
|
||||||
},
|
},
|
||||||
info(errorInfo) {
|
info(errorInfo) {
|
||||||
this.errorInfo = errorInfo
|
this.errorInfo = errorInfo
|
||||||
this.errorDialog = true
|
this.errorDialog = true
|
||||||
|
},
|
||||||
|
download() {
|
||||||
|
this.beforeInit()
|
||||||
|
this.downloadLoading = true
|
||||||
|
downloadLogs(this.params).then(result => {
|
||||||
|
downloadFile(result, '任务日志列表', 'xlsx')
|
||||||
|
this.downloadLoading = false
|
||||||
|
}).catch(() => {
|
||||||
|
this.downloadLoading = false
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,15 @@
|
|||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<el-input v-model="query.blurry" clearable placeholder="输入名称或者邮箱搜索" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
<el-input v-model="query.blurry" clearable placeholder="输入名称或者邮箱搜索" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
||||||
|
<el-date-picker
|
||||||
|
v-model="query.date"
|
||||||
|
type="daterange"
|
||||||
|
range-separator=":"
|
||||||
|
class="el-range-editor--small filter-item"
|
||||||
|
style="height: 30.5px;width: 220px"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"/>
|
||||||
<el-select v-model="query.enabled" clearable placeholder="状态" class="filter-item" style="width: 90px" @change="toQuery">
|
<el-select v-model="query.enabled" clearable placeholder="状态" class="filter-item" style="width: 90px" @change="toQuery">
|
||||||
<el-option v-for="item in enabledTypeOptions" :key="item.key" :label="item.display_name" :value="item.key"/>
|
<el-option v-for="item in enabledTypeOptions" :key="item.key" :label="item.display_name" :value="item.key"/>
|
||||||
</el-select>
|
</el-select>
|
||||||
@@ -32,7 +41,6 @@
|
|||||||
<!-- 导出 -->
|
<!-- 导出 -->
|
||||||
<div style="display: inline-block;">
|
<div style="display: inline-block;">
|
||||||
<el-button
|
<el-button
|
||||||
v-permission="['admin','user:list']"
|
|
||||||
:loading="downloadLoading"
|
:loading="downloadLoading"
|
||||||
size="mini"
|
size="mini"
|
||||||
class="filter-item"
|
class="filter-item"
|
||||||
@@ -117,7 +125,6 @@ export default {
|
|||||||
children: 'children',
|
children: 'children',
|
||||||
label: 'name'
|
label: 'name'
|
||||||
},
|
},
|
||||||
downloadLoading: false,
|
|
||||||
enabledTypeOptions: [
|
enabledTypeOptions: [
|
||||||
{ key: 'true', display_name: '激活' },
|
{ key: 'true', display_name: '激活' },
|
||||||
{ key: 'false', display_name: '锁定' }
|
{ key: 'false', display_name: '锁定' }
|
||||||
@@ -147,9 +154,24 @@ export default {
|
|||||||
const enabled = query.enabled
|
const enabled = query.enabled
|
||||||
this.params = { page: this.page, size: this.size, sort: sort, deptId: this.deptId }
|
this.params = { page: this.page, size: this.size, sort: sort, deptId: this.deptId }
|
||||||
if (blurry) { this.params['blurry'] = blurry }
|
if (blurry) { this.params['blurry'] = blurry }
|
||||||
|
if (query.date) {
|
||||||
|
this.params['startTime'] = query.date[0]
|
||||||
|
this.params['endTime'] = query.date[1]
|
||||||
|
}
|
||||||
if (enabled !== '' && enabled !== null) { this.params['enabled'] = enabled }
|
if (enabled !== '' && enabled !== null) { this.params['enabled'] = enabled }
|
||||||
return true
|
return true
|
||||||
},
|
},
|
||||||
|
// 导出
|
||||||
|
download() {
|
||||||
|
this.beforeInit()
|
||||||
|
this.downloadLoading = true
|
||||||
|
downloadUser(this.params).then(result => {
|
||||||
|
downloadFile(result, '用户列表', 'xlsx')
|
||||||
|
this.downloadLoading = false
|
||||||
|
}).catch(() => {
|
||||||
|
this.downloadLoading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
subDelete(id) {
|
subDelete(id) {
|
||||||
this.delLoading = true
|
this.delLoading = true
|
||||||
del(id).then(res => {
|
del(id).then(res => {
|
||||||
@@ -191,16 +213,6 @@ export default {
|
|||||||
this.$refs.form.getRoleLevel()
|
this.$refs.form.getRoleLevel()
|
||||||
this.$refs.form.dialog = true
|
this.$refs.form.dialog = true
|
||||||
},
|
},
|
||||||
// 导出
|
|
||||||
download() {
|
|
||||||
this.downloadLoading = true
|
|
||||||
downloadUser().then(result => {
|
|
||||||
downloadFile(result, '用户列表', 'xlsx')
|
|
||||||
this.downloadLoading = false
|
|
||||||
}).catch(() => {
|
|
||||||
this.downloadLoading = false
|
|
||||||
})
|
|
||||||
},
|
|
||||||
// 数据转换
|
// 数据转换
|
||||||
formatJson(filterVal, jsonData) {
|
formatJson(filterVal, jsonData) {
|
||||||
return jsonData.map(v => filterVal.map(j => {
|
return jsonData.map(v => filterVal.map(j => {
|
||||||
|
|||||||
@@ -4,6 +4,15 @@
|
|||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<!--搜索-->
|
<!--搜索-->
|
||||||
<el-input v-model="query.filename" clearable placeholder="输入文件名" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
<el-input v-model="query.filename" clearable placeholder="输入文件名" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
||||||
|
<el-date-picker
|
||||||
|
v-model="query.date"
|
||||||
|
type="daterange"
|
||||||
|
range-separator=":"
|
||||||
|
class="el-range-editor--small filter-item"
|
||||||
|
style="height: 30.5px;width: 220px"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"/>
|
||||||
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toQuery">搜索</el-button>
|
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toQuery">搜索</el-button>
|
||||||
<!-- 上传 -->
|
<!-- 上传 -->
|
||||||
<div style="display: inline-block;margin: 0px 2px;">
|
<div style="display: inline-block;margin: 0px 2px;">
|
||||||
@@ -25,6 +34,16 @@
|
|||||||
icon="el-icon-delete"
|
icon="el-icon-delete"
|
||||||
@click="open">删除</el-button>
|
@click="open">删除</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- 导出 -->
|
||||||
|
<div style="display: inline-block;">
|
||||||
|
<el-button
|
||||||
|
:loading="downloadLoading"
|
||||||
|
size="mini"
|
||||||
|
class="filter-item"
|
||||||
|
type="warning"
|
||||||
|
icon="el-icon-download"
|
||||||
|
@click="download">导出</el-button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!--上传图片-->
|
<!--上传图片-->
|
||||||
<el-dialog :visible.sync="dialog" :close-on-click-modal="false" append-to-body width="600px" @close="doSubmit">
|
<el-dialog :visible.sync="dialog" :close-on-click-modal="false" append-to-body width="600px" @close="doSubmit">
|
||||||
@@ -94,16 +113,16 @@
|
|||||||
<script>
|
<script>
|
||||||
import checkPermission from '@/utils/permission' // 权限判断函数
|
import checkPermission from '@/utils/permission' // 权限判断函数
|
||||||
import initData from '@/mixins/initData'
|
import initData from '@/mixins/initData'
|
||||||
import { parseTime } from '@/utils/index'
|
import { parseTime, downloadFile } from '@/utils/index'
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
import { del, delAll } from '@/api/picture'
|
import { del, delAll, downloadPicture } from '@/api/picture'
|
||||||
import { getToken } from '@/utils/auth'
|
import { getToken } from '@/utils/auth'
|
||||||
export default {
|
export default {
|
||||||
name: 'Pictures',
|
name: 'Pictures',
|
||||||
mixins: [initData],
|
mixins: [initData],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
delLoading: false, downloadLoading: false,
|
delLoading: false,
|
||||||
delAllLoading: false,
|
delAllLoading: false,
|
||||||
headers: {
|
headers: {
|
||||||
'Authorization': 'Bearer ' + getToken()
|
'Authorization': 'Bearer ' + getToken()
|
||||||
@@ -135,6 +154,10 @@ export default {
|
|||||||
const filename = query.filename
|
const filename = query.filename
|
||||||
this.params = { page: this.page, size: this.size, sort: sort }
|
this.params = { page: this.page, size: this.size, sort: sort }
|
||||||
if (filename) { this.params[filename] = filename }
|
if (filename) { this.params[filename] = filename }
|
||||||
|
if (query.date) {
|
||||||
|
this.params['startTime'] = query.date[0]
|
||||||
|
this.params['endTime'] = query.date[1]
|
||||||
|
}
|
||||||
return true
|
return true
|
||||||
},
|
},
|
||||||
subDelete(id) {
|
subDelete(id) {
|
||||||
@@ -218,6 +241,16 @@ export default {
|
|||||||
type: 'error',
|
type: 'error',
|
||||||
duration: 2500
|
duration: 2500
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
download() {
|
||||||
|
this.beforeInit()
|
||||||
|
this.downloadLoading = true
|
||||||
|
downloadPicture(this.params).then(result => {
|
||||||
|
downloadFile(result, '图片列表', 'xlsx')
|
||||||
|
this.downloadLoading = false
|
||||||
|
}).catch(() => {
|
||||||
|
this.downloadLoading = false
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,15 @@
|
|||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<el-input v-model="query.value" clearable placeholder="输入内容模糊搜索" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
<el-input v-model="query.value" clearable placeholder="输入内容模糊搜索" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
||||||
|
<el-date-picker
|
||||||
|
v-model="query.date"
|
||||||
|
type="daterange"
|
||||||
|
range-separator=":"
|
||||||
|
class="el-range-editor--small filter-item"
|
||||||
|
style="height: 30.5px;width: 220px"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"/>
|
||||||
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toQuery">搜索</el-button>
|
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toQuery">搜索</el-button>
|
||||||
<!-- 新增 -->
|
<!-- 新增 -->
|
||||||
<div style="display: inline-block;margin: 0px 2px;">
|
<div style="display: inline-block;margin: 0px 2px;">
|
||||||
@@ -27,6 +36,16 @@
|
|||||||
icon="el-icon-delete"
|
icon="el-icon-delete"
|
||||||
@click="open">删除</el-button>
|
@click="open">删除</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- 导出 -->
|
||||||
|
<div style="display: inline-block;">
|
||||||
|
<el-button
|
||||||
|
:loading="downloadLoading"
|
||||||
|
size="mini"
|
||||||
|
class="filter-item"
|
||||||
|
type="warning"
|
||||||
|
icon="el-icon-download"
|
||||||
|
@click="download">导出</el-button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!--表单组件-->
|
<!--表单组件-->
|
||||||
<eForm ref="form" :is-add="isAdd"/>
|
<eForm ref="form" :is-add="isAdd"/>
|
||||||
@@ -85,8 +104,8 @@
|
|||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
import checkPermission from '@/utils/permission'
|
import checkPermission from '@/utils/permission'
|
||||||
import initData from '@/mixins/initData'
|
import initData from '@/mixins/initData'
|
||||||
import { del, delAll } from '@/api/localStorage'
|
import { del, delAll, downloadStorage } from '@/api/localStorage'
|
||||||
import { parseTime } from '@/utils/index'
|
import { parseTime, downloadFile } from '@/utils/index'
|
||||||
import eForm from './form'
|
import eForm from './form'
|
||||||
export default {
|
export default {
|
||||||
components: { eForm },
|
components: { eForm },
|
||||||
@@ -122,6 +141,10 @@ export default {
|
|||||||
const query = this.query
|
const query = this.query
|
||||||
const value = query.value
|
const value = query.value
|
||||||
if (value) { this.params['blurry'] = value }
|
if (value) { this.params['blurry'] = value }
|
||||||
|
if (query.date) {
|
||||||
|
this.params['startTime'] = query.date[0]
|
||||||
|
this.params['endTime'] = query.date[1]
|
||||||
|
}
|
||||||
return true
|
return true
|
||||||
},
|
},
|
||||||
subDelete(id) {
|
subDelete(id) {
|
||||||
@@ -184,6 +207,16 @@ export default {
|
|||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.doDelete()
|
this.doDelete()
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
download() {
|
||||||
|
this.beforeInit()
|
||||||
|
this.downloadLoading = true
|
||||||
|
downloadStorage(this.params).then(result => {
|
||||||
|
downloadFile(result, '文件列表', 'xlsx')
|
||||||
|
this.downloadLoading = false
|
||||||
|
}).catch(() => {
|
||||||
|
this.downloadLoading = false
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,15 @@
|
|||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<el-input v-model="query.value" clearable placeholder="输入文件名称搜索" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
<el-input v-model="query.value" clearable placeholder="输入文件名称搜索" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
||||||
|
<el-date-picker
|
||||||
|
v-model="query.date"
|
||||||
|
type="daterange"
|
||||||
|
range-separator=":"
|
||||||
|
class="el-range-editor--small filter-item"
|
||||||
|
style="height: 30.5px;width: 220px"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"/>
|
||||||
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toQuery">搜索</el-button>
|
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toQuery">搜索</el-button>
|
||||||
<!-- 上传 -->
|
<!-- 上传 -->
|
||||||
<div style="display: inline-block;margin: 0px 2px;">
|
<div style="display: inline-block;margin: 0px 2px;">
|
||||||
@@ -33,6 +42,16 @@
|
|||||||
icon="el-icon-delete"
|
icon="el-icon-delete"
|
||||||
@click="open">删除</el-button>
|
@click="open">删除</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- 导出 -->
|
||||||
|
<div style="display: inline-block;">
|
||||||
|
<el-button
|
||||||
|
:loading="downloadLoading"
|
||||||
|
size="mini"
|
||||||
|
class="filter-item"
|
||||||
|
type="warning"
|
||||||
|
icon="el-icon-download"
|
||||||
|
@click="downloadList">导出</el-button>
|
||||||
|
</div>
|
||||||
<!-- 文件上传 -->
|
<!-- 文件上传 -->
|
||||||
<el-dialog :visible.sync="dialog" :close-on-click-modal="false" append-to-body width="500px" @close="doSubmit">
|
<el-dialog :visible.sync="dialog" :close-on-click-modal="false" append-to-body width="500px" @close="doSubmit">
|
||||||
<el-upload
|
<el-upload
|
||||||
@@ -98,8 +117,8 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import initData from '@/mixins/initData'
|
import initData from '@/mixins/initData'
|
||||||
import { del, download, sync, delAll } from '@/api/qiniu'
|
import { del, download, sync, delAll, downloadQiNiu } from '@/api/qiniu'
|
||||||
import { parseTime } from '@/utils/index'
|
import { parseTime, downloadFile } from '@/utils/index'
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
import { getToken } from '@/utils/auth'
|
import { getToken } from '@/utils/auth'
|
||||||
import eForm from './form'
|
import eForm from './form'
|
||||||
@@ -139,6 +158,10 @@ export default {
|
|||||||
const value = query.value
|
const value = query.value
|
||||||
this.params = { page: this.page, size: this.size, sort: sort }
|
this.params = { page: this.page, size: this.size, sort: sort }
|
||||||
if (value) { this.params['key'] = value }
|
if (value) { this.params['key'] = value }
|
||||||
|
if (query.date) {
|
||||||
|
this.params['startTime'] = query.date[0]
|
||||||
|
this.params['endTime'] = query.date[1]
|
||||||
|
}
|
||||||
return true
|
return true
|
||||||
},
|
},
|
||||||
doConfig() {
|
doConfig() {
|
||||||
@@ -257,6 +280,16 @@ export default {
|
|||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.doDelete()
|
this.doDelete()
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
downloadList() {
|
||||||
|
this.beforeInit()
|
||||||
|
this.downloadLoading = true
|
||||||
|
downloadQiNiu(this.params).then(result => {
|
||||||
|
downloadFile(result, '七牛云文件列表', 'xlsx')
|
||||||
|
this.downloadLoading = false
|
||||||
|
}).catch(() => {
|
||||||
|
this.downloadLoading = false
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user