feat: 国际化

This commit is contained in:
2024-04-02 17:17:41 +08:00
parent f9aceb9eb8
commit 3afe6dda6c
20 changed files with 315 additions and 91 deletions

View File

@@ -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'
} }
} }
} }

View File

@@ -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'
} }
} }
} }

View File

@@ -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': '选择上级类目'
} }
} }
} }

View File

@@ -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
} }

View File

@@ -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': {

View File

@@ -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
} }

View File

@@ -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': {

View File

@@ -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
} }

View 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?'
}
}
}

View 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?'
}
}
}

View 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': '确认清空所有操作日志吗?'
}
}
}

View 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?'
}
}
}

View 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?'
}
}
}

View 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': '个用户?'
}
}
}

View File

@@ -88,6 +88,7 @@ export default {
'Tip14': 'WebSocket连接发生错误', 'Tip14': 'WebSocket连接发生错误',
'Tip15': '请输入图标名称', 'Tip15': '请输入图标名称',
'Tip16': '不能为空', 'Tip16': '不能为空',
'Tip17': '请输入你要搜索的内容',
'loading': '数据加载中...' 'loading': '数据加载中...'
}, },
'WorkOrder': { 'WorkOrder': {

View File

@@ -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>
<!--分页组件--> <!--分页组件-->

View File

@@ -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

View File

@@ -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"
/> />

View File

@@ -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)

View File

@@ -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() // 获取分类
}, },