Commit 5f9e046c by lanyulei

fix: fix bug.

parent 68caf24f
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
"echarts": "^4.8.0", "echarts": "^4.8.0",
"element-ui": "^2.13.2", "element-ui": "^2.13.2",
"file-saver": "2.0.1", "file-saver": "2.0.1",
"form-making": "1.2.8", "form-making": "^1.2.11",
"fuse.js": "3.4.4", "fuse.js": "3.4.4",
"js-cookie": "2.2.0", "js-cookie": "2.2.0",
"jsonlint": "1.6.3", "jsonlint": "1.6.3",
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
"vue-codemirror-lite": "^1.0.4", "vue-codemirror-lite": "^1.0.4",
"vue-count-to": "1.0.13", "vue-count-to": "1.0.13",
"vue-cropper": "^0.5.0", "vue-cropper": "^0.5.0",
"vue-i18n": "5.0.3", "vue-i18n": "^8.27.2",
"vue-loader": "^15.9.3", "vue-loader": "^15.9.3",
"vue-particles": "^1.0.9", "vue-particles": "^1.0.9",
"vue-quill-editor": "^3.0.6", "vue-quill-editor": "^3.0.6",
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
@start="handleMoveStart" @start="handleMoveStart"
> >
<template v-for="(item, index) in basicComponents"> <template v-for="(item, index) in basicComponents">
<li v-if="basicFields.indexOf(item.type)>=0" :key="index" class="form-edit-widget-label" :class="{'no-put': item.type == 'divider'}"> <li v-if="basicFields.indexOf(item.type)>=0" :key="index" class="form-edit-widget-label" :class="{'no-put': item.type === 'divider'}">
<a> <a>
<i class="icon iconfont" :class="item.icon" /> <i class="icon iconfont" :class="item.icon" />
<span>{{ item.name }}</span> <span>{{ item.name }}</span>
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
@start="handleMoveStart" @start="handleMoveStart"
> >
<template v-for="(item, index) in advanceComponents"> <template v-for="(item, index) in advanceComponents">
<li v-if="advanceFields.indexOf(item.type) >= 0" :key="index" class="form-edit-widget-label" :class="{'no-put': item.type == 'table'}"> <li v-if="advanceFields.indexOf(item.type) >= 0" :key="index" class="form-edit-widget-label" :class="{'no-put': item.type === 'table'}">
<a> <a>
<i class="icon iconfont" :class="item.icon" /> <i class="icon iconfont" :class="item.icon" />
<span>{{ item.name }}</span> <span>{{ item.name }}</span>
...@@ -82,7 +82,7 @@ ...@@ -82,7 +82,7 @@
<el-button v-if="generateJson" type="text" size="medium" icon="el-icon-tickets" @click="handleGenerateJson">{{ $t('fm.actions.json') }}</el-button> <el-button v-if="generateJson" type="text" size="medium" icon="el-icon-tickets" @click="handleGenerateJson">{{ $t('fm.actions.json') }}</el-button>
<el-button v-if="generateCode" type="text" size="medium" icon="el-icon-document" @click="handleGenerateCode">{{ $t('fm.actions.code') }}</el-button> <el-button v-if="generateCode" type="text" size="medium" icon="el-icon-document" @click="handleGenerateCode">{{ $t('fm.actions.code') }}</el-button>
</el-header> </el-header>
<el-main :class="{'widget-empty': widgetForm.list.length == 0}"> <el-main :class="{'widget-empty': widgetForm.list.length === 0}">
<widget-form v-if="!resetJson" ref="widgetForm" :data="widgetForm" :select.sync="widgetFormSelect" /> <widget-form v-if="!resetJson" ref="widgetForm" :data="widgetForm" :select.sync="widgetFormSelect" />
</el-main> </el-main>
...@@ -91,12 +91,12 @@ ...@@ -91,12 +91,12 @@
<el-aside class="widget-config-container" style="width: 305px;"> <el-aside class="widget-config-container" style="width: 305px;">
<el-container> <el-container>
<el-header height="45px"> <el-header height="45px">
<div class="config-tab" :class="{active: configTab=='widget'}" @click="handleConfigSelect('widget')">{{ $t('fm.config.widget.title') }}</div> <div class="config-tab" :class="{active: configTab==='widget'}" @click="handleConfigSelect('widget')">{{ $t('fm.config.widget.title') }}</div>
<div class="config-tab" :class="{active: configTab=='form'}" @click="handleConfigSelect('form')">{{ $t('fm.config.form.title') }}</div> <div class="config-tab" :class="{active: configTab==='form'}" @click="handleConfigSelect('form')">{{ $t('fm.config.form.title') }}</div>
</el-header> </el-header>
<el-main class="config-content"> <el-main class="config-content">
<widget-config v-if="widgetFormSelect!==null" v-show="configTab=='widget'" :data="widgetFormSelect" /> <widget-config v-if="widgetFormSelect!==null" v-show="configTab==='widget'" :data="widgetFormSelect" />
<form-config v-show="configTab=='form'" :data="widgetForm.config" /> <form-config v-show="configTab==='form'" :data="widgetForm.config" />
</el-main> </el-main>
</el-container> </el-container>
...@@ -301,7 +301,7 @@ export default { ...@@ -301,7 +301,7 @@ export default {
handler: function(val) { handler: function(val) {
} }
}, },
'$lang': function(val) { '$i18n.locale': function(val) {
this._loadComponents() this._loadComponents()
} }
}, },
......
...@@ -22,9 +22,21 @@ const loadLang = function(Vue, lang, locale, i18n) { ...@@ -22,9 +22,21 @@ const loadLang = function(Vue, lang, locale, i18n) {
i18n.locale = lang i18n.locale = lang
} else { } else {
Vue.use(VueI18n) Vue.use(VueI18n)
Vue.locale('en-US', { ...Vue.locale('en-US'), ...enUS }) const localI18n = new VueI18n({
Vue.locale('zh-CN', { ...Vue.locale('zh-CN'), ...zhCN }) locale: lang,
Vue.config.lang = lang messages: {
'en-US': { ...enUS },
'zh-CN': { ...zhCN }
}
})
const init = Vue.prototype._init
Vue.prototype._init = function(options) {
init.call(this, {
i18n: localI18n,
...options
})
}
} }
} }
...@@ -56,6 +68,13 @@ const install = function(Vue, opts = { ...@@ -56,6 +68,13 @@ const install = function(Vue, opts = {
locale: null, locale: null,
i18n: null i18n: null
}) { }) {
opts = {
lang: 'zh-CN',
locale: null,
i18n: null,
...opts
}
loadLang(Vue, opts.lang, opts.locale, opts.i18n) loadLang(Vue, opts.lang, opts.locale, opts.i18n)
components.forEach(component => { components.forEach(component => {
Vue.component(component.name, component) Vue.component(component.name, component)
......
...@@ -3,8 +3,6 @@ ...@@ -3,8 +3,6 @@
</template> </template>
<script> <script>
import Vue from 'vue'
export default { export default {
watch: { watch: {
'$route.params.lang': function(val) { '$route.params.lang': function(val) {
...@@ -17,10 +15,12 @@ export default { ...@@ -17,10 +15,12 @@ export default {
methods: { methods: {
loadLanguage() { loadLanguage() {
if (this.$route.params.lang === 'zh-CN') { if (this.$route.params.lang === 'zh-CN') {
Vue.config.lang = 'zh-CN' // Vue.config.lang = 'zh-CN'
this.$i18n.locale = 'zh-CN'
localStorage.setItem('language', 'zh-CN') localStorage.setItem('language', 'zh-CN')
} else if (this.$route.params.lang === 'en-US') { } else if (this.$route.params.lang === 'en-US') {
Vue.config.lang = 'en-US' // Vue.config.lang = 'en-US'
this.$i18n.locale = 'en-US'
localStorage.setItem('language', 'en-US') localStorage.setItem('language', 'en-US')
} else { } else {
this.$router.replace({ name: this.$route.name, params: { lang: navigator.language === 'zh-CN' ? 'zh-CN' : 'en-US' }}) this.$router.replace({ name: this.$route.name, params: { lang: navigator.language === 'zh-CN' ? 'zh-CN' : 'en-US' }})
......
import Vue from 'vue' import Vue from 'vue'
import VueI18n from 'vue-i18n'
import Cookies from 'js-cookie' import Cookies from 'js-cookie'
...@@ -39,7 +40,9 @@ Vue.use(VueEditor) ...@@ -39,7 +40,9 @@ Vue.use(VueEditor)
import iconPicker from 'e-icon-picker' import iconPicker from 'e-icon-picker'
import 'e-icon-picker/dist/index.css'// 基础样式 import 'e-icon-picker/dist/index.css'// 基础样式
import 'e-icon-picker/dist/main.css' // fontAwesome 图标库样式 import 'e-icon-picker/dist/main.css'
import enLocale from 'element-ui/lib/locale/lang/en'
import zhLocale from 'element-ui/lib/locale/lang/zh-CN' // fontAwesome 图标库样式
Vue.use(iconPicker) Vue.use(iconPicker)
// 全局方法挂载 // 全局方法挂载
...@@ -66,9 +69,48 @@ Vue.prototype.msgInfo = function(msg) { ...@@ -66,9 +69,48 @@ Vue.prototype.msgInfo = function(msg) {
Vue.use(permission) Vue.use(permission)
Vue.use(Element, { Vue.use(Element, {
i18n: (key, value) => i18n.t(key, value),
size: Cookies.get('size') || 'medium' // set element-ui default size size: Cookies.get('size') || 'medium' // set element-ui default size
}) })
const messages = {
'en-US': {
header: {
title: 'FormMaking',
document: 'Docs',
pricing: 'Pricing',
advanced: 'Advanced'
}
},
'zh-CN': {
header: {
title: '表单设计器',
document: '使用文档',
pricing: '商业授权',
advanced: '高级版本'
}
}
}
const i18n = new VueI18n({
messages: {
'en-US': {
...enLocale, ...messages['en-US']
},
'zh-CN': {
...zhLocale, ...messages['zh-CN']
}
}
})
// import 'form-making/dist/FormMaking.css'
// import FormMaking from 'form-making'
import FormMaking from './components/VueFormMaking/index'
// Vue.use(FormMaking)
Vue.use(FormMaking, {
i18n
})
// register global utility filters // register global utility filters
Object.keys(filters).forEach(key => { Object.keys(filters).forEach(key => {
Vue.filter(key, filters[key]) Vue.filter(key, filters[key])
...@@ -78,6 +120,7 @@ Vue.config.productionTip = false ...@@ -78,6 +120,7 @@ Vue.config.productionTip = false
new Vue({ new Vue({
el: '#app', el: '#app',
i18n,
router, router,
store, store,
render: h => h(App) render: h => h(App)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment