| @@ -54,6 +54,7 @@ | |||
| "vue": "2.6.11", | |||
| "vue-bar-graph": "1.2.0", | |||
| "vue-calendar-heatmap": "0.8.4", | |||
| "vue-i18n": "6.1.3", | |||
| "vue-loader": "15.9.2", | |||
| "vue-router": "3.3.4", | |||
| "vue-template-compiler": "2.6.11", | |||
| @@ -21,7 +21,7 @@ | |||
| <div class="header item">{{.i18n.Tr "custom.foot.help"}}</div> | |||
| <div class="ui language bottom floating slide up dropdown link item"> | |||
| <i class="world icon"></i> | |||
| <div class="text">{{.LangName}}</div> | |||
| <div class="text" id="langName">{{.LangName}}</div> | |||
| <div class="menu"> | |||
| {{range .AllLangs}} | |||
| <a lang="{{.Lang}}" class="item {{if eq $.Lang .Lang}}active selected{{end}}" href="{{if eq $.Lang .Lang}}#{{else}}{{$.Link}}?lang={{.Lang}}{{end}}">{{.Name}}</a> | |||
| @@ -19,7 +19,7 @@ | |||
| <div class="header item">{{.i18n.Tr "custom.foot.help"}}</div> | |||
| <div class="ui language bottom floating slide up dropdown link item"> | |||
| <i class="world icon"></i> | |||
| <div class="text">{{.LangName}}</div> | |||
| <div class="text" id="langName">{{.LangName}}</div> | |||
| <div class="menu"> | |||
| {{range .AllLangs}} | |||
| <a lang="{{.Lang}}" class="item {{if eq $.Lang .Lang}}active selected{{end}}" href="{{if eq $.Lang .Lang}}#{{else}}{{$.Link}}?lang={{.Lang}}{{end}}">{{.Name}}</a> | |||
| @@ -135,4 +135,18 @@ | |||
| </el-dialog> | |||
| </div> | |||
| </div> | |||
| <script type="text/javascript"> | |||
| import Vue from 'vue'; | |||
| import enLocale from 'element-ui/lib/locale/lang/en' | |||
| import zhLocale from 'element-ui/lib/locale/lang/zh-CN' | |||
| import locale from 'element-ui/lib/locale' | |||
| var text_langName = document.getElementById("menutext_2").innerText | |||
| if (text_langName == '简体中文'){ | |||
| locale.use(zhLocale) | |||
| } | |||
| else if (text_langName == 'English'){ | |||
| locale.use(enLocale) | |||
| } | |||
| </script> | |||
| @@ -12,4 +12,4 @@ | |||
| padding-bottom: 53px; | |||
| } | |||
| </style> | |||
| </style> | |||
| @@ -216,3 +216,19 @@ | |||
| </div> | |||
| </div> | |||
| {{template "base/footer" .}} | |||
| <script type="text/javascript"> | |||
| import Vue from 'vue'; | |||
| import enLocale from 'element-ui/lib/locale/lang/en' | |||
| import zhLocale from 'element-ui/lib/locale/lang/zh-CN' | |||
| import locale from 'element-ui/lib/locale' | |||
| var text_langName = document.getElementById("menutext_2").innerText | |||
| console.log("fjdhfdjhfjdhfdjhfdj:",text_langName) | |||
| if (text_langName == '简体中文'){ | |||
| locale.use(zhLocale) | |||
| } | |||
| else if (text_langName == 'English'){ | |||
| locale.use(enLocale) | |||
| } | |||
| </script> | |||
| @@ -66,3 +66,4 @@ | |||
| </div> | |||
| </div> | |||
| {{template "base/footer" .}} | |||
| @@ -1,11 +1,11 @@ | |||
| <template> | |||
| <div class="ui container"> | |||
| <div class="row git-user-content"> | |||
| <div class="row git-user-content" > | |||
| <h3 class="ui header"> | |||
| <div class="ui breadcrumb"> | |||
| <a class="section" :href="url_code">代码</a> | |||
| <div class="ui breadcrumb" id ='contri'> | |||
| <a class="section" :href="url_code"> {{$t('message.code')}}</a> | |||
| <div class="divider"> / </div> | |||
| <div class="active section" >贡献者 ({{totalNum}})</div> | |||
| <div class="active section" >{{$t('message.contributor')}} ({{totalNum}})</div> | |||
| </div> | |||
| </h3> | |||
| <div class="ui horizontal relaxed list"> | |||
| @@ -36,63 +36,83 @@ | |||
| </div> | |||
| </template> | |||
| <script> | |||
| <script type="text/javascript"> | |||
| import enLocale from 'element-ui/lib/locale/lang/en' | |||
| import zhLocale from 'element-ui/lib/locale/lang/zh-CN' | |||
| import locale from 'element-ui/lib/locale' | |||
| const {AppSubUrl, StaticUrlPrefix, csrf} = window.config; | |||
| const {AppSubUrl, StaticUrlPrefix, csrf} = window.config; | |||
| export default { | |||
| data() { | |||
| return { | |||
| url:'', | |||
| url_infor:'', | |||
| href_:'', | |||
| contributors_list:[], | |||
| contributors_list_page:[], | |||
| currentPage:1, | |||
| pageSize:50, | |||
| totalNum:0, | |||
| AppSubUrl:AppSubUrl | |||
| }; | |||
| }, | |||
| methods: { | |||
| export default { | |||
| data() { | |||
| return { | |||
| url:'', | |||
| url_infor:'', | |||
| href_:'', | |||
| contributors_list:[], | |||
| contributors_list_page:[], | |||
| currentPage:1, | |||
| pageSize:50, | |||
| totalNum:0, | |||
| AppSubUrl:AppSubUrl, | |||
| }; | |||
| }, | |||
| methods: { | |||
| getContributorsList(){ | |||
| this.$axios.get(this.url+'/list?'+this.url_infor).then((res)=>{ | |||
| this.contributors_list = res.data.contributor_info | |||
| this.totalNum = this.contributors_list.length | |||
| this.contributors_list_page = this.contributors_list.slice(0,this.pageSize) | |||
| }) | |||
| }, | |||
| handleCurrentChange(val){ | |||
| this.contributors_list_page = this.contributors_list.slice((val-1)*this.pageSize,val*this.pageSize) | |||
| }, | |||
| getContributorsList(){ | |||
| this.$axios.get(this.url+'/list?'+this.url_infor).then((res)=>{ | |||
| this.contributors_list = res.data.contributor_info | |||
| this.totalNum = this.contributors_list.length | |||
| this.contributors_list_page = this.contributors_list.slice(0,this.pageSize) | |||
| }) | |||
| getLang(){ | |||
| this.text_langName = document.getElementById("menutext_1").innerText | |||
| if (this.text_langName == '简体中文'){ | |||
| this.$i18n.locale = 'zh' | |||
| locale.use(zhLocale) | |||
| } | |||
| else if (this.text_langName == 'English'){ | |||
| this.$i18n.locale = 'en' | |||
| locale.use(enLocale) | |||
| } | |||
| } | |||
| }, | |||
| handleCurrentChange(val){ | |||
| this.contributors_list_page = this.contributors_list.slice((val-1)*this.pageSize,val*this.pageSize) | |||
| computed:{ | |||
| }, | |||
| }, | |||
| computed:{ | |||
| }, | |||
| watch: { | |||
| watch: { | |||
| }, | |||
| created(){ | |||
| const url = window.location.pathname; | |||
| this.url = url; | |||
| let strIndex = this.url.indexOf("contributors") | |||
| this.url_code = this.url.substr(0,strIndex) | |||
| this.href_ = window.location.href; | |||
| let index = this.href_.indexOf("?") | |||
| this.url_infor = this.href_.substring(index+1,this.href_.length) | |||
| this.getContributorsList() | |||
| }, | |||
| }, | |||
| created(){ | |||
| console.log(this) | |||
| const url = window.location.pathname; | |||
| this.url = url; | |||
| let strIndex = this.url.indexOf("contributors") | |||
| this.url_code = this.url.substr(0,strIndex) | |||
| this.href_ = window.location.href; | |||
| let index = this.href_.indexOf("?") | |||
| this.url_infor = this.href_.substring(index+1,this.href_.length) | |||
| this.getContributorsList() | |||
| this.text_langName='' | |||
| this.getLang() | |||
| }, | |||
| updated(){ | |||
| if(document.querySelectorAll('img[avatar]').length!==0){ | |||
| window.LetterAvatar.transform() | |||
| updated(){ | |||
| if(document.querySelectorAll('img[avatar]').length!==0){ | |||
| window.LetterAvatar.transform() | |||
| } | |||
| }, | |||
| mounted(){ | |||
| this.getLang() | |||
| } | |||
| } | |||
| }; | |||
| </script> | |||
| @@ -3,7 +3,7 @@ | |||
| <div class="input-search"> | |||
| <el-input v-model="input" clearable :autofocus="true" @input="changeValue" id="topics_input" @keyup.enter.native="postTopic" placeholder="搜索或创建标签"> | |||
| <el-input v-model="input" clearable :autofocus="true" @input="changeValue" id="topics_input" @keyup.enter.native="postTopic" placeholder="$t('message.search_or_create_tags')搜索或创建标签"> | |||
| </el-input> | |||
| <div class="scrolling-menu"> | |||
| @@ -14,7 +14,7 @@ | |||
| <div class="text">{{arr.topic_name.toLowerCase()}} </div> | |||
| </div> | |||
| <div v-if="showInputValue" class="addition item-text" @click="postTopic"> | |||
| 点击或回车添加<b class="user-add-label-text">{{input.toLowerCase()}}</b>标签 | |||
| {{$t('message.click_or_enter_to_add')}}点击或回车添加<b class="user-add-label-text">{{input.toLowerCase()}}</b>标签 | |||
| </div> | |||
| <div v-if="showAddTopic" class="item-text" @click="addPostTopic"> | |||
| <div class="icon-wrapper"> | |||
| @@ -31,7 +31,9 @@ | |||
| </template> | |||
| <script> | |||
| import enLocale from 'element-ui/lib/locale/lang/en' | |||
| import zhLocale from 'element-ui/lib/locale/lang/zh-CN' | |||
| import locale from 'element-ui/lib/locale' | |||
| const {AppSubUrl, StaticUrlPrefix, csrf} = window.config; | |||
| import $ from 'jquery' | |||
| @@ -342,6 +344,17 @@ export default { | |||
| window.event.cancelBubble = true;//兼容IE | |||
| } | |||
| } | |||
| }, | |||
| getLang(){ | |||
| this.text_langName = document.getElementById("menutext_1").innerText | |||
| if (this.text_langName == '简体中文'){ | |||
| this.$i18n.locale = 'zh' | |||
| locale.use(zhLocale) | |||
| } | |||
| else if (this.text_langName == 'English'){ | |||
| this.$i18n.locale = 'en' | |||
| locale.use(enLocale) | |||
| } | |||
| } | |||
| }, | |||
| computed:{ | |||
| @@ -388,12 +401,15 @@ mounted() { | |||
| $('#repo-topics1').append('<span class="no-description text-italic">暂无标签</span>') | |||
| } | |||
| this.changeValue() | |||
| this.changeValue(); | |||
| this.getLang() | |||
| } , | |||
| created(){ | |||
| this.initTopics(); | |||
| this.input='' | |||
| this.input=''; | |||
| this.text_langName='' ; | |||
| this.getLang() | |||
| } | |||
| }; | |||
| @@ -3,18 +3,18 @@ | |||
| <div class="header-wrapper"> | |||
| <div class="ui container"> | |||
| <el-row class="image_text"> | |||
| <h1>云脑镜像</h1> | |||
| <h1>{{$t('message.cloud_brain_mirror')}}云脑镜像</h1> | |||
| </el-row> | |||
| </div> | |||
| </div> | |||
| <div class="ui container" id="header"> | |||
| <el-tabs v-model="activeName" @tab-click="handleClick"> | |||
| <el-tab-pane label="公共镜像(云脑1)" name="first" v-loading="loading"> | |||
| <el-tab-pane label="$t('message.cloud_brain_mirror')公共镜像(云脑1)" name="first" v-loading="loading"> | |||
| <div class="ui sixteen wide column"> | |||
| <div class="ui two column stackable grid"> | |||
| <div class="column"> | |||
| <el-input placeholder="请输入镜像名称关健词" v-model="search" class="input-with-select" @keyup.enter.native="searchName()"> | |||
| <el-button id="success" slot="append" icon="el-icon-search" @click="searchName()">搜索</el-button> | |||
| <el-input placeholder="$t('message.enter_mirror_name_keyword')请输入镜像名称关健词" v-model="search" class="input-with-select" @keyup.enter.native="searchName()"> | |||
| <el-button id="success" slot="append" icon="el-icon-search" @click="searchName()">{{$t('message.search')}}搜索</el-button> | |||
| </el-input> | |||
| </div> | |||
| @@ -42,7 +42,7 @@ | |||
| :header-cell-style="tableHeaderStyle" | |||
| :default-sort="{prop:'createtime',order:'descending'}"> | |||
| <el-table-column | |||
| label="镜像名称" | |||
| label="$t('message.mirror_name')镜像名称" | |||
| width="350" | |||
| align="left" | |||
| prop="name" | |||
| @@ -53,12 +53,12 @@ | |||
| </template> | |||
| </el-table-column> | |||
| <el-table-column | |||
| label="文件路径/镜像描述" | |||
| label="$t('message.file_path_image_description')文件路径/镜像描述" | |||
| width="450" | |||
| align="left" | |||
| > | |||
| <template slot-scope="scope"> | |||
| <el-tooltip class="item" effect="dark" content="点击复制文件路径" placement="top"> | |||
| <el-tooltip class="item" effect="dark" content="$t('message.click_Copy_file_path')点击复制文件路径" placement="top"> | |||
| <a class="text-over" style="display:block;" @click="copyUrl(scope.row.place)">{{ scope.row.place }}</a> | |||
| </el-tooltip> | |||
| @@ -67,14 +67,14 @@ | |||
| </el-table-column> | |||
| <el-table-column | |||
| prop="provider" | |||
| label="提供者" | |||
| label="$t('message.provider')提供者" | |||
| width="120" | |||
| align="left" | |||
| sortable> | |||
| </el-table-column> | |||
| <el-table-column | |||
| prop="createtime" | |||
| label="创建时间" | |||
| label="$t('message.creation_time')创建时间" | |||
| align="center" | |||
| sortable> | |||
| <template slot-scope="scope"> | |||
| @@ -98,12 +98,12 @@ | |||
| </el-tab-pane> | |||
| <el-tab-pane label="自定义镜像(云脑1)" name="second" v-loading="loading1"> | |||
| <el-tab-pane label="$t('message.custom_mirror_1')自定义镜像(云脑1)" name="second" v-loading="loading1"> | |||
| <div class="ui sixteen wide column"> | |||
| <div class="ui two column stackable grid"> | |||
| <div class="column"> | |||
| <el-input placeholder="请输入镜像名称关健词" v-model="search" class="input-with-select" @keyup.enter.native="searchName()"> | |||
| <el-button slot="append" id="success" icon="el-icon-search" @click="searchName()">搜索</el-button> | |||
| <el-input placeholder="$t('message.enter_mirror_name_keyword')请输入镜像名称关健词" v-model="search" class="input-with-select" @keyup.enter.native="searchName()"> | |||
| <el-button slot="append" id="success" icon="el-icon-search" @click="searchName()">{{$t('message.search')}}搜索</el-button> | |||
| </el-input> | |||
| </div> | |||
| @@ -133,7 +133,7 @@ | |||
| :header-cell-style="tableHeaderStyle" | |||
| :default-sort="{prop:'createtime',order:'descending'}"> | |||
| <el-table-column | |||
| label="镜像名称" | |||
| label="$t('message.mirror_name')镜像名称" | |||
| width="350" | |||
| align="left" | |||
| prop="name" | |||
| @@ -144,13 +144,13 @@ | |||
| </template> | |||
| </el-table-column> | |||
| <el-table-column | |||
| label="文件路径/镜像描述" | |||
| label="$t('message.file_path_mirror_description')文件路径/镜像描述" | |||
| width="450" | |||
| align="left" | |||
| > | |||
| <template slot-scope="scope"> | |||
| <el-tooltip class="item" effect="dark" content="点击复制文件路径" placement="top"> | |||
| <el-tooltip class="item" effect="dark" content="$t('message.click_Copy_file_path')点击复制文件路径" placement="top"> | |||
| <a class="text-over" style="display:block;" @click="copyUrl(scope.row.place)">{{ scope.row.place }}</a> | |||
| </el-tooltip> | |||
| @@ -159,14 +159,14 @@ | |||
| </el-table-column> | |||
| <el-table-column | |||
| prop="provider" | |||
| label="提供者" | |||
| label="$t('message.provider')提供者" | |||
| width="120" | |||
| align="left" | |||
| sortable> | |||
| </el-table-column> | |||
| <el-table-column | |||
| prop="createtime" | |||
| label="创建时间" | |||
| label="$t('message.creation_time')创建时间" | |||
| align="center" | |||
| sortable> | |||
| <template slot-scope="scope"> | |||
| @@ -190,13 +190,13 @@ | |||
| </el-tab-pane> | |||
| <el-tab-pane label="公共镜像(云脑2)" name="third"> | |||
| <el-tab-pane label="$t('message.public_mirror_2')公共镜像(云脑2)" name="third"> | |||
| <div class="ui sixteen wide column"> | |||
| <div class="ui two column stackable grid"> | |||
| <div class="column"> | |||
| <el-input placeholder="请输入镜像名称关健词" v-model="search" class="input-with-select"> | |||
| <el-button slot="append" id="success" icon="el-icon-search">搜索</el-button> | |||
| <el-input placeholder="$t('message.enter_mirror_name_keyword')请输入镜像名称关健词" v-model="search" class="input-with-select"> | |||
| <el-button slot="append" id="success" icon="el-icon-search">{{$t('message.search')}}搜索</el-button> | |||
| </el-input> | |||
| </div> | |||
| @@ -220,13 +220,13 @@ | |||
| <el-empty :image-size="200"></el-empty> | |||
| </el-tab-pane> | |||
| <el-tab-pane label="自定义镜像(云脑2)" name="fourth"> | |||
| <el-tab-pane label="$t('message.custom_mirror_2')自定义镜像(云脑2)" name="fourth"> | |||
| <div class="ui sixteen wide column"> | |||
| <div class="ui two column stackable grid"> | |||
| <div class="column"> | |||
| <el-input placeholder="请输入镜像名称关健词" v-model="search" class="input-with-select"> | |||
| <el-button slot="append" id="success" icon="el-icon-search">搜索</el-button> | |||
| <el-input placeholder="$t('message.enter_mirror_name_keyword')请输入镜像名称关健词" v-model="search" class="input-with-select"> | |||
| <el-button slot="append" id="success" icon="el-icon-search">{{$t('message.search')}}搜索</el-button> | |||
| </el-input> | |||
| </div> | |||
| @@ -283,7 +283,8 @@ export default { | |||
| totalNum1:0, | |||
| params1:{page:1,size:10,name:''}, | |||
| tableData1: [], | |||
| loading1:false | |||
| loading1:false, | |||
| text_langName:'', | |||
| }; | |||
| }, | |||
| methods: { | |||
| @@ -369,6 +370,17 @@ export default { | |||
| this.getImageList1() | |||
| } | |||
| }, | |||
| getLang(){ | |||
| this.text_langName = document.getElementById("menutext_1").innerText | |||
| if (this.text_langName == '简体中文'){ | |||
| this.$i18n.locale = 'zh' | |||
| locale.use(zhLocale) | |||
| } | |||
| else if (this.text_langName == 'English'){ | |||
| this.$i18n.locale = 'en' | |||
| locale.use(enLocale) | |||
| } | |||
| } | |||
| }, | |||
| @@ -414,10 +426,12 @@ export default { | |||
| }, | |||
| mounted() { | |||
| this.getImageList() | |||
| this.getImageList(), | |||
| this.getLang() | |||
| }, | |||
| created() { | |||
| this.text_langName='', | |||
| this.getLang() | |||
| } | |||
| }; | |||
| @@ -17,6 +17,10 @@ | |||
| </template> | |||
| <script> | |||
| import enLocale from 'element-ui/lib/locale/lang/en' | |||
| import zhLocale from 'element-ui/lib/locale/lang/zh-CN' | |||
| import locale from 'element-ui/lib/locale' | |||
| /* eslint-disable eqeqeq */ | |||
| // import Dropzone from 'dropzone/dist/dropzone.js'; | |||
| // import 'dropzone/dist/dropzone.css' | |||
| @@ -221,11 +225,11 @@ export default { | |||
| } | |||
| const md5 = spark.end(); | |||
| console.log( | |||
| `MD5计算完成:${file.name} \nMD5:${md5} \n分片:${chunks} 大小:${ | |||
| file.size | |||
| } 用时:${(new Date().getTime() - time) / 1000} s` | |||
| ); | |||
| // console.log( | |||
| // `MD5计算完成:${file.name} \nMD5:${md5} \n分片:${chunks} 大小:${ | |||
| // file.size | |||
| // } 用时:${(new Date().getTime() - time) / 1000} s` | |||
| // ); | |||
| spark.destroy(); // 释放缓存 | |||
| file.uniqueIdentifier = md5; // 将文件md5赋值给文件唯一标识 | |||
| file.cmd5 = false; // 取消计算md5状态 | |||
| @@ -481,7 +485,7 @@ export default { | |||
| } | |||
| const urls = []; // TODO const ? | |||
| const etags = []; | |||
| console.log('上传分片...'); | |||
| // console.log('上传分片...'); | |||
| this.status = this.dropzoneParams.data('uploading'); | |||
| loadNext(); | |||
| fileReader.onload = async (e) => { | |||
| @@ -489,10 +493,10 @@ export default { | |||
| fileReader.abort(); | |||
| currentChunk++; | |||
| if (currentChunk < chunks) { | |||
| console.log( | |||
| `第${currentChunk}个分片上传完成, 开始第${currentChunk + | |||
| 1}/${chunks}个分片上传` | |||
| ); | |||
| // console.log( | |||
| // `第${currentChunk}个分片上传完成, 开始第${currentChunk + | |||
| // 1}/${chunks}个分片上传` | |||
| // ); | |||
| this.progress = Math.ceil((currentChunk / chunks) * 100); | |||
| console.log("((currentChunk / chunks) * 100).toFixed(2)",((currentChunk / chunks) * 100).toFixed(2)) | |||
| this.updateProgress(file, ((currentChunk / chunks) * 100).toFixed(2)); | |||
| @@ -503,11 +507,11 @@ export default { | |||
| await loadNext(); | |||
| } else { | |||
| await completeUpload(); | |||
| console.log( | |||
| `文件上传完成:${file.name} \n分片:${chunks} 大小:${ | |||
| file.size | |||
| } 用时:${(new Date().getTime() - time) / 1000} s` | |||
| ); | |||
| // console.log( | |||
| // `文件上传完成:${file.name} \n分片:${chunks} 大小:${ | |||
| // file.size | |||
| // } 用时:${(new Date().getTime() - time) / 1000} s` | |||
| // ); | |||
| this.updateProgress(file, 100); | |||
| this.progress = 100; | |||
| this.status = this.dropzoneParams.data('upload-complete'); | |||
| @@ -0,0 +1,38 @@ | |||
| import enLocale from 'element-ui/lib/locale/lang/en' | |||
| const en = { | |||
| message: { | |||
| code: 'code', | |||
| contributor:'Contributor', | |||
| introduction: 'Introduction', | |||
| edit_repository_information: 'Edit repository information', | |||
| please_enter_content: 'Please enter content', | |||
| home: 'Home', | |||
| search_or_create_tags: 'Search or create tags', | |||
| click_or_enter_to_add: 'Click or enter to add', | |||
| label: 'Label', | |||
| No_label_yet: 'No label yet', | |||
| cloud_brain_mirror: 'Cloud Brain Mirror', | |||
| public_mirror_1: 'Public mirror (Cloud Brain 1)', | |||
| enter_mirror_name_keyword: 'Please enter the image name keyword', | |||
| search: 'Search', | |||
| mirror_name: 'Mirror Name', | |||
| file_path_mirror_description: 'File Path / Mirror Description', | |||
| click_Copy_file_path: 'Click Copy File Path', | |||
| provider: 'Provider', | |||
| creation_time: 'Creation Time', | |||
| custom_mirror_1: 'Custom Mirror (Cloud Brain 1)', | |||
| public_mirror_2: 'Public Mirror (Cloud Brain 2)', | |||
| custom_mirror_1: 'Custom Mirror (Cloud Brain 2)' | |||
| }, | |||
| ...enLocale | |||
| } | |||
| export default en; | |||
| @@ -0,0 +1,34 @@ | |||
| import zhLocale from 'element-ui/lib/locale/lang/zh-CN' | |||
| const zh = { | |||
| message: { | |||
| code: '代码', | |||
| contributor: '贡献者', | |||
| introduction: '简介', | |||
| edit_repository_information: '编辑仓库信息', | |||
| please_enter_content: '请输入内容', | |||
| home: '主页', | |||
| search_or_create_tags:'搜索或创建标签', | |||
| click_or_enter_to_add: '点击或回车添加', | |||
| label: '标签', | |||
| No_label_yet: '暂无标签', | |||
| cloud_brain_mirror: '云脑镜像', | |||
| public_mirror_1: '公共镜像(云脑1)', | |||
| enter_mirror_name_keyword: '请输入镜像名称关健词', | |||
| search: '搜索', | |||
| mirror_name: '镜像名称', | |||
| file_path_mirror_description: '文件路径/镜像描述', | |||
| click_Copy_file_path: '点击复制文件路径', | |||
| provider: '提供者', | |||
| creation_time: '创建时间', | |||
| custom_mirror_1: '自定义镜像(云脑1)', | |||
| public_mirror_2: '公共镜像(云脑2)', | |||
| custom_mirror_2: '自定义镜像(云脑2)' | |||
| }, | |||
| ...zhLocale | |||
| } | |||
| export default zh | |||
| @@ -7,7 +7,8 @@ import './polyfills.js'; | |||
| import './features/letteravatar.js' | |||
| import Vue from 'vue'; | |||
| import ElementUI from 'element-ui'; | |||
| import 'element-ui/lib/theme-chalk/index.css'; | |||
| import 'element-ui/lib/theme-chalk/index.css'; | |||
| import VueI18n from 'vue-i18n' | |||
| import axios from 'axios'; | |||
| import qs from 'qs'; | |||
| import Cookies from 'js-cookie' | |||
| @@ -45,12 +46,37 @@ import WxAutorize from './components/WxAutorize.vue' | |||
| import initCloudrain from './features/cloudrbanin.js' | |||
| // import $ from 'jquery.js' | |||
| //import VueI18n from 'vue-i18n' | |||
| import enLocale from 'element-ui/lib/locale/lang/en' | |||
| import zhLocale from 'element-ui/lib/locale/lang/zh-CN' | |||
| import locale from 'element-ui/lib/locale' | |||
| import Element from 'element-ui' | |||
| import cn from './components/i18n/lang/zh.js' | |||
| import en from './components/i18n/lang/en.js' | |||
| Vue.use(ElementUI); | |||
| Vue.prototype.$axios = axios; | |||
| Vue.prototype.$Cookies = Cookies; | |||
| Vue.prototype.qs = qs; | |||
| const {AppSubUrl, StaticUrlPrefix, csrf} = window.config; | |||
| Vue.use(VueI18n) | |||
| const messages = { | |||
| en: en, | |||
| zh: cn, | |||
| } | |||
| // Create VueI18n instance with options | |||
| const i18n = new VueI18n({ | |||
| locale: 'zh', // set locale | |||
| messages, // set locale messages | |||
| }) | |||
| Vue.use(Element, { | |||
| i18n: (key, value) => i18n.t(key, value) | |||
| }) | |||
| Object.defineProperty(Vue.prototype, '$echarts', { | |||
| value: echarts | |||
| }) | |||
| @@ -3596,6 +3622,7 @@ function initVueApp() { | |||
| new Vue({ | |||
| delimiters: ['${', '}'], | |||
| el, | |||
| i18n, | |||
| data: { | |||
| page:parseInt(new URLSearchParams(window.location.search).get('page')), | |||
| searchLimit: Number( | |||
| @@ -3641,6 +3668,7 @@ function initVueUploader() { | |||
| new Vue({ | |||
| el: '#minioUploader', | |||
| i18n, | |||
| components: {MinioUploader}, | |||
| template: '<MinioUploader />' | |||
| }); | |||
| @@ -3655,6 +3683,7 @@ function initVueEditAbout() { | |||
| new Vue({ | |||
| el: '#about-desc', | |||
| i18n, | |||
| render: h => h(EditAboutInfo) | |||
| }); | |||
| } | |||
| @@ -3732,6 +3761,7 @@ function initVueDataset() { | |||
| new Vue({ | |||
| delimiters: ['${', '}'], | |||
| el, | |||
| i18n, | |||
| data: { | |||
| suburl: AppSubUrl, | |||
| url:'', | |||
| @@ -4257,6 +4287,7 @@ function initVueEditTopic() { | |||
| new Vue({ | |||
| el:'#topic_edit1', | |||
| i18n, | |||
| render:h=>h(EditTopics) | |||
| }) | |||
| } | |||
| @@ -4270,6 +4301,7 @@ function initVueContributors() { | |||
| new Vue({ | |||
| el:'#Contributors', | |||
| i18n, | |||
| render:h=>h(Contributors) | |||
| }) | |||
| } | |||
| @@ -4285,7 +4317,7 @@ function initVueImages() { | |||
| new Vue({ | |||
| el: '#images', | |||
| i18n, | |||
| render: h => h(Images) | |||
| }); | |||
| } | |||
| @@ -4299,7 +4331,7 @@ function initVueModel() { | |||
| new Vue({ | |||
| el: el, | |||
| i18n, | |||
| render: h => h(Model) | |||
| }); | |||
| } | |||
| @@ -4311,7 +4343,7 @@ function initVueDataAnalysis() { | |||
| new Vue({ | |||
| el: '#data_analysis', | |||
| i18n, | |||
| render: h => h(DataAnalysis) | |||
| }); | |||
| } | |||
| @@ -4324,6 +4356,7 @@ function initObsUploader() { | |||
| new Vue({ | |||
| el: '#obsUploader', | |||
| i18n, | |||
| components: {ObsUploader}, | |||
| template: '<ObsUploader />' | |||
| }); | |||
| @@ -4335,6 +4368,7 @@ function initVueWxAutorize() { | |||
| } | |||
| new Vue({ | |||
| el:el, | |||
| i18n, | |||
| render: h => h(WxAutorize) | |||
| }); | |||
| } | |||
| @@ -4383,6 +4417,7 @@ function initFilterBranchTagDropdown(selector) { | |||
| new Vue({ | |||
| delimiters: ['${', '}'], | |||
| el: this, | |||
| i18n, | |||
| data, | |||
| beforeMount() { | |||