Browse Source

多语言配置

master
xh-pan1 1 year ago
parent
commit
44d3c04a9c
  1. 39
      package-lock.json
  2. 2
      package.json
  3. 37
      src/api/lang.js
  4. 2
      src/styles/elDialog.scss
  5. 258
      src/views/langinfo/index.vue
  6. 39
      src/views/renovation/commdityClass/Edit.vue
  7. 16
      src/views/renovation/commdityClass/index.vue
  8. 44
      src/views/setup/businessMenus/index.vue
  9. 47
      src/views/setup/tabs/index.vue
  10. 11867
      yarn.lock

39
package-lock.json

@ -17,7 +17,6 @@
"fuse.js": "^6.4.3",
"install": "^0.13.0",
"js-cookie": "2.2.0",
"js-tokens": "^8.0.1",
"mime": "^3.0.0",
"normalize.css": "7.0.0",
"nprogress": "0.2.0",
@ -5260,11 +5259,24 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001168",
"resolved": "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001168.tgz",
"integrity": "sha1-b80JjBOdADub1ITLucomy4mQf5o=",
"version": "1.0.30001570",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz",
"integrity": "sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==",
"dev": true,
"license": "CC-BY-4.0"
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/browserslist"
},
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/caniuse-lite"
},
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
]
},
"node_modules/capture-exit": {
"version": "2.0.0",
@ -12437,12 +12449,6 @@
"node": ">=1.0.0"
}
},
"node_modules/js-tokens": {
"version": "8.0.1",
"resolved": "https://repo.huaweicloud.com/repository/npm/js-tokens/-/js-tokens-8.0.1.tgz",
"integrity": "sha512-3AGrZT6tuMm1ZWWn9mLXh7XMfi2YtiLNPALCVxBCiUVq0LD1OQMxV/AdS/s7rLJU5o9i/jBZw/N4vXXL5dm29A==",
"license": "MIT"
},
"node_modules/js-yaml": {
"version": "3.14.1",
"resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.14.1.tgz",
@ -25355,9 +25361,9 @@
}
},
"caniuse-lite": {
"version": "1.0.30001168",
"resolved": "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001168.tgz",
"integrity": "sha1-b80JjBOdADub1ITLucomy4mQf5o=",
"version": "1.0.30001570",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz",
"integrity": "sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==",
"dev": true
},
"capture-exit": {
@ -30630,11 +30636,6 @@
"easy-stack": "^1.0.1"
}
},
"js-tokens": {
"version": "8.0.1",
"resolved": "https://repo.huaweicloud.com/repository/npm/js-tokens/-/js-tokens-8.0.1.tgz",
"integrity": "sha512-3AGrZT6tuMm1ZWWn9mLXh7XMfi2YtiLNPALCVxBCiUVq0LD1OQMxV/AdS/s7rLJU5o9i/jBZw/N4vXXL5dm29A=="
},
"js-yaml": {
"version": "3.14.1",
"resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.14.1.tgz",

2
package.json

@ -15,7 +15,7 @@
},
"dependencies": {
"axios": "0.18.1",
"core-js": "3.6.5",
"core-js": "^3.34.0",
"echarts": "^4.9.0",
"element-ui": "^2.15.6",
"es6-promise": "^4.2.8",

37
src/api/lang.js

@ -0,0 +1,37 @@
import request from '@/utils/request'
// 获取所有语言
export function langInfoGetAll(data) {
return request({
url: '/cerePlatformLangInfo/getAll',
method: 'post',
data
})
}
// 保存语言
export function langInfoSave(data) {
return request({
url: '/cerePlatformLangInfo/save',
method: 'post',
data
})
}
// 保存语言
export function langInfoUpdate(data) {
return request({
url: '/cerePlatformLangInfo/update',
method: 'post',
data
})
}
// 删除语言
export function langInfoDelete(data) {
return request({
url: '/cerePlatformLangInfo/delete',
method: 'post',
data
})
}

2
src/styles/elDialog.scss

@ -80,7 +80,7 @@ font-weight: 500;
font-weight: 400;
color: #404F64;
line-height: 36px;
text-align: left;
text-align: right;
}
.el-radio__label {

258
src/views/langinfo/index.vue

@ -0,0 +1,258 @@
<!-- -->
<template>
<div class="userStyle">
<!-- 搜索 -->
<div class="formSearch">
<el-form :inline="true" :model="formInline">
<el-form-item label="键值">
<el-input v-model="formInline.langKey" maxlength="20" placeholder="请输入键值" />
</el-form-item>
<el-form-item label="中文">
<el-input v-model="formInline.langZh" maxlength="20" placeholder="请输入中文" />
</el-form-item>
<el-form-item label="英文">
<el-input v-model="formInline.langEn" maxlength="20" placeholder="请输入英文" />
</el-form-item>
<el-form-item>
<el-button type="primary" plain @click="search">查询</el-button>
<el-button type="info" plain @click="clear">重置</el-button>
<el-button type="success" plain @click="add">新增语言包</el-button>
</el-form-item>
</el-form>
</div>
<!-- 表格 -->
<div class="tableBox">
<el-table
ref="multipleTable"
:data="tableData"
border
:header-cell-style="{ background: '#EEF3FF', color: '#333333' }"
tooltip-effect="dark"
style="width: 100%"
>
<el-table-column label="键值" width="220">
<template slot-scope="scope">{{ scope.row.langKey }}</template>
</el-table-column>
<el-table-column prop="langZh" label="中文" />
<el-table-column prop="langEn" label="英文" />
<el-table-column prop="langDesc" label="说明" />
<el-table-column label="操作" show-overflow-tooltip>
<template slot-scope="scope">
<div class="btnList">
<el-button type="text" @click="edit(scope.row)">编辑</el-button>
<el-button type="text" @click="del(scope.row)">删除</el-button>
</div>
</template>
</el-table-column>
</el-table>
<div class="fenye">
<el-pagination
:current-page="currentPage"
:page-sizes="[10, 20, 50, 100]"
:page-size="10"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
</div>
</div>
<!-- *************对话框开始************* -->
<!-- 新增角语言信息 -->
<el-dialog
:title="userState ? '新增语言信息' : '修改语言信息'"
:visible.sync="addFormDialog"
width="30%"
center
:close-on-click-modal="false"
>
<!-- 新增语言信息 -->
<div>
<el-form ref="langRules" :model="addForm" label-width="80px" :rules="langRules">
<el-form-item label="键值" prop="langKey">
<el-input v-model="addForm.langKey" maxlength="800" placeholder="请输入键值" />
</el-form-item>
<el-form-item label="中文" prop="langZh">
<el-input v-model="addForm.langZh" maxlength="800" placeholder="请输入中文" />
</el-form-item>
<el-form-item label="英文" prop="langEn">
<el-input v-model="addForm.langEn" maxlength="800" placeholder="请输入英文" />
</el-form-item>
<el-form-item label="说明" prop="langDesc">
<el-input v-model="addForm.langDesc" maxlength="800" placeholder="请输入说明" />
</el-form-item>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="addFormDialog = false"> </el-button>
<el-button type="primary" @click="addForm_enter('langRules')"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
// jsjsjson
// import from '';
import {
langInfoGetAll,
langInfoSave,
langInfoUpdate,
langInfoDelete
} from '@/api/lang'
export default {
// import使
components: {},
data() {
//
return {
formInline: {
langKey: '', //
langZh: '',
langEn: '',
page: '1', //
pageSize: '10' //
},
total: 1,
tableData: [],
userState: 0,
currentPage: 1,
dialogVisible: false,
addForm: {
id: '',
langKey: '',
langDesc: '',
langZh: '',
langEn: ''
},
addFormDialog: false,
langRules: {
},
roleId: null
}
},
// data
computed: {},
// data
watch: {},
// - 访this
created() {},
// - 访DOM
mounted() {
this.getAll(this.formInline)
},
//
methods: {
handleSizeChange(val) {
this.formInline.pageSize = val
this.getAll(this.formInline)
},
handleCurrentChange(val) {
this.formInline.page = val
this.getAll(this.formInline)
},
//
search() {
this.total = 1
this.formInline.page = 1
this.getAll(this.formInline)
},
//
clear() {
this.formInline = {
langKey: '', //
langZh: '',
langEn: '',
page: '1', //
pageSize: '10' //
}
this.getAll(this.formInline)
},
//
add() {
this.userState = 1
this.addFormDialog = true
this.addForm = {
id: '',
langKey: '',
langDesc: '',
langZh: '',
langEn: ''
}
},
//
addForm_enter(langRules) {
this.$refs[langRules].validate(valid => {
if (valid) {
if (this.userState) {
langInfoSave(this.addForm).then(res => {
if (res.code === '') {
this.$message({
message: '新增成功',
type: 'success'
})
}
this.getAll(this.formInline)
this.addFormDialog = false
})
} else {
langInfoUpdate(this.addForm).then(res => {
if (res.code === '') {
this.$message({
message: '修改成功',
type: 'success'
})
}
this.getAll(this.formInline)
this.addFormDialog = false
})
}
} else {
console.log('error submit!!')
return false
}
})
},
//
edit(row) {
this.addForm = row
this.userState = 0;
this.addFormDialog = true
},
//
async del(row) {
langInfoDelete({ id: row.id }).then(res => {
if (res.code === '') {
this.$message({
type: 'success',
message: '删除成功!'
})
}
this.getAll(this.formInline)
})
},
//
async getAll(formInline) {
const res = await langInfoGetAll(formInline)
this.tableData = res.data.list
this.total = res.data.total
}
}
}
</script>
<style lang='scss' scoped>
//@import url(); css
@import url("../../styles/elDialog.scss");
.userStyle {
background: #FFFFFF;
border-radius: 10px;
padding: 20px;
}
</style>

39
src/views/renovation/commdityClass/Edit.vue

@ -284,12 +284,17 @@ export default {
oneClassifyId
})
const resData = res.data
resData.classifyName_ZH = JSON.parse(resData.classifyNameJson)[
"zh"
];
resData.classifyName_EN = JSON.parse(resData.classifyNameJson)[
"en"
];
if(resData && resData.langInfoMap && resData.langInfoMap['zh']){
resData.classifyName_ZH = resData.langInfoMap['zh'].classifyName;
}else{
resData.classifyName_ZH = "";
}
if(resData && resData.langInfoMap && resData.langInfoMap['en']){
resData.classifyName_EN = resData.langInfoMap['en'].classifyName;
}else{
resData.classifyName_EN = "";
}
this.initImageArray(resData)
if (resData) {
this.treeData = [resData]
@ -420,10 +425,13 @@ export default {
for (const index in params) {
let itemParams = params[index]
itemParams.classifyName = itemParams.classifyName_ZH;
itemParams.classifyNameMap = {}
itemParams.classifyNameMap["zh"] = itemParams.classifyName_ZH;
itemParams.classifyNameMap["en"] = itemParams.classifyName_EN;
itemParams.classifyNameJson = JSON.stringify(itemParams.classifyNameMap);
itemParams.langInfoMap = {}
itemParams.langInfoMap["zh"] = {};
itemParams.langInfoMap["zh"].classifyName = itemParams.classifyName_ZH;
itemParams.langInfoMap["zh"].languageType = "zh";
itemParams.langInfoMap["en"] = {};
itemParams.langInfoMap["en"].classifyName = itemParams.classifyName_EN;
itemParams.langInfoMap["en"].languageType = "en";
}
this.resetImage(this.treeData[0])
const obj = {
@ -450,10 +458,13 @@ export default {
for (const index in params) {
let itemParams = params[index]
itemParams.classifyName = itemParams.classifyName_ZH;
itemParams.classifyNameMap = {}
itemParams.classifyNameMap["zh"] = itemParams.classifyName_ZH;
itemParams.classifyNameMap["en"] = itemParams.classifyName_EN;
itemParams.classifyNameJson = JSON.stringify(itemParams.classifyNameMap);
itemParams.langInfoMap = {}
itemParams.langInfoMap["zh"] = {};
itemParams.langInfoMap["zh"].classifyName = itemParams.classifyName_ZH;
itemParams.langInfoMap["zh"].languageType = "zh";
itemParams.langInfoMap["en"] = {};
itemParams.langInfoMap["en"].classifyName = itemParams.classifyName_EN;
itemParams.langInfoMap["en"].languageType = "en";
}
this.resetImage(this.treeData[0])
const obj = {

16
src/views/renovation/commdityClass/index.vue

@ -158,12 +158,16 @@ export default {
const res = await commdityClassGetAll(formParams)
let tempData = res.data.list;
tempData.forEach((itemData) => {
itemData.classifyName_ZH = JSON.parse(itemData.classifyNameJson)[
"zh"
];
itemData.classifyName_EN = JSON.parse(itemData.classifyNameJson)[
"en"
];
if(itemData && itemData.langInfoMap && itemData.langInfoMap['zh']){
itemData.classifyName_ZH = itemData.langInfoMap['zh'].classifyName;
}else{
itemData.classifyName_ZH = "";
}
if(itemData && itemData.langInfoMap && itemData.langInfoMap['en']){
itemData.classifyName_EN = itemData.langInfoMap['en'].classifyName;
}else{
itemData.classifyName_EN = "";
}
});
this.tableData = tempData;
this.total = res.data.total;

44
src/views/setup/businessMenus/index.vue

@ -486,11 +486,13 @@ export default {
addData.describe = this.addForm.describe;
addData.resourceType = this.addForm.resourceType;
addData.sort = this.addForm.sort;
addData.permissionNameMap = {}
addData.permissionNameMap["zh"] = this.addForm.permissionName_ZH;
addData.permissionNameMap["en"] = this.addForm.permissionName_EN;
addData.permissionNameJson = JSON.stringify(addData.permissionNameMap);
addData.langInfoMap = {}
addData.langInfoMap["zh"] = {};
addData.langInfoMap["zh"].permissionName = this.addForm.permissionName_ZH;
addData.langInfoMap["zh"].languageType = "zh";
addData.langInfoMap["en"] = {};
addData.langInfoMap["en"].permissionName = this.addForm.permissionName_EN;
addData.langInfoMap["en"].languageType = "en";
if (this.userState) {
businessTabsAdd(addData).then(res => {
@ -527,12 +529,16 @@ export default {
this.addFormDialog = true
businessTabsGetById({ permissionId: row.permissionId }).then(res => {
let itemData = res.data;
itemData.permissionName_ZH = JSON.parse(itemData.permissionNameJson)[
"zh"
];
itemData.permissionName_EN = JSON.parse(itemData.permissionNameJson)[
"en"
];
if(itemData && itemData.langInfoMap && itemData.langInfoMap['zh']){
itemData.permissionName_ZH = itemData.langInfoMap['zh'].permissionName;
}else{
itemData.permissionName_ZH = "";
}
if(itemData && itemData.langInfoMap && itemData.langInfoMap['en']){
itemData.permissionName_EN = itemData.langInfoMap['en'].permissionName;
}else{
itemData.permissionName_EN = "";
}
this.addForm = itemData
// this.addForm.roleIds = [1];
})
@ -561,12 +567,16 @@ export default {
const res = await businessTabsGetAll(formInline)
let tempData = res.data.list;
tempData.forEach((itemData) => {
itemData.permissionName_ZH = JSON.parse(itemData.permissionNameJson)[
"zh"
];
itemData.permissionName_EN = JSON.parse(itemData.permissionNameJson)[
"en"
];
if(itemData && itemData.langInfoMap && itemData.langInfoMap['zh']){
itemData.permissionName_ZH = itemData.langInfoMap['zh'].permissionName;
}else{
itemData.permissionName_ZH = "";
}
if(itemData && itemData.langInfoMap && itemData.langInfoMap['en']){
itemData.permissionName_EN = itemData.langInfoMap['en'].permissionName;
}else{
itemData.permissionName_EN = "";
}
});
this.tableData = tempData;
this.total = res.data.total;

47
src/views/setup/tabs/index.vue

@ -369,7 +369,6 @@ export default {
return;
}
console.log(this.addForm);
let addData = {};
addData.permissionId = this.addForm.permissionId;
addData.permissionPid = this.addForm.permissionPid;
@ -380,11 +379,15 @@ export default {
addData.describe = this.addForm.describe;
addData.resourceType = this.addForm.resourceType;
addData.sort = this.addForm.sort;
addData.permissionNameMap = {}
addData.permissionNameMap["zh"] = this.addForm.permissionName_ZH;
addData.permissionNameMap["en"] = this.addForm.permissionName_EN;
addData.permissionNameJson = JSON.stringify(addData.permissionNameMap);
addData.langInfoMap = {}
addData.langInfoMap["zh"] = {};
addData.langInfoMap["zh"].permissionName = this.addForm.permissionName_ZH;
addData.langInfoMap["zh"].languageType = "zh";
addData.langInfoMap["en"] = {};
addData.langInfoMap["en"].permissionName = this.addForm.permissionName_EN;
addData.langInfoMap["en"].languageType = "en";
if (this.userState) {
tabsAdd(addData).then((res) => {
@ -424,12 +427,7 @@ export default {
console.log(row);
tabsGetById({ permissionId: row.permissionId }).then((res) => {
let itemData = res.data;
itemData.permissionName_ZH = JSON.parse(itemData.permissionNameJson)[
"zh"
];
itemData.permissionName_EN = JSON.parse(itemData.permissionNameJson)[
"en"
];
this.initLangInfo(itemData)
this.addForm = itemData;
// this.addForm.roleIds = [1];
});
@ -459,16 +457,29 @@ export default {
const res = await tabsGetAll(formInline);
let tempData = res.data.list;
tempData.forEach((itemData) => {
itemData.permissionName_ZH = JSON.parse(itemData.permissionNameJson)[
"zh"
];
itemData.permissionName_EN = JSON.parse(itemData.permissionNameJson)[
"en"
];
this.initLangInfo(itemData)
if(itemData.childs){
itemData.childs.forEach((childData) => {
this.initLangInfo(childData)
}
)
}
});
this.tableData = tempData;
this.total = res.data.total;
},
initLangInfo(itemData){
if(itemData && itemData.langInfoMap && itemData.langInfoMap['zh']){
itemData.permissionName_ZH = itemData.langInfoMap['zh'].permissionName;
}else{
itemData.permissionName_ZH = "";
}
if(itemData && itemData.langInfoMap && itemData.langInfoMap['en']){
itemData.permissionName_EN = itemData.langInfoMap['en'].permissionName;
}else{
itemData.permissionName_EN = "";
}
}
},
};
</script>

11867
yarn.lock
File diff suppressed because it is too large
View File

Loading…
Cancel
Save