feat: 国际化
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
:loading="crud.delAllLoading"
|
||||
@click="confirmDelAll()"
|
||||
>
|
||||
清空
|
||||
{{ $t('ErrorLog.table.clear') }}
|
||||
</el-button>
|
||||
</crudOperation>
|
||||
</div>
|
||||
@@ -21,32 +21,32 @@
|
||||
<el-table-column type="expand">
|
||||
<template slot-scope="props">
|
||||
<el-form label-position="left" inline class="demo-table-expand">
|
||||
<el-form-item label="请求方法">
|
||||
<el-form-item :label="$t('ErrorLog.table.method')">
|
||||
<span>{{ props.row.method }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="请求参数">
|
||||
<el-form-item :label="$t('ErrorLog.table.params')">
|
||||
<span>{{ props.row.params }}</span>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="username" label="用户名" />
|
||||
<el-table-column prop="username" :label="$t('ErrorLog.table.username')" />
|
||||
<el-table-column prop="request_ip" label="IP" />
|
||||
<el-table-column show-overflow-tooltip prop="address" label="IP来源" />
|
||||
<el-table-column prop="description" label="描述" show-overflow-tooltip />
|
||||
<el-table-column prop="browser" label="浏览器" min-width="120" show-overflow-tooltip />
|
||||
<el-table-column prop="create_time" label="创建日期" min-width="100" show-overflow-tooltip>
|
||||
<el-table-column show-overflow-tooltip prop="address" :label="$t('ErrorLog.table.address')" />
|
||||
<el-table-column prop="description" :label="$t('ErrorLog.table.description')" show-overflow-tooltip />
|
||||
<el-table-column prop="browser" :label="$t('ErrorLog.table.browser')" min-width="120" show-overflow-tooltip />
|
||||
<el-table-column prop="create_time" :label="$t('ErrorLog.table.create_time')" min-width="100" show-overflow-tooltip>
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.create_time) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="异常详情" width="100px">
|
||||
<el-table-column :label="$t('ErrorLog.table.err_del')" width="150px">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" @click="info(scope.row.log_id)">查看详情</el-button>
|
||||
<el-button size="mini" type="text" @click="info(scope.row.log_id)">{{ $t('ErrorLog.table.see_del') }}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-dialog :visible.sync="dialog" title="异常详情" append-to-body top="30px" width="85%">
|
||||
<el-dialog :visible.sync="dialog" :title="$t('ErrorLog.table.err_del')" append-to-body top="30px" width="85%">
|
||||
<pre v-highlightjs="errorInfo"><code class="java" /></pre>
|
||||
</el-dialog>
|
||||
<!--分页组件-->
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
:loading="crud.delAllLoading"
|
||||
@click="confirmDelAll()"
|
||||
>
|
||||
清空
|
||||
{{ $t('ErrorLog.table.clear') }}
|
||||
</el-button>
|
||||
</crudOperation>
|
||||
</div>
|
||||
@@ -21,28 +21,28 @@
|
||||
<el-table-column type="expand">
|
||||
<template slot-scope="props">
|
||||
<el-form label-position="left" inline class="demo-table-expand">
|
||||
<el-form-item label="请求方法">
|
||||
<el-form-item :label="$t('ErrorLog.table.method')">
|
||||
<span>{{ props.row.method }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="请求参数">
|
||||
<el-form-item :label="$t('ErrorLog.table.params')">
|
||||
<span>{{ props.row.params }}</span>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="username" label="用户名" />
|
||||
<el-table-column prop="username" :label="$t('ErrorLog.table.username')" />
|
||||
<el-table-column prop="request_ip" label="IP" />
|
||||
<el-table-column show-overflow-tooltip prop="address" label="IP来源" />
|
||||
<el-table-column prop="description" label="描述" show-overflow-tooltip />
|
||||
<el-table-column prop="browser" label="浏览器" min-width="120" show-overflow-tooltip />
|
||||
<el-table-column prop="time" label="请求耗时" align="center">
|
||||
<el-table-column show-overflow-tooltip prop="address" :label="$t('ErrorLog.table.address')" />
|
||||
<el-table-column prop="description" :label="$t('ErrorLog.table.description')" show-overflow-tooltip />
|
||||
<el-table-column prop="browser" :label="$t('ErrorLog.table.browser')" min-width="120" show-overflow-tooltip />
|
||||
<el-table-column prop="time" :label="$t('ErrorLog.table.time')" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.time <= 300">{{ scope.row.time }}ms</el-tag>
|
||||
<el-tag v-else-if="scope.row.time <= 1000" type="warning">{{ scope.row.time }}ms</el-tag>
|
||||
<el-tag v-else type="danger">{{ scope.row.time }}ms</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="create_time" label="创建日期" width="180px">
|
||||
<el-table-column prop="create_time" :label="$t('ErrorLog.table.create_time')" width="180px">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.create_time) }}</span>
|
||||
</template>
|
||||
@@ -59,6 +59,7 @@ import { delAllInfo } from '@/api/monitor/log'
|
||||
import CRUD, { presenter } from '@crud/crud'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import i18n from "@/i18n";
|
||||
|
||||
export default {
|
||||
name: 'Log',
|
||||
@@ -77,9 +78,9 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
confirmDelAll() {
|
||||
this.$confirm(`确认清空所有操作日志吗?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
this.$confirm(i18n.t('ErrorLog.msg.m1'), i18n.t('common.Operate'), {
|
||||
confirmButtonText: i18n.t('common.Confirm'),
|
||||
cancelButtonText: i18n.t('common.Cancel'),
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.crud.delAllLoading = true
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
v-model="query.blurry"
|
||||
clearable
|
||||
size="mini"
|
||||
placeholder="请输入你要搜索的内容"
|
||||
:placeholder="$t('common.Tip17')"
|
||||
style="width: 200px;"
|
||||
class="filter-item"
|
||||
/>
|
||||
|
||||
@@ -16,38 +16,38 @@
|
||||
:disabled="crud.selections.length === 0"
|
||||
@click="doDelete(crud.selections)"
|
||||
>
|
||||
强退
|
||||
{{ $t('Online.table.forced') }}
|
||||
</el-button>
|
||||
</crudOperation>
|
||||
</div>
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column prop="userName" label="用户名" />
|
||||
<el-table-column prop="nickName" label="用户姓名" />
|
||||
<el-table-column prop="dept" label="部门" />
|
||||
<el-table-column prop="ip" label="登录IP" />
|
||||
<el-table-column show-overflow-tooltip prop="address" label="登录地点" />
|
||||
<el-table-column prop="browser" label="浏览器" width="145px" />
|
||||
<el-table-column prop="loginTime" label="登录时间" min-width="110" show-overflow-tooltip>
|
||||
<el-table-column prop="userName" :label="$t('Online.table.userName')" />
|
||||
<el-table-column prop="nickName" :label="$t('Online.table.nickName')" />
|
||||
<el-table-column prop="dept" :label="$t('Online.table.dept')" />
|
||||
<el-table-column prop="ip" :label="$t('Online.table.ip')" />
|
||||
<el-table-column show-overflow-tooltip prop="address" :label="$t('Online.table.address')" />
|
||||
<el-table-column prop="browser" :label="$t('Online.table.browser')" width="145px" />
|
||||
<el-table-column prop="loginTime" :label="$t('Online.table.loginTime')" min-width="110" show-overflow-tooltip>
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.loginTime) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="70px" fixed="right">
|
||||
<el-table-column :label="$t('common.Operate')" width="100px" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<el-popover
|
||||
:ref="scope.$index"
|
||||
v-permission="['admin']"
|
||||
placement="top"
|
||||
width="180"
|
||||
width="180px"
|
||||
>
|
||||
<p>确定强制退出该用户吗?</p>
|
||||
<p>{{ $t('Online.msg.m1') }}</p>
|
||||
<div style="text-align: right; margin: 0">
|
||||
<el-button size="mini" type="text" @click="$refs[scope.$index].doClose()">取消</el-button>
|
||||
<el-button :loading="delLoading" type="primary" size="mini" @click="delMethod(scope.row, scope.$index)">确定</el-button>
|
||||
<el-button size="mini" type="text" @click="$refs[scope.$index].doClose()">{{ $t('common.Cancel') }}</el-button>
|
||||
<el-button :loading="delLoading" type="primary" size="mini" @click="delMethod(scope.row, scope.$index)">{{ $t('common.Confirm') }}</el-button>
|
||||
</div>
|
||||
<el-button slot="reference" size="mini" type="text">强退</el-button>
|
||||
<el-button slot="reference" size="mini" type="text">{{ $t('Online.table.forced') }}</el-button>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -63,12 +63,13 @@ import CRUD, { presenter, header, crud } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import i18n from "@/i18n";
|
||||
|
||||
export default {
|
||||
name: 'OnlineUser',
|
||||
components: { pagination, crudOperation, rrOperation },
|
||||
cruds() {
|
||||
return CRUD({ url: 'auth/online', title: '在线用户' })
|
||||
return CRUD({ url: 'auth/online', title: i18n.t('Online.title') })
|
||||
},
|
||||
mixins: [presenter(), header(), crud()],
|
||||
data() {
|
||||
@@ -78,7 +79,7 @@ export default {
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.crud.msg.del = '强退成功!'
|
||||
this.crud.msg.del = i18n.t('Online.msg.m2')
|
||||
this.crud.optShow = {
|
||||
add: false,
|
||||
edit: false,
|
||||
@@ -88,9 +89,9 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
doDelete(datas) {
|
||||
this.$confirm(`确认强退选中的${datas.length}个用户?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
this.$confirm(i18n.t('Online.m3_1') + `${datas.length}` + i18n.t('Online.m3_1'), i18n.t('common.Tips'), {
|
||||
confirmButtonText: i18n.t('common.Confirm'),
|
||||
cancelButtonText: i18n.t('common.Cancel'),
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.delMethod(datas)
|
||||
|
||||
@@ -11,10 +11,10 @@
|
||||
label-width="90px"
|
||||
label-suffix=":"
|
||||
>
|
||||
<el-form-item label="分类名称">
|
||||
<el-form-item :label="$t('BasicClassification.table.name')">
|
||||
<el-select
|
||||
v-model="query.class_code"
|
||||
placeholder="请选择分类名称"
|
||||
:placeholder="$t('BasicClassification.placeholder.p1')"
|
||||
clearable
|
||||
filterable
|
||||
size="mini"
|
||||
@@ -43,7 +43,7 @@
|
||||
icon="el-icon-s-operation"
|
||||
@click="ToExpandall"
|
||||
>
|
||||
全部展开
|
||||
{{ $t('BasicClassification.button.all_open') }}
|
||||
</el-button>
|
||||
</crudOperation>
|
||||
<!--表单组件-->
|
||||
@@ -52,37 +52,37 @@
|
||||
:before-close="crud.cancelCU"
|
||||
:visible.sync="crud.status.cu > 0"
|
||||
:title="crud.status.title"
|
||||
width="500px"
|
||||
:width="computedLabelWidth"
|
||||
>
|
||||
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="80px">
|
||||
<el-form-item label="分类编码" prop="class_code">
|
||||
<el-form ref="form" :model="form" :rules="rules" size="mini" :label-width="computedFormLabelWidth">
|
||||
<el-form-item :label="$t('BasicClassification.table.code')" prop="class_code">
|
||||
<el-input v-model="form.class_code" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="分类名称" prop="class_name">
|
||||
<el-form-item :label="$t('BasicClassification.table.name')" prop="class_name">
|
||||
<el-input v-model="form.class_name" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="简要描述" prop="class_desc">
|
||||
<el-form-item :label="$t('BasicClassification.table.description')" prop="class_desc">
|
||||
<el-input v-model="form.class_desc" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="顶级类目">
|
||||
<el-form-item :label="$t('BasicClassification.table.isTop')">
|
||||
<el-radio-group v-model="form.isTop" style="width: 140px">
|
||||
<el-radio label="1">是</el-radio>
|
||||
<el-radio label="0">否</el-radio>
|
||||
<el-radio label="1">{{ $t('common.Yes') }}</el-radio>
|
||||
<el-radio label="0">{{ $t('common.No') }}</el-radio>
|
||||
</el-radio-group>
|
||||
</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('BasicClassification.table.parent_class_id')" prop="pid">
|
||||
<treeselect
|
||||
v-model="form.parent_class_id"
|
||||
:load-options="loadClass"
|
||||
:options="classes"
|
||||
style="width: 370px;"
|
||||
placeholder="选择上级类目"
|
||||
:placeholder="$t('BasicClassification.placeholder.p2')"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
<el-button type="text" @click="crud.cancelCU">{{ $t('common.Cancel') }}</el-button>
|
||||
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">{{ $t('common.Confirm') }}</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
@@ -98,19 +98,19 @@
|
||||
@select-all="crud.selectAllChange"
|
||||
@selection-change="crud.selectionChangeHandler"
|
||||
>
|
||||
<el-table-column prop="class_code" label="分类编码" />
|
||||
<el-table-column prop="class_name" label="分类名称" />
|
||||
<el-table-column prop="class_desc" label="分类简要描述" />
|
||||
<el-table-column prop="update_name" label="修改人" />
|
||||
<el-table-column prop="update_time" label="修改时间" min-width="100" show-overflow-tooltip />
|
||||
<el-table-column prop="is_modify" label="是否可修改">
|
||||
<el-table-column prop="class_code" :label="$t('BasicClassification.table.code')" />
|
||||
<el-table-column prop="class_name" :label="$t('BasicClassification.table.name')" />
|
||||
<el-table-column prop="class_desc" :label="$t('BasicClassification.table.description')" />
|
||||
<el-table-column prop="update_name" :label="$t('BasicClassification.table.update_user')" />
|
||||
<el-table-column prop="update_time" :label="$t('BasicClassification.table.update_time')" min-width="100" show-overflow-tooltip />
|
||||
<el-table-column prop="is_modify" :label="$t('BasicClassification.table.is_modify')">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.is_modify?'是':'否'}}
|
||||
{{ scope.row.is_modify ? $t('common.Yes') : $t('common.No') }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-permission="['admin','Classstandard:edit','Classstandard:del']"
|
||||
label="操作"
|
||||
:label="$t('common.Operate')"
|
||||
width="250px"
|
||||
align="center"
|
||||
>
|
||||
@@ -121,10 +121,14 @@
|
||||
:permission="permission"
|
||||
:disabled-edit="scope.row.is_modify === '0'"
|
||||
:disabled-dle="scope.row.is_modify === '0'"
|
||||
msg="确定删除吗,如果存在下级节点则一并删除,此操作不能撤销!"
|
||||
:msg="$t('BasicClassification.msg.m1')"
|
||||
/>
|
||||
<el-button slot="right" size="mini" type="text" icon="el-icon-circle-plus-outline" @click="crud.toAddAndData(addSibling(scope.row))">新增同级</el-button>
|
||||
<el-button slot="right" size="mini" type="text" icon="el-icon-circle-plus" @click="crud.toAddAndData(addChildren(scope.row))">新增子级</el-button>
|
||||
<el-button slot="right" size="mini" type="text" icon="el-icon-circle-plus-outline" @click="crud.toAddAndData(addSibling(scope.row))">
|
||||
{{ $t('BasicClassification.button.bu1') }}
|
||||
</el-button>
|
||||
<el-button slot="right" size="mini" type="text" icon="el-icon-circle-plus" @click="crud.toAddAndData(addChildren(scope.row))">
|
||||
{{ $t('BasicClassification.button.bu2') }}
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -143,6 +147,7 @@ import crudOperation from '@crud/CRUD.operation.vue'
|
||||
import udOperation from '@crud/UD.operation.vue'
|
||||
import rrOperation from '@crud/RR.operation.vue'
|
||||
import pagination from '@crud/Pagination.vue'
|
||||
import i18n from "@/i18n";
|
||||
|
||||
let defaultForm = {
|
||||
id: null,
|
||||
@@ -175,7 +180,7 @@ export default {
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
cruds() {
|
||||
return CRUD({
|
||||
title: '基础类别',
|
||||
title: i18n.t('BasicClassification.title'),
|
||||
url: 'api/Classstandard',
|
||||
idField: 'class_id',
|
||||
sort: 'class_id,desc',
|
||||
@@ -193,38 +198,54 @@ export default {
|
||||
permission: {},
|
||||
rules: {
|
||||
class_id: [
|
||||
{ required: true, message: '不能为空', trigger: 'blur' }
|
||||
{ required: true, message: i18n.t('BasicClassification.rules.NotNull'), trigger: 'blur' }
|
||||
],
|
||||
path_code: [
|
||||
{ required: true, message: '不能为空', trigger: 'blur' }
|
||||
{ required: true, message: i18n.t('BasicClassification.rules.NotNull'), trigger: 'blur' }
|
||||
],
|
||||
class_code: [
|
||||
{ required: true, message: '不能为空', trigger: 'blur' }
|
||||
{ required: true, message: i18n.t('BasicClassification.rules.NotNull'), trigger: 'blur' }
|
||||
],
|
||||
class_name: [
|
||||
{ required: true, message: '不能为空', trigger: 'blur' }
|
||||
{ required: true, message: i18n.t('BasicClassification.rules.NotNull'), trigger: 'blur' }
|
||||
],
|
||||
is_leaf: [
|
||||
{ required: true, message: '不能为空', trigger: 'blur' }
|
||||
{ required: true, message: i18n.t('BasicClassification.rules.NotNull'), trigger: 'blur' }
|
||||
],
|
||||
is_modify: [
|
||||
{ required: true, message: '不能为空', trigger: 'blur' }
|
||||
{ required: true, message: i18n.t('BasicClassification.rules.NotNull'), trigger: 'blur' }
|
||||
],
|
||||
is_delete: [
|
||||
{ required: true, message: '不能为空', trigger: 'blur' }
|
||||
{ required: true, message: i18n.t('BasicClassification.rules.NotNull'), trigger: 'blur' }
|
||||
],
|
||||
create_id: [
|
||||
{ required: true, message: '不能为空', trigger: 'blur' }
|
||||
{ required: true, message: i18n.t('BasicClassification.rules.NotNull'), trigger: 'blur' }
|
||||
],
|
||||
create_name: [
|
||||
{ required: true, message: '不能为空', trigger: 'blur' }
|
||||
{ required: true, message: i18n.t('BasicClassification.rules.NotNull'), trigger: 'blur' }
|
||||
],
|
||||
create_time: [
|
||||
{ required: true, message: '不能为空', trigger: 'blur' }
|
||||
{ required: true, message: i18n.t('BasicClassification.rules.NotNull'), trigger: 'blur' }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
computedLabelWidth() {
|
||||
const item = localStorage.getItem('lang')
|
||||
if (item === 'zh') {
|
||||
return `500px`
|
||||
}
|
||||
return `600px`
|
||||
},
|
||||
computedFormLabelWidth() {
|
||||
const item = localStorage.getItem('lang')
|
||||
if (item === 'zh') {
|
||||
return `80px`
|
||||
}
|
||||
return `140px`
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getClassNames() // 获取分类
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user