diff --git a/webapp/.env.pre b/webapp/.env.pre index e4137ae..0f39204 100644 --- a/webapp/.env.pre +++ b/webapp/.env.pre @@ -14,16 +14,16 @@ VUE_APP_DATA_API = '/' VUE_APP_VISUAL_API = '/' # minio -VUE_APP_MINIO_API = 'http://127.0.0.1:9000/minio' +VUE_APP_MINIO_API = 'http://10.105.1.132:9000/minio' # atlas -VUE_APP_ATLAS_HOST = 'http://127.0.0.1' +VUE_APP_ATLAS_HOST = 'http://183.129.174.186' # DCM4CHEE VUE_APP_DCM_API = 'http://pre.dubhe.club/dcm4chee/dcm4chee-arc/aets/DCM4CHEE_ADMIN' # minIO 服务 IP -VUE_APP_MINIO_ENDPOINT = '127.0.0.1' +VUE_APP_MINIO_ENDPOINT = '10.105.1.132' # minIO 服务 端口 VUE_APP_MINIO_PORT = '9000' # 是否开启 SSL diff --git a/webapp/.eslintignore b/webapp/.eslintignore index 8b78211..da2a6cc 100644 --- a/webapp/.eslintignore +++ b/webapp/.eslintignore @@ -5,4 +5,5 @@ dist src/components/Crud mock src/views/visual -src/store/modules/Visual \ No newline at end of file +src/store/modules/Visual +src/utils/VisualUtils \ No newline at end of file diff --git a/webapp/babel.config.js b/webapp/babel.config.js index eef0db8..b603e36 100644 --- a/webapp/babel.config.js +++ b/webapp/babel.config.js @@ -1,12 +1,9 @@ -const plugins = [ - "@vue/babel-plugin-transform-vue-jsx", - "@babel/plugin-proposal-optional-chaining", -]; +const plugins = ['@vue/babel-plugin-transform-vue-jsx', '@babel/plugin-proposal-optional-chaining']; // 生产环境移除console -if (process.env.NODE_ENV === "production") { - plugins.push("transform-remove-console"); +if (process.env.NODE_ENV === 'production') { + plugins.push('transform-remove-console'); } module.exports = { plugins, - presets: [["@vue/app",{ useBuiltIns: "entry" }]], + presets: [['@vue/app', { useBuiltIns: 'entry' }]], }; diff --git a/webapp/package.json b/webapp/package.json index fd758f4..177621f 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -24,6 +24,18 @@ "lint:style": "stylelint src/**/*.{html,vue,css,sass,scss}", "fix:style": "stylelint src/**/*.{html,vue,css,sass,scss} --fix" }, + "husky": { + "hooks": { + "pre-commit": "lint-staged", + "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" + } + }, + "lint-staged": { + "src/**/*.{js,vue}": [ + "eslint --fix", + "git add" + ] + }, "repository": { "type": "git", "url": "git@codeup.teambition.com:zhejianglab/dubhe-web.git" diff --git a/webapp/src/api/trainingImage/index.js b/webapp/src/api/trainingImage/index.js index af7cd48..48feecc 100644 --- a/webapp/src/api/trainingImage/index.js +++ b/webapp/src/api/trainingImage/index.js @@ -19,7 +19,7 @@ import { API_MODULE_NAME } from '@/config'; export function list(params) { return request({ - url: `/${API_MODULE_NAME.IMAGE}/ptImage/info`, + url: `/${API_MODULE_NAME.IMAGE}/ptImage/list`, method: 'get', params, }); @@ -27,7 +27,7 @@ export function list(params) { export function add(data) { return request({ - url: `/${API_MODULE_NAME.IMAGE}/ptImage/uploadImage`, + url: `/${API_MODULE_NAME.IMAGE}/ptImage`, method: 'post', data, }); @@ -65,14 +65,6 @@ export function getImageTagList(params) { }); } -export function setPrecast(params) { - return request({ - url: `/${API_MODULE_NAME.IMAGE}/ptImage/imageResource`, - method: 'put', - params, - }); -} - // 设置notebook默认镜像-获取默认镜像 export function getDefaultImage(params) { return request({ diff --git a/webapp/src/assets/styles/atomic.scss b/webapp/src/assets/styles/atomic.scss index e0ed86b..bc382af 100644 --- a/webapp/src/assets/styles/atomic.scss +++ b/webapp/src/assets/styles/atomic.scss @@ -332,6 +332,10 @@ width: 320px; } +.w-400 { + width: 400px; +} + .w-500 { width: 500px; } diff --git a/webapp/src/components/BaseTooltip/index.vue b/webapp/src/components/BaseTooltip/index.vue index 423ac7b..3ecf2c6 100644 --- a/webapp/src/components/BaseTooltip/index.vue +++ b/webapp/src/components/BaseTooltip/index.vue @@ -9,6 +9,9 @@ the License. * ============================================================= */ diff --git a/webapp/src/components/Training/jobForm.vue b/webapp/src/components/Training/jobForm.vue index a1c988a..a6f705b 100644 --- a/webapp/src/components/Training/jobForm.vue +++ b/webapp/src/components/Training/jobForm.vue @@ -541,6 +541,7 @@ import { RESOURCES_MODULE_ENUM, RESOURCES_POOL_TYPE_ENUM, RESOURCES_POOL_TYPE_MAP, + IMAGE_TYPE_ENUM, } from '@/utils'; import { list as getAlgorithmList, getAlgorithmInfo } from '@/api/algorithm/algorithm'; import { getModelByResource } from '@/api/model/model'; @@ -551,7 +552,7 @@ import { list as getSpecsNames } from '@/api/system/resources'; import { list as getNotebooks } from '@/api/development/notebook'; import { trainConfig } from '@/config'; import { NOTEBOOK_STATUS_ENUM } from '@/views/development/utils'; -import { IMAGE_TYPE, TRAINING_TYPE_ENUM } from '@/views/trainingJob/utils'; +import { TRAINING_TYPE_ENUM } from '@/views/trainingJob/utils'; import BaseTooltip from '@/components/BaseTooltip'; import DataSourceSelector from './dataSourceSelector'; @@ -929,7 +930,7 @@ export default { }, async getHarborProjects() { this.harborProjectList = await getImageNameList({ - imageTypes: [IMAGE_TYPE.TRAIN], + imageTypes: [IMAGE_TYPE_ENUM.TRAIN], }); if ( this.form.imageName && diff --git a/webapp/src/utils/VisualUtils/download.js b/webapp/src/utils/VisualUtils/download.js index b4c11c2..de5ea03 100644 --- a/webapp/src/utils/VisualUtils/download.js +++ b/webapp/src/utils/VisualUtils/download.js @@ -39,7 +39,7 @@ const covertSVG2Image = (node, name, width, height, type = 'png') => { const context = canvas.getContext('2d'); context.fillStyle = '#fff'; context.fillRect(0, 0, 10000, 10000); - image.onload = function() { + image.onload = () => { context.drawImage(image, 0, 0); const a = document.createElement('a'); a.download = `${name}.${type}`; diff --git a/webapp/src/utils/constant.js b/webapp/src/utils/constant.js index 4e5cdd0..b89ac93 100644 --- a/webapp/src/utils/constant.js +++ b/webapp/src/utils/constant.js @@ -133,6 +133,24 @@ export const K8S_BUSINESS_LABEL_MAP = { [K8S_BUSINESS_LABEL_ENUM.POINT_CLOUD]: '点云数据集', }; +// 镜像分类枚举 +export const IMAGE_TYPE_ENUM = { + NOTEBOOK: 0, // notebook镜像类型 + TRAIN: 1, // 训练镜像和预置镜像类型 + SERVING: 2, // serving镜像 + TERMINAL: 3, // 终端镜像 + POINTCLOUD: 4, // 点云镜像 + DATASETMARKED: 5, // 数据标注镜像 +}; +export const IMAGE_TYPE_MAP = { + [IMAGE_TYPE_ENUM.NOTEBOOK]: 'Notebook镜像', + [IMAGE_TYPE_ENUM.TRAIN]: '训练镜像', + [IMAGE_TYPE_ENUM.SERVING]: 'Serving镜像', + [IMAGE_TYPE_ENUM.TERMINAL]: '终端镜像', + [IMAGE_TYPE_ENUM.POINTCLOUD]: '点云镜像', + [IMAGE_TYPE_ENUM.DATASETMARKED]: '数据标注镜像', +}; + // 默认进度条颜色 export const defaultProcessColors = [ { color: '#909399', percentage: 40 }, diff --git a/webapp/src/utils/download.js b/webapp/src/utils/download.js index eab02c0..5ffcdca 100644 --- a/webapp/src/utils/download.js +++ b/webapp/src/utils/download.js @@ -20,7 +20,7 @@ import ZIP from './zip'; const pMap = require('p-map'); -//streamSaver.mitm = 'https://static.zhejianglab.com/mitm.html'; +streamSaver.mitm = 'https://static.zhejianglab.com/mitm.html'; // 默认名字解析 const defaultName = (file) => file.name; diff --git a/webapp/src/views/algorithm/components/algorithmForm.vue b/webapp/src/views/algorithm/components/algorithmForm.vue index 296caee..141dcc4 100644 --- a/webapp/src/views/algorithm/components/algorithmForm.vue +++ b/webapp/src/views/algorithm/components/algorithmForm.vue @@ -171,13 +171,13 @@ import { invalidFileNameChar, defaultProcessColors, ALGORITHM_RESOURCE_ENUM, + IMAGE_TYPE_ENUM, } from '@/utils'; import UploadInline from '@/components/UploadForm/inline'; import UploadProgress from '@/components/UploadProgress'; import { useMapGetters } from '@/hooks'; import { algorithmConfig } from '@/config'; import { getImageNameList, getImageTagList } from '@/api/trainingImage'; -import { IMAGE_TYPE } from '@/views/trainingJob/utils'; const defaultForm = { id: null, @@ -289,7 +289,7 @@ export default { }; // 获取镜像名列表 const getImageNames = async (keepValue = false) => { - state.imageNameList = await getImageNameList({ imageTypes: [IMAGE_TYPE.TRAIN] }); + state.imageNameList = await getImageNameList({ imageTypes: [IMAGE_TYPE_ENUM.TRAIN] }); if (!keepValue || !form.imageName) { form.imageTag = null; } else if (!state.imageNameList.includes(form.imageName)) { diff --git a/webapp/src/views/cloudServing/components/forms/batchServingForm.vue b/webapp/src/views/cloudServing/components/forms/batchServingForm.vue index f63ce2a..fedc026 100644 --- a/webapp/src/views/cloudServing/components/forms/batchServingForm.vue +++ b/webapp/src/views/cloudServing/components/forms/batchServingForm.vue @@ -199,14 +199,13 @@