opt: 日志管理,用户,角色,系统管理实现国际化
This commit is contained in:
@@ -3,12 +3,12 @@
|
||||
<div class="head-container">
|
||||
<!--工具栏-->
|
||||
<el-form :inline="true" class="demo-form-inline" label-suffix=":" label-width="90px">
|
||||
<el-form-item label="标签">
|
||||
<el-form-item :label="$t('es_log.table.label')">
|
||||
<el-select
|
||||
v-model="system"
|
||||
clearable
|
||||
style="width: 100px; height: 35px;top: -5px;"
|
||||
placeholder="所属标签"
|
||||
:placeholder="$t('es_log.table.Belonging_tags')"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in systemOptions"
|
||||
@@ -18,12 +18,12 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="级别">
|
||||
<el-form-item :label="$t('es_log.table.level')">
|
||||
<el-select
|
||||
v-model="logLevelValue"
|
||||
clearable
|
||||
style="width: 100px; height: 35px;top: -5px;"
|
||||
placeholder="日志级别"
|
||||
:placeholder="$t('es_log.table.log_level')"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in labelsOptions"
|
||||
@@ -33,32 +33,32 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="接口">
|
||||
<el-form-item :label="$t('es_log.table.api')">
|
||||
<el-input
|
||||
v-model="requestMethod"
|
||||
size="mini"
|
||||
placeholder="请输入接口"
|
||||
:placeholder="$t('es_log.table.input_api')"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="关键字">
|
||||
<el-form-item :label="$t('es_log.table.keywords')">
|
||||
<el-input
|
||||
v-model="message"
|
||||
size="mini"
|
||||
placeholder="请输入内容"
|
||||
:placeholder="$t('es_log.table.content')"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="链路追踪">
|
||||
<el-form-item :label="$t('es_log.table.tracking')">
|
||||
<el-input
|
||||
v-model="traceId"
|
||||
size="mini"
|
||||
placeholder="请输入链路id"
|
||||
:placeholder="$t('es_log.table.table1')"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="SQL日志" prop="filterSql">
|
||||
<el-form-item :label="$t('es_log.table.table2')" prop="filterSql">
|
||||
<el-switch
|
||||
v-model="filterSql"
|
||||
active-color="#F56C6C"
|
||||
@@ -67,7 +67,7 @@
|
||||
inactive-valu="0"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="HTTP日志" prop="isRequest">
|
||||
<el-form-item :label="$t('es_log.table.table3')" prop="isRequest">
|
||||
<el-switch
|
||||
v-model="isRequest"
|
||||
active-color="#409EFF"
|
||||
@@ -77,22 +77,22 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item v-show="!showOptions" label="时间范围">
|
||||
<el-form-item v-show="!showOptions" :label="$t('es_log.table.table4')">
|
||||
<el-date-picker
|
||||
v-model="timeRange"
|
||||
size="mini"
|
||||
clearable
|
||||
type="datetimerange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
:start-placeholder="$t('es_log.table.table5')"
|
||||
:end-placeholder="$t('es_log.table.table6')"
|
||||
align="right"
|
||||
@change="queryData"
|
||||
@blur="queryData"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-show="showOptions" label="时间段">
|
||||
<el-select v-model="timeZoneValue" filterable placeholder="请选择标签" size="mini" @change="queryData">
|
||||
<el-form-item v-show="showOptions" :label="$t('es_log.table.table7')">
|
||||
<el-select v-model="timeZoneValue" filterable :placeholder="$t('es_log.table.table8')" size="mini" @change="queryData">
|
||||
<el-option
|
||||
v-for="item in timeZoneOptions"
|
||||
:key="item.index"
|
||||
@@ -102,11 +102,11 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-tooltip class="item" effect="dark" content="切换查询条件" placement="top">
|
||||
<el-tooltip class="item" effect="dark" :content="$t('es_log.table.table9')" placement="top">
|
||||
<span class="el-icon-sort" @click="changeShow" />
|
||||
</el-tooltip>
|
||||
</el-form-item>
|
||||
<el-form-item label="显示条数">
|
||||
<el-form-item :label="$t('es_log.table.table10')">
|
||||
<el-input-number
|
||||
v-model="size"
|
||||
size="mini"
|
||||
@@ -116,7 +116,7 @@
|
||||
:step="10"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="当前页">
|
||||
<el-form-item :label="$t('es_log.table.table11')">
|
||||
<el-input-number
|
||||
v-model="page"
|
||||
size="mini"
|
||||
@@ -126,7 +126,7 @@
|
||||
:step="1"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="总条数">
|
||||
<el-form-item :label="$t('es_log.table.table12')">
|
||||
<el-input
|
||||
v-model="total"
|
||||
size="small"
|
||||
@@ -136,14 +136,14 @@
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-dropdown split-button type="primary" size="mini" @click="queryData">
|
||||
查询
|
||||
{{ $t('es_log.table.table13') }}
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item v-for="(item, index) in runStatuOptions" :key="index" @click.native="startInterval(item)">{{ item.label }}</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="clearLogs">清空日志</el-button>
|
||||
<el-button @click="clearLogs">{{ $t('es_log.table.table25') }}</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
@@ -244,37 +244,37 @@ export default {
|
||||
value: 1800000
|
||||
}],
|
||||
timeZoneOptions: [{
|
||||
label: '最近5分钟',
|
||||
label: this.$t('es_log.table.table14'),
|
||||
value: 300 * 1000
|
||||
}, {
|
||||
label: '最近15分钟',
|
||||
label: this.$t('es_log.table.table15'),
|
||||
value: 900 * 1000
|
||||
}, {
|
||||
label: '最近30分钟',
|
||||
label: this.$t('es_log.table.table16'),
|
||||
value: 1800 * 1000
|
||||
}, {
|
||||
label: '最近1小时',
|
||||
label: this.$t('es_log.table.table17'),
|
||||
value: 3600 * 1000
|
||||
}, {
|
||||
label: '最近3小时',
|
||||
label: this.$t('es_log.table.table18'),
|
||||
value: 3600 * 1000 * 3
|
||||
}, {
|
||||
label: '最近6小时',
|
||||
label: this.$t('es_log.table.table19'),
|
||||
value: 3600 * 1000 * 6
|
||||
}, {
|
||||
label: '最近12小时',
|
||||
label: this.$t('es_log.table.table20'),
|
||||
value: 3600 * 1000 * 12
|
||||
}, {
|
||||
label: '最近24小时',
|
||||
label: this.$t('es_log.table.table21'),
|
||||
value: 3600 * 1000 * 24
|
||||
}, {
|
||||
label: '最近2天',
|
||||
label: this.$t('es_log.table.table22'),
|
||||
value: 3600 * 1000 * 24 * 2
|
||||
}, {
|
||||
label: '最近7天',
|
||||
label: this.$t('es_log.table.table23'),
|
||||
value: 3600 * 1000 * 24 * 7
|
||||
}, {
|
||||
label: '最近15天',
|
||||
label: this.$t('es_log.table.table24'),
|
||||
value: 3600 * 1000 * 24 * 15
|
||||
}],
|
||||
timeZoneValue: '',
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
v-model="query.name"
|
||||
clearable
|
||||
size="mini"
|
||||
placeholder="输入部门名称搜索"
|
||||
:placeholder="$t('department.table_title.enter_department_name')"
|
||||
style="width: 200px;"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
@@ -17,7 +17,7 @@
|
||||
v-model="query.is_used"
|
||||
clearable
|
||||
size="mini"
|
||||
placeholder="状态"
|
||||
:placeholder="$t('department.table_value.State')"
|
||||
class="filter-item"
|
||||
style="width: 90px"
|
||||
@change="crud.toQuery"
|
||||
@@ -37,13 +37,13 @@
|
||||
width="500px"
|
||||
>
|
||||
<el-form ref="form" inline :model="form" :rules="rules" size="mini" label-width="80px">
|
||||
<el-form-item label="部门编码" prop="code">
|
||||
<el-form-item :label="$t('department.other.Department_code')" prop="code">
|
||||
<el-input v-model="form.code" :disabled="true" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="部门名称" prop="name">
|
||||
<el-form-item :label="$t('department.table_title.Department_name')" prop="name" :min-width="flexWidth('code',crud.data,$t('department.other.Department_code'))">
|
||||
<el-input v-model="form.name" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="部门排序" prop="dept_sort">
|
||||
<el-form-item :label="$t('department.other.Department_sort')" prop="dept_sort" :min-width="flexWidth('code',crud.data,$t('department.other.Department_code'))">
|
||||
<el-input-number
|
||||
v-model.number="form.dept_sort"
|
||||
:min="0"
|
||||
@@ -52,16 +52,18 @@
|
||||
style="width: 370px;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="外部标识" prop="extId">
|
||||
<el-form-item :label="$t('department.other.External_identification')" prop="ext_id" :min-width="flexWidth('code',crud.data,$t('department.other.Department_code'))">
|
||||
<el-input v-model="form.ext_id" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="顶级部门">
|
||||
<el-form-item :label="$t('department.other.Top_departments')" :min-width="flexWidth('code',crud.data,$t('department.other.Department_code'))">
|
||||
<el-radio-group v-model="form.isTop" style="width: 140px">
|
||||
<el-radio label="1">是</el-radio>
|
||||
<el-radio label="0">否</el-radio>
|
||||
<el-row>
|
||||
<el-radio label="1">{{ $t('auto.common.true') }}</el-radio>
|
||||
<el-radio label="0">{{ $t('auto.common.false') }}</el-radio>
|
||||
</el-row>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态" prop="isUesd">
|
||||
<el-form-item :label="$t('department.table_value.State')" prop="is_used" :min-width="flexWidth('code',crud.data,$t('department.other.Department_code'))">
|
||||
<el-switch
|
||||
v-model="form.is_used"
|
||||
active-color="#409EFF"
|
||||
@@ -70,7 +72,7 @@
|
||||
inactive-valu="false"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.isTop === '0'" style="margin-bottom: 0;" label="上级部门" prop="pid">
|
||||
<el-form-item v-if="form.isTop === '0'" style="margin-bottom: 0;" :label="$t('department.other.Top_departments')" prop="pid" :min-width="flexWidth('code',crud.data,$t('department.other.Department_code'))">
|
||||
<treeselect
|
||||
v-model="form.pid"
|
||||
:load-options="loadDepts"
|
||||
@@ -82,8 +84,8 @@
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
<el-button type="text" @click="crud.cancelCU">{{ $t('task.select.Cancel') }}</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">{{ $t('task.select.Confirm') }}</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染 :load="getDeptDatas" 点击事件 row-key需要指定唯一的数据id-->
|
||||
@@ -101,23 +103,23 @@
|
||||
>
|
||||
<el-table-column :selectable="checkboxT" type="selection" width="55" />
|
||||
<!-- <el-table-column label="编码" prop="code" />-->
|
||||
<el-table-column label="名称" prop="name" />
|
||||
<el-table-column label="排序" prop="dept_sort" />
|
||||
<el-table-column label="状态" align="center" prop="is_used">
|
||||
<el-table-column :label="$t('department.table_value.Name')" prop="name" :min-width="flexWidth('name',crud.data,$t('department.table_value.Name'))" />
|
||||
<el-table-column :label="$t('department.table_value.Sort')" prop="dept_sort" :min-width="flexWidth('dept_sort',crud.data,$t('department.table_value.Sort'))" />
|
||||
<el-table-column :label="$t('department.table_value.State')" align="center" prop="is_used" :min-width="flexWidth('is_used',crud.data,$t('department.table_value.State'))">
|
||||
<template slot-scope="scope">
|
||||
<el-switch
|
||||
v-model="scope.row.is_used"
|
||||
:disabled="scope.row.id === 1"
|
||||
active-color="#409EFF"
|
||||
inactive-color="#F56C6C"
|
||||
@change="changeEnabled(scope.row, scope.row.is_used,)"
|
||||
@change="changeEnabled(scope.row, scope.row.is_used)"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="create_time" label="创建日期" />
|
||||
<el-table-column prop="create_time" :label="$t('department.table_value.CreateDate')" :min-width="flexWidth('create_time',crud.data,$t('department.table_value.CreateDate'))" />
|
||||
<el-table-column
|
||||
v-permission="['admin','dept:edit','dept:del']"
|
||||
label="操作"
|
||||
:label="$t('department.table_value.Operate')"
|
||||
width="130px"
|
||||
align="center"
|
||||
fixed="right"
|
||||
@@ -127,7 +129,7 @@
|
||||
:data="scope.row"
|
||||
:permission="permission"
|
||||
:disabled-dle="scope.row.id === 1"
|
||||
msg="确定删除吗,如果存在下级节点则一并删除,此操作不能撤销!"
|
||||
:msg="$t('menu.msg.delete_msg')"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -143,6 +145,7 @@ import CRUD, { crud, form, header, presenter } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import i18n from '@/i18n'
|
||||
|
||||
const defaultForm = {
|
||||
code: null,
|
||||
@@ -158,7 +161,7 @@ export default {
|
||||
name: 'Dept',
|
||||
components: { Treeselect, crudOperation, rrOperation, udOperation },
|
||||
cruds() {
|
||||
return CRUD({ title: '部门', idField: 'dept_id', url: 'api/dept/vo', crudMethod: { ...crudDept }})
|
||||
return CRUD({ title: i18n.t('department.table_title.Department'), idField: 'dept_id', url: 'api/dept/vo', crudMethod: { ...crudDept }})
|
||||
},
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
// 设置数据字典
|
||||
@@ -265,7 +268,7 @@ export default {
|
||||
},
|
||||
// 改变状态
|
||||
changeEnabled(data, val) {
|
||||
const satus = this.enabledTypeOptions.find(item => { return item.key == data.is_used })
|
||||
const satus = this.enabledTypeOptions.find(item => { return item.key === data.is_used })
|
||||
|
||||
this.$confirm('此操作将 "' + satus.display_name + '" ' + data.name + '部门, 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
v-model="query.blurry"
|
||||
clearable
|
||||
size="mini"
|
||||
placeholder="模糊搜索"
|
||||
:placeholder="$t('menu.placeholder.fuzzy_search')"
|
||||
style="width: 200px;margin-bottom: 10px"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="queryBlurry"
|
||||
@@ -16,11 +16,12 @@
|
||||
<el-select
|
||||
v-model="query.systemType"
|
||||
style="width: 100px; height: 35px;top: -5px;"
|
||||
placeholder="所属系统"
|
||||
:placeholder="$t('menu.placeholder.owning_system')"
|
||||
@change="changetype"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.system_type"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
@@ -39,15 +40,15 @@
|
||||
width="650px"
|
||||
>
|
||||
<el-form ref="form" :inline="true" :model="form" :rules="rules" size="mini" label-width="80px">
|
||||
<el-form-item label="菜单类型" prop="type">
|
||||
<el-form-item :label="$t('menu.dialog.menu_type')" prop="type">
|
||||
<el-radio-group v-model="form.type" size="mini">
|
||||
<el-radio-button label="1">系统</el-radio-button>
|
||||
<el-radio-button label="2">目录</el-radio-button>
|
||||
<el-radio-button label="3">菜单</el-radio-button>
|
||||
<el-radio-button label="4">按钮</el-radio-button>
|
||||
<el-radio-button label="1">{{ $t('menu.dialog.system') }}</el-radio-button>
|
||||
<el-radio-button label="2">{{ $t('menu.dialog.catalogue') }}</el-radio-button>
|
||||
<el-radio-button label="3">{{ $t('menu.dialog.menu') }}</el-radio-button>
|
||||
<el-radio-button label="4">{{ $t('menu.dialog.button') }}</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item v-show="form.type.toString() !== '1' && form.type.toString() !== '4' " label="菜单图标" prop="icon">
|
||||
<el-form-item v-show="form.type.toString() !== '1' && form.type.toString() !== '4' " :label="$t('menu.dialog.menu_icon')" prop="icon">
|
||||
<el-popover
|
||||
placement="bottom-start"
|
||||
width="450"
|
||||
@@ -55,7 +56,7 @@
|
||||
@show="$refs['iconSelect'].reset()"
|
||||
>
|
||||
<IconSelect ref="iconSelect" @selected="selected" />
|
||||
<el-input slot="reference" v-model="form.icon" style="width: 450px;" placeholder="点击选择图标" readonly>
|
||||
<el-input slot="reference" v-model="form.icon" style="width: 450px;" :placeholder="$t('menu.placeholder.choose_icon')" readonly>
|
||||
<svg-icon
|
||||
v-if="form.icon"
|
||||
slot="prefix"
|
||||
@@ -67,41 +68,62 @@
|
||||
</el-input>
|
||||
</el-popover>
|
||||
</el-form-item>
|
||||
<el-form-item v-show="form.type.toString() !== '2' && form.type.toString() !== '1'" label="外链菜单" prop="iframe">
|
||||
<el-form-item v-show="form.type.toString() !== '2' && form.type.toString() !== '1'" :label="$t('menu.dialog.menu_chain')" prop="iframe">
|
||||
<el-radio-group v-model="form.iframe" size="mini">
|
||||
<el-radio-button label="true">是</el-radio-button>
|
||||
<el-radio-button label="false">否</el-radio-button>
|
||||
<el-radio-button label="true">{{ $t('auto.common.true') }}</el-radio-button>
|
||||
<el-radio-button label="false">{{ $t('auto.common.false') }}</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item v-show="form.type.toString() === '3'" label="菜单缓存" prop="cache">
|
||||
<el-form-item v-show="form.type.toString() === '2'" :label="$t('menu.dialog.menu_cache')" prop="cache">
|
||||
<el-radio-group v-model="form.cache" size="mini">
|
||||
<el-radio-button label="true">是</el-radio-button>
|
||||
<el-radio-button label="false">否</el-radio-button>
|
||||
<el-radio-button label="true">{{ $t('auto.common.true') }}</el-radio-button>
|
||||
<el-radio-button label="false">{{ $t('auto.common.false') }}</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item v-show="form.type.toString() !== '2' && form.type.toString() !== '1' " label="菜单隐藏" prop="hidden">
|
||||
<el-form-item v-show="form.type.toString() !== '2' && form.type.toString() !== '1' " :label="$t('menu.dialog.menu_visible')" prop="hidden">
|
||||
<el-radio-group v-model="form.hidden" size="mini">
|
||||
<el-radio-button label="true">是</el-radio-button>
|
||||
<el-radio-button label="false">否</el-radio-button>
|
||||
<el-radio-button label="false">{{ $t('auto.common.true') }}</el-radio-button>
|
||||
<el-radio-button label="true">{{ $t('auto.common.false') }}</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.type.toString() !== '2'" label="菜单标题" prop="title">
|
||||
<el-form-item v-if="form.type.toString() !== '2'" :label="$t('menu.dialog.default_title')" prop="title">
|
||||
<el-input
|
||||
v-model="form.title"
|
||||
:style=" form.type.toString() === '0' ? 'width: 450px' : 'width: 190px'"
|
||||
placeholder="菜单标题"
|
||||
:placeholder="$t('menu.dialog.default_title')"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.type.toString() === '2'" label="目录名称" prop="title">
|
||||
<el-input v-model="form.title" placeholder="目录名称" style="width: 190px;" />
|
||||
<el-form-item v-if="form.type.toString() !== '2'" :label="$t('menu.dialog.zh_title')" prop="zh_title">
|
||||
<el-input
|
||||
v-model="form.zh_title"
|
||||
:style=" form.type.toString() === '0' ? 'width: 450px' : 'width: 190px'"
|
||||
:placeholder="$t('menu.dialog.zh_title')"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-show="form.type.toString() !== '1' " label="权限标识" prop="permission">
|
||||
<el-input v-model="form.permission" :disabled="form.iframe" placeholder="权限标识" style="width: 190px;" />
|
||||
<el-form-item v-if="form.type.toString() !== '2'" :label="$t('menu.dialog.en_title')" prop="en_title">
|
||||
<el-input
|
||||
v-model="form.en_title"
|
||||
:style=" form.type.toString() === '0' ? 'width: 450px' : 'width: 190px'"
|
||||
:placeholder="$t('menu.dialog.en_title')"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.type.toString() !== '1' && form.type.toString() !== '2'" label="路由地址" prop="path">
|
||||
<el-input v-model="form.path" placeholder="路由地址" style="width: 190px;" />
|
||||
<el-form-item v-if="form.type.toString() !== '2'" :label="$t('menu.dialog.id_title')" prop="in_title">
|
||||
<el-input
|
||||
v-model="form.in_title"
|
||||
:style=" form.type.toString() === '0' ? 'width: 450px' : 'width: 190px'"
|
||||
:placeholder="$t('menu.dialog.id_title')"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="菜单排序" prop="menu_sort">
|
||||
<el-form-item v-if="form.type.toString() === '2'" :label="$t('menu.dialog.button_name')" prop="title">
|
||||
<el-input v-model="form.title" :placeholder="$t('menu.dialog.button_name')" style="width: 190px;" />
|
||||
</el-form-item>
|
||||
<el-form-item v-show="form.type.toString() !== '1' " :label="$t('menu.table_title.permission_ident')" prop="permission">
|
||||
<el-input v-model="form.permission" :disabled="form.iframe" :placeholder="$t('menu.table_title.permission_ident')" style="width: 190px;" />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.type.toString() !== '1' && form.type.toString() !== '2'" :label="$t('menu.dialog.router_path')" prop="path">
|
||||
<el-input v-model="form.path" :placeholder="$t('menu.dialog.router_path')" style="width: 190px;" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('menu.dialog.menu_sort')" prop="menu_sort">
|
||||
<el-input-number
|
||||
v-model.number="form.menu_sort"
|
||||
:min="0"
|
||||
@@ -110,13 +132,13 @@
|
||||
style="width: 190px;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-show="!form.iframe && form.type.toString() === '3' " label="组件名称" prop="componentName">
|
||||
<el-input v-model="form.componentName" style="width: 190px;" placeholder="匹配组件内Name字段" />
|
||||
<el-form-item v-show="!form.iframe && form.type.toString() === '3' " :label="$t('menu.dialog.component_name')" prop="component_name">
|
||||
<el-input v-model="form.component_name" style="width: 190px;" :placeholder="$t('menu.placeholder.component_tip')" />
|
||||
</el-form-item>
|
||||
<el-form-item v-show="!form.iframe && (form.type.toString() === '2' ||form.type.toString() === '3' ) " label="组件路径" prop="component">
|
||||
<el-input v-model="form.component" style="width: 190px;" placeholder="组件路径" />
|
||||
<el-form-item v-show="!form.iframe && (form.type.toString() === '2' ||form.type.toString() === '3' ) " :label="$t('menu.dialog.component_path')" prop="component">
|
||||
<el-input v-model="form.component" style="width: 190px;" :placeholder="$t('menu.dialog.component_path')" />
|
||||
</el-form-item>
|
||||
<el-form-item label="上级类目" prop="pid">
|
||||
<el-form-item :label="$t('menu.dialog.superior_class')" prop="pid">
|
||||
<!-- normalizer转换- loadMenus 点击扩展的时候会调用该方法-->
|
||||
<treeselect
|
||||
v-model="form.pid"
|
||||
@@ -124,13 +146,13 @@
|
||||
:load-options="loadMenus"
|
||||
:normalizer="normalizer"
|
||||
style="width: 450px;"
|
||||
placeholder="选择上级类目"
|
||||
:placeholder="$t('menu.placeholder.choose_superior_category')"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
<el-button type="text" @click="crud.cancelCU">{{ $t('auto.common.Cancel') }}</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">{{ $t('auto.common.Confirm') }}</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
@@ -149,46 +171,46 @@
|
||||
@selection-change="crud.selectionChangeHandler"
|
||||
>
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="菜单标题" prop="title" :min-width="100" />
|
||||
<el-table-column label="所属系统" prop="systemType" :min-width="flexWidth('systemType',crud.data,'所属系统')">
|
||||
<el-table-column :label="$t('menu.table_title.menu_title')" prop="title" :min-width="100" />
|
||||
<el-table-column :label="$t('menu.table_title.system')" prop="systemType" :min-width="flexWidth('systemType',crud.data,$t('menu.table_title.system'))">
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.system_type[scope.row.systemType] }} : {{ scope.row.systemType }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="icon" label="图标" align="center" :min-width="flexWidth('icon',crud.data,'图标')">
|
||||
<el-table-column prop="icon" :label="$t('menu.table_title.icon')" align="center" :min-width="flexWidth('icon',crud.data,$t('menu.table_title.icon'))">
|
||||
<template slot-scope="scope">
|
||||
<svg-icon :icon-class="scope.row.icon ? scope.row.icon : ''" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="menu_sort" align="center" label="排序" :min-width="flexWidth('menu_sort',crud.data,'排序')">
|
||||
<el-table-column prop="menu_sort" align="center" :label="$t('menu.table_title.sort')" :min-width="flexWidth('menu_sort',crud.data,$t('menu.table_title.sort'))">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.menu_sort }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="permission" label="权限标识" :min-width="flexWidth('permission',crud.data,'权限标识')" />
|
||||
<el-table-column prop="component" label="组件路径" min-width="120" />
|
||||
<el-table-column prop="iframe" label="外链" :formatter="crud.formatIsOrNot" :min-width="flexWidth('iframe',crud.data,'外链')">
|
||||
<el-table-column prop="permission" :label="$t('menu.table_title.permission_ident')" :min-width="flexWidth('permission',crud.data,$t('menu.table_title.permission_ident'))" />
|
||||
<el-table-column prop="component" :label="$t('menu.table_title.path')" min-width="120" />
|
||||
<el-table-column prop="iframe" :label="$t('menu.table_title.outside_chain')" :formatter="crud.formatIsOrNot" :min-width="flexWidth('iframe',crud.data,$t('menu.table_title.outside_chain'))">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.iframe">是</span>
|
||||
<span v-else>否</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="cache" label="缓存" :formatter="crud.formatIsOrNot" :min-width="flexWidth('cache',crud.data,'缓存')">
|
||||
<el-table-column prop="cache" :label="$t('menu.table_title.cache')" :formatter="crud.formatIsOrNot" :min-width="flexWidth('cache',crud.data,$t('menu.table_title.cache'))">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.cache">是</span>
|
||||
<span v-else>否</span>
|
||||
<span v-if="scope.row.cache">YES</span>
|
||||
<span v-else> NO</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="hidden" label="可见" :formatter="crud.formatIsOrNot" :min-width="flexWidth('hidden',crud.data,'可见')">
|
||||
<el-table-column prop="hidden" :label="$t('menu.table_title.visible')" :formatter="crud.formatIsOrNot" :min-width="flexWidth('hidden',crud.data,$t('menu.table_title.visible'))">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.hidden">否</span>
|
||||
<span v-else>是</span>
|
||||
<span v-if="scope.row.hidden">NO</span>
|
||||
<span v-else>YES</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="createTime" label="创建日期" :min-width="flexWidth('createTime',crud.data,'创建日期')" />
|
||||
<el-table-column prop="createTime" :label="$t('menu.table_title.create_time')" :min-width="flexWidth('createTime',crud.data,$t('menu.table_title.create_time'))" />
|
||||
<el-table-column
|
||||
v-permission="['admin','menu:edit','menu:del']"
|
||||
label="操作"
|
||||
:label="$t('auto.common.Operate')"
|
||||
width="130px"
|
||||
align="center"
|
||||
fixed="right"
|
||||
@@ -197,7 +219,7 @@
|
||||
<udOperation
|
||||
:data="scope.row"
|
||||
:permission="permission"
|
||||
msg="确定删除吗,如果存在下级节点则一并删除,此操作不能撤销!"
|
||||
:msg="$t('menu.msg.delete_msg')"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -216,6 +238,7 @@ import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import Dict from '../../../components/Dict/Dict'
|
||||
import i18n from '@/i18n'
|
||||
|
||||
// crud交由presenter持有
|
||||
const defaultForm = {
|
||||
@@ -240,7 +263,7 @@ export default {
|
||||
name: 'Menu',
|
||||
components: { Treeselect, IconSelect, crudOperation, rrOperation, udOperation },
|
||||
cruds() {
|
||||
return CRUD({ title: '菜单', idField: 'menu_id', url: 'api/sysMenu', crudMethod: { ...crudMenu }})
|
||||
return CRUD({ title: i18n.t('menu.title'), idField: 'menu_id', url: 'api/sysMenu', crudMethod: { ...crudMenu }})
|
||||
},
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
dicts: ['system_type'],
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
v-model="query.blurry"
|
||||
size="mini"
|
||||
clearable
|
||||
placeholder="输入名称"
|
||||
:placeholder="$t('role.table_title.input_name')"
|
||||
style="width: 200px;"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
@@ -27,16 +27,16 @@
|
||||
width="520px"
|
||||
>
|
||||
<el-form ref="form" :inline="true" :model="form" :rules="rules" size="mini" label-width="80px">
|
||||
<el-form-item label="角色名称" prop="name">
|
||||
<el-form-item :label="$t('role.table_value.Name')" prop="name">
|
||||
<el-input v-model="form.name" style="width: 380px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="description">
|
||||
<el-form-item :label="$t('role.table_value.Name')" prop="description">
|
||||
<el-input v-model="form.remark" style="width: 380px;" rows="2" type="textarea" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
<el-button type="text" @click="crud.cancelCU">{{ $t('task.select.Cancel') }}</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">{{ $t('task.select.Confirm') }}</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<el-row :gutter="15">
|
||||
@@ -44,7 +44,7 @@
|
||||
<el-col :span="12" style="margin-bottom: 10px">
|
||||
<el-card class="box-card" shadow="never">
|
||||
<div slot="header" class="clearfix">
|
||||
<span class="role-span">角色列表</span>
|
||||
<span class="role-span">{{ $t('role.table_value.roleList') }}</span>
|
||||
</div>
|
||||
<el-table
|
||||
ref="table"
|
||||
@@ -56,16 +56,16 @@
|
||||
@current-change="handleCurrentChange"
|
||||
>
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column prop="name" label="名称" min-width="100" show-overflow-tooltip />
|
||||
<el-table-column show-overflow-tooltip prop="remark" label="描述" />
|
||||
<el-table-column show-overflow-tooltip width="135px" prop="createTime" label="创建日期">
|
||||
<el-table-column prop="name" :label="$t('role.table_value.Name')" :min-width="flexWidth('name',crud.data,$t('role.table_value.Name'))" show-overflow-tooltip />
|
||||
<el-table-column show-overflow-tooltip prop="remark" :label="$t('role.table_value.Description')" :min-width="flexWidth('remark',crud.data,$t('role.table_value.Description'))" />
|
||||
<el-table-column show-overflow-tooltip :min-width="flexWidth('create_time',crud.data,$t('role.table_value.CreateDate'))" prop="create_time" :label="$t('role.table_value.CreateDate')">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||
<span>{{ parseTime(scope.row.create_time) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-permission="['admin','roles:edit','roles:del']"
|
||||
label="操作"
|
||||
:label="$t('role.table_value.Operate')"
|
||||
width="130px"
|
||||
align="center"
|
||||
fixed="right"
|
||||
@@ -87,7 +87,7 @@
|
||||
<el-card class="box-card" shadow="never">
|
||||
<div slot="header" class="clearfix">
|
||||
<el-tooltip class="item" effect="dark" content="选择指定角色分配菜单" placement="top">
|
||||
<span class="role-span">菜单分配</span>
|
||||
<span class="role-span">{{ $t('role.other.Menu_assignments') }}</span>
|
||||
</el-tooltip>
|
||||
<el-button
|
||||
v-permission="['admin','roles:edit']"
|
||||
@@ -98,7 +98,7 @@
|
||||
style="float: right; padding: 6px 10px"
|
||||
type="primary"
|
||||
@click="saveMenu"
|
||||
>保存
|
||||
>{{ $t('role.other.Save') }}
|
||||
</el-button>
|
||||
</div>
|
||||
|
||||
@@ -130,13 +130,14 @@ import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import i18n from '@/i18n'
|
||||
|
||||
const defaultForm = { role_id: null, name: null, remark: null }
|
||||
export default {
|
||||
name: 'Role',
|
||||
components: { pagination, crudOperation, rrOperation, udOperation, crudMenu },
|
||||
components: { pagination, crudOperation, rrOperation, udOperation },
|
||||
cruds() {
|
||||
return CRUD({ idField: 'role_id', title: '角色', url: 'api/sysRole', crudMethod: { ...crudRoles }})
|
||||
return CRUD({ idField: 'role_id', title: i18n.t('role.table_value.Role'), url: 'api/sysRole', crudMethod: { ...crudRoles }})
|
||||
},
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
data() {
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
v-model="deptName"
|
||||
clearable
|
||||
size="mini"
|
||||
placeholder="请输入部门名称"
|
||||
:placeholder="$t('user.table_title.enter_department_name')"
|
||||
prefix-icon="el-icon-search"
|
||||
class="filter-item"
|
||||
@input="getDeptDatas"
|
||||
@@ -30,7 +30,7 @@
|
||||
v-model="query.blurry"
|
||||
clearable
|
||||
size="mini"
|
||||
placeholder="输入账号或者名称"
|
||||
:placeholder="$t('user.table_title.Enter_Account_Number (Name)')"
|
||||
style="width: 200px;"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
@@ -39,7 +39,7 @@
|
||||
v-model="query.is_used"
|
||||
clearable
|
||||
size="mini"
|
||||
placeholder="状态"
|
||||
:placeholder="$t('user.table_title.State')"
|
||||
class="filter-item"
|
||||
style="width: 90px"
|
||||
@change="crud.toQuery"
|
||||
@@ -65,42 +65,42 @@
|
||||
width="700px"
|
||||
>
|
||||
<el-form ref="form" :inline="true" :model="form" :rules="rules" size="mini" label-width="100px">
|
||||
<el-form-item label="用户名" prop="username">
|
||||
<el-form-item :label="$t('user.table_value.Username')" prop="username">
|
||||
<el-input v-model="form.username" style="width: 200px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="电话" prop="phone">
|
||||
<el-form-item :label="$t('user.table_value.Phone')" prop="phone">
|
||||
<el-input v-model.number="form.phone" style="width: 200px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="姓名" prop="preson_name">
|
||||
<el-form-item :label="$t('user.table_value.Name')" prop="preson_name">
|
||||
<el-input v-model="form.person_name" style="width: 200px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="邮箱" prop="email">
|
||||
<el-form-item :label="$t('user.table_value.Mailbox')" prop="email">
|
||||
<el-input v-model="form.email" style="width: 200px;" />
|
||||
</el-form-item>
|
||||
<br v-if="!crud.status.edit">
|
||||
<el-form-item v-if="crud.status.add" label="部门" prop="depts" :rules="[{ required: true, message: '请选择部门', trigger: 'change' }]">
|
||||
<el-form-item v-if="crud.status.add" :label="$t('user.table_value.Department')" prop="depts" :rules="[{ required: true, message: '请选择部门', trigger: 'change' }]">
|
||||
<treeselect
|
||||
v-model="form.depts"
|
||||
:load-options="loadDepts"
|
||||
:options="deptDatas"
|
||||
style="width: 370px;"
|
||||
style="width: 200px;"
|
||||
:multiple="true"
|
||||
:flat="true"
|
||||
:normalizer="normalizer"
|
||||
placeholder="选择部门类目"
|
||||
:placeholder="$t('user.table_value.Select_Sector_Categories')"
|
||||
/>
|
||||
</el-form-item>
|
||||
<br v-if="!crud.status.add">
|
||||
<el-form-item v-if="crud.status.add" label="密码" prop="password">
|
||||
<el-form-item v-if="crud.status.add" :label="$t('user.table_value.Password')" prop="password">
|
||||
<el-input v-model="form.password" style="width: 200px;" show-password auto-complete="new-password" />
|
||||
</el-form-item>
|
||||
<el-form-item label="性别">
|
||||
<el-radio-group v-model="form.gender" style="width: 178px">
|
||||
<el-radio label="男">男</el-radio>
|
||||
<el-radio label="女">女</el-radio>
|
||||
<el-form-item :label="$t('user.table_value.Sex')">
|
||||
<el-radio-group v-model="form.gender" style="width: 200px">
|
||||
<el-radio :label="$t('user.table_value.boy')">{{ $t('user.table_value.boy') }}</el-radio>
|
||||
<el-radio :label="$t('user.table_value.girl')">{{ $t('user.table_value.girl') }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态" prop="is_uesd">
|
||||
<el-form-item :label="$t('user.table_value.State')" prop="is_uesd">
|
||||
<el-switch
|
||||
v-model="form.is_used"
|
||||
active-color="#409EFF"
|
||||
@@ -108,14 +108,14 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
<br v-if="!crud.status.edit">
|
||||
<el-form-item v-if="crud.status.add" style="margin-bottom: 0;" label="角色" prop="roles">
|
||||
<el-form-item v-if="crud.status.add" style="margin-bottom: 0;" :label="$t('role.table_value.Role')" prop="roles">
|
||||
<el-select
|
||||
v-model="roleDatas"
|
||||
style="width: 512px"
|
||||
style="width: 200px"
|
||||
multiple
|
||||
active-value="1"
|
||||
inactive-value="0"
|
||||
placeholder="请选择"
|
||||
:placeholder="$t('auto.common.please')"
|
||||
@remove-tag="deleteTag"
|
||||
@change="changeRole"
|
||||
>
|
||||
@@ -130,8 +130,8 @@
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
<el-button type="text" @click="crud.cancelCU">{{ $t('auto.common.Cancel') }}</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">{{ $t('auto.common.Confirm') }}</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
@@ -143,48 +143,50 @@
|
||||
@selection-change="crud.selectionChangeHandler"
|
||||
>
|
||||
<el-table-column :selectable="checkboxT" type="selection" width="55" />
|
||||
<el-table-column prop="username" label="用户名" :min-width="flexWidth('username',crud.data,'用户名')" />
|
||||
<el-table-column prop="username" :label="$t('user.table_value.Username')" :min-width="flexWidth('username',crud.data,$t('user.table_value.Username'))" />
|
||||
<el-table-column
|
||||
prop="person_name"
|
||||
label="姓名"
|
||||
:min-width="flexWidth('person_name',crud.data,'姓名')"
|
||||
:label="$t('user.table_value.Name')"
|
||||
:min-width="flexWidth('person_name',crud.data,$t('user.table_value.Name'))"
|
||||
/>
|
||||
<el-table-column prop="gender" label="性别" :min-width="flexWidth('person_name',crud.data,'性别')" />
|
||||
<el-table-column prop="phone" label="电话" :min-width="flexWidth('phone',crud.data,'电话')" />
|
||||
<el-table-column prop="email" label="邮箱" :min-width="flexWidth('email',crud.data,'邮箱')" />
|
||||
<el-table-column show-overflow-tooltip prop="depts" label="部门">
|
||||
<el-table-column prop="gender" :label="$t('user.table_value.Sex')" :min-width="flexWidth('gender',crud.data,$t('user.table_value.Sex'))" />
|
||||
<el-table-column prop="phone" :label="$t('user.table_value.Phone')" :min-width="flexWidth('phone',crud.data,$t('user.table_value.Phone'))" />
|
||||
<el-table-column prop="email" :label="$t('user.table_value.Mailbox')" :min-width="flexWidth('email',crud.data,$t('user.table_value.Mailbox'))" />
|
||||
<el-table-column show-overflow-tooltip prop="depts" :label="$t('user.table_value.Department')" :min-width="flexWidth('depts',crud.data,$t('user.table_value.Department'))">
|
||||
<template slot-scope="scope">
|
||||
<span v-for=" item in scope.row.depts" :key="item.index">{{ item.name }} </span>
|
||||
<span v-for="(item, index) in scope.row.depts" :key="index">
|
||||
{{ item.name }}<span v-if="index !== scope.row.depts.length - 1">、</span>
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>>
|
||||
<el-table-column label="状态" align="center" prop="enabled">
|
||||
</el-table-column>
|
||||
<el-table-column :label="$t('user.table_value.State')" align="center" prop="enabled" :min-width="flexWidth('enabled',crud.data,$t('user.table_value.State'))">
|
||||
<template slot-scope="scope">
|
||||
<span :style="{'color': caseStatusColorFilter(scope.row.is_used)}">{{ enabledTypeOptions.find(item => {return item.key == scope.row.is_used}).display_name }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="create_time" label="创建日期" :min-width="flexWidth('create_time',crud.data,'创建日期')" />
|
||||
<el-table-column prop="create_time" :label="$t('user.table_value.create_Date')" :min-width="flexWidth('create_time',crud.data,$t('user.table_value.create_Date'))" />
|
||||
<el-table-column
|
||||
label="操作"
|
||||
:label="$t('user.table_value.Operate')"
|
||||
fixed="right"
|
||||
align="center"
|
||||
width="200"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" icon="el-icon-edit" @click="crud.toEdit(scope.row)">修改</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-delete" @click="handdeleted(scope.row)">删除</el-button>
|
||||
<el-dropdown size="mini">
|
||||
<el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-edit" @click="crud.toEdit(scope.row)">{{ $t('user.other.Revise') }}</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-delete" @click="handdeleted(scope.row)">{{ $t('user.other.Delete') }}</el-button>
|
||||
<el-dropdown v-hasPermi="['system:user:resetPwd', 'system:user:edit']" size="mini">
|
||||
<el-button size="mini" type="text" icon="el-icon-d-arrow-right">{{ $t('user.other.More') }}</el-button>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item icon="el-icon-refresh-right"><span @click="resetPassword(scope.row)">重置密码</span></el-dropdown-item>
|
||||
<el-dropdown-item icon="el-icon-refresh-right"><span @click="resetPassword(scope.row)">{{ $t('user.other.Reset') }}</span></el-dropdown-item>
|
||||
<el-dropdown-item icon="el-icon-key">
|
||||
<span @click="openDeptDrawer(scope.row)">分配部门</span>
|
||||
<span @click="openDeptDrawer(scope.row)">{{ $t('user.other.Department_permissions') }}</span>
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item icon="el-icon-key">
|
||||
<span @click="openDataDialog(scope.row)">数据权限</span>
|
||||
<span @click="openDataDialog(scope.row)">{{ $t('user.other.Data_Permissions') }}</span>
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item icon="el-icon-lock"><span @click="changeEnabled(scope.row)">{{ enabledTypeOptions.find(item => {return item.key !== scope.row.is_used}).display_name }}账号</span></el-dropdown-item>
|
||||
<el-dropdown-item icon="el-icon-lock"><span @click="changeEnabled(scope.row)">{{ enabledTypeOptions.find(item => {return item.key !== scope.row.is_used}).display_name }}{{ $t('user.other.Lock_account') }}</span></el-dropdown-item>
|
||||
<el-dropdown-item icon="el-icon-circle-check">
|
||||
<span @click="openRoleDrawer(scope.row)">分配角色</span>
|
||||
<span @click="openRoleDrawer(scope.row)">{{ $t('user.other.Assign_roles') }}</span>
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
@@ -323,13 +325,13 @@ import { getAll, getLevel } from '@/views/system/role/role'
|
||||
import CRUD, { crud, form, header, presenter } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import Treeselect, { LOAD_CHILDREN_OPTIONS } from '@riophae/vue-treeselect'
|
||||
import { mapGetters } from 'vuex'
|
||||
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
||||
import RelevanceUserDialog from '@/views/system/user/dialog/relevanceUserDialog'
|
||||
import RelevanceDeptDialog from '@/views/system/user/dialog/relevanceDeptDialog'
|
||||
import i18n from '@/i18n'
|
||||
|
||||
let userRoles = []
|
||||
const defaultForm = {
|
||||
@@ -346,9 +348,9 @@ const defaultForm = {
|
||||
}
|
||||
export default {
|
||||
name: 'User',
|
||||
components: { RelevanceDeptDialog, RelevanceUserDialog, Treeselect, crudOperation, rrOperation, udOperation, pagination },
|
||||
components: { RelevanceDeptDialog, RelevanceUserDialog, Treeselect, crudOperation, rrOperation, pagination },
|
||||
cruds() {
|
||||
return CRUD({ title: '用户', idField: 'user_id', url: 'api/users', crudMethod: { ...crudUser }})
|
||||
return CRUD({ title: i18n.t('user.table_value.User'), idField: 'user_id', url: 'api/users', crudMethod: { ...crudUser }})
|
||||
},
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
// 数据字典
|
||||
@@ -366,8 +368,8 @@ export default {
|
||||
del: ['admin', 'user:del']
|
||||
},
|
||||
enabledTypeOptions: [
|
||||
{ key: true, display_name: '激活' },
|
||||
{ key: false, display_name: '锁定' }
|
||||
{ key: true, display_name: i18n.t('user.table_value.activation') },
|
||||
{ key: false, display_name: i18n.t('user.table_value.lock') }
|
||||
],
|
||||
rules: {
|
||||
username: [
|
||||
@@ -445,7 +447,6 @@ export default {
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
|
||||
this.crud.delAllLoading = true
|
||||
this.crud.doDelete(datas)
|
||||
}).catch(() => {
|
||||
@@ -583,7 +584,6 @@ export default {
|
||||
},
|
||||
// 切换部门
|
||||
handleNodeClick(data) {
|
||||
|
||||
this.query.dept_id = data.dept_id
|
||||
this.query.needAll = true
|
||||
this.crud.toQuery()
|
||||
@@ -696,7 +696,7 @@ export default {
|
||||
this.$nextTick(function() {
|
||||
for (var index = 0; index < res.length; index++) {
|
||||
for (var i = 0; i < this.dataDialog.dataScopeType.length; i++) {
|
||||
if (this.dataDialog.dataScopeType[i].value == res[index].permissionScopeType) {
|
||||
if (this.dataDialog.dataScopeType[i].value === res[index].permissionScopeType) {
|
||||
this.dataDialog.dataScopeType[i].permissionId = res[index].permissionId
|
||||
if (res[index].users) this.dataDialog.dataScopeType[i].users = res[index].users
|
||||
if (res[index].depts) this.dataDialog.dataScopeType[i].depts = res[index].depts
|
||||
@@ -716,7 +716,7 @@ export default {
|
||||
},
|
||||
openRelevance(row, index) {
|
||||
for (var i = 0; i < this.permissions.length; i++) {
|
||||
if (this.permissions[i].permissionId != undefined && this.permissions[i].permissionId && this.permissions[i].permissionId != row.permissionId) {
|
||||
if (this.permissions[i].permissionId !== undefined && this.permissions[i].permissionId && this.permissions[i].permissionId !== row.permissionId) {
|
||||
this.$delete(this.dataDialog.dataScopeType[index], this.permissions[i].permissionId.toString())
|
||||
}
|
||||
}
|
||||
@@ -725,15 +725,15 @@ export default {
|
||||
this.deptIds = []
|
||||
this.userIds = []
|
||||
console.log(row)
|
||||
if (row.permissionId == '1605129738328870912') { // 选择用户
|
||||
if (row.permissionId === '1605129738328870912') { // 选择用户
|
||||
this.userIds = this.dataDialog.dataScopeType[index].users
|
||||
this.rowData = row
|
||||
this.relevanceUser = true
|
||||
} else if (row.permissionId == '1605129882164137984') { // 选择部门
|
||||
} else if (row.permissionId === '1605129882164137984') { // 选择部门
|
||||
this.deptIds = this.dataDialog.dataScopeType[index].depts
|
||||
this.rowData = row
|
||||
this.relevanceDept = true
|
||||
} else if (row.permissionId == '1605128919449735168') { // 自身
|
||||
} else if (row.permissionId === '1605128919449735168') { // 自身
|
||||
const param = {
|
||||
user_id: this.dataDialog.user_id
|
||||
}
|
||||
@@ -746,8 +746,8 @@ export default {
|
||||
},
|
||||
selectUsers(row) { // row对话框传来的数据
|
||||
for (var i = 0; i < this.dataDialog.dataScopeType.length; i++) {
|
||||
if (this.dataDialog.dataScopeType[i].dictId == this.rowData.dictId) {
|
||||
if (this.dataDialog.dataScopeType[i].depts != undefined && this.dataDialog.dataScopeType[i].depts.length > 0) this.dataDialog.dataScopeType[i].depts = []
|
||||
if (this.dataDialog.dataScopeType[i].dictId === this.rowData.dictId) {
|
||||
if (this.dataDialog.dataScopeType[i].depts !== undefined && this.dataDialog.dataScopeType[i].depts.length > 0) this.dataDialog.dataScopeType[i].depts = []
|
||||
this.dataDialog.dataScopeType[i].users = row
|
||||
break
|
||||
}
|
||||
@@ -756,8 +756,8 @@ export default {
|
||||
},
|
||||
selectDepts(row) {
|
||||
for (var i = 0; i < this.dataDialog.dataScopeType.length; i++) {
|
||||
if (this.dataDialog.dataScopeType[i].dictId == this.rowData.dictId) {
|
||||
if (this.dataDialog.dataScopeType[i].users != undefined && this.dataDialog.dataScopeType[i].users.length > 0) this.dataDialog.dataScopeType[i].users = []
|
||||
if (this.dataDialog.dataScopeType[i].dictId === this.rowData.dictId) {
|
||||
if (this.dataDialog.dataScopeType[i].users !== undefined && this.dataDialog.dataScopeType[i].users.length > 0) this.dataDialog.dataScopeType[i].users = []
|
||||
this.dataDialog.dataScopeType[i].depts = row
|
||||
break
|
||||
}
|
||||
@@ -855,7 +855,7 @@ export default {
|
||||
checkNode.parent.indeterminate = false
|
||||
}
|
||||
// 如果取消所有第二节点的勾选状态,则第一层父节点也取消勾选
|
||||
if (checkNode.level == 2 && checkNode.parent.childNodes.every(ele => !ele.checked)) {
|
||||
if (checkNode.level === 2 && checkNode.parent.childNodes.every(ele => !ele.checked)) {
|
||||
checkNode.parent.checked = false
|
||||
checkNode.parent.indeterminate = false
|
||||
}
|
||||
@@ -880,4 +880,13 @@ export default {
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
}
|
||||
.el-form-item__label {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.no-wrap {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user