2019-05-21 19:15:12 +08:00
|
|
|
import Vue from 'vue'
|
|
|
|
import VueRouter from 'vue-router'
|
2019-07-08 11:42:35 +08:00
|
|
|
import VueI18n from 'vue-i18n'
|
2020-02-22 17:21:47 +08:00
|
|
|
import {
|
2021-03-07 14:40:58 +08:00
|
|
|
Aside, Autocomplete, Badge, Button, Card, Col, ColorPicker, Container, Divider, Form, FormItem, Image,
|
|
|
|
Input, Main, Menu, MenuItem, Message, Option, OptionGroup, Radio, RadioGroup, Row, Select, Scrollbar,
|
|
|
|
Slider, Submenu, Switch, TabPane, Tabs, Tooltip
|
2020-02-22 17:21:47 +08:00
|
|
|
} from 'element-ui'
|
2019-06-12 13:55:49 +08:00
|
|
|
import axios from 'axios'
|
2019-05-21 19:15:12 +08:00
|
|
|
|
|
|
|
import App from './App.vue'
|
2019-06-11 12:51:25 +08:00
|
|
|
import Layout from './layout'
|
2019-06-09 12:37:59 +08:00
|
|
|
import Home from './views/Home.vue'
|
2019-06-16 23:04:30 +08:00
|
|
|
import StyleGenerator from './views/StyleGenerator'
|
2019-12-16 23:40:01 +08:00
|
|
|
import Help from './views/Help'
|
2019-06-17 12:29:25 +08:00
|
|
|
import Room from './views/Room.vue'
|
2019-06-09 12:37:59 +08:00
|
|
|
import NotFound from './views/NotFound.vue'
|
2019-05-21 19:15:12 +08:00
|
|
|
|
2019-07-08 11:42:35 +08:00
|
|
|
import zh from './lang/zh'
|
|
|
|
import ja from './lang/ja'
|
|
|
|
import en from './lang/en'
|
|
|
|
|
2019-06-12 13:55:49 +08:00
|
|
|
if (process.env.NODE_ENV === 'development') {
|
2019-07-10 15:30:35 +08:00
|
|
|
// 开发时使用localhost:12450
|
|
|
|
axios.defaults.baseURL = 'http://localhost:12450'
|
2019-06-12 13:55:49 +08:00
|
|
|
}
|
|
|
|
|
2019-05-21 19:15:12 +08:00
|
|
|
Vue.use(VueRouter)
|
2019-07-08 11:42:35 +08:00
|
|
|
Vue.use(VueI18n)
|
2020-02-22 17:21:47 +08:00
|
|
|
// 初始化element
|
|
|
|
Vue.use(Aside)
|
|
|
|
Vue.use(Autocomplete)
|
|
|
|
Vue.use(Badge)
|
|
|
|
Vue.use(Button)
|
2021-03-07 14:40:58 +08:00
|
|
|
Vue.use(Card)
|
2020-02-22 17:21:47 +08:00
|
|
|
Vue.use(Col)
|
|
|
|
Vue.use(ColorPicker)
|
|
|
|
Vue.use(Container)
|
|
|
|
Vue.use(Divider)
|
|
|
|
Vue.use(Form)
|
|
|
|
Vue.use(FormItem)
|
|
|
|
Vue.use(Image)
|
|
|
|
Vue.use(Input)
|
|
|
|
Vue.use(Main)
|
|
|
|
Vue.use(Menu)
|
|
|
|
Vue.use(MenuItem)
|
2021-03-07 14:40:58 +08:00
|
|
|
Vue.use(Option)
|
|
|
|
Vue.use(OptionGroup)
|
2020-11-28 21:53:49 +08:00
|
|
|
Vue.use(Radio)
|
|
|
|
Vue.use(RadioGroup)
|
2020-02-22 17:21:47 +08:00
|
|
|
Vue.use(Row)
|
2021-03-07 14:40:58 +08:00
|
|
|
Vue.use(Select)
|
2020-02-22 17:21:47 +08:00
|
|
|
Vue.use(Scrollbar)
|
|
|
|
Vue.use(Slider)
|
|
|
|
Vue.use(Submenu)
|
|
|
|
Vue.use(Switch)
|
|
|
|
Vue.use(TabPane)
|
|
|
|
Vue.use(Tabs)
|
|
|
|
Vue.use(Tooltip)
|
|
|
|
Vue.prototype.$message = Message
|
2019-05-21 19:15:12 +08:00
|
|
|
|
2019-06-09 12:37:59 +08:00
|
|
|
Vue.config.ignoredElements = [
|
|
|
|
/^yt-/
|
|
|
|
]
|
|
|
|
|
2019-05-21 19:15:12 +08:00
|
|
|
const router = new VueRouter({
|
|
|
|
mode: 'history',
|
|
|
|
routes: [
|
2019-06-11 12:51:25 +08:00
|
|
|
{
|
|
|
|
path: '/',
|
|
|
|
component: Layout,
|
|
|
|
children: [
|
2019-06-11 18:52:00 +08:00
|
|
|
{path: '', component: Home},
|
2019-12-16 23:40:01 +08:00
|
|
|
{path: 'stylegen', name: 'stylegen', component: StyleGenerator},
|
|
|
|
{path: 'help', name: 'help', component: Help}
|
2019-06-11 12:51:25 +08:00
|
|
|
]
|
|
|
|
},
|
2019-05-21 19:15:12 +08:00
|
|
|
{path: '/room/:roomId', name: 'room', component: Room},
|
|
|
|
{path: '*', component: NotFound}
|
|
|
|
]
|
|
|
|
})
|
|
|
|
|
2019-07-08 11:42:35 +08:00
|
|
|
let locale = window.localStorage.lang
|
|
|
|
if (!locale) {
|
|
|
|
let lang = navigator.language
|
|
|
|
if (lang.startsWith('zh')) {
|
|
|
|
locale = 'zh'
|
|
|
|
} else if (lang.startsWith('ja')) {
|
|
|
|
locale = 'ja'
|
|
|
|
} else {
|
|
|
|
locale = 'en'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
const i18n = new VueI18n({
|
|
|
|
locale,
|
|
|
|
fallbackLocale: 'en',
|
|
|
|
messages: {
|
|
|
|
zh, ja, en
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
2019-05-21 19:15:12 +08:00
|
|
|
new Vue({
|
|
|
|
render: h => h(App),
|
2019-07-08 11:42:35 +08:00
|
|
|
router,
|
|
|
|
i18n
|
2019-05-21 19:15:12 +08:00
|
|
|
}).$mount('#app')
|