Commit 98fa128e by zhengjie

v1.9 发布,详情查看发行版说明

parent f0255b5e
{
"name": "eladmin",
"version": "1.8.0",
"version": "1.9.0",
"license": "Apache-2.0",
"description": "eladmin 前端代码",
"author": "jie <elunez@qq.com>",
......
......@@ -6,3 +6,11 @@ export function del(id) {
method: 'delete'
})
}
export function delAll(ids) {
return request({
url: 'api/pictures/',
method: 'delete',
data: ids
})
}
......@@ -35,3 +35,11 @@ export function sync() {
method: 'post'
})
}
export function delAll(ids) {
return request({
url: 'api/qiNiuContent/',
method: 'delete',
data: ids
})
}
......@@ -23,6 +23,13 @@ export function get(id) {
})
}
export function getLevel() {
return request({
url: 'api/roles/level',
method: 'get'
})
}
export function del(id) {
return request({
url: 'api/roles/' + id,
......
import permission from './permission'
const install = function(Vue) {
Vue.directive('permission', permission)
}
if (window.Vue) {
window['permission'] = permission
Vue.use(install); // eslint-disable-line
}
permission.install = install
export default permission
import store from '@/store'
export default {
inserted(el, binding, vnode) {
const { value } = binding
const roles = store.getters && store.getters.roles
if (value && value instanceof Array && value.length > 0) {
const permissionRoles = value
const hasPermission = roles.some(role => {
return permissionRoles.includes(role)
})
if (!hasPermission) {
el.parentNode && el.parentNode.removeChild(el)
}
} else {
throw new Error(`need roles! Like v-permission="['admin','editor']"`)
}
}
}
......@@ -11,12 +11,14 @@ import '@/styles/index.scss' // global css
import App from './App'
import router from './router/routers'
import permission from './components/permission'
import store from './store'
import '@/icons' // icon
import './router/index' // permission control
Vue.use(mavonEditor)
Vue.use(permission)
Vue.use(ElementUI, { locale })
Vue.config.productionTip = false
require('babel-polyfill')
......
......@@ -106,10 +106,10 @@ export default {
}
},
legend: {
data: ['visits', 'ip']
data: ['pv', 'ip']
},
series: [{
name: 'visits', itemStyle: {
name: 'pv', itemStyle: {
normal: {
color: '#FF005A',
lineStyle: {
......
......@@ -6,7 +6,7 @@
<svg-icon icon-class="visits" class-name="card-panel-icon" />
</div>
<div class="card-panel-description">
<div class="card-panel-text">New Visits</div>
<div class="card-panel-text">Daily Pv</div>
<count-to :start-val="0" :end-val="count.newVisits" :duration="2600" class="card-panel-num"/>
</div>
</div>
......@@ -17,7 +17,7 @@
<svg-icon icon-class="ipvisits" class-name="card-panel-icon" />
</div>
<div class="card-panel-description">
<div class="card-panel-text">New Ip</div>
<div class="card-panel-text">Daily Ip</div>
<count-to :start-val="0" :end-val="count.newIp" :duration="3000" class="card-panel-num"/>
</div>
</div>
......@@ -28,7 +28,7 @@
<svg-icon icon-class="visits" class-name="card-panel-icon" />
</div>
<div class="card-panel-description">
<div class="card-panel-text">Recent Visits</div>
<div class="card-panel-text">Weekly Pv</div>
<count-to :start-val="0" :end-val="count.recentVisits" :duration="3200" class="card-panel-num"/>
</div>
</div>
......@@ -39,7 +39,7 @@
<svg-icon icon-class="ipvisits" class-name="card-panel-icon" />
</div>
<div class="card-panel-description">
<div class="card-panel-text">Recent Ip</div>
<div class="card-panel-text">Weekly Ip</div>
<count-to :start-val="0" :end-val="count.recentIp" :duration="3600" class="card-panel-num"/>
</div>
</div>
......
<template>
<div>
<el-button v-if="checkPermission(['ADMIN','JOB_ALL','JOB_EDIT'])" type="success" size="mini" @click="to">生成代码</el-button>
<el-button type="primary" size="mini" @click="to">生成代码</el-button>
<el-dialog :visible.sync="dialog" title="代码生成配置" append-to-body width="800px">
<el-table v-loading="loading" :data="data" size="small" style="width: 100%;">
<el-table-column label="序号" width="80" align="center">
......@@ -49,7 +49,6 @@
</template>
<script>
import checkPermission from '@/utils/permission'
import initData from '@/mixins/initData'
import { generator } from '@/api/generator'
export default {
......@@ -67,7 +66,6 @@ export default {
}
},
methods: {
checkPermission,
to() {
this.dialog = true
this.time = 130
......
<template>
<div class="head-container">
<el-input v-model="query.name" clearable placeholder="请输入表名" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
<el-button class="filter-item" size="mini" type="primary" 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;">
<el-button
class="filter-item"
size="mini"
type="primary"
type="warning"
icon="el-icon-setting"
@click="to">生成器配置</el-button>
<eForm ref="form"/>
......
......@@ -42,7 +42,7 @@ export default {
}
.fixed-header+.app-main {
padding-top: 84px;
padding-top: 85px;
}
}
</style>
......
......@@ -30,9 +30,11 @@
个人中心
</el-dropdown-item>
</router-link>
<el-dropdown-item divided>
<span style="display:block;" @click="logout">退出登录</span>
</el-dropdown-item>
<span style="display:block;" @click="open">
<el-dropdown-item divided>
退出登录
</el-dropdown-item>
</span>
</el-dropdown-menu>
</el-dropdown>
</div>
......@@ -51,6 +53,11 @@ export default {
Hamburger,
Screenfull
},
data() {
return {
dialogVisible: false
}
},
computed: {
...mapGetters([
'sidebar',
......@@ -70,10 +77,20 @@ export default {
}
},
methods: {
open() {
this.$confirm('确定注销并退出系统吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.logout()
})
},
toggleSideBar() {
this.$store.dispatch('ToggleSideBar')
},
logout() {
this.dialogVisible = false
this.$store.dispatch('LogOut').then(() => {
location.reload() // 为了重新实例化vue-router对象 避免bug
})
......
......@@ -13,7 +13,7 @@
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column prop="createTime" label="异常详情" width="120px">
<el-table-column prop="createTime" label="异常详情" width="100px">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="info(scope.row.exceptionDetail)">查看详情</el-button>
</template>
......
<template>
<div class="head-container">
<el-input v-model="query.username" clearable placeholder="用户名" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
<el-button class="filter-item" size="mini" type="primary" 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>
</template>
......
......@@ -16,11 +16,11 @@
</div>
</template>
</el-table-column>
<el-table-column label="操作" width="150px" align="center">
<el-table-column v-if="checkPermission(['ADMIN','REDIS_ALL','REDIS_EDIT','REDIS_DELETE'])" label="操作" width="130px" align="center">
<template slot-scope="scope">
<edit v-if="checkPermission(['ADMIN','REDIS_ALL','REDIS_EDIT'])" :data="scope.row" :sup_this="sup_this"/>
<edit v-permission="['ADMIN','REDIS_ALL','REDIS_EDIT']" :data="scope.row" :sup_this="sup_this"/>
<el-popover
v-if="checkPermission(['ADMIN','REDIS_ALL','REDIS_DELETE'])"
v-permission="['ADMIN','REDIS_ALL','REDIS_DELETE']"
:ref="scope.$index"
placement="top"
width="180">
......@@ -29,7 +29,7 @@
<el-button size="mini" type="text" @click="$refs[scope.$index].doClose()">取消</el-button>
<el-button :loading="delLoading" type="primary" size="mini" @click="subDelete(scope.$index, scope.row)">确定</el-button>
</div>
<el-button slot="reference" type="danger" size="mini">删除</el-button>
<el-button slot="reference" type="danger" icon="el-icon-delete" size="mini"/>
</el-popover>
</template>
</el-table-column>
......
<template>
<div>
<el-button size="mini" type="success" @click="to">编辑</el-button>
<el-button size="mini" type="primary" icon="el-icon-edit" @click="to"/>
<eForm ref="form" :sup_this="sup_this" :is-add="false"/>
</div>
</template>
......
......@@ -2,11 +2,11 @@
<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="primary" 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;">
<el-button
v-if="checkPermission(['ADMIN','REDIS_ALL','REDIS_CREATE'])"
v-permission="['ADMIN','REDIS_ALL','REDIS_CREATE']"
class="filter-item"
size="mini"
type="primary"
......@@ -15,12 +15,11 @@
<eForm ref="form" :is-add="true"/>
</div>
<!-- 清空缓存 -->
<el-button v-if="checkPermission(['ADMIN','REDIS_ALL','REDIS_DELETE'])" :loading="deleteAllLoading" type="warning" size="mini" class="filter-item" icon="el-icon-delete" @click="deleteAll">清空缓存</el-button>
<el-button v-permission="['ADMIN','REDIS_ALL','REDIS_DELETE']" :loading="deleteAllLoading" type="warning" size="mini" class="filter-item" icon="el-icon-delete" @click="deleteAll">清空缓存</el-button>
</div>
</template>
<script>
import checkPermission from '@/utils/permission' // 权限判断函数
import eForm from './form'
import { delAll } from '@/api/redis'
// 查询条件
......@@ -38,7 +37,6 @@ export default {
}
},
methods: {
checkPermission,
toQuery() {
this.$parent.page = 0
this.$parent.init()
......
......@@ -2,7 +2,7 @@
<div class="app-container">
<eHeader :query="query" :dicts="dicts"/>
<!--表格渲染-->
<tree-table v-loading="loading" :expand-all="true" :data="data" :columns="columns" size="small">
<tree-table v-loading="loading" :expand-all="expand" :data="data" :columns="columns" size="small">
<el-table-column label="状态" align="center">
<template slot-scope="scope">
<div v-for="item in dicts" :key="item.id">
......@@ -15,11 +15,11 @@
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" width="150px" align="center">
<el-table-column v-if="checkPermission(['ADMIN','DEPT_ALL','DEPT_EDIT','DEPT_DELETE'])" label="操作" width="130px" align="center">
<template slot-scope="scope">
<edit v-if="checkPermission(['ADMIN','DEPT_ALL','DEPT_EDIT'])" :dicts="dicts" :data="scope.row" :sup_this="sup_this"/>
<edit v-permission="['ADMIN','DEPT_ALL','DEPT_EDIT']" :dicts="dicts" :data="scope.row" :sup_this="sup_this"/>
<el-popover
v-if="checkPermission(['ADMIN','DEPT_ALL','DEPT_DELETE'])"
v-permission="['ADMIN','DEPT_ALL','DEPT_DELETE']"
:ref="scope.row.id"
placement="top"
width="180">
......@@ -28,7 +28,7 @@
<el-button size="mini" type="text" @click="$refs[scope.row.id].doClose()">取消</el-button>
<el-button :loading="delLoading" type="primary" size="mini" @click="subDelete(scope.row.id)">确定</el-button>
</div>
<el-button slot="reference" :disabled="scope.row.id === 1" type="danger" size="mini">删除</el-button>
<el-button slot="reference" :disabled="scope.row.id === 1" type="danger" icon="el-icon-delete" size="mini"/>
</el-popover>
</template>
</el-table-column>
......@@ -56,7 +56,7 @@ export default {
value: 'name'
}
],
delLoading: false, sup_this: this
delLoading: false, sup_this: this, expand: true
}
},
created() {
......
<template>
<div>
<el-button size="mini" type="success" @click="to">编辑</el-button>
<el-button size="mini" type="primary" icon="el-icon-edit" @click="to"/>
<eForm ref="form" :sup_this="sup_this" :is-add="false" :dicts="dicts"/>
</div>
</template>
......
......@@ -5,11 +5,11 @@
<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>
<el-button class="filter-item" size="mini" type="primary" 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;">
<el-button
v-if="checkPermission(['ADMIN','DEPT_ALL','DEPT_CREATE'])"
v-permission="['ADMIN','DEPT_ALL','DEPT_CREATE']"
class="filter-item"
size="mini"
type="primary"
......@@ -17,11 +17,19 @@
@click="add">新增</el-button>
<eForm ref="form" :is-add="true" :dicts="dicts"/>
</div>
<div style="display: inline-block;margin: 0px 2px;">
<el-button
class="filter-item"
size="mini"
type="warning"
icon="el-icon-more"
@click="expand">展开/折叠</el-button>
<eForm ref="form" :is-add="true"/>
</div>
</div>
</template>
<script>
import checkPermission from '@/utils/permission' // 权限判断函数
import eForm from './form'
export default {
components: { eForm },
......@@ -44,7 +52,6 @@ export default {
}
},
methods: {
checkPermission,
toQuery() {
this.$parent.page = 0
this.$parent.init()
......@@ -52,6 +59,10 @@ export default {
add() {
this.$refs.form.getDepts()
this.$refs.form.dialog = true
},
expand() {
this.$parent.expand = !this.$parent.expand
this.$parent.init()
}
}
}
......
......@@ -6,7 +6,7 @@
<div slot="header" class="clearfix">
<span>字典列表</span>
<el-button
v-if="checkPermission(['ADMIN','DICT_ALL','DICT_CREATE'])"
v-permission="['ADMIN','DICT_ALL','DICT_CREATE']"
class="filter-item"
size="mini"
style="float: right;padding: 4px 10px"
......@@ -19,11 +19,11 @@
<el-table v-loading="loading" :data="data" size="small" highlight-current-row style="width: 100%;" @current-change="handleCurrentChange">
<el-table-column :show-overflow-tooltip="true" prop="name" label="名称"/>
<el-table-column :show-overflow-tooltip="true" prop="remark" label="描述"/>
<el-table-column label="操作" width="150px" align="center">
<el-table-column v-if="checkPermission(['ADMIN','DICT_ALL','DICT_EDIT','DICT_DELETE'])" label="操作" width="130px" align="center">
<template slot-scope="scope">
<edit v-if="checkPermission(['ADMIN','DICT_ALL','DICT_EDIT'])" :data="scope.row" :sup_this="sup_this"/>
<edit v-permission="['ADMIN','DICT_ALL','DICT_EDIT']" :data="scope.row" :sup_this="sup_this"/>
<el-popover
v-if="checkPermission(['ADMIN','DICT_ALL','DICT_DELETE'])"
v-permission="['ADMIN','DICT_ALL','DICT_DELETE']"
:ref="scope.row.id"
placement="top"
width="180">
......@@ -32,7 +32,7 @@
<el-button size="mini" type="text" @click="$refs[scope.row.id].doClose()">取消</el-button>
<el-button :loading="delLoading" type="primary" size="mini" @click="subDelete(scope.row.id)">确定</el-button>
</div>
<el-button slot="reference" type="danger" size="mini">删除</el-button>
<el-button slot="reference" type="danger" icon="el-icon-delete" size="mini"/>
</el-popover>
</template>
</el-table-column>
......@@ -49,11 +49,7 @@
<el-col :xs="24" :sm="24" :md="14" :lg="14" :xl="14">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>字典详情
<span style="color: #317EF3">
{{ this.$refs.dictDetail ? this.$refs.dictDetail.dictName : '' }}
</span>
</span>
<span>字典详情</span>
<el-button
v-if="checkPermission(['ADMIN','DICT_ALL','DICT_CREATE']) && this.$refs.dictDetail && this.$refs.dictDetail.dictName"
class="filter-item"
......
<template>
<div>
<el-button size="mini" type="success" @click="to">编辑</el-button>
<el-button size="mini" type="primary" icon="el-icon-edit" @click="to"/>
<eForm ref="form" :sup_this="sup_this" :is-add="false"/>
</div>
</template>
......
......@@ -5,7 +5,7 @@
<el-select v-model="query.type" clearable placeholder="类型" class="filter-item" style="width: 130px">
<el-option v-for="item in queryTypeOptions" :key="item.key" :label="item.display_name" :value="item.key"/>
</el-select>
<el-button class="filter-item" size="mini" type="primary" 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;">
<eForm ref="form" :is-add="true" :sup_this="sup_this"/>
</div>
......
......@@ -7,14 +7,19 @@
<eHeader ref="header" :query="query" :dict-id="dictId"/>
<!--表格渲染-->
<el-table v-loading="loading" :data="data" size="small" style="width: 100%;">
<el-table-column label="所属字典">
<template slot-scope="scope">
{{ dictName }}
</template>
</el-table-column>
<el-table-column prop="label" label="字典标签"/>
<el-table-column prop="value" label="字典值"/>
<el-table-column prop="sort" label="排序"/>
<el-table-column label="操作" width="150px" align="center">
<el-table-column v-if="checkPermission(['ADMIN','DICT_ALL','DICT_EDIT','DICT_DELETE'])" label="操作" width="130px" align="center">
<template slot-scope="scope">
<edit v-if="checkPermission(['ADMIN','DICT_ALL','DICT_EDIT'])" :dict-id="dictId" :data="scope.row" :sup_this="sup_this"/>
<edit v-permission="['ADMIN','DICT_ALL','DICT_EDIT']" :dict-id="dictId" :data="scope.row" :sup_this="sup_this"/>
<el-popover
v-if="checkPermission(['ADMIN','DICT_ALL','DICT_DELETE'])"
v-permission="['ADMIN','DICT_ALL','DICT_DELETE']"
:ref="scope.row.id"
placement="top"
width="180">
......@@ -23,7 +28,7 @@
<el-button size="mini" type="text" @click="$refs[scope.row.id].doClose()">取消</el-button>
<el-button :loading="delLoading" type="primary" size="mini" @click="subDelete(scope.row.id)">确定</el-button>
</div>
<el-button slot="reference" type="danger" size="mini">删除</el-button>
<el-button slot="reference" type="danger" icon="el-icon-delete" size="mini"/>
</el-popover>
</template>
</el-table-column>
......
<template>
<div>
<el-button size="mini" type="success" @click="to">编辑</el-button>
<el-button size="mini" type="primary" icon="el-icon-edit" @click="to"/>
<eForm ref="form" :sup_this="sup_this" :is-add="false" :dict-id="dictId"/>
</div>
</template>
......
......@@ -2,7 +2,7 @@
<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="primary" 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;">
<eForm ref="form" :is-add="true" :dict-id="dictId"/>
</div>
......
......@@ -26,11 +26,11 @@
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" width="150px" align="center">
<el-table-column v-if="checkPermission(['ADMIN','USERJOB_ALL','USERJOB_EDIT','USERJOB_DELETE'])" label="操作" width="130px" align="center">
<template slot-scope="scope">
<edit v-if="checkPermission(['ADMIN','USERJOB_ALL','USERJOB_EDIT'])" :dicts="dicts" :data="scope.row" :sup_this="sup_this"/>
<edit v-permission="['ADMIN','USERJOB_ALL','USERJOB_EDIT']" :dicts="dicts" :data="scope.row" :sup_this="sup_this"/>
<el-popover
v-if="checkPermission(['ADMIN','USERJOB_ALL','USERJOB_DELETE'])"
v-permission="['ADMIN','USERJOB_ALL','USERJOB_DELETE']"
:ref="scope.row.id"
placement="top"
width="180">
......@@ -39,7 +39,7 @@
<el-button size="mini" type="text" @click="$refs[scope.row.id].doClose()">取消</el-button>
<el-button :loading="delLoading" type="primary" size="mini" @click="subDelete(scope.row.id)">确定</el-button>
</div>
<el-button slot="reference" type="danger" size="mini">删除</el-button>
<el-button slot="reference" type="danger" icon="el-icon-delete" size="mini"/>
</el-popover>
</template>
</el-table-column>
......
<template>
<div>
<el-button size="mini" type="success" @click="to">编辑</el-button>
<el-button size="mini" type="primary" icon="el-icon-edit" @click="to"/>
<eForm ref="form" :sup_this="sup_this" :is-add="false" :dicts="dicts"/>
</div>
</template>
......
......@@ -5,11 +5,11 @@
<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>
<el-button class="filter-item" size="mini" type="primary" 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;">
<el-button
v-if="checkPermission(['ADMIN','USERJOB_ALL','USERJOB_CREATE'])"
v-permission="['ADMIN','USERJOB_ALL','USERJOB_CREATE']"
class="filter-item"
size="mini"
type="primary"
......@@ -21,7 +21,6 @@
</template>
<script>
import checkPermission from '@/utils/permission' // 权限判断函数
import eForm from './form'
export default {
components: { eForm },
......@@ -44,7 +43,6 @@ export default {
}
},
methods: {
checkPermission,
add() {
this.$refs.form.getDepts()
this.$refs.form.dialog = true
......
......@@ -2,7 +2,7 @@
<div class="app-container">
<eHeader :query="query"/>
<!--表格渲染-->
<tree-table v-loading="loading" :data="data" :expand-all="true" :columns="columns" size="small">
<tree-table v-loading="loading" :data="data" :expand-all="expand" :columns="columns" size="small">
<el-table-column prop="icon" label="图标" align="center" width="80px">
<template slot-scope="scope">
<svg-icon :icon-class="scope.row.icon" />
......@@ -26,11 +26,11 @@
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" width="150px" align="center">
<el-table-column v-if="checkPermission(['ADMIN','MENU_ALL','MENU_EDIT','MENU_DELETE'])" label="操作" width="130px" align="center">
<template slot-scope="scope">
<edit v-if="checkPermission(['ADMIN','MENU_ALL','MENU_EDIT'])" :data="scope.row" :sup_this="sup_this"/>
<edit v-permission="['ADMIN','MENU_ALL','MENU_EDIT']" :data="scope.row" :sup_this="sup_this"/>
<el-popover
v-if="checkPermission(['ADMIN','MENU_ALL','MENU_DELETE'])"
v-permission="['ADMIN','MENU_ALL','MENU_DELETE']"
:ref="scope.row.id"
placement="top"
width="200">
......@@ -39,7 +39,7 @@
<el-button size="mini" type="text" @click="$refs[scope.row.id].doClose()">取消</el-button>
<el-button :loading="delLoading" type="primary" size="mini" @click="subDelete(scope.row.id)">确定</el-button>
</div>
<el-button slot="reference" type="danger" size="mini">删除</el-button>
<el-button slot="reference" type="danger" icon="el-icon-delete" size="mini"/>
</el-popover>
</template>
</el-table-column>
......@@ -66,7 +66,7 @@ export default {
value: 'name'
}
],
delLoading: false, sup_this: this
delLoading: false, sup_this: this, expand: true
}
},
created() {
......
<template>
<div>
<el-button size="mini" type="success" @click="to">编辑</el-button>
<el-button size="mini" type="primary" icon="el-icon-edit" @click="to"/>
<eForm ref="form" :sup_this="sup_this" :is-add="false"/>
</div>
</template>
......
......@@ -2,11 +2,11 @@
<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="primary" 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;">
<el-button
v-if="checkPermission(['ADMIN','MENU_ALL','MENU_CREATE'])"
v-permission="['ADMIN','MENU_ALL','MENU_CREATE']"
class="filter-item"
size="mini"
type="primary"
......@@ -14,11 +14,19 @@
@click="add">新增</el-button>
<eForm ref="form" :is-add="true"/>
</div>
<div style="display: inline-block;margin: 0px 2px;">
<el-button
class="filter-item"
size="mini"
type="warning"
icon="el-icon-more"
@click="expand">展开/折叠</el-button>
<eForm ref="form" :is-add="true"/>
</div>
</div>
</template>
<script>
import checkPermission from '@/utils/permission'
import eForm from './form'
export default {
components: { eForm },
......@@ -34,7 +42,6 @@ export default {
}
},
methods: {
checkPermission,
toQuery() {
this.$parent.page = 0
this.$parent.init()
......@@ -42,6 +49,10 @@ export default {
add() {
this.$refs.form.getMenus()
this.$refs.form.dialog = true
},
expand() {
this.$parent.expand = !this.$parent.expand
this.$parent.init()
}
}
}
......
......@@ -2,17 +2,17 @@
<div class="app-container">
<eHeader :query="query"/>
<!--表格渲染-->
<tree-table v-loading="loading" :data="data" :expand-all="true" :columns="columns" size="small">
<tree-table v-loading="loading" :data="data" :expand-all="expand" :columns="columns" size="small">
<el-table-column prop="createTime" label="创建日期">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" width="150px" align="center">
<el-table-column v-if="checkPermission(['ADMIN','PERMISSION_ALL','PERMISSION_EDIT','PERMISSION_DELETE'])" label="操作" width="130px" align="center">
<template slot-scope="scope">
<edit v-if="checkPermission(['ADMIN','PERMISSION_ALL','PERMISSION_EDIT'])" :data="scope.row" :sup_this="sup_this"/>
<edit v-permission="['ADMIN','PERMISSION_ALL','PERMISSION_EDIT']" :data="scope.row" :sup_this="sup_this"/>
<el-popover
v-if="checkPermission(['ADMIN','PERMISSION_ALL','PERMISSION_DELETE'])"
v-permission="['ADMIN','PERMISSION_ALL','PERMISSION_DELETE']"
:ref="scope.row.id"
placement="top"
width="200">
......@@ -21,7 +21,7 @@
<el-button size="mini" type="text" @click="$refs[scope.row.id].doClose()">取消</el-button>
<el-button :loading="delLoading" type="primary" size="mini" @click="subDelete(scope.row.id)">确定</el-button>
</div>
<el-button slot="reference" type="danger" size="mini">删除</el-button>
<el-button slot="reference" type="danger" icon="el-icon-delete" size="mini"/>
</el-popover>
</template>
</el-table-column>
......@@ -52,7 +52,7 @@ export default {
value: 'alias'
}
],
delLoading: false, sup_this: this
delLoading: false, sup_this: this, expand: true
}
},
created() {
......
<template>
<div>
<el-button size="mini" type="success" @click="to">编辑</el-button>
<el-button size="mini" type="primary" icon="el-icon-edit" @click="to"/>
<eForm ref="form" :sup_this="sup_this" :is-add="false"/>
</div>
</template>
......
......@@ -2,11 +2,11 @@
<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="primary" 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;">
<el-button
v-if="checkPermission(['ADMIN','PERMISSION_ALL','PERMISSION_CREATE'])"
v-permission="['ADMIN','PERMISSION_ALL','PERMISSION_CREATE']"
class="filter-item"
size="mini"
type="primary"
......@@ -14,11 +14,19 @@
@click="add">新增</el-button>
<eForm ref="form" :is-add="true"/>
</div>
<div style="display: inline-block;margin: 0px 2px;">
<el-button
class="filter-item"
size="mini"
type="warning"
icon="el-icon-more"
@click="expand">展开/折叠</el-button>
<eForm ref="form" :is-add="true"/>
</div>
</div>
</template>
<script>
import checkPermission from '@/utils/permission'
import eForm from './form'
export default {
components: { eForm },
......@@ -34,7 +42,6 @@ export default {
}
},
methods: {
checkPermission,
toQuery() {
this.$parent.page = 0
this.$parent.init()
......@@ -42,6 +49,10 @@ export default {
add() {
this.$refs.form.getPermissions()
this.$refs.form.dialog = true
},
expand() {
this.$parent.expand = !this.$parent.expand
this.$parent.init()
}
}
}
......
<template>
<div class="app-container">
<eHeader :query="query"/>
<!--表格渲染-->
<div :style="'height: auto;max-height:' + height + 'overflow-y: auto;'">
<el-table v-loading="loading" :data="data" highlight-current-row size="small" style="width: 100%;" @current-change="handleCurrentChange">
<el-table-column prop="name" label="名称"/>
<el-table-column prop="dataScope" label="数据权限"/>
<el-table-column prop="remark" label="描述"/>
<el-table-column prop="createTime" label="创建日期">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" width="150px" align="center">
<template slot-scope="scope">
<edit v-if="checkPermission(['ADMIN','ROLES_ALL','ROLES_EDIT'])" :data="scope.row" :sup_this="sup_this"/>
<el-popover
v-if="checkPermission(['ADMIN','ROLES_ALL','ROLES_DELETE'])"
:ref="scope.row.id"
placement="top"
width="180">
<p>确定删除本条数据吗?</p>
<div style="text-align: right; margin: 0">
<el-button size="mini" type="text" @click="$refs[scope.row.id].doClose()">取消</el-button>
<el-button :loading="delLoading" type="primary" size="mini" @click="subDelete(scope.row.id)">确定</el-button>
</div>
<el-button slot="reference" type="danger" size="mini">删除</el-button>
</el-popover>
</template>
</el-table-column>
</el-table>
</div>
<!--分页组件-->
<el-pagination
:total="total"
style="margin-top: 8px;"
layout="total, prev, pager, next, sizes"
@size-change="sizeChange"
@current-change="pageChange"/>
<!--这里是授权模块代码-->
<el-row :gutter="20" style="margin-top: 5px;">
<!--权限分配-->
<el-col :span="12">
<el-row :gutter="15">
<!--角色管理-->
<el-col :xs="24" :sm="24" :md="16" :lg="16" :xl="17">
<el-card class="box-card" shadow="never">
<div slot="header" class="clearfix">
<span class="role-span">权限分配</span>
<el-button
v-if="showButton && checkPermission(['ADMIN','ROLES_ALL','ROLES_EDIT'])"
:loading="permissionLoading"
icon="el-icon-check"
size="mini"
style="float: right; padding: 4px 10px"
type="info"
@click="savePermission">保存</el-button>
</div>
<div style="min-height: 320px;max-height:500px;overflow-y: auto;">
<el-tree
ref="permission"
:data="permissions"
:default-checked-keys="permissionIds"
:props="defaultProps"
show-checkbox
node-key="id"/>
<span class="role-span">角色列表</span>
<div id="opt" style="float: right">
<el-radio-group v-model="opt" size="mini">
<el-radio-button label="菜单分配"/>
<el-radio-button label="权限分配"/>
</el-radio-group>
</div>
</div>
<el-table v-loading="loading" :data="data" highlight-current-row size="small" style="width: 100%;" @current-change="handleCurrentChange">
<el-table-column prop="name" label="名称"/>
<el-table-column prop="dataScope" label="数据权限"/>
<el-table-column prop="level" label="角色级别"/>
<el-table-column :show-overflow-tooltip="true" prop="remark" label="描述"/>
<el-table-column :show-overflow-tooltip="true" prop="createTime" label="创建日期">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column v-if="checkPermission(['ADMIN','ROLES_ALL','ROLES_EDIT','ROLES_DELETE'])" label="操作" width="130px" align="center">
<template slot-scope="scope">
<edit v-permission="['ADMIN','ROLES_ALL','ROLES_EDIT']" :data="scope.row" :sup_this="sup_this"/>
<el-popover
v-permission="['ADMIN','ROLES_ALL','ROLES_DELETE']"
:ref="scope.row.id"
placement="top"
width="180">
<p>确定删除本条数据吗?</p>
<div style="text-align: right; margin: 0">
<el-button size="mini" type="text" @click="$refs[scope.row.id].doClose()">取消</el-button>
<el-button :loading="delLoading" type="primary" size="mini" @click="subDelete(scope.row.id)">确定</el-button>
</div>
<el-button slot="reference" type="danger" icon="el-icon-delete" size="mini"/>
</el-popover>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<el-pagination
:total="total"
style="margin-top: 8px;"
layout="total, prev, pager, next, sizes"
@size-change="sizeChange"
@current-change="pageChange"/>
</el-card>
</el-col>
<!--菜单分配-->
<el-col :span="12">
<el-card class="box-card" shadow="never">
<!-- 授权 -->
<el-col :xs="24" :sm="24" :md="8" :lg="8" :xl="7">
<el-card v-show="opt === '菜单分配'" class="box-card" shadow="never">
<div slot="header" class="clearfix">
<span class="role-span">菜单分配</span>
<el-tooltip class="item" effect="dark" content="选择指定角色分配菜单" placement="top">
<span class="role-span">菜单分配</span>
</el-tooltip>
<el-button
v-if="showButton && checkPermission(['ADMIN','ROLES_ALL','ROLES_EDIT'])"
v-permission="['ADMIN','ROLES_ALL','ROLES_EDIT']"
:disabled="!showButton"
:loading="menuLoading"
icon="el-icon-check"
size="mini"
style="float: right; padding: 4px 10px"
type="info"
style="float: right; padding: 6px 9px"
type="primary"
@click="saveMenu">保存</el-button>
</div>
<div style="min-height: 320px;max-height:500px;overflow-y: auto;">
<el-tree
ref="menu"
:data="menus"
:default-checked-keys="menuIds"
:props="defaultProps"
show-checkbox
node-key="id"/>
<el-tree
ref="menu"
:data="menus"
:default-checked-keys="menuIds"
:props="defaultProps"
accordion
show-checkbox
node-key="id"/>
</el-card>
<el-card v-show="opt === '权限分配'" class="box-card" shadow="never">
<div slot="header" class="clearfix">
<el-tooltip class="item" effect="dark" content="选择指定角色分配权限" placement="top">
<span class="role-span">权限分配</span>
</el-tooltip>
<el-button
v-permission="['ADMIN','ROLES_ALL','ROLES_EDIT']"
:disabled="!showButton"
:loading="permissionLoading"
icon="el-icon-check"
size="mini"
style="float: right; padding: 6px 9px"
type="primary"
@click="savePermission">保存</el-button>
</div>
<el-tree
ref="permission"
:data="permissions"
:default-checked-keys="permissionIds"
:props="defaultProps"
show-checkbox
accordion
node-key="id"/>
</el-card>
</el-col>
</el-row>
......@@ -113,9 +125,8 @@ export default {
children: 'children',
label: 'label'
},
currentId: 0, permissionLoading: false, menuLoading: false, showButton: false,
delLoading: false, sup_this: this, permissions: [], permissionIds: [], menus: [], menuIds: [],
height: document.documentElement.clientHeight - 94.5 - 260 + 'px;'
currentId: 0, permissionLoading: false, menuLoading: false, showButton: false, opt: '菜单分配',
delLoading: false, sup_this: this, permissions: [], permissionIds: [], menus: [], menuIds: []
}
},
created() {
......@@ -125,12 +136,6 @@ export default {
this.init()
})
},
mounted: function() {
const that = this
window.onresize = function temp() {
that.height = document.documentElement.clientHeight - 94.5 - 260 + 'px;'
}
},
methods: {
parseTime,
checkPermission,
......@@ -139,7 +144,7 @@ export default {
this.$refs.menu.setCheckedKeys([])
this.showButton = false
this.url = 'api/roles'
const sort = 'id,desc'
const sort = 'level,asc'
const query = this.query
const value = query.value
this.params = { page: this.page, size: this.size, sort: sort }
......@@ -266,7 +271,7 @@ export default {
}
</script>
<style scoped>
<style rel="stylesheet/scss" lang="scss">
.role-span {
font-weight: bold;color: #303133;
font-size: 15px;
......
<template>
<div>
<el-button size="mini" type="success" @click="to">编辑</el-button>
<el-button size="mini" type="primary" icon="el-icon-edit" @click="to"/>
<eForm ref="form" :sup_this="sup_this" :is-add="false"/>
</div>
</template>
......@@ -22,7 +22,7 @@ export default {
to() {
const _this = this.$refs.form
_this.deptIds = []
_this.form = { id: this.data.id, name: this.data.name, remark: this.data.remark, depts: this.data.depts, dataScope: this.data.dataScope }
_this.form = { id: this.data.id, name: this.data.name, remark: this.data.remark, depts: this.data.depts, dataScope: this.data.dataScope, level: this.data.level }
if (_this.form.dataScope === '自定义') {
_this.getDepts()
}
......
......@@ -4,6 +4,9 @@
<el-form-item label="角色名称" prop="name">
<el-input v-model="form.name" 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>
<el-form-item label="数据范围">
<el-select v-model="form.dataScope" style="width: 370px" placeholder="请选择数据范围" @change="changeScope">
<el-option
......@@ -48,7 +51,7 @@ export default {
return {
dateScopes: ['全部', '本级', '自定义'],
loading: false, dialog: false, depts: [], deptIds: [],
form: { name: '', depts: [], remark: '', dataScope: '本级' },
form: { name: '', depts: [], remark: '', dataScope: '本级', level: 3 },
rules: {
name: [
{ required: true, message: '请输入名称', trigger: 'blur' }
......@@ -120,7 +123,7 @@ export default {
resetForm() {
this.dialog = false
this.$refs['form'].resetFields()
this.form = { name: '', depts: [], remark: '', dataScope: '本级' }
this.form = { name: '', depts: [], remark: '', dataScope: '本级', level: 3 }
},
getDepts() {
getDepts({ enabled: true }).then(res => {
......@@ -136,5 +139,8 @@ export default {
}
</script>
<style scoped>
<style rel="stylesheet/scss" lang="scss" scoped>
/deep/ .el-input-number .el-input__inner {
text-align: left;
}
</style>
......@@ -2,11 +2,11 @@
<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="primary" 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;">
<el-button
v-if="checkPermission(['ADMIN','ROLES_ALL','ROLES_CREATE'])"
v-permission="['ADMIN','ROLES_ALL','ROLES_CREATE']"
class="filter-item"
size="mini"
type="primary"
......@@ -14,14 +14,10 @@
@click="$refs.form.dialog = true">新增</el-button>
<eForm ref="form" :is-add="true"/>
</div>
<!-- 导出 -->
<el-button v-if="checkPermission(['ADMIN'])" :loading="downloadLoading" size="mini" class="filter-item" type="primary" icon="el-icon-download" @click="download">导出</el-button>
</div>
</template>
<script>
import checkPermission from '@/utils/permission' // 权限判断函数
import { parseTime } from '@/utils/index'
import eForm from './form'
// 查询条件
export default {
......@@ -38,33 +34,9 @@ export default {
}
},
methods: {
checkPermission,
toQuery() {
this.$parent.page = 0
this.$parent.init()
},
download() {
this.downloadLoading = true
import('@/vendor/Export2Excel').then(excel => {
const tHeader = ['ID', '名称', '描述', '创建日期']
const filterVal = ['id', 'name', 'remark', 'createTime']
const data = this.formatJson(filterVal, this.$parent.data)
excel.export_json_to_excel({
header: tHeader,
data,
filename: 'table-list'
})
this.downloadLoading = false
})
},
formatJson(filterVal, jsonData) {
return jsonData.map(v => filterVal.map(j => {
if (j === 'createTime') {
return parseTime(v[j])
} else {
return v[j]
}
}))
}
}
}
......
......@@ -19,15 +19,15 @@
<span>{{ parseTime(scope.row.updateTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" width="180px" align="center">
<el-table-column v-if="checkPermission(['ADMIN','JOB_ALL','JOB_EDIT','JOB_DELETE'])" label="操作" width="180px" align="center">
<template slot-scope="scope">
<edit v-if="checkPermission(['ADMIN','JOB_ALL','JOB_EDIT'])" :data="scope.row" :sup_this="sup_this"/>
<el-button v-if="checkPermission(['ADMIN','JOB_ALL','JOB_EDIT'])" style="margin-left: -2px" type="text" size="mini" @click="execute(scope.row.id)">执行</el-button>
<el-button v-if="checkPermission(['ADMIN','JOB_ALL','JOB_EDIT'])" style="margin-left: 3px" type="text" size="mini" @click="updateStatus(scope.row.id,scope.row.isPause ? '恢复' : '暂停')">
<edit v-permission="['ADMIN','JOB_ALL','JOB_EDIT']" :data="scope.row" :sup_this="sup_this"/>
<el-button v-permission="['ADMIN','JOB_ALL','JOB_EDIT']" style="margin-left: -2px" type="text" size="mini" @click="execute(scope.row.id)">执行</el-button>
<el-button v-permission="['ADMIN','JOB_ALL','JOB_EDIT']" style="margin-left: 3px" type="text" size="mini" @click="updateStatus(scope.row.id,scope.row.isPause ? '恢复' : '暂停')">
{{ scope.row.isPause ? '恢复' : '暂停' }}
</el-button>
<el-popover
v-if="checkPermission(['ADMIN','JOB_ALL','JOB_DELETE'])"
v-permission="['ADMIN','JOB_ALL','JOB_DELETE']"
:ref="scope.row.id"
placement="top"
width="200">
......
......@@ -2,11 +2,11 @@
<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="primary" 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;">
<el-button
v-if="checkPermission(['ADMIN','JOB_ALL','JOB_CREATE'])"
v-permission="['ADMIN','JOB_ALL','JOB_CREATE']"
class="filter-item"
size="mini"
type="primary"
......@@ -28,7 +28,6 @@
</template>
<script>
import checkPermission from '@/utils/permission' // 权限判断函数
import eForm from './form'
import Log from './log'
// 查询条件
......@@ -46,7 +45,6 @@ export default {
}
},
methods: {
checkPermission,
toQuery() {
this.$parent.page = 0
this.$parent.init()
......
......@@ -6,7 +6,7 @@
<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="primary" 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>
<!--表格渲染-->
<el-table v-loading="loading" :data="data" size="small" style="width: 100%;margin-top: -10px;">
......
<template>
<div class="app-container">
<el-row :gutter="20">
<el-col :xs="24" :sm="24" :md="4" :lg="4" :xl="4">
<el-col :xs="7" :sm="6" :md="4" :lg="4" :xl="4">
<div class="head-container">
<el-input v-model="deptName" clearable placeholder="输入部门名称搜索" prefix-icon="el-icon-search" style="width: 100%;" class="filter-item" @input="getDeptDatas"/>
</div>
<el-tree :data="depts" :props="defaultProps" :expand-on-click-node="false" default-expand-all @node-click="handleNodeClick"/>
</el-col>
<el-col :xs="24" :sm="24" :md="20" :lg="20" :xl="20">
<el-col :xs="17" :sm="18" :md="20" :lg="20" :xl="20">
<eHeader :query="query" :sup_this="sup_this" :dicts="dicts"/>
<!--表格渲染-->
<el-table v-loading="loading" :data="data" size="small" style="width: 100%;">
......@@ -31,11 +31,11 @@
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" width="140" align="center">
<el-table-column v-if="checkPermission(['ADMIN','USER_ALL','USER_EDIT','USER_DELETE'])" label="操作" width="125" align="center">
<template slot-scope="scope">
<edit v-if="checkPermission(['ADMIN','USER_ALL','USER_EDIT'])" :dicts="dicts" :data="scope.row" :sup_this="sup_this"/>
<edit v-permission="['ADMIN','USER_ALL','USER_EDIT']" :dicts="dicts" :data="scope.row" :sup_this="sup_this"/>
<el-popover
v-if="checkPermission(['ADMIN','USER_ALL','USER_DELETE'])"
v-permission="['ADMIN','USER_ALL','USER_DELETE']"
:ref="scope.row.id"
placement="top"
width="180">
......@@ -44,7 +44,7 @@
<el-button size="mini" type="text" @click="$refs[scope.row.id].doClose()">取消</el-button>
<el-button :loading="delLoading" type="primary" size="mini" @click="subDelete(scope.row.id)">确定</el-button>
</div>
<el-button slot="reference" type="danger" size="mini">删除</el-button>
<el-button slot="reference" type="danger" icon="el-icon-delete" size="mini"/>
</el-popover>
</template>
</el-table-column>
......
<template>
<div>
<el-button size="mini" type="success" @click="to">编辑</el-button>
<el-button size="mini" type="primary" icon="el-icon-edit" @click="to"/>
<eForm ref="form" :sup_this="sup_this" :is-add="false" :dicts="dicts"/>
</div>
</template>
......@@ -28,6 +28,7 @@ export default {
const _this = this.$refs.form
_this.getRoles()
_this.getDepts()
_this.getRoleLevel()
_this.roleIds = []
_this.form = { id: this.data.id, username: this.data.username, phone: this.data.phone, email: this.data.email, enabled: this.data.enabled.toString(), roles: [], dept: { id: this.data.dept.id }, job: { id: this.data.job.id }}
this.data.roles.forEach(function(data, index) {
......
......@@ -29,6 +29,7 @@
<el-select v-model="roleIds" style="width: 450px;" multiple placeholder="请选择">
<el-option
v-for="(item, index) in roles"
:disabled="level !== 1 && item.level <= level"
:key="item.name + index"
:label="item.name"
:value="item.id"/>
......@@ -46,7 +47,7 @@
import { add, edit } from '@/api/user'
import { getDepts } from '@/api/dept'
import { getAll } from '@/api/role'
import { getAll, getLevel } from '@/api/role'
import { getAllJob } from '@/api/job'
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
......@@ -78,7 +79,7 @@ export default {
}
return {
dialog: false, loading: false, form: { username: '', email: '', enabled: 'false', roles: [], job: { id: '' }, dept: { id: '' }, phone: null },
roleIds: [], roles: [], depts: [], deptId: null, jobId: null, jobs: [], style: 'width: 184px',
roleIds: [], roles: [], depts: [], deptId: null, jobId: null, jobs: [], style: 'width: 184px', level: 3,
rules: {
username: [
{ required: true, message: '请输入用户名', trigger: 'blur' },
......@@ -210,6 +211,14 @@ export default {
},
selectFun(node, instanceId) {
this.getJobs(node.id)
},
getRoleLevel() {
getLevel().then(res => {
console.log(res)
this.level = res.level
}).catch(err => {
console.log(err.response.data.message)
})
}
}
}
......
......@@ -8,11 +8,11 @@
<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>
<el-button class="filter-item" size="mini" type="primary" 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;">
<el-button
v-if="checkPermission(['ADMIN','USER_ALL','USER_CREATE'])"
v-permission="['ADMIN','USER_ALL','USER_CREATE']"
class="filter-item"
size="mini"
type="primary"
......@@ -22,18 +22,17 @@
</div>
<!-- 导出 -->
<el-button
v-if="checkPermission(['ADMIN'])"
v-permission="['ADMIN']"
:loading="downloadLoading"
size="mini"
class="filter-item"
type="primary"
type="warning"
icon="el-icon-download"
@click="download">导出</el-button>
</div>
</template>
<script>
import checkPermission from '@/utils/permission' // 权限判断函数
import { parseTime } from '@/utils/index'
import eForm from './form'
// 查询条件
......@@ -67,10 +66,10 @@ export default {
}
},
methods: {
checkPermission,
add() {
this.$refs.form.getDepts()
this.$refs.form.getRoles()
this.$refs.form.getRoleLevel()
this.$refs.form.dialog = true
},
// 去查询
......
......@@ -24,7 +24,9 @@
<el-input v-model="form.notifyUrl" style="width: 40%;"/>
<span style="color: #C0C0C0;margin-left: 10px;">支付结果异步通知地址</span>
</el-form-item>
<el-button :loading="loading" style="margin-left:5%;" size="medium" type="success" @click="doSubmit">保存配置</el-button>
<el-form-item label="">
<el-button :loading="loading" size="medium" type="primary" @click="doSubmit">保存配置</el-button>
</el-form-item>
</el-form>
</template>
......
......@@ -11,7 +11,9 @@
<el-form-item label="商品描述" prop="body">
<el-input v-model="form.body" style="width: 35%" rows="8" type="textarea"/>
</el-form-item>
<el-button :loading="loading" style="margin-left:2%;" size="medium" type="success" @click="doSubmit">去支付</el-button>
<el-form-item label="">
<el-button :loading="loading" size="medium" type="primary" @click="doSubmit">去支付</el-button>
</el-form-item>
</el-form>
</div>
</template>
......
......@@ -20,7 +20,9 @@
<el-input v-model="form.port" style="width: 40%;"/>
<span style="color: #C0C0C0;margin-left: 10px;">SMTP port</span>
</el-form-item>
<el-button :loading="loading" style="margin-left:5%;" size="medium" type="success" @click="doSubmit">保存配置</el-button>
<el-form-item label="">
<el-button :loading="loading" size="medium" type="primary" @click="doSubmit">保存配置</el-button>
</el-form-item>
</el-form>
</template>
......
......@@ -13,7 +13,7 @@
<el-button style="margin-left:0px;" icon="el-icon-minus" @click.prevent="removeDomain(domain)"/>
</el-form-item>
<div ref="editor" class="editor"/>
<el-button :loading="loading" style="margin-left:2%;" size="medium" type="success" @click="doSubmit">发送邮件</el-button>
<el-button :loading="loading" style="margin-left:1.6%;" size="medium" type="primary" @click="doSubmit">发送邮件</el-button>
</el-form>
</div>
</template>
......
......@@ -2,10 +2,11 @@
<div class="app-container">
<eHeader :query="query"/>
<!--表格渲染-->
<el-table v-loading="loading" :data="data" size="small" style="width: 100%;">
<el-table v-loading="loading" ref="table" :data="data" size="small" style="width: 100%;">
<el-table-column type="selection" width="55"/>
<el-table-column prop="filename" label="文件名"/>
<el-table-column prop="username" label="上传者"/>
<el-table-column :show-overflow-tooltip="true" prop="url" label="缩略图">
<el-table-column ref="table" :show-overflow-tooltip="true" prop="url" label="缩略图">
<template slot-scope="scope">
<a :href="scope.row.url" style="color: #42b983" target="_blank"><img :src="scope.row.url" alt="点击打开" class="el-avatar"></a>
</template>
......@@ -18,10 +19,9 @@
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" width="100px" align="center">
<el-table-column v-if="checkPermission(['ADMIN','PICTURE_ALL','PICTURE_DELETE'])" label="操作" width="100px" align="center">
<template slot-scope="scope">
<el-popover
v-if="checkPermission(['ADMIN','PICTURE_ALL','PICTURE_DELETE'])"
:ref="scope.row.id"
placement="top"
width="180">
......@@ -30,7 +30,7 @@
<el-button size="mini" type="text" @click="$refs[scope.row.id].doClose()">取消</el-button>
<el-button :loading="delLoading" type="primary" size="mini" @click="subDelete(scope.row.id)">确定</el-button>
</div>
<el-button slot="reference" type="danger" size="mini">删除</el-button>
<el-button slot="reference" type="danger" icon="el-icon-delete" size="mini"/>
</el-popover>
</template>
</el-table-column>
......@@ -71,9 +71,10 @@ export default {
this.url = 'api/pictures'
const sort = 'id,desc'
const query = this.query
const type = query.type
const value = query.value
this.params = { page: this.page, size: this.size, sort: sort }
if (value) { this.params['filename'] = value }
if (type && value) { this.params[type] = value }
return true
},
subDelete(id) {
......
<template>
<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="primary" icon="el-icon-search" @click="toQuery">搜索</el-button>
<el-input v-model="query.value" clearable placeholder="输入关键字搜索" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
<el-select v-model="query.type" clearable placeholder="类型" class="filter-item" style="width: 130px">
<el-option v-for="item in queryTypeOptions" :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;margin: 0px 2px;">
<el-button
v-if="checkPermission(['ADMIN','PICTURE_ALL','PICTURE_UPLOAD'])"
v-permission="['ADMIN','PICTURE_ALL','PICTURE_UPLOAD']"
class="filter-item"
size="mini"
type="primary"
......@@ -14,12 +17,21 @@
@click="$refs.form.dialog = true">上传图片</el-button>
<eForm ref="form"/>
</div>
<el-button
v-permission="['ADMIN','PICTURE_ALL','PICTURE_DELETE']"
:loading="delLoading"
:disabled="$parent.data.length === 0 || $parent.$refs.table.selection.length === 0"
class="filter-item"
size="mini"
type="danger"
icon="el-icon-delete"
@click="open">删除</el-button>
</div>
</template>
<script>
import checkPermission from '@/utils/permission' // 权限判断函数
import eForm from './form'
import { delAll } from '@/api/picture'
// 查询条件
export default {
components: { eForm },
......@@ -29,11 +41,49 @@ export default {
required: true
}
},
data() {
return {
downloadLoading: false,
delLoading: false,
queryTypeOptions: [
{ key: 'filename', display_name: '文件名' },
{ key: 'username', display_name: '用户名' }
]
}
},
methods: {
checkPermission,
toQuery() {
this.$parent.page = 0
this.$parent.init()
},
doDelete() {
this.delLoading = true
const data = this.$parent.$refs.table.selection
const ids = []
for (let i = 0; i < data.length; i++) {
ids.push(data[i].id)
}
delAll(ids).then(res => {
this.delLoading = false
this.$parent.init()
this.$notify({
title: '删除成功',
type: 'success',
duration: 2500
})
}).catch(err => {
this.delLoading = false
console.log(err.response.data.message)
})
},
open() {
this.$confirm('你确定删除选中的数据吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.doDelete()
})
}
}
}
......
......@@ -31,7 +31,7 @@
<el-radio v-model="form.type" label="私有" >私有</el-radio>
<span style="color: #C0C0C0;margin-left: 10px;">公开和私有仅对 Bucket 的读文件生效,修改、删除、写入等对 Bucket 的操作均需要拥有者的授权才能进行操作</span>
</el-form-item>
<el-button :loading="loading" style="margin-left:5%;" size="medium" type="success" @click="doSubmit">保存配置</el-button>
<el-button :loading="loading" style="margin-left:5%;" size="medium" type="primary" @click="doSubmit">保存配置</el-button>
</el-form>
</template>
......
......@@ -2,7 +2,8 @@
<div class="app-container">
<eHeader :query="query"/>
<!--表格渲染-->
<el-table v-loading="loading" :data="data" size="small" style="width: 100%;">
<el-table v-loading="loading" ref="table" :data="data" size="small" style="width: 100%;">
<el-table-column type="selection" width="55"/>
<el-table-column :show-overflow-tooltip="true" label="文件名">
<template slot-scope="scope">
<span>{{ scope.row.key }}</span>
......@@ -21,14 +22,16 @@
<span>{{ parseTime(scope.row.updateTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" width="160px" align="center">
<el-table-column v-if="checkPermission(['ADMIN','PICTURE_ALL','PICTURE_DELETE'])" label="操作" width="130px" align="center">
<template slot-scope="scope">
<el-button
:loading="downloadLoading"
size="mini"
@click="download(scope.row.id)">下载</el-button>
type="primary"
icon="el-icon-download"
@click="download(scope.row.id)"/>
<el-popover
v-if="checkPermission(['ADMIN','PICTURE_ALL','PICTURE_DELETE'])"
v-permission="['ADMIN','PICTURE_ALL','PICTURE_DELETE']"
:ref="scope.row.id"
placement="top"
width="180">
......@@ -37,7 +40,7 @@
<el-button size="mini" type="text" @click="$refs[scope.row.id].doClose()">取消</el-button>
<el-button :loading="delLoading" type="primary" size="mini" @click="subDelete(scope.row.id)">确定</el-button>
</div>
<el-button slot="reference" type="danger" size="mini">删除</el-button>
<el-button slot="reference" type="danger" icon="el-icon-delete" size="mini"/>
</el-popover>
</template>
</el-table-column>
......
......@@ -2,7 +2,7 @@
<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="primary" 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;">
<el-button
......@@ -14,13 +14,24 @@
<eForm ref="form"/>
</div>
<!-- 同步 -->
<el-button :icon="icon" class="filter-item" size="mini" type="primary" @click="synchronize">{{ buttonName }}</el-button>
<el-button :icon="icon" class="filter-item" size="mini" type="warning" @click="synchronize">{{ buttonName }}</el-button>
<div style="display: inline-block;margin: 0px 2px;">
<el-button
v-permission="['ADMIN','PICTURE_ALL','PICTURE_DELETE']"
:loading="delLoading"
:disabled="$parent.data.length === 0 || $parent.$refs.table.selection.length === 0"
class="filter-item"
size="mini"
type="danger"
icon="el-icon-delete"
@click="open">删除</el-button>
</div>
</div>
</template>
<script>
import eForm from './form'
import { sync } from '@/api/qiniu'
import { sync, delAll } from '@/api/qiniu'
// 查询条件
export default {
components: { eForm },
......@@ -33,7 +44,8 @@ export default {
data() {
return {
icon: 'el-icon-refresh',
buttonName: '同步数据'
buttonName: '同步数据',
delLoading: false
}
},
methods: {
......@@ -59,6 +71,35 @@ export default {
this.buttonName = '同步数据'
console.log(err.response.data.message)
})
},
doDelete() {
this.delLoading = true
const data = this.$parent.$refs.table.selection
const ids = []
for (let i = 0; i < data.length; i++) {
ids.push(data[i].id)
}
delAll(ids).then(res => {
this.delLoading = false
this.$parent.init()
this.$notify({
title: '删除成功',
type: 'success',
duration: 2500
})
}).catch(err => {
this.delLoading = false
console.log(err.response.data.message)
})
},
open() {
this.$confirm('你确定删除选中的数据吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.doDelete()
})
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment