'增加国际化'

This commit is contained in:
caoyang
2022-01-11 23:11:08 +08:00
parent f269ee11cb
commit a2b8487cfc
20 changed files with 939 additions and 428 deletions
+50 -50
View File
@@ -7,23 +7,23 @@
<span v-show="false">{{tooltipProps}}</span>
<!-- end 不知道为什么不加上这段代码就无法生效 -->
<template slot="title">
<span>已有高级查询条件生效</span>
<span>{{$t('advancedQueryEffective')}}</span>
<a-divider type="vertical"/>
<a @click="handleReset">清空</a>
<a @click="handleReset">{{$t('empty')}}</a>
</template>
<a-button-group>
<a-button type="primary" @click="handleOpen">
<a-icon type="appstore" theme="twoTone" spin/>
<span>高级查询</span>
<span>{{$t('advancedQuery')}}</span>
</a-button>
<a-button v-if="izMobile" type="primary" icon="delete" @click="handleReset"/>
</a-button-group>
</a-tooltip>
<a-button v-else type="primary" icon="filter" @click="handleOpen">高级查询</a-button>
<a-button v-else type="primary" icon="filter" @click="handleOpen">{{$t('advancedQuery')}}</a-button>
</slot>
<j-modal
title="高级查询构造器"
:title="$t('advancedQuery')+$t('constructor')"
:width="1000"
:visible="visible"
@cancel="handleCancel"
@@ -35,11 +35,11 @@
<template slot="footer">
<div style="float: left">
<a-button :loading="loading" @click="handleReset">重置</a-button>
<a-button :loading="loading" @click="handleSave">保存查询条件</a-button>
<a-button :loading="loading" @click="handleReset">{{$t('reset')}}</a-button>
<a-button :loading="loading" @click="handleSave">{{$t('SaveQueryCriteria')}}</a-button>
</div>
<a-button :loading="loading" @click="handleCancel">关闭</a-button>
<a-button :loading="loading" type="primary" @click="handleOk">查询</a-button>
<a-button :loading="loading" @click="handleCancel">{{$t('close')}}</a-button>
<a-button :loading="loading" type="primary" @click="handleOk">{{$t('query')}}</a-button>
</template>
<a-spin :spinning="loading">
@@ -48,9 +48,9 @@
<a-empty v-if="queryParamsModel.length === 0" style="margin-bottom: 12px;">
<div slot="description">
<span>没有任何查询条件</span>
<span>{{$t('no')}}+{{$t('query')}}+{{$t('condition')}}</span>
<a-divider type="vertical"/>
<a @click="handleAdd">点击新增</a>
<a @click="handleAdd">{{$t('click')}}+{{$t('add')}}</a>
</div>
</a-empty>
@@ -58,10 +58,10 @@
<a-row style="margin-bottom: 12px;">
<a-col :md="12" :xs="24">
<a-form-item label="过滤条件匹配" :labelCol="{md: 6,xs:24}" :wrapperCol="{md: 18,xs:24}" style="width: 100%;">
<a-form-item :label="$t('FilterMatching')" :labelCol="{md: 6,xs:24}" :wrapperCol="{md: 18,xs:24}" style="width: 100%;">
<a-select v-model="matchType" :getPopupContainer="node=>node.parentNode" style="width: 100%;">
<a-select-option value="and">AND(所有条件都要求匹配)</a-select-option>
<a-select-option value="or">OR(条件中的任意一个匹配)</a-select-option>
<a-select-option value="and">AND{{$t('AllMatching')}}</a-select-option>
<a-select-option value="or">OR{{$t('AnyOneMatches')}}</a-select-option>
</a-select>
</a-form-item>
</a-col>
@@ -75,7 +75,7 @@
v-model="item.field"
:treeData="fieldTreeData"
:dropdownStyle="{ maxHeight: '400px', overflow: 'auto' }"
placeholder="选择查询字段"
:placeholder="$t('SelectQueryField')"
allowClear
treeDefaultExpandAll
:getPopupContainer="node=>node.parentNode"
@@ -86,17 +86,17 @@
</a-col>
<a-col :md="4" :xs="24" style="margin-bottom: 12px;">
<a-select placeholder="匹配规则" :value="item.rule" :getPopupContainer="node=>node.parentNode" @change="handleRuleChange(item,$event)">
<a-select-option value="eq">等于</a-select-option>
<a-select-option value="like">包含</a-select-option>
<a-select-option value="right_like">以..开始</a-select-option>
<a-select-option value="left_like">以..结尾</a-select-option>
<a-select-option value="in">在...中</a-select-option>
<a-select-option value="ne">不等于</a-select-option>
<a-select-option value="gt">大于</a-select-option>
<a-select-option value="ge">大于等于</a-select-option>
<a-select-option value="lt">小于</a-select-option>
<a-select-option value="le">小于等于</a-select-option>
<a-select :placeholder="$t('matchRules')" :value="item.rule" :getPopupContainer="node=>node.parentNode" @change="handleRuleChange(item,$event)">
<a-select-option value="eq">{{$t('beEqualTo')}}</a-select-option>
<a-select-option value="like">{{$t('contain')}}</a-select-option>
<a-select-option value="right_like">{{$t('withStart')}}</a-select-option>
<a-select-option value="left_like">{{$t('withEnd')}}</a-select-option>
<a-select-option value="in">{{$t('in')}}</a-select-option>
<a-select-option value="ne">{{$t('notEqual')}}</a-select-option>
<a-select-option value="gt">{{$t('granter')}}</a-select-option>
<a-select-option value="ge">{{$t('greaterOrEqual')}}</a-select-option>
<a-select-option value="lt">{{$t('less')}}</a-select-option>
<a-select-option value="le">{{$t('lessOrEqual')}}</a-select-option>
</a-select>
</a-col>
@@ -105,8 +105,8 @@
<j-search-select-tag v-if="item.type==='sel_search'" v-model="item.val" :dict="getDictInfo(item)" placeholder="请选择"/>
<!-- 下拉多选 -->
<template v-else-if="item.type==='list_multi'">
<j-multi-select-tag v-if="item.options" v-model="item.val" :options="item.options" placeholder="请选择"/>
<j-multi-select-tag v-else v-model="item.val" :dictCode="getDictInfo(item)" placeholder="请选择"/>
<j-multi-select-tag v-if="item.options" v-model="item.val" :options="item.options" :placeholder="$t('pleaseSelect')"/>
<j-multi-select-tag v-else v-model="item.val" :dictCode="getDictInfo(item)" :placeholder="$t('pleaseSelect')"/>
</template>
<template v-else-if="item.dictCode">
@@ -121,8 +121,8 @@
></j-popup>
</template>
<template v-else>
<j-multi-select-tag v-show="allowMultiple(item)" v-model="item.val" :dictCode="item.dictCode" placeholder="请选择"/>
<j-dict-select-tag v-show="!allowMultiple(item)" v-model="item.val" :dictCode="item.dictCode" placeholder="请选择"/>
<j-multi-select-tag v-show="allowMultiple(item)" v-model="item.val" :dictCode="item.dictCode" :placeholder="$t('pleaseSelect')"/>
<j-dict-select-tag v-show="!allowMultiple(item)" v-model="item.val" :dictCode="item.dictCode" :placeholder="$t('pleaseSelect')"/>
</template>
</template>
<j-popup
@@ -137,14 +137,14 @@
v-model="item.val"
:buttons="false"
:multiple="false"
placeholder="请选择用户"
:placeholder="$t('pleaseSelect')+$t('user')"
:returnKeys="['id', item.customReturnField || 'username']"
/>
<j-select-depart
v-else-if="item.type === 'select-depart' || item.type === 'sel_depart'"
v-model="item.val"
:multi="false"
placeholder="请选择部门"
:placeholder="$t('pleaseSelect')+$t('department')"
:customReturnField="item.customReturnField || 'id'"
/>
<a-select
@@ -152,19 +152,19 @@
v-model="item.val"
:options="item.options"
allowClear
placeholder="请选择"
:placeholder="$t('pleaseSelect')"
:mode="allowMultiple(item)?'multiple':''"
/>
<j-area-linkage v-model="item.val" v-else-if="item.type==='area-linkage' || item.type==='pca'" style="width: 100%"/>
<j-date v-else-if=" item.type=='date' " v-model="item.val" placeholder="请选择日期" style="width: 100%"></j-date>
<j-date v-else-if=" item.type=='datetime' " v-model="item.val" placeholder="请选择时间" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%"></j-date>
<j-date v-else-if=" item.type=='date' " v-model="item.val" :placeholder="$t('pleaseSelect')+$t('date')" style="width: 100%"></j-date>
<j-date v-else-if=" item.type=='datetime' " v-model="item.val" :placeholder="$t('pleaseSelect')+$t('time')" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%"></j-date>
<a-time-picker v-else-if="item.type==='time'" :value="item.val ? moment(item.val,'HH:mm:ss') : null" format="HH:mm:ss" style="width: 100%" @change="(time,value)=>item.val=value"/>
<a-input-number v-else-if=" item.type=='int'||item.type=='number' " style="width: 100%" placeholder="请输入数值" v-model="item.val"/>
<a-select v-else-if="item.type=='switch'" placeholder="请选择" v-model="item.val">
<a-select-option value="Y"></a-select-option>
<a-select-option value="N"></a-select-option>
<a-input-number v-else-if=" item.type=='int'||item.type=='number' " style="width: 100%" :placeholder="$t('pleaseSelect')+$t('numericalValue')" v-model="item.val"/>
<a-select v-else-if="item.type=='switch'" :placeholder="$t('pleaseSelect')" v-model="item.val">
<a-select-option value="Y">{{$t('yes')}}</a-select-option>
<a-select-option value="N">{{$t('not')}}</a-select-option>
</a-select>
<a-input v-else v-model="item.val" placeholder="请输入值"/>
<a-input v-else v-model="item.val" :placeholder="$t('EnterValue')"/>
</a-col>
<a-col :md="4" :xs="0" style="margin-bottom: 12px;">
@@ -186,10 +186,10 @@
<a-card class="j-super-query-history-card" :bordered="true">
<div slot="title">
保存的查询
{{$t('SavedQuery')}}
</div>
<a-empty v-if="saveTreeData.length === 0" class="j-super-query-history-empty" description="没有保存任何查询"/>
<a-empty v-if="saveTreeData.length === 0" class="j-super-query-history-empty" :description="$t('NoQueriesSaved')"/>
<a-tree
v-else
class="j-super-query-history-tree"
@@ -208,7 +208,7 @@
</a-spin>
<a-modal title="请输入保存的名称" :visible="prompt.visible" @cancel="prompt.visible=false" @ok="handlePromptOk">
<a-modal :title="$t('pleaseEnter')+$t('SavedName')" :visible="prompt.visible" @cancel="prompt.visible=false" @ok="handlePromptOk">
<a-input v-model="prompt.value"></a-input>
</a-modal>
@@ -376,7 +376,7 @@
}
this.emitCallback(event)
} else {
this.$message.warn("不能查询空条件")
this.$message.warn(this.$t('CannotQueryEmpty'))
}
},
emitCallback(event = {}) {
@@ -434,7 +434,7 @@
handleSave() {
let queryParams = this.removeEmptyObject(this.queryParamsModel)
if (this.isNullArray(queryParams)) {
this.$message.warning('空条件不能保存')
this.$message.warning(this.$t('EmptyCannotSaved'))
} else {
this.prompt.value = ''
this.prompt.visible = true
@@ -443,7 +443,7 @@
handlePromptOk() {
let { value } = this.prompt
if(!value){
this.$message.warning('保存名称不能为空')
this.$message.warning(this.$t('preservation')+this.$t('name')+this.$t('cannotEmpty'))
return
}
// 取出查询条件
@@ -452,12 +452,12 @@
let filterList = this.saveTreeData.filter(i => i.originTitle === value)
if (filterList.length > 0) {
this.$confirm({
content: `${value} 已存在,是否覆盖?`,
content: `${value} `+this.$t('AlreadyExists'),
onOk: () => {
this.prompt.visible = false
filterList[0].records = records
this.saveToLocalStore()
this.$message.success('保存成功')
this.$message.success(this.$t('SavedSuccessfully'))
}
})
} else {
@@ -471,7 +471,7 @@
}))
// 保存到 LocalStore
this.saveToLocalStore()
this.$message.success('保存成功')
this.$message.success(this.$t('SavedSuccessfully'))
}
},
handleTreeSelect(idx, event) {
@@ -487,7 +487,7 @@
event.stopPropagation()
this.$confirm({
content: '是否删除当前查询?',
content: this.$t('DeleteQuery'),
onOk: () => {
let { eventKey } = vNode
this.saveTreeData.splice(Number.parseInt(eventKey.substring(2)), 1)
@@ -19,7 +19,6 @@
<span v-if="device === 'desktop'">欢迎进入 Jero-Boot 平台</span>
<span v-else>Jero-Boot</span>
<user-menu :theme="theme"/>
</div>
<!-- 顶部导航栏模式 -->
+31 -1
View File
@@ -32,6 +32,10 @@
</a>
</span>
<header-notice class="action"/>
<div class="action">
<span @click="changeLocale('en-us')" v-show="localeval=='zh-cn'">English</span >
<span @click="changeLocale('zh-cn')" v-show="localeval=='en-us'">中文</span >
</div>
<a-dropdown>
<span class="action action-full ant-dropdown-link user-dropdown-menu">
<a-avatar class="avatar" size="small" :src="getAvatar()"/>
@@ -101,6 +105,12 @@
import { getFileAccessHttpUrl,getAction } from "@/api/manage"
import Vue from 'vue'
import { UI_CACHE_DB_DICT_DATA } from "@/store/mutation-types"
import moment from 'moment'
import zhCN from 'ant-design-vue/lib/locale-provider/zh_CN'
import 'moment/locale/zh-cn'
moment.locale('zh-cn')
const EN = 'en-us'
const ZH = 'zh-cn'
export default {
name: "UserMenu",
@@ -111,6 +121,8 @@
searchMenuOptions:[],
searchMenuComp: 'span',
searchMenuVisible: false,
locale: zhCN,
localeval: 'zh-cn'
// update-begin author:sunjianlei date:20200219 for: 头部菜单搜索规范命名 --------------
}
},
@@ -251,8 +263,26 @@
this.$message.warn("刷新缓存失败");
console.log("刷新失败",e)
})
}
},
/*update_end author:liushaoqian date:20200507 for: 刷新缓存*/
moment,
changeLocale (localeval) {
this.localeval = localeval
if (localeval === EN) {
moment.locale(EN)
this.$i18n.locale = EN
this.locale = null
localStorage.setItem('language', EN)
// location.reload();
} else {
moment.locale(ZH)
this.$i18n.locale = ZH
this.locale = zhCN
localStorage.setItem('language', ZH)
// location.reload();
}
console.log('this.locale',this.locale)
}
}
}
</script>