Browse Source

feat: [系统管理] 字典双语

lkf
memorylkf 2 months ago
parent
commit
54799cf6ba
7 changed files with 100 additions and 67 deletions
  1. +5
    -2
      src/lang/en.js
  2. +9
    -0
      src/lang/en/system/dict.js
  3. +4
    -1
      src/lang/zh.js
  4. +9
    -0
      src/lang/zh/system/dict.js
  5. +3
    -1
      src/utils/menu.js
  6. +39
    -33
      src/views/system/dict/data.vue
  7. +31
    -30
      src/views/system/dict/index.vue

+ 5
- 2
src/lang/en.js View File

@ -11,6 +11,8 @@ import dept from './en/system/dept'
import user from './en/system/user'
// 模板管理
import template from './en/system/template'
// 字典管理
import dict from './en/system/dict'
// 公共模板语言配置
import commonTemplate from './en/template/commonTemplate'
//色谱模板
@ -91,7 +93,7 @@ export default {
close: 'Close',
operate: 'Action',
delete: 'Delete',
detail: 'Dtail',
detail: 'Detail',
placeholderInput: 'Please Input',
placeholderSelect: 'Please Select',
confirmDelete: 'Confirm Delete?',
@ -151,7 +153,8 @@ export default {
dept,
user,
template,
systemLog
systemLog,
dict
},
business: {
home: home,

+ 9
- 0
src/lang/en/system/dict.js View File

@ -0,0 +1,9 @@
export default {
name: 'Name',
type: 'Type',
bq: 'Label',
jz: 'Value',
sort: 'Sort',
refresh: 'Refresh Cache'
}

+ 4
- 1
src/lang/zh.js View File

@ -11,6 +11,8 @@ import dept from './zh/system/dept'
import user from './zh/system/user'
// 模板管理
import template from './zh/system/template'
// 字典管理
import dict from './zh/system/dict'
// 公共模板语言配置
import commonTemplate from './zh/template/commonTemplate'
//色谱模板
@ -147,7 +149,8 @@ export default {
dept,
user,
template,
systemLog
systemLog,
dict
},
business: {
home: home,

+ 9
- 0
src/lang/zh/system/dict.js View File

@ -0,0 +1,9 @@
export default {
name: '名称',
type: '类型',
bq: '标签',
jz: '键值',
sort: '排序',
refresh: '刷新缓存'
}

+ 3
- 1
src/utils/menu.js View File

@ -34,7 +34,9 @@ let menuObj = {
'部门/学科管理': 'Dep & Dis',
模板管理: 'Function',
字典管理: 'Term Book',
日志管理: 'Log'
日志管理: 'Log',
字典数据: 'Term Book Data'
}
export function getMenuName(menuName) {
if (!this.$i18n.locale || this.$i18n.locale === 'zh_CN') {

+ 39
- 33
src/views/system/dict/data.vue View File

@ -1,7 +1,7 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="字典名称" prop="dictType">
<el-form-item :label="$t('page.system.dict.name')" prop="dictType">
<el-select v-model="queryParams.dictType">
<el-option
v-for="item in typeOptions"
@ -11,10 +11,10 @@
/>
</el-select>
</el-form-item>
<el-form-item label="标签" prop="dictLabel">
<el-form-item :label="$t('page.system.dict.bq')" prop="dictLabel">
<el-input
v-model="queryParams.dictLabel"
placeholder="请输入"
:placeholder="$t('form.placeholderInput')"
clearable
@keyup.enter.native="handleQuery"
/>
@ -30,8 +30,8 @@
</el-select>
</el-form-item> -->
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">查询</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{ $t('form.search') }}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{ $t('form.reset') }}</el-button>
</el-form-item>
</el-form>
@ -44,7 +44,7 @@
@click="handleAdd"
v-hasPermi="['system:dict:add','system:dict:edit']"
>新增</el-button>
>{{$t('form.add')}}</el-button>
</el-col>
<!-- <el-col :span="1.5">
<el-button
@ -85,7 +85,7 @@
icon="el-icon-close"
@click="handleClose"
>关闭</el-button>
>{{$t('form.close')}}</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
@ -93,46 +93,46 @@
<el-table v-loading="loading" :data="dataList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<!-- <el-table-column label="字典编码" align="center" prop="dictCode" /> -->
<el-table-column label="标签" align="center" prop="dictLabel">
<el-table-column :label="$t('page.system.dict.bq')" align="center" prop="dictLabel">
<template slot-scope="scope">
<span v-if="(scope.row.listClass == '' || scope.row.listClass == 'default') && (scope.row.cssClass == '' || scope.row.cssClass == null)">{{ scope.row.dictLabel }}</span>
<el-tag v-else :type="scope.row.listClass == 'primary' ? '' : scope.row.listClass" :class="scope.row.cssClass">{{ scope.row.dictLabel }}</el-tag>
</template>
</el-table-column>
<el-table-column label="键值" align="center" prop="dictValue" />
<el-table-column label="排序" align="center" prop="dictSort" />
<el-table-column :label="$t('page.system.dict.jz')" align="center" prop="dictValue" />
<el-table-column :label="$t('page.system.dict.sort')" align="center" prop="dictSort" />
<!-- <el-table-column label="状态" align="center" prop="status">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
</template>
</el-table-column> -->
<el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" />
<el-table-column :label="$t('form.remark')" align="center" prop="remark" :show-overflow-tooltip="true" />
<!-- <el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column> -->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<el-table-column :label="$t('form.operate')" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
type="text"
@click="handleUpdate(scope.row,false)"
v-hasPermi="['system:dict:edit']"
>编辑</el-button>
>{{$t('form.edit')}}</el-button>
<el-button
type="text"
@click="handleDelete(scope.row)"
v-hasPermi="['system:dict:remove']"
>删除</el-button>
>{{$t('form.delete')}}</el-button>
<el-button
type="text"
@click="handleUpdate(scope.row,true)"
v-hasPermi="['system:dict:query']"
>详情</el-button>
>{{$t('form.detail')}}</el-button>
</template>
</el-table-column>
@ -148,20 +148,20 @@
<!-- 添加或修改参数配置对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="字典类型">
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item :label="$t('page.system.dict.type')+':'">
<el-input v-model="form.dictType" :disabled="true" />
</el-form-item>
<el-form-item label="标签" prop="dictLabel">
<el-input v-model="form.dictLabel" placeholder="请输入数据标签" :readonly="readonly" />
<el-form-item :label="$t('page.system.dict.bq')+':'" prop="dictLabel">
<el-input v-model="form.dictLabel" :placeholder="$t('form.placeholderInput')" :readonly="readonly" />
</el-form-item>
<el-form-item label="键值" prop="dictValue">
<el-input v-model="form.dictValue" placeholder="请输入数据键值" :readonly="readonly" />
<el-form-item :label="$t('page.system.dict.jz')+':'" prop="dictValue">
<el-input v-model="form.dictValue" :placeholder="$t('form.placeholderInput')" :readonly="readonly" />
</el-form-item>
<!-- <el-form-item label="样式属性" prop="cssClass">
<el-input v-model="form.cssClass" placeholder="请输入样式属性" />
</el-form-item> -->
<el-form-item label="排序" prop="dictSort">
<el-form-item :label="$t('page.system.dict.sort')+':'" prop="dictSort">
<el-input-number v-model="form.dictSort" controls-position="right" :min="0" :disabled="readonly" />
</el-form-item>
<!-- <el-form-item label="回显样式" prop="listClass">
@ -183,13 +183,13 @@
>{{dict.label}}</el-radio>
</el-radio-group>
</el-form-item> -->
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" :readonly="readonly"></el-input>
<el-form-item :label="$t('form.remark')+':'" prop="remark">
<el-input v-model="form.remark" type="textarea" :placeholder="$t('form.placeholderInput')" :readonly="readonly"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer" v-if="!readonly">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
<el-button type="primary" @click="submitForm">{{$t('form.saveConfirm')}}</el-button>
<el-button @click="cancel">{{$t('form.cancel')}}</el-button>
</div>
</el-dialog>
</div>
@ -266,15 +266,17 @@ export default {
//
rules: {
dictLabel: [
{ required: true, message: "标签不能为空", trigger: "blur" }
{ required: true, message: this.$t('form.placeholderInput'), trigger: "blur" }
],
dictValue: [
{ required: true, message: "键值不能为空", trigger: "blur" }
{ required: true, message: this.$t('form.placeholderInput'), trigger: "blur" }
],
dictSort: [
{ required: true, message: "顺序不能为空", trigger: "blur" }
{ required: true, message: this.$t('form.placeholderInput'), trigger: "blur" }
]
}
},
readonly:false,
}
},
created() {
@ -343,9 +345,10 @@ export default {
},
/** 新增按钮操作 */
handleAdd() {
this.readonly = false
this.reset()
this.open = true
this.title = "添加字典数据"
this.title = this.$t('form.add')
this.form.dictType = this.queryParams.dictType
},
//
@ -357,12 +360,15 @@ export default {
/** 修改按钮操作 */
handleUpdate(row,readonly) {
this.readonly = readonly
if(readonly){
this.saveSimpleLog({name:row.dictLabel,nameEn:row.dictLabel,jcmc:'字典数据详情',jcmcEn:'Term Book Data Detail'})
}
this.reset()
const dictCode = row.dictCode || this.ids
getData(dictCode).then(response => {
this.form = response.data
this.open = true
this.title = (readonly?'':'编辑')+"字典数据"
this.title = readonly?this.$t('form.detail'):this.$t('form.edit')
})
},
/** 提交按钮 */
@ -388,7 +394,7 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const dictCodes = row.dictCode || this.ids
this.$modal.confirm('是否确认删除字典编码为"' + dictCodes + '"的数据项?').then(function() {
this.$modal.confirm(this.$t('form.confirmDelete')).then(function() {
return delData(dictCodes)
}).then(() => {
this.getList()

+ 31
- 30
src/views/system/dict/index.vue View File

@ -1,19 +1,19 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="名称" prop="dictName">
<el-form-item :label="$t('page.system.dict.name')" prop="dictName">
<el-input
v-model="queryParams.dictName"
placeholder="请输入"
:placeholder="$t('form.placeholderInput')"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="类型" prop="dictType">
<el-form-item :label="$t('page.system.dict.type')" prop="dictType">
<el-input
v-model="queryParams.dictType"
placeholder="请输入"
:placeholder="$t('form.placeholderInput')"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
@ -46,8 +46,8 @@
></el-date-picker>
</el-form-item> -->
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">查询</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{ $t('form.search') }}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{ $t('form.reset') }}</el-button>
</el-form-item>
</el-form>
@ -60,7 +60,7 @@
@click="handleAdd"
v-hasPermi="['system:dict:add']"
>新增</el-button>
>{{$t('form.add')}}</el-button>
</el-col>
<!-- <el-col :span="1.5">
<el-button
@ -102,7 +102,7 @@
@click="handleRefreshCache"
v-hasPermi="['system:dict:refresh']"
>刷新缓存</el-button>
>{{$t('page.system.dict.refresh')}}</el-button>
</el-col>
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->
</el-row>
@ -110,8 +110,8 @@
<el-table v-loading="loading" :data="typeList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<!-- <el-table-column label="字典编号" align="center" prop="dictId" /> -->
<el-table-column label="名称" align="center" prop="dictName" :show-overflow-tooltip="true" />
<el-table-column label="类型" align="center" :show-overflow-tooltip="true">
<el-table-column :label="$t('page.system.dict.name')" align="center" prop="dictName" :show-overflow-tooltip="true" />
<el-table-column :label="$t('page.system.dict.type')" align="center" :show-overflow-tooltip="true">
<template slot-scope="scope">
<router-link v-if="checkPermi(['system:dict:query','system:dict:edit'])" :to="'/system/dict-data/index/' + scope.row.dictId" class="link-type">
<span>{{ scope.row.dictType }}</span>
@ -124,32 +124,32 @@
<dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
</template>
</el-table-column> -->
<el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" />
<el-table-column :label="$t('form.remark')" align="center" prop="remark" :show-overflow-tooltip="true" />
<!-- <el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column> -->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<el-table-column :label="$t('form.operate')" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
type="text"
@click="handleUpdate(scope.row,false)"
v-hasPermi="['system:dict:edit']"
>编辑</el-button>
>{{$t('form.edit')}}</el-button>
<el-button
type="text"
@click="handleDelete(scope.row)"
v-hasPermi="['system:dict:remove']"
>删除</el-button>
>{{$t('form.delete')}}</el-button>
<el-button
type="text"
@click="handleUpdate(scope.row,true)"
v-hasPermi="['system:dict:query']"
>详情</el-button>
>{{$t('form.detail')}}</el-button>
</template>
</el-table-column>
</el-table>
@ -164,12 +164,12 @@
<!-- 添加或修改参数配置对话框 -->
<el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="名称" prop="dictName">
<el-input v-model="form.dictName" placeholder="请输入" :readonly="readonly" />
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item :label="$t('page.system.dict.name')+':'" prop="dictName">
<el-input v-model="form.dictName" :placeholder="$t('form.placeholderInput')" :readonly="readonly" />
</el-form-item>
<el-form-item label="类型" prop="dictType">
<el-input v-model="form.dictType" placeholder="请输入" :readonly="readonly" />
<el-form-item :label="$t('page.system.dict.type')+':'" prop="dictType">
<el-input v-model="form.dictType" :placeholder="$t('form.placeholderInput')" :readonly="readonly" />
</el-form-item>
<!-- <el-form-item label="状态" prop="status">
<el-radio-group v-model="form.status" :disabled="readonly">
@ -180,13 +180,13 @@
>{{dict.label}}</el-radio>
</el-radio-group>
</el-form-item> -->
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" :readonly="readonly"></el-input>
<el-form-item :label="$t('form.remark')+':'" prop="remark">
<el-input v-model="form.remark" type="textarea" :placeholder="$t('form.placeholderInput')" :readonly="readonly"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer" v-if="!readonly">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
<el-button type="primary" @click="submitForm">{{$t('form.saveConfirm')}}</el-button>
<el-button @click="cancel">{{$t('form.cancel')}}</el-button>
</div>
</el-dialog>
</div>
@ -234,10 +234,10 @@ export default {
//
rules: {
dictName: [
{ required: true, message: "名称不能为空", trigger: "blur" }
{ required: true, message: this.$t('form.placeholderInput'), trigger: "blur" }
],
dictType: [
{ required: true, message: "类型不能为空", trigger: "blur" }
{ required: true, message: this.$t('form.placeholderInput'), trigger: "blur" }
]
},
@ -288,9 +288,10 @@ export default {
},
/** 新增按钮操作 */
handleAdd() {
this.readonly = false
this.reset()
this.open = true
this.title = "添加字典类型"
this.title = this.$t('form.add')
},
//
handleSelectionChange(selection) {
@ -302,14 +303,14 @@ export default {
handleUpdate(row,readonly) {
this.readonly = readonly
if(readonly){
this.saveSimpleLog({name:row.dictName,nameEn:row.dictName,jcmc:'字典详情',jcmcEn:'Dict Detail'})
this.saveSimpleLog({name:row.dictName,nameEn:row.dictName,jcmc:'字典详情',jcmcEn:'Term Book Detail'})
}
this.reset()
const dictId = row.dictId || this.ids
getType(dictId).then(response => {
this.form = response.data
this.open = true
this.title = (readonly?'':'编辑')+"字典类型"
this.title = readonly?this.$t('form.detail'):this.$t('form.edit')
})
},
/** 提交按钮 */
@ -333,7 +334,7 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const dictIds = row.dictId || this.ids
this.$modal.confirm('是否确认删除字典编号为"' + dictIds + '"的数据项?').then(function() {
this.$modal.confirm(this.$t('form.confirmDelete')).then(function() {
return delType(dictIds)
}).then(() => {
this.getList()

Loading…
Cancel
Save