feat: 国际化
This commit is contained in:
@@ -1,13 +1,32 @@
|
|||||||
export default {
|
export default {
|
||||||
'BasicClassification': {
|
'BasicClassification': {
|
||||||
|
'title': 'Base Type',
|
||||||
'table': {
|
'table': {
|
||||||
'code': 'code',
|
'code': 'code',
|
||||||
'name': 'name',
|
'name': 'name',
|
||||||
'values': 'value',
|
'description': 'description',
|
||||||
'description': 'remark'
|
'create_time': 'create time',
|
||||||
|
'create_user': 'create user',
|
||||||
|
'update_time': 'update time',
|
||||||
|
'update_user': 'update user',
|
||||||
|
'is_modify': 'modify',
|
||||||
|
'isTop': 'top category',
|
||||||
|
'parent_class_id': 'superior category'
|
||||||
},
|
},
|
||||||
'rules': {
|
'rules': {
|
||||||
'NotNull': 'Cannot be empty'
|
'NotNull': 'Cannot be empty'
|
||||||
|
},
|
||||||
|
'msg': {
|
||||||
|
'm1': 'Are you sure to delete it? If there are lower-level nodes, delete them together. This operation cannot be undone!'
|
||||||
|
},
|
||||||
|
'button': {
|
||||||
|
'all_open': 'Expand All',
|
||||||
|
'bu1': 'Add Sibling',
|
||||||
|
'bu2': 'Add Child'
|
||||||
|
},
|
||||||
|
'placeholder': {
|
||||||
|
'p1': 'Please select a category name',
|
||||||
|
'p2': 'Select the parent category'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,32 @@
|
|||||||
export default {
|
export default {
|
||||||
'BasicClassification': {
|
'BasicClassification': {
|
||||||
|
'title': 'Tipe Dasar',
|
||||||
'table': {
|
'table': {
|
||||||
'code': 'kode',
|
'code': 'kode',
|
||||||
'name': 'nama',
|
'name': 'nama',
|
||||||
'values': 'nilai',
|
'description': 'keterangan',
|
||||||
'description': 'Catatan'
|
'create_time': 'tarikh penciptaan',
|
||||||
|
'create_user': 'pencipta',
|
||||||
|
'update_time': 'tanggal modifikasi',
|
||||||
|
'update_user': 'diubah oleh',
|
||||||
|
'is_modify': 'memodifikasi',
|
||||||
|
'isTop': 'kategori teratas',
|
||||||
|
'parent_class_id': 'kategori unggul'
|
||||||
},
|
},
|
||||||
'rules': {
|
'rules': {
|
||||||
'NotNull': 'Tidak dapat kosong'
|
'NotNull': 'Tidak dapat kosong'
|
||||||
|
},
|
||||||
|
'msg': {
|
||||||
|
'm1': 'Apakah Anda yakin akan menghapusnya? Jika ada node tingkat rendah, hapus semuanya. Operasi ini tidak dapat dibatalkan!'
|
||||||
|
},
|
||||||
|
'button': {
|
||||||
|
'all_open': 'Melebarkan Semua',
|
||||||
|
'bu1': 'Tambahkan Saudara',
|
||||||
|
'bu2': 'Tambahkan Anak'
|
||||||
|
},
|
||||||
|
'placeholder': {
|
||||||
|
'p1': 'Silakan pilih nama kategori',
|
||||||
|
'p2': 'Pilih kategori induk'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,32 @@
|
|||||||
export default {
|
export default {
|
||||||
'BasicClassification': {
|
'BasicClassification': {
|
||||||
|
'title': '基础类别',
|
||||||
'table': {
|
'table': {
|
||||||
'code': '编码',
|
'code': '分类编码',
|
||||||
'name': '名称',
|
'name': '分类名称',
|
||||||
'values': '值',
|
'description': '分类描述',
|
||||||
'description': '备注'
|
'create_time': '创建日期',
|
||||||
|
'create_user': '创建人',
|
||||||
|
'update_time': '修改日期',
|
||||||
|
'update_user': '修改人',
|
||||||
|
'is_modify': '是否可修改',
|
||||||
|
'isTop': '顶级类目',
|
||||||
|
'parent_class_id': '上级类目'
|
||||||
},
|
},
|
||||||
'rules': {
|
'rules': {
|
||||||
'NotNull': '不能为空'
|
'NotNull': '不能为空'
|
||||||
|
},
|
||||||
|
'msg': {
|
||||||
|
'm1': '确定删除吗,如果存在下级节点则一并删除,此操作不能撤销!'
|
||||||
|
},
|
||||||
|
'button': {
|
||||||
|
'all_open': '全部展开',
|
||||||
|
'bu1': '新增同级',
|
||||||
|
'bu2': '新增子级'
|
||||||
|
},
|
||||||
|
'placeholder': {
|
||||||
|
'p1': '请选择分类名称',
|
||||||
|
'p2': '选择上级类目'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,9 @@ import redis from './redis/zh'
|
|||||||
import log from './log/zh'
|
import log from './log/zh'
|
||||||
import notice from './notice/zh'
|
import notice from './notice/zh'
|
||||||
import record from './record/zh'
|
import record from './record/zh'
|
||||||
|
import errorLog from './log/error/zh'
|
||||||
|
import online from './online/zh'
|
||||||
|
import classification from './baseclass/zh'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
...zhLocale,
|
...zhLocale,
|
||||||
@@ -29,5 +32,8 @@ export default {
|
|||||||
...redis,
|
...redis,
|
||||||
...log,
|
...log,
|
||||||
...notice,
|
...notice,
|
||||||
...record
|
...record,
|
||||||
|
...errorLog,
|
||||||
|
...online,
|
||||||
|
...classification
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,6 +88,7 @@ export default {
|
|||||||
'Tip14': 'WebSocket connection error',
|
'Tip14': 'WebSocket connection error',
|
||||||
'Tip15': 'Please enter an icon name',
|
'Tip15': 'Please enter an icon name',
|
||||||
'Tip16': 'NOT NULL',
|
'Tip16': 'NOT NULL',
|
||||||
|
'Tip17': 'Please enter what you are searching for',
|
||||||
'loading': 'loading...'
|
'loading': 'loading...'
|
||||||
},
|
},
|
||||||
'WorkOrder': {
|
'WorkOrder': {
|
||||||
|
|||||||
@@ -13,6 +13,9 @@ import redis from './redis/en'
|
|||||||
import log from './log/en'
|
import log from './log/en'
|
||||||
import notice from './notice/en'
|
import notice from './notice/en'
|
||||||
import record from './record/en'
|
import record from './record/en'
|
||||||
|
import errorLog from './log/error/en'
|
||||||
|
import online from './online/en'
|
||||||
|
import classification from './baseclass/en'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
...enLocale,
|
...enLocale,
|
||||||
@@ -29,5 +32,8 @@ export default {
|
|||||||
...redis,
|
...redis,
|
||||||
...log,
|
...log,
|
||||||
...notice,
|
...notice,
|
||||||
...record
|
...record,
|
||||||
|
...errorLog,
|
||||||
|
...online,
|
||||||
|
...classification
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,6 +88,7 @@ export default {
|
|||||||
'Tip14': 'Koneksi WebSocket error',
|
'Tip14': 'Koneksi WebSocket error',
|
||||||
'Tip15': 'Silakan masukkan nama ikon',
|
'Tip15': 'Silakan masukkan nama ikon',
|
||||||
'Tip16': 'TIDAK NULL',
|
'Tip16': 'TIDAK NULL',
|
||||||
|
'Tip17': 'Silakan masukkan apa yang Anda cari',
|
||||||
'loading': 'Memuatkan Data...'
|
'loading': 'Memuatkan Data...'
|
||||||
},
|
},
|
||||||
'WorkOrder': {
|
'WorkOrder': {
|
||||||
|
|||||||
@@ -13,6 +13,9 @@ import redis from './redis/in'
|
|||||||
import log from './log/in'
|
import log from './log/in'
|
||||||
import notice from './notice/in'
|
import notice from './notice/in'
|
||||||
import record from './record/in'
|
import record from './record/in'
|
||||||
|
import errorLog from './log/error/in'
|
||||||
|
import online from './online/in'
|
||||||
|
import classification from './baseclass/in'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
...idLocale,
|
...idLocale,
|
||||||
@@ -29,5 +32,8 @@ export default {
|
|||||||
...redis,
|
...redis,
|
||||||
...log,
|
...log,
|
||||||
...notice,
|
...notice,
|
||||||
...record
|
...record,
|
||||||
|
...errorLog,
|
||||||
|
...online,
|
||||||
|
...classification
|
||||||
}
|
}
|
||||||
|
|||||||
20
lms/nladmin-ui/src/i18n/langs/log/error/en.js
Normal file
20
lms/nladmin-ui/src/i18n/langs/log/error/en.js
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
export default {
|
||||||
|
'ErrorLog': {
|
||||||
|
'table': {
|
||||||
|
'method': 'method',
|
||||||
|
'params': 'params',
|
||||||
|
'username': 'username',
|
||||||
|
'address': 'IP source',
|
||||||
|
'description': 'description',
|
||||||
|
'browser': 'browser',
|
||||||
|
'create_time': 'create time',
|
||||||
|
'err_del': 'exception details',
|
||||||
|
'see_del': 'view details',
|
||||||
|
'time': 'request time',
|
||||||
|
'clear': 'Clear'
|
||||||
|
},
|
||||||
|
'msg': {
|
||||||
|
'm1': 'Are you sure to clear all operation logs?'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
20
lms/nladmin-ui/src/i18n/langs/log/error/in.js
Normal file
20
lms/nladmin-ui/src/i18n/langs/log/error/in.js
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
export default {
|
||||||
|
'ErrorLog': {
|
||||||
|
'table': {
|
||||||
|
'method': 'metode',
|
||||||
|
'params': 'param',
|
||||||
|
'username': 'nama belakang',
|
||||||
|
'address': 'sumber IP',
|
||||||
|
'description': 'keterangan',
|
||||||
|
'browser': 'peramban',
|
||||||
|
'create_time': 'menciptakan waktu',
|
||||||
|
'err_del': 'detail pengecualian',
|
||||||
|
'see_del': 'melihat rincian',
|
||||||
|
'time': 'waktu permintaan',
|
||||||
|
'clear': 'Jernih'
|
||||||
|
},
|
||||||
|
'msg': {
|
||||||
|
'm1': 'Apakah Anda yakin untuk menghapus semua log operasi?'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
20
lms/nladmin-ui/src/i18n/langs/log/error/zh.js
Normal file
20
lms/nladmin-ui/src/i18n/langs/log/error/zh.js
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
export default {
|
||||||
|
'ErrorLog': {
|
||||||
|
'table': {
|
||||||
|
'method': '请求方法',
|
||||||
|
'params': '请求参数',
|
||||||
|
'username': '用户名',
|
||||||
|
'address': 'IP来源',
|
||||||
|
'description': '描述',
|
||||||
|
'browser': '浏览器',
|
||||||
|
'create_time': '创建日期',
|
||||||
|
'err_del': '异常详情',
|
||||||
|
'see_del': '查看详情',
|
||||||
|
'time': '请求耗时',
|
||||||
|
'clear': '清空'
|
||||||
|
},
|
||||||
|
'msg': {
|
||||||
|
'm1': '确认清空所有操作日志吗?'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
21
lms/nladmin-ui/src/i18n/langs/online/en.js
Normal file
21
lms/nladmin-ui/src/i18n/langs/online/en.js
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
export default {
|
||||||
|
'Online': {
|
||||||
|
'title': 'Online User',
|
||||||
|
'table': {
|
||||||
|
'userName': 'userName',
|
||||||
|
'nickName': 'nickName',
|
||||||
|
'dept': 'department',
|
||||||
|
'ip': 'IP',
|
||||||
|
'address': 'login location',
|
||||||
|
'browser': 'browser',
|
||||||
|
'loginTime': 'login time',
|
||||||
|
'forced': 'Force Quit'
|
||||||
|
},
|
||||||
|
'msg': {
|
||||||
|
'm1': 'Are you sure you want to force logout on this use?',
|
||||||
|
'm2': 'Successful forced withdrawal!',
|
||||||
|
'm3_1': 'Confirm the forcibly unselected',
|
||||||
|
'm3_2': 'users?'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
21
lms/nladmin-ui/src/i18n/langs/online/in.js
Normal file
21
lms/nladmin-ui/src/i18n/langs/online/in.js
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
export default {
|
||||||
|
'Online': {
|
||||||
|
'title': 'Pengguna Daring',
|
||||||
|
'table': {
|
||||||
|
'userName': 'nama belakang',
|
||||||
|
'nickName': 'nama panggilan',
|
||||||
|
'dept': 'departemen',
|
||||||
|
'ip': 'IP',
|
||||||
|
'address': 'lokasi masuk',
|
||||||
|
'browser': 'peramban',
|
||||||
|
'loginTime': 'waktu masuk',
|
||||||
|
'forced': 'Keluar Paksa'
|
||||||
|
},
|
||||||
|
'msg': {
|
||||||
|
'm1': 'Apakah Anda yakin ingin memaksa logout pada penggunaan ini?',
|
||||||
|
'm2': 'Penarikan paksa yang berhasil!',
|
||||||
|
'm3_1': 'Konfirmasikan yang tidak dipilih secara paksa',
|
||||||
|
'm3_2': 'pengguna?'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
21
lms/nladmin-ui/src/i18n/langs/online/zh.js
Normal file
21
lms/nladmin-ui/src/i18n/langs/online/zh.js
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
export default {
|
||||||
|
'Online': {
|
||||||
|
'title': '在线用户',
|
||||||
|
'table': {
|
||||||
|
'userName': '用户名',
|
||||||
|
'nickName': '用户姓名',
|
||||||
|
'dept': '部门',
|
||||||
|
'ip': '登录IP',
|
||||||
|
'address': '登录地点',
|
||||||
|
'browser': '浏览器',
|
||||||
|
'loginTime': '登录时间',
|
||||||
|
'forced': '强退'
|
||||||
|
},
|
||||||
|
'msg': {
|
||||||
|
'm1': '确定强制退出该用户吗?',
|
||||||
|
'm2': '强退成功!',
|
||||||
|
'm3_1': '确认强退选中的',
|
||||||
|
'm3_2': '个用户?'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -88,6 +88,7 @@ export default {
|
|||||||
'Tip14': 'WebSocket连接发生错误',
|
'Tip14': 'WebSocket连接发生错误',
|
||||||
'Tip15': '请输入图标名称',
|
'Tip15': '请输入图标名称',
|
||||||
'Tip16': '不能为空',
|
'Tip16': '不能为空',
|
||||||
|
'Tip17': '请输入你要搜索的内容',
|
||||||
'loading': '数据加载中...'
|
'loading': '数据加载中...'
|
||||||
},
|
},
|
||||||
'WorkOrder': {
|
'WorkOrder': {
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
:loading="crud.delAllLoading"
|
:loading="crud.delAllLoading"
|
||||||
@click="confirmDelAll()"
|
@click="confirmDelAll()"
|
||||||
>
|
>
|
||||||
清空
|
{{ $t('ErrorLog.table.clear') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</crudOperation>
|
</crudOperation>
|
||||||
</div>
|
</div>
|
||||||
@@ -21,32 +21,32 @@
|
|||||||
<el-table-column type="expand">
|
<el-table-column type="expand">
|
||||||
<template slot-scope="props">
|
<template slot-scope="props">
|
||||||
<el-form label-position="left" inline class="demo-table-expand">
|
<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>
|
<span>{{ props.row.method }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="请求参数">
|
<el-form-item :label="$t('ErrorLog.table.params')">
|
||||||
<span>{{ props.row.params }}</span>
|
<span>{{ props.row.params }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</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 prop="request_ip" label="IP" />
|
||||||
<el-table-column show-overflow-tooltip prop="address" label="IP来源" />
|
<el-table-column show-overflow-tooltip prop="address" :label="$t('ErrorLog.table.address')" />
|
||||||
<el-table-column prop="description" label="描述" show-overflow-tooltip />
|
<el-table-column prop="description" :label="$t('ErrorLog.table.description')" show-overflow-tooltip />
|
||||||
<el-table-column prop="browser" label="浏览器" min-width="120" 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="创建日期" min-width="100" 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">
|
<template slot-scope="scope">
|
||||||
<span>{{ parseTime(scope.row.create_time) }}</span>
|
<span>{{ parseTime(scope.row.create_time) }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="异常详情" width="100px">
|
<el-table-column :label="$t('ErrorLog.table.err_del')" width="150px">
|
||||||
<template slot-scope="scope">
|
<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>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</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>
|
<pre v-highlightjs="errorInfo"><code class="java" /></pre>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<!--分页组件-->
|
<!--分页组件-->
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
:loading="crud.delAllLoading"
|
:loading="crud.delAllLoading"
|
||||||
@click="confirmDelAll()"
|
@click="confirmDelAll()"
|
||||||
>
|
>
|
||||||
清空
|
{{ $t('ErrorLog.table.clear') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</crudOperation>
|
</crudOperation>
|
||||||
</div>
|
</div>
|
||||||
@@ -21,28 +21,28 @@
|
|||||||
<el-table-column type="expand">
|
<el-table-column type="expand">
|
||||||
<template slot-scope="props">
|
<template slot-scope="props">
|
||||||
<el-form label-position="left" inline class="demo-table-expand">
|
<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>
|
<span>{{ props.row.method }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="请求参数">
|
<el-form-item :label="$t('ErrorLog.table.params')">
|
||||||
<span>{{ props.row.params }}</span>
|
<span>{{ props.row.params }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</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 prop="request_ip" label="IP" />
|
||||||
<el-table-column show-overflow-tooltip prop="address" label="IP来源" />
|
<el-table-column show-overflow-tooltip prop="address" :label="$t('ErrorLog.table.address')" />
|
||||||
<el-table-column prop="description" label="描述" show-overflow-tooltip />
|
<el-table-column prop="description" :label="$t('ErrorLog.table.description')" show-overflow-tooltip />
|
||||||
<el-table-column prop="browser" label="浏览器" min-width="120" 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="请求耗时" align="center">
|
<el-table-column prop="time" :label="$t('ErrorLog.table.time')" align="center">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-tag v-if="scope.row.time <= 300">{{ scope.row.time }}ms</el-tag>
|
<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-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>
|
<el-tag v-else type="danger">{{ scope.row.time }}ms</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</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">
|
<template slot-scope="scope">
|
||||||
<span>{{ parseTime(scope.row.create_time) }}</span>
|
<span>{{ parseTime(scope.row.create_time) }}</span>
|
||||||
</template>
|
</template>
|
||||||
@@ -59,6 +59,7 @@ import { delAllInfo } from '@/api/monitor/log'
|
|||||||
import CRUD, { presenter } from '@crud/crud'
|
import CRUD, { presenter } from '@crud/crud'
|
||||||
import crudOperation from '@crud/CRUD.operation'
|
import crudOperation from '@crud/CRUD.operation'
|
||||||
import pagination from '@crud/Pagination'
|
import pagination from '@crud/Pagination'
|
||||||
|
import i18n from "@/i18n";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Log',
|
name: 'Log',
|
||||||
@@ -77,9 +78,9 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
confirmDelAll() {
|
confirmDelAll() {
|
||||||
this.$confirm(`确认清空所有操作日志吗?`, '提示', {
|
this.$confirm(i18n.t('ErrorLog.msg.m1'), i18n.t('common.Operate'), {
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: i18n.t('common.Confirm'),
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: i18n.t('common.Cancel'),
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.crud.delAllLoading = true
|
this.crud.delAllLoading = true
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
v-model="query.blurry"
|
v-model="query.blurry"
|
||||||
clearable
|
clearable
|
||||||
size="mini"
|
size="mini"
|
||||||
placeholder="请输入你要搜索的内容"
|
:placeholder="$t('common.Tip17')"
|
||||||
style="width: 200px;"
|
style="width: 200px;"
|
||||||
class="filter-item"
|
class="filter-item"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -16,38 +16,38 @@
|
|||||||
:disabled="crud.selections.length === 0"
|
:disabled="crud.selections.length === 0"
|
||||||
@click="doDelete(crud.selections)"
|
@click="doDelete(crud.selections)"
|
||||||
>
|
>
|
||||||
强退
|
{{ $t('Online.table.forced') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</crudOperation>
|
</crudOperation>
|
||||||
</div>
|
</div>
|
||||||
<!--表格渲染-->
|
<!--表格渲染-->
|
||||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
<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 type="selection" width="55" />
|
||||||
<el-table-column prop="userName" label="用户名" />
|
<el-table-column prop="userName" :label="$t('Online.table.userName')" />
|
||||||
<el-table-column prop="nickName" label="用户姓名" />
|
<el-table-column prop="nickName" :label="$t('Online.table.nickName')" />
|
||||||
<el-table-column prop="dept" label="部门" />
|
<el-table-column prop="dept" :label="$t('Online.table.dept')" />
|
||||||
<el-table-column prop="ip" label="登录IP" />
|
<el-table-column prop="ip" :label="$t('Online.table.ip')" />
|
||||||
<el-table-column show-overflow-tooltip prop="address" label="登录地点" />
|
<el-table-column show-overflow-tooltip prop="address" :label="$t('Online.table.address')" />
|
||||||
<el-table-column prop="browser" label="浏览器" width="145px" />
|
<el-table-column prop="browser" :label="$t('Online.table.browser')" width="145px" />
|
||||||
<el-table-column prop="loginTime" label="登录时间" min-width="110" show-overflow-tooltip>
|
<el-table-column prop="loginTime" :label="$t('Online.table.loginTime')" min-width="110" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ parseTime(scope.row.loginTime) }}</span>
|
<span>{{ parseTime(scope.row.loginTime) }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</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">
|
<template slot-scope="scope">
|
||||||
<el-popover
|
<el-popover
|
||||||
:ref="scope.$index"
|
:ref="scope.$index"
|
||||||
v-permission="['admin']"
|
v-permission="['admin']"
|
||||||
placement="top"
|
placement="top"
|
||||||
width="180"
|
width="180px"
|
||||||
>
|
>
|
||||||
<p>确定强制退出该用户吗?</p>
|
<p>{{ $t('Online.msg.m1') }}</p>
|
||||||
<div style="text-align: right; margin: 0">
|
<div style="text-align: right; margin: 0">
|
||||||
<el-button size="mini" type="text" @click="$refs[scope.$index].doClose()">取消</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)">确定</el-button>
|
<el-button :loading="delLoading" type="primary" size="mini" @click="delMethod(scope.row, scope.$index)">{{ $t('common.Confirm') }}</el-button>
|
||||||
</div>
|
</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>
|
</el-popover>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -63,12 +63,13 @@ import CRUD, { presenter, header, crud } from '@crud/crud'
|
|||||||
import rrOperation from '@crud/RR.operation'
|
import rrOperation from '@crud/RR.operation'
|
||||||
import crudOperation from '@crud/CRUD.operation'
|
import crudOperation from '@crud/CRUD.operation'
|
||||||
import pagination from '@crud/Pagination'
|
import pagination from '@crud/Pagination'
|
||||||
|
import i18n from "@/i18n";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'OnlineUser',
|
name: 'OnlineUser',
|
||||||
components: { pagination, crudOperation, rrOperation },
|
components: { pagination, crudOperation, rrOperation },
|
||||||
cruds() {
|
cruds() {
|
||||||
return CRUD({ url: 'auth/online', title: '在线用户' })
|
return CRUD({ url: 'auth/online', title: i18n.t('Online.title') })
|
||||||
},
|
},
|
||||||
mixins: [presenter(), header(), crud()],
|
mixins: [presenter(), header(), crud()],
|
||||||
data() {
|
data() {
|
||||||
@@ -78,7 +79,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.crud.msg.del = '强退成功!'
|
this.crud.msg.del = i18n.t('Online.msg.m2')
|
||||||
this.crud.optShow = {
|
this.crud.optShow = {
|
||||||
add: false,
|
add: false,
|
||||||
edit: false,
|
edit: false,
|
||||||
@@ -88,9 +89,9 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
doDelete(datas) {
|
doDelete(datas) {
|
||||||
this.$confirm(`确认强退选中的${datas.length}个用户?`, '提示', {
|
this.$confirm(i18n.t('Online.m3_1') + `${datas.length}` + i18n.t('Online.m3_1'), i18n.t('common.Tips'), {
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: i18n.t('common.Confirm'),
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: i18n.t('common.Cancel'),
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.delMethod(datas)
|
this.delMethod(datas)
|
||||||
|
|||||||
@@ -11,10 +11,10 @@
|
|||||||
label-width="90px"
|
label-width="90px"
|
||||||
label-suffix=":"
|
label-suffix=":"
|
||||||
>
|
>
|
||||||
<el-form-item label="分类名称">
|
<el-form-item :label="$t('BasicClassification.table.name')">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="query.class_code"
|
v-model="query.class_code"
|
||||||
placeholder="请选择分类名称"
|
:placeholder="$t('BasicClassification.placeholder.p1')"
|
||||||
clearable
|
clearable
|
||||||
filterable
|
filterable
|
||||||
size="mini"
|
size="mini"
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
icon="el-icon-s-operation"
|
icon="el-icon-s-operation"
|
||||||
@click="ToExpandall"
|
@click="ToExpandall"
|
||||||
>
|
>
|
||||||
全部展开
|
{{ $t('BasicClassification.button.all_open') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</crudOperation>
|
</crudOperation>
|
||||||
<!--表单组件-->
|
<!--表单组件-->
|
||||||
@@ -52,37 +52,37 @@
|
|||||||
:before-close="crud.cancelCU"
|
:before-close="crud.cancelCU"
|
||||||
:visible.sync="crud.status.cu > 0"
|
:visible.sync="crud.status.cu > 0"
|
||||||
:title="crud.status.title"
|
:title="crud.status.title"
|
||||||
width="500px"
|
:width="computedLabelWidth"
|
||||||
>
|
>
|
||||||
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="80px">
|
<el-form ref="form" :model="form" :rules="rules" size="mini" :label-width="computedFormLabelWidth">
|
||||||
<el-form-item label="分类编码" prop="class_code">
|
<el-form-item :label="$t('BasicClassification.table.code')" prop="class_code">
|
||||||
<el-input v-model="form.class_code" style="width: 370px;" />
|
<el-input v-model="form.class_code" style="width: 370px;" />
|
||||||
</el-form-item>
|
</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-input v-model="form.class_name" style="width: 370px;" />
|
||||||
</el-form-item>
|
</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-input v-model="form.class_desc" style="width: 370px;" />
|
||||||
</el-form-item>
|
</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-group v-model="form.isTop" style="width: 140px">
|
||||||
<el-radio label="1">是</el-radio>
|
<el-radio label="1">{{ $t('common.Yes') }}</el-radio>
|
||||||
<el-radio label="0">否</el-radio>
|
<el-radio label="0">{{ $t('common.No') }}</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</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
|
<treeselect
|
||||||
v-model="form.parent_class_id"
|
v-model="form.parent_class_id"
|
||||||
:load-options="loadClass"
|
:load-options="loadClass"
|
||||||
:options="classes"
|
:options="classes"
|
||||||
style="width: 370px;"
|
style="width: 370px;"
|
||||||
placeholder="选择上级类目"
|
:placeholder="$t('BasicClassification.placeholder.p2')"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button type="text" @click="crud.cancelCU">取消</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">确认</el-button>
|
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">{{ $t('common.Confirm') }}</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<!--表格渲染-->
|
<!--表格渲染-->
|
||||||
@@ -98,19 +98,19 @@
|
|||||||
@select-all="crud.selectAllChange"
|
@select-all="crud.selectAllChange"
|
||||||
@selection-change="crud.selectionChangeHandler"
|
@selection-change="crud.selectionChangeHandler"
|
||||||
>
|
>
|
||||||
<el-table-column prop="class_code" label="分类编码" />
|
<el-table-column prop="class_code" :label="$t('BasicClassification.table.code')" />
|
||||||
<el-table-column prop="class_name" label="分类名称" />
|
<el-table-column prop="class_name" :label="$t('BasicClassification.table.name')" />
|
||||||
<el-table-column prop="class_desc" label="分类简要描述" />
|
<el-table-column prop="class_desc" :label="$t('BasicClassification.table.description')" />
|
||||||
<el-table-column prop="update_name" label="修改人" />
|
<el-table-column prop="update_name" :label="$t('BasicClassification.table.update_user')" />
|
||||||
<el-table-column prop="update_time" label="修改时间" min-width="100" show-overflow-tooltip />
|
<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="是否可修改">
|
<el-table-column prop="is_modify" :label="$t('BasicClassification.table.is_modify')">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{scope.row.is_modify?'是':'否'}}
|
{{ scope.row.is_modify ? $t('common.Yes') : $t('common.No') }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
v-permission="['admin','Classstandard:edit','Classstandard:del']"
|
v-permission="['admin','Classstandard:edit','Classstandard:del']"
|
||||||
label="操作"
|
:label="$t('common.Operate')"
|
||||||
width="250px"
|
width="250px"
|
||||||
align="center"
|
align="center"
|
||||||
>
|
>
|
||||||
@@ -121,10 +121,14 @@
|
|||||||
:permission="permission"
|
:permission="permission"
|
||||||
:disabled-edit="scope.row.is_modify === '0'"
|
:disabled-edit="scope.row.is_modify === '0'"
|
||||||
:disabled-dle="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-outline" @click="crud.toAddAndData(addSibling(scope.row))">
|
||||||
<el-button slot="right" size="mini" type="text" icon="el-icon-circle-plus" @click="crud.toAddAndData(addChildren(scope.row))">新增子级</el-button>
|
{{ $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>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@@ -143,6 +147,7 @@ import crudOperation from '@crud/CRUD.operation.vue'
|
|||||||
import udOperation from '@crud/UD.operation.vue'
|
import udOperation from '@crud/UD.operation.vue'
|
||||||
import rrOperation from '@crud/RR.operation.vue'
|
import rrOperation from '@crud/RR.operation.vue'
|
||||||
import pagination from '@crud/Pagination.vue'
|
import pagination from '@crud/Pagination.vue'
|
||||||
|
import i18n from "@/i18n";
|
||||||
|
|
||||||
let defaultForm = {
|
let defaultForm = {
|
||||||
id: null,
|
id: null,
|
||||||
@@ -175,7 +180,7 @@ export default {
|
|||||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||||
cruds() {
|
cruds() {
|
||||||
return CRUD({
|
return CRUD({
|
||||||
title: '基础类别',
|
title: i18n.t('BasicClassification.title'),
|
||||||
url: 'api/Classstandard',
|
url: 'api/Classstandard',
|
||||||
idField: 'class_id',
|
idField: 'class_id',
|
||||||
sort: 'class_id,desc',
|
sort: 'class_id,desc',
|
||||||
@@ -193,38 +198,54 @@ export default {
|
|||||||
permission: {},
|
permission: {},
|
||||||
rules: {
|
rules: {
|
||||||
class_id: [
|
class_id: [
|
||||||
{ required: true, message: '不能为空', trigger: 'blur' }
|
{ required: true, message: i18n.t('BasicClassification.rules.NotNull'), trigger: 'blur' }
|
||||||
],
|
],
|
||||||
path_code: [
|
path_code: [
|
||||||
{ required: true, message: '不能为空', trigger: 'blur' }
|
{ required: true, message: i18n.t('BasicClassification.rules.NotNull'), trigger: 'blur' }
|
||||||
],
|
],
|
||||||
class_code: [
|
class_code: [
|
||||||
{ required: true, message: '不能为空', trigger: 'blur' }
|
{ required: true, message: i18n.t('BasicClassification.rules.NotNull'), trigger: 'blur' }
|
||||||
],
|
],
|
||||||
class_name: [
|
class_name: [
|
||||||
{ required: true, message: '不能为空', trigger: 'blur' }
|
{ required: true, message: i18n.t('BasicClassification.rules.NotNull'), trigger: 'blur' }
|
||||||
],
|
],
|
||||||
is_leaf: [
|
is_leaf: [
|
||||||
{ required: true, message: '不能为空', trigger: 'blur' }
|
{ required: true, message: i18n.t('BasicClassification.rules.NotNull'), trigger: 'blur' }
|
||||||
],
|
],
|
||||||
is_modify: [
|
is_modify: [
|
||||||
{ required: true, message: '不能为空', trigger: 'blur' }
|
{ required: true, message: i18n.t('BasicClassification.rules.NotNull'), trigger: 'blur' }
|
||||||
],
|
],
|
||||||
is_delete: [
|
is_delete: [
|
||||||
{ required: true, message: '不能为空', trigger: 'blur' }
|
{ required: true, message: i18n.t('BasicClassification.rules.NotNull'), trigger: 'blur' }
|
||||||
],
|
],
|
||||||
create_id: [
|
create_id: [
|
||||||
{ required: true, message: '不能为空', trigger: 'blur' }
|
{ required: true, message: i18n.t('BasicClassification.rules.NotNull'), trigger: 'blur' }
|
||||||
],
|
],
|
||||||
create_name: [
|
create_name: [
|
||||||
{ required: true, message: '不能为空', trigger: 'blur' }
|
{ required: true, message: i18n.t('BasicClassification.rules.NotNull'), trigger: 'blur' }
|
||||||
],
|
],
|
||||||
create_time: [
|
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() {
|
created() {
|
||||||
this.getClassNames() // 获取分类
|
this.getClassNames() // 获取分类
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user