列表加入日期搜索与导出功能

This commit is contained in:
dqjdda
2019-10-31 09:34:38 +08:00
parent f2aca3bbc0
commit 84bda94b00
32 changed files with 595 additions and 53 deletions

View File

@@ -22,7 +22,7 @@
"clipboard": "1.7.1",
"codemirror": "^5.38.0",
"connect": "3.6.6",
"echarts": "4.1.0",
"echarts": "^4.1.0",
"element-ui": "^2.12.0",
"file-saver": "1.3.8",
"js-cookie": "2.2.0",

View File

@@ -30,3 +30,12 @@ export function edit(data) {
data
})
}
export function downloadDept(params) {
return request({
url: 'api/dept/download',
method: 'get',
params,
responseType: 'blob'
})
}

View File

@@ -22,3 +22,12 @@ export function edit(data) {
data
})
}
export function downloadDict(params) {
return request({
url: 'api/dict/download',
method: 'get',
params,
responseType: 'blob'
})
}

View File

@@ -35,3 +35,12 @@ export function edit(data) {
data
})
}
export function downloadJob(params) {
return request({
url: 'api/job/download',
method: 'get',
params,
responseType: 'blob'
})
}

View File

@@ -30,3 +30,12 @@ export function edit(data) {
data
})
}
export function downloadStorage(params) {
return request({
url: 'api/localStorage/download',
method: 'get',
params,
responseType: 'blob'
})
}

View File

@@ -6,3 +6,12 @@ export function getErrDetail(id) {
method: 'get'
})
}
export function downloadLog(params) {
return request({
url: 'api/logs/download',
method: 'get',
params,
responseType: 'blob'
})
}

View File

@@ -37,3 +37,12 @@ export function edit(data) {
data
})
}
export function downloadMenu(params) {
return request({
url: 'api/menus/download',
method: 'get',
params,
responseType: 'blob'
})
}

View File

@@ -6,3 +6,12 @@ export function del(key) {
method: 'delete'
})
}
export function downloadOnline(params) {
return request({
url: 'auth/online/download',
method: 'get',
params,
responseType: 'blob'
})
}

View File

@@ -14,3 +14,12 @@ export function delAll(ids) {
data: ids
})
}
export function downloadPicture(params) {
return request({
url: 'api/pictures/download',
method: 'get',
params,
responseType: 'blob'
})
}

View File

@@ -43,3 +43,12 @@ export function delAll(ids) {
data: ids
})
}
export function downloadQiNiu(params) {
return request({
url: 'api/qiNiuContent/download/list',
method: 'get',
params,
responseType: 'blob'
})
}

View File

@@ -33,3 +33,12 @@ export function edit(data) {
data
})
}
export function downloadRedis(params) {
return request({
url: 'api/redis/download',
method: 'get',
params,
responseType: 'blob'
})
}

View File

@@ -60,3 +60,12 @@ export function editMenu(data) {
data
})
}
export function downloadRole(params) {
return request({
url: 'api/roles/download',
method: 'get',
params,
responseType: 'blob'
})
}

View File

@@ -36,3 +36,21 @@ export function execution(id) {
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'
})
}

View File

@@ -7,10 +7,12 @@ export function add(data) {
data
})
}
export function downloadUser() {
export function downloadUser(params) {
return request({
url: 'api/users/download',
method: 'get',
params,
responseType: 'blob'
})
}

View File

@@ -3,7 +3,7 @@ import { initData } from '@/api/data'
export default {
data() {
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: {

View File

@@ -32,9 +32,9 @@
</el-table-column>
</el-table>
<el-dialog :visible.sync="dialog" title="异常详情" append-to-body top="0" width="85%">
<span>
<pre>
{{ errorInfo }}
</span>
</pre>
</el-dialog>
<!--分页组件-->
<el-pagination
@@ -75,6 +75,11 @@ export default {
const value = query.value
this.params = { page: this.page, size: this.size, sort: sort }
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
},
info(id) {

View File

@@ -66,6 +66,11 @@ export default {
const value = query.value
this.params = { page: this.page, size: this.size, sort: sort }
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
}
}

View File

@@ -1,17 +1,55 @@
<template>
<div class="head-container">
<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>
<!-- 导出 -->
<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>
</template>
<script>
import { downloadFile } from '@/utils/index'
import { downloadLog } from '@/api/log'
export default {
props: {
query: {
type: Object,
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>

View File

@@ -3,6 +3,16 @@
<div class="head-container">
<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>
<!-- 导出 -->
<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>
<!--表格渲染-->
<el-table v-loading="loading" :data="data" size="small" style="width: 100%;">
@@ -46,8 +56,8 @@
<script>
import initData from '@/mixins/initData'
import { parseTime } from '@/utils/index'
import { del } from '@/api/online'
import { parseTime, downloadFile } from '@/utils/index'
import { del, downloadOnline } from '@/api/online'
export default {
name: 'OnlineUser',
mixins: [initData],
@@ -86,6 +96,16 @@ export default {
this.$refs[index].doClose()
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
})
}
}
}

View File

@@ -7,7 +7,17 @@
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toQuery">搜索</el-button>
<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>
<!--表格渲染-->
@@ -56,7 +66,8 @@
<script>
import checkPermission from '@/utils/permission' // 权限判断函数
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 {
name: 'Redis',
mixins: [initData],
@@ -115,6 +126,16 @@ export default {
this.deleteAllLoading = false
})
})
},
download() {
this.beforeInit()
this.downloadLoading = true
downloadRedis(this.params).then(result => {
downloadFile(result, '缓存列表', 'xlsx')
this.downloadLoading = false
}).catch(() => {
this.downloadLoading = false
})
}
}
}

View File

@@ -4,6 +4,15 @@
<div class="head-container">
<!-- 搜索 -->
<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-option v-for="item in enabledTypeOptions" :key="item.key" :label="item.display_name" :value="item.key"/>
</el-select>
@@ -17,6 +26,16 @@
icon="el-icon-plus"
@click="add">新增</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>
<!--表单组件-->
<eForm ref="form" :is-add="isAdd" :dicts="dict.dept_status"/>
@@ -62,8 +81,8 @@
<script>
import checkPermission from '@/utils/permission'
import initData from '@/mixins/initData'
import { del, edit } from '@/api/dept'
import { parseTime } from '@/utils/index'
import { del, edit, downloadDept } from '@/api/dept'
import { parseTime, downloadFile } from '@/utils/index'
import eForm from './form'
export default {
name: 'Dept',
@@ -96,6 +115,10 @@ export default {
const value = query.value
const enabled = query.enabled
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 }
return true
},
@@ -157,6 +180,16 @@ export default {
}).catch(() => {
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
})
}
}
}

View File

@@ -21,6 +21,16 @@
<!-- 搜索 -->
<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>
<!-- 导出 -->
<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>
<!--表格渲染-->
<el-table v-loading="loading" :data="data" size="small" highlight-current-row style="width: 100%;" @current-change="handleCurrentChange">
@@ -77,8 +87,9 @@
<script>
import checkPermission from '@/utils/permission'
import initData from '@/mixins/initData'
import { del } from '@/api/dict'
import { del, downloadDict } from '@/api/dict'
import dictDetail from '../dictDetail/index'
import { downloadFile } from '@/utils/index'
import eForm from './form'
export default {
name: 'Dict',
@@ -147,6 +158,16 @@ export default {
remark: data.remark
}
_this.dialog = true
},
download() {
this.beforeInit()
this.downloadLoading = true
downloadDict(this.params).then(result => {
downloadFile(result, '字典列表', 'xlsx')
this.downloadLoading = false
}).catch(() => {
this.downloadLoading = false
})
}
}
}

View File

@@ -4,6 +4,15 @@
<div class="head-container">
<!-- 搜索 -->
<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-option v-for="item in enabledTypeOptions" :key="item.key" :label="item.display_name" :value="item.key"/>
</el-select>
@@ -17,6 +26,16 @@
icon="el-icon-plus"
@click="add">新增</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>
<!--表单组件-->
<eForm ref="form" :is-add="isAdd" :dicts="dict.job_status"/>
@@ -79,8 +98,8 @@
<script>
import checkPermission from '@/utils/permission'
import initData from '@/mixins/initData'
import { del, edit } from '@/api/job'
import { parseTime } from '@/utils/index'
import { del, edit, downloadJob } from '@/api/job'
import { parseTime, downloadFile } from '@/utils/index'
import eForm from './form'
export default {
name: 'Job',
@@ -113,6 +132,10 @@ export default {
const value = query.value
const enabled = query.enabled
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 }
return true
},
@@ -173,6 +196,16 @@ export default {
}).catch(() => {
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
})
}
}
}

View File

@@ -4,6 +4,15 @@
<div class="head-container">
<!-- 搜索 -->
<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>
<!-- 新增 -->
<div v-permission="['admin','menu:add']" style="display: inline-block;margin: 0px 2px;">
@@ -14,6 +23,16 @@
icon="el-icon-plus"
@click="add">新增</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>
<!--表单组件-->
<eForm ref="form" :is-add="isAdd"/>
@@ -81,8 +100,8 @@
<script>
import checkPermission from '@/utils/permission' // 权限判断函数
import initData from '@/mixins/initData'
import { del } from '@/api/menu'
import { parseTime } from '@/utils/index'
import { del, downloadMenu } from '@/api/menu'
import { parseTime, downloadFile } from '@/utils/index'
import eForm from './form'
export default {
name: 'Menu',
@@ -108,6 +127,10 @@ export default {
const value = query.value
this.params = { page: this.page, size: this.size, sort: sort }
if (value) { this.params['blurry'] = value }
if (query.date) {
this.params['startTime'] = query.date[0]
this.params['endTime'] = query.date[1]
}
return true
},
subDelete(id) {
@@ -142,6 +165,16 @@ export default {
changExpand() {
this.expand = !this.expand
this.init()
},
download() {
this.beforeInit()
this.downloadLoading = true
downloadMenu(this.params).then(result => {
downloadFile(result, '菜单列表', 'xlsx')
this.downloadLoading = false
}).catch(() => {
this.downloadLoading = false
})
}
}
}

View File

@@ -1,17 +1,14 @@
<template>
<el-dialog :visible.sync="dialog" :close-on-click-modal="false" :before-close="cancel" :title="isAdd ? '新增角色' : '编辑角色'" append-to-body width="500px">
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
<el-dialog :visible.sync="dialog" :close-on-click-modal="false" :before-close="cancel" :title="isAdd ? '新增角色' : '编辑角色'" append-to-body width="520px">
<el-form ref="form" :inline="true" :model="form" :rules="rules" size="small" label-width="80px">
<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 label="角色权限">
<el-input v-model="form.permission" style="width: 370px;"/>
</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 label="角色权限" prop="permission">
<el-input v-model="form.permission" style="width: 145px;"/>
</el-form-item>
<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
v-for="item in dateScopes"
:key="item"
@@ -19,11 +16,14 @@
:value="item"/>
</el-select>
</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="数据权限">
<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 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>
<div slot="footer" class="dialog-footer">
@@ -54,6 +54,9 @@ export default {
rules: {
name: [
{ required: true, message: '请输入名称', trigger: 'blur' }
],
permission: [
{ required: true, message: '请输入权限', trigger: 'blur' }
]
}
}

View File

@@ -6,6 +6,15 @@
<div class="head-container">
<!-- 搜索 -->
<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>
<!-- 新增 -->
<div v-permission="['admin','roles:add']" style="display: inline-block;margin: 0px 2px;">
@@ -16,6 +25,16 @@
icon="el-icon-plus"
@click="add">新增</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>
<el-row :gutter="15">
<!--角色管理-->
@@ -100,9 +119,9 @@ import checkPermission from '@/utils/permission'
import initData from '@/mixins/initData'
import { del } from '@/api/role'
import { getMenusTree } from '@/api/menu'
import { parseTime } from '@/utils/index'
import { parseTime, downloadFile } from '@/utils/index'
import eForm from './form'
import { editMenu, get } from '@/api/role'
import { editMenu, get, downloadRole } from '@/api/role'
export default {
name: 'Role',
components: { eForm },
@@ -134,6 +153,10 @@ export default {
const value = query.value
this.params = { page: this.page, size: this.size, sort: sort }
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([])
return true
@@ -231,6 +254,16 @@ export default {
_this.deptIds[i] = _this.form.depts[i].id
}
_this.dialog = true
},
download() {
this.beforeInit()
this.downloadLoading = true
downloadRole(this.params).then(result => {
downloadFile(result, '角色列表', 'xlsx')
this.downloadLoading = false
}).catch(() => {
this.downloadLoading = false
})
}
}
}

View File

@@ -4,6 +4,15 @@
<div class="head-container">
<!-- 搜索 -->
<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>
<!-- 新增 -->
<div v-permission="['admin','timing:add']" style="display: inline-block;margin: 0px 2px;">
@@ -14,14 +23,24 @@
icon="el-icon-plus"
@click="dialog = true;isAdd = true">新增</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 style="display: inline-block;">
<el-button
class="filter-item"
size="mini"
type="warning"
type="info"
icon="el-icon-tickets"
@click="doLog">执行日志</el-button>
@click="doLog">日志</el-button>
<Log ref="log"/>
</div>
</div>
@@ -110,8 +129,8 @@
<script>
import checkPermission from '@/utils/permission'
import initData from '@/mixins/initData'
import { del, updateIsPause, execution, add, edit } from '@/api/timing'
import { parseTime } from '@/utils/index'
import { del, updateIsPause, execution, add, edit, downloadJobs } from '@/api/timing'
import { parseTime, downloadFile } from '@/utils/index'
import Log from './log'
export default {
name: 'Timing',
@@ -153,6 +172,10 @@ export default {
const value = query.value
this.params = { page: this.page, size: this.size, sort: sort }
if (value) { this.params['jobName'] = value }
if (query.date) {
this.params['startTime'] = query.date[0]
this.params['endTime'] = query.date[1]
}
return true
},
execute(id) {
@@ -258,6 +281,16 @@ export default {
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.dialog = true
},
download() {
this.beforeInit()
this.downloadLoading = true
downloadJobs(this.params).then(result => {
downloadFile(result, '任务列表', 'xlsx')
this.downloadLoading = false
}).catch(() => {
this.downloadLoading = false
})
}
}
}

View File

@@ -3,10 +3,29 @@
<!-- 搜索 -->
<div class="head-container">
<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-option v-for="item in enabledTypeOptions" :key="item.key" :label="item.display_name" :value="item.key"/>
</el-select>
<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>
<!--表格渲染-->
<el-table v-loading="loading" :data="data" size="small" style="width: 100%;margin-top: -10px;">
@@ -52,7 +71,8 @@
<script>
import checkPermission from '@/utils/permission'
import initData from '@/mixins/initData'
import { parseTime } from '@/utils/index'
import { downloadLogs } from '@/api/timing'
import { parseTime, downloadFile } from '@/utils/index'
export default {
mixins: [initData],
data() {
@@ -86,12 +106,26 @@ export default {
this.size = 6
this.params = { page: this.page, size: this.size, sort: sort }
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 }
return true
},
info(errorInfo) {
this.errorInfo = errorInfo
this.errorDialog = true
},
download() {
this.beforeInit()
this.downloadLoading = true
downloadLogs(this.params).then(result => {
downloadFile(result, '任务日志列表', 'xlsx')
this.downloadLoading = false
}).catch(() => {
this.downloadLoading = false
})
}
}
}

View File

@@ -16,6 +16,15 @@
<div class="head-container">
<!-- 搜索 -->
<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-option v-for="item in enabledTypeOptions" :key="item.key" :label="item.display_name" :value="item.key"/>
</el-select>
@@ -32,7 +41,6 @@
<!-- 导出 -->
<div style="display: inline-block;">
<el-button
v-permission="['admin','user:list']"
:loading="downloadLoading"
size="mini"
class="filter-item"
@@ -117,7 +125,6 @@ export default {
children: 'children',
label: 'name'
},
downloadLoading: false,
enabledTypeOptions: [
{ key: 'true', display_name: '激活' },
{ key: 'false', display_name: '锁定' }
@@ -147,9 +154,24 @@ export default {
const enabled = query.enabled
this.params = { page: this.page, size: this.size, sort: sort, deptId: this.deptId }
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 }
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) {
this.delLoading = true
del(id).then(res => {
@@ -191,16 +213,6 @@ export default {
this.$refs.form.getRoleLevel()
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) {
return jsonData.map(v => filterVal.map(j => {

View File

@@ -4,6 +4,15 @@
<div class="head-container">
<!--搜索-->
<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>
<!-- 上传 -->
<div style="display: inline-block;margin: 0px 2px;">
@@ -25,6 +34,16 @@
icon="el-icon-delete"
@click="open">删除</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>
<!--上传图片-->
<el-dialog :visible.sync="dialog" :close-on-click-modal="false" append-to-body width="600px" @close="doSubmit">
@@ -94,16 +113,16 @@
<script>
import checkPermission from '@/utils/permission' // 权限判断函数
import initData from '@/mixins/initData'
import { parseTime } from '@/utils/index'
import { parseTime, downloadFile } from '@/utils/index'
import { mapGetters } from 'vuex'
import { del, delAll } from '@/api/picture'
import { del, delAll, downloadPicture } from '@/api/picture'
import { getToken } from '@/utils/auth'
export default {
name: 'Pictures',
mixins: [initData],
data() {
return {
delLoading: false, downloadLoading: false,
delLoading: false,
delAllLoading: false,
headers: {
'Authorization': 'Bearer ' + getToken()
@@ -135,6 +154,10 @@ export default {
const filename = query.filename
this.params = { page: this.page, size: this.size, sort: sort }
if (filename) { this.params[filename] = filename }
if (query.date) {
this.params['startTime'] = query.date[0]
this.params['endTime'] = query.date[1]
}
return true
},
subDelete(id) {
@@ -218,6 +241,16 @@ export default {
type: 'error',
duration: 2500
})
},
download() {
this.beforeInit()
this.downloadLoading = true
downloadPicture(this.params).then(result => {
downloadFile(result, '图片列表', 'xlsx')
this.downloadLoading = false
}).catch(() => {
this.downloadLoading = false
})
}
}
}

View File

@@ -4,6 +4,15 @@
<div class="head-container">
<!-- 搜索 -->
<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>
<!-- 新增 -->
<div style="display: inline-block;margin: 0px 2px;">
@@ -27,6 +36,16 @@
icon="el-icon-delete"
@click="open">删除</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>
<!--表单组件-->
<eForm ref="form" :is-add="isAdd"/>
@@ -85,8 +104,8 @@
import { mapGetters } from 'vuex'
import checkPermission from '@/utils/permission'
import initData from '@/mixins/initData'
import { del, delAll } from '@/api/localStorage'
import { parseTime } from '@/utils/index'
import { del, delAll, downloadStorage } from '@/api/localStorage'
import { parseTime, downloadFile } from '@/utils/index'
import eForm from './form'
export default {
components: { eForm },
@@ -122,6 +141,10 @@ export default {
const query = this.query
const value = query.value
if (value) { this.params['blurry'] = value }
if (query.date) {
this.params['startTime'] = query.date[0]
this.params['endTime'] = query.date[1]
}
return true
},
subDelete(id) {
@@ -184,6 +207,16 @@ export default {
}).then(() => {
this.doDelete()
})
},
download() {
this.beforeInit()
this.downloadLoading = true
downloadStorage(this.params).then(result => {
downloadFile(result, '文件列表', 'xlsx')
this.downloadLoading = false
}).catch(() => {
this.downloadLoading = false
})
}
}
}

View File

@@ -6,6 +6,15 @@
<div class="head-container">
<!-- 搜索 -->
<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>
<!-- 上传 -->
<div style="display: inline-block;margin: 0px 2px;">
@@ -33,6 +42,16 @@
icon="el-icon-delete"
@click="open">删除</el-button>
</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-upload
@@ -98,8 +117,8 @@
<script>
import initData from '@/mixins/initData'
import { del, download, sync, delAll } from '@/api/qiniu'
import { parseTime } from '@/utils/index'
import { del, download, sync, delAll, downloadQiNiu } from '@/api/qiniu'
import { parseTime, downloadFile } from '@/utils/index'
import { mapGetters } from 'vuex'
import { getToken } from '@/utils/auth'
import eForm from './form'
@@ -139,6 +158,10 @@ export default {
const value = query.value
this.params = { page: this.page, size: this.size, sort: sort }
if (value) { this.params['key'] = value }
if (query.date) {
this.params['startTime'] = query.date[0]
this.params['endTime'] = query.date[1]
}
return true
},
doConfig() {
@@ -257,6 +280,16 @@ export default {
}).then(() => {
this.doDelete()
})
},
downloadList() {
this.beforeInit()
this.downloadLoading = true
downloadQiNiu(this.params).then(result => {
downloadFile(result, '七牛云文件列表', 'xlsx')
this.downloadLoading = false
}).catch(() => {
this.downloadLoading = false
})
}
}
}