diff --git a/package-lock.json b/package-lock.json
index a8e5e3e25..7b706207b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -13869,6 +13869,130 @@
"integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==",
"dev": true
},
+ "ts-loader": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-4.0.0.tgz",
+ "integrity": "sha512-iissbnuJkqbB3YAmnWyEbmdNcGcoiiXopKHKyqdoCrFQVi9pnplXeveQDXJnQOCYNNcb2pjT2zzSYTX6c9QtAA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.3.0",
+ "enhanced-resolve": "^4.0.0",
+ "loader-utils": "^1.0.2",
+ "micromatch": "^3.1.4",
+ "semver": "^5.0.1"
+ },
+ "dependencies": {
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ }
+ },
+ "to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ "dev": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ }
+ }
+ }
+ },
"tslib": {
"version": "1.13.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
@@ -13928,6 +14052,12 @@
"is-typedarray": "^1.0.0"
}
},
+ "typescript": {
+ "version": "4.5.5",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz",
+ "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==",
+ "dev": true
+ },
"ua-parser-js": {
"version": "0.7.21",
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz",
diff --git a/package.json b/package.json
index ba5459a07..e5f829bf1 100644
--- a/package.json
+++ b/package.json
@@ -69,6 +69,8 @@
"script-loader": "0.7.2",
"stylelint": "13.3.3",
"stylelint-config-standard": "20.0.0",
+ "ts-loader": "4.0.0",
+ "typescript": "4.5.5",
"updates": "10.2.11"
},
"browserslist": [
diff --git a/templates/admin/cloudbrain/list.tmpl b/templates/admin/cloudbrain/list.tmpl
new file mode 100644
index 000000000..b22d491d2
--- /dev/null
+++ b/templates/admin/cloudbrain/list.tmpl
@@ -0,0 +1,489 @@
+
+{{template "base/head" .}}
+
+
+
+
+
+ {{template "admin/navbar" .}}
+
+ {{template "base/alert" .}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{$.i18n.Tr "repo.cloudbrain_task"}}
+
+
+ 任务类型
+
+
+ {{$.i18n.Tr "repo.modelarts.status"}}
+
+
+ {{$.i18n.Tr "repo.modelarts.createtime"}}
+
+
+ {{$.i18n.Tr "repo.cloudbrain_status_runtime"}}
+
+
+ {{$.i18n.Tr "repo.modelarts.computing_resources"}}
+
+
+ {{$.i18n.Tr "repo.cloudbrain_creator"}}
+
+
+ 项目
+
+
+ 云脑侧名称
+
+
+ {{$.i18n.Tr "repo.cloudbrain_operate"}}
+
+
+
+
+ {{range .Tasks}}
+
+
+
+
+
+
+
+
+ {{.JobType}}
+
+
+
+
+ {{.Status}}
+
+
+
+
+ {{TimeSinceUnix1 .Cloudbrain.CreatedUnix}}
+
+
+
+ {{if .TrainJobDuration}}{{.TrainJobDuration}}{{else}}--{{end}}
+
+
+
+ {{if .ComputeResource}}{{.ComputeResource}}{{else}}--{{end}}
+
+
+
+ {{if .User.Name}}
+

+ {{else}}
+

+ {{end}}
+
+
+
+
+
+
+ {{.JobName}}
+
+
+
+ {{if eq .JobType "DEBUG"}}
+
+ {{end}}
+
+
+
+
+
+
+
+
+
+ {{end}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
你确认删除该任务么?此任务一旦删除不可恢复。
+
+
+
+
+
+
+{{template "base/footer" .}}
+
+
diff --git a/templates/admin/navbar.tmpl b/templates/admin/navbar.tmpl
index 2b9f8b7c4..47a9ee811 100644
--- a/templates/admin/navbar.tmpl
+++ b/templates/admin/navbar.tmpl
@@ -14,6 +14,9 @@
{{.i18n.Tr "admin.datasets"}}
+
+ 云脑任务
+
{{.i18n.Tr "admin.hooks"}}
diff --git a/templates/org/member/course_members.tmpl b/templates/org/member/course_members.tmpl
index 83018739f..5ae6bec89 100644
--- a/templates/org/member/course_members.tmpl
+++ b/templates/org/member/course_members.tmpl
@@ -120,7 +120,6 @@
\ No newline at end of file
diff --git a/templates/repo/debugjob/index.tmpl b/templates/repo/debugjob/index.tmpl
index f7773cf2d..d45df324e 100755
--- a/templates/repo/debugjob/index.tmpl
+++ b/templates/repo/debugjob/index.tmpl
@@ -324,11 +324,11 @@
{{$.CsrfTokenHtml}}
{{if .CanDebug}}
{{if eq .Status "RUNNING" "WAITING" "CREATING" "STARTING"}}
-
+
{{$.i18n.Tr "repo.debug"}}
{{else}}
-
+
{{$.i18n.Tr "repo.debug_again"}}
{{end}}
@@ -350,11 +350,11 @@
{{$.CsrfTokenHtml}}
{{if .CanDel}}
{{if eq .ComputeResource "CPU/GPU" }}
-
+
{{$.i18n.Tr "repo.stop"}}
{{else}}
-
+
{{$.i18n.Tr "repo.stop"}}
{{end}}
@@ -369,7 +369,7 @@
{{$.CsrfTokenHtml}}
{{if .CanDel}}
-
+
{{$.i18n.Tr "repo.delete"}}
{{else}}
@@ -490,7 +490,6 @@
\ No newline at end of file
+
\ No newline at end of file
diff --git a/templates/user/dashboard/issues.tmpl b/templates/user/dashboard/issues.tmpl
index 85d1fb65c..eb0d76e5b 100644
--- a/templates/user/dashboard/issues.tmpl
+++ b/templates/user/dashboard/issues.tmpl
@@ -208,6 +208,3 @@
{{template "base/footer" .}}
-
\ No newline at end of file
diff --git a/templates/user/dashboard/milestones.tmpl b/templates/user/dashboard/milestones.tmpl
index 1c0ee84fc..4038ce5b0 100644
--- a/templates/user/dashboard/milestones.tmpl
+++ b/templates/user/dashboard/milestones.tmpl
@@ -117,6 +117,3 @@
{{template "base/footer" .}}
-
\ No newline at end of file
diff --git a/templates/user/profile.tmpl b/templates/user/profile.tmpl
index d42ed4058..fa5e0c9b7 100755
--- a/templates/user/profile.tmpl
+++ b/templates/user/profile.tmpl
@@ -141,6 +141,7 @@
{{if eq .TabName "activity"}}
{{if .EnableHeatmap}}
+
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 000000000..e69de29bb
diff --git a/web_src/js/components/Images.vue b/web_src/js/components/Images.vue
index 6fe26d532..a56d81e4c 100644
--- a/web_src/js/components/Images.vue
+++ b/web_src/js/components/Images.vue
@@ -310,7 +310,6 @@ export default {
},
handleCurrentChange(val){
- console.log(val)
this.params.page = val
this.getImageList()
@@ -350,7 +349,6 @@ export default {
})
},
copyUrl(url){
- console.log(url)
const cInput = document.createElement('input')
cInput.value = url
document.body.appendChild(cInput)
@@ -380,16 +378,13 @@ export default {
clearP(value){
- console.log("sorce value",value)
if(!value) return ''
const reg = /\<\/?p\>/g;
value = value.replace(reg,'')
- console.log("repalace:",value)
return value
},
transformTimestamp(timestamp){
- console.log("timestamp",timestamp)
let a = new Date(timestamp).getTime();
const date = new Date(a);
const Y = date.getFullYear() + '-';
diff --git a/web_src/js/components/UserAnalysis.vue b/web_src/js/components/UserAnalysis.vue
index 5650e164f..682dbc78c 100755
--- a/web_src/js/components/UserAnalysis.vue
+++ b/web_src/js/components/UserAnalysis.vue
@@ -200,7 +200,6 @@
var saveFileName=''
var Date=(this.params.startDate).split('-')
var startDate=Date[0]+''+Date[1]+''+Date[2]
- console.log(startDate)
Date=(this.params.endDate).split('-')
var endDate=Date[0]+Date[1]+Date[2]
saveFileName = '用户分析_'+this.search+''+startDate+'_'+endDate
@@ -258,7 +257,6 @@
getUserList(type_val,index){
this.type_val = type_val
this.dynamic = index;
- console.log("dj:"+type_val)
var now = new Date(); // 当前日期
var nowDayOfWeek = now.getDay(); // 今天本周的第几天
var nowDay = now.getDate(); // 当前日
@@ -324,7 +322,6 @@
// console.log("res.data:"+res.data.data)
this.totalNum = res.data.count
- console.log("res.count:"+res.data.count)
})
@@ -354,9 +351,7 @@
},
filters:{
-
transformTimestamp(timestamp){
- console.log("timestamp",timestamp)
let a = new Date(timestamp*1000);
const date = new Date(a);
const Y = date.getFullYear() + '/';
@@ -366,7 +361,6 @@
const m = (date.getMinutes() <10 ? '0'+date.getMinutes() : date.getMinutes());// + ':' ;
// const s = (date.getSeconds() <10 ? '0'+date.getSeconds() : date.getSeconds()) ; // 秒
const dateString = Y + M + D + h + m ;//+ s;
- console.log('dateString', dateString); // > dateString 2021-07-06 14:23
return dateString;
},
},
diff --git a/web_src/js/excel/Export2Excel.js b/web_src/js/excel/Export2Excel.js
index 3c6d022af..85921f7ad 100755
--- a/web_src/js/excel/Export2Excel.js
+++ b/web_src/js/excel/Export2Excel.js
@@ -100,7 +100,6 @@ export function export_table_to_excel(id) {
/* original data */
var data = oo[0];
var ws_name = "SheetJS";
- console.log(data);
var wb = new Workbook(), ws = sheet_from_array_of_arrays(data);
@@ -118,7 +117,7 @@ export function export_table_to_excel(id) {
}
function formatJson(jsonData) {
- console.log(jsonData)
+
}
export function export_json_to_excel(th, jsonData, defaultTitle) {
diff --git a/web_src/js/excel/util.js b/web_src/js/excel/util.js
index b600e5e37..809b5b51b 100755
--- a/web_src/js/excel/util.js
+++ b/web_src/js/excel/util.js
@@ -3,7 +3,6 @@ export function export2Excel(columns,list,filename){
const { export_json_to_excel } = require('./Export2Excel');
let tHeader = []
let filterVal = []
- console.log(columns)
if(!columns){
return;
}
diff --git a/web_src/js/index.js b/web_src/js/index.js
index 6bc0d2b88..3e38c2c42 100755
--- a/web_src/js/index.js
+++ b/web_src/js/index.js
@@ -41,6 +41,7 @@ import DataAnalysis from './components/DataAnalysis.vue'
import Contributors from './components/Contributors.vue'
import Model from './components/Model.vue';
+
Vue.use(ElementUI);
Vue.prototype.$axios = axios;
Vue.prototype.qs = qs;
@@ -3584,14 +3585,16 @@ function initVueApp() {
}
initVueComponents();
-
+
new Vue({
delimiters: ['${', '}'],
el,
data: {
+ page:parseInt(new URLSearchParams(window.location.search).get('page')),
searchLimit: Number(
(document.querySelector('meta[name=_search_limit]') || {}).content
),
+ page:1,
suburl: AppSubUrl,
uid: Number(
(document.querySelector('meta[name=_context_uid]') || {}).content
@@ -3600,6 +3603,15 @@ function initVueApp() {
},
components: {
ActivityTopAuthors
+ },
+ mounted(){
+ this.page = parseInt(new URLSearchParams(window.location.search).get('page'))
+ },
+ methods:{
+ handleCurrentChange:function (val) {
+ window.location.href='/admin/cloudbrains?page='+val
+ this.page = val
+ }
}
});
}
@@ -3688,8 +3700,6 @@ function initVueModel() {
}
function initVueDataAnalysis() {
const el = document.getElementById('data_analysis');
- console.log("el",el)
-
if (!el) {
return;
}
@@ -3756,7 +3766,6 @@ function initFilterBranchTagDropdown(selector) {
});
});
$data.remove();
- console.log("-this",this)
new Vue({
delimiters: ['${', '}'],
el: this,
diff --git a/webpack.config.js b/webpack.config.js
index a08810ebc..cd3635427 100755
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -116,6 +116,15 @@ module.exports = {
],
},
{
+ test: /\.ts$/,
+ use: [
+ {
+ loader: "ts-loader",
+ }
+ ],
+ exclude: /node_modules/
+ },
+ {
test: /\.js$/,
exclude: /node_modules/,
use: [
@@ -252,6 +261,7 @@ module.exports = {
alias: {
vue$: 'vue/dist/vue.esm.js', // needed because vue's default export is the runtime only
},
+ extensions: ['.tsx', '.ts', '.js']
},
watchOptions: {
ignored: [