diff --git a/public/locales/en.json b/public/locales/en.json index 190f571..43413e3 100644 --- a/public/locales/en.json +++ b/public/locales/en.json @@ -41,7 +41,8 @@ "passwordMsg": "The password can not be less than 6 digits", "check": "Check", "submit": "Submit", - "instance": "Instance" + "instance": "Instance", + "select": "Select" }, "menu": { "taskManagement": "Task", @@ -92,6 +93,7 @@ "resourceList": "API Management", "oplList": "Operation Logs", "login": "Login", + "register": "Register", "monitorSelect": "Monitor", "monitorSelectBk": "Resource Center", "monitorSelectNew": "PCM Overview", @@ -103,7 +105,14 @@ "appObserve": "App Monitoring", "logMana": "Log Mgmt", "monitorSelectPcm": "JCCE", - "fileManagement": "File Management" + "fileManagement": "File Management", + "blockchain": "存证查验", + "blockchainLog": "数据可信核验", + "blockchainBrowser": "区块链浏览器", + "datasetManagement": "数据集管理", + "algorithmManagement": "算法管理", + "imageManagement": "镜像管理", + "modelManagement": "模型管理" }, "check": { "input": "Please Input", @@ -551,6 +560,7 @@ "result": "Result", "pictureUpload": "Picture Upload", "createDeductiveTask": "Create Deductive Task", + "createTrainingTask": "中国算力网——智算训练任务创建", "image": "Image", "initFile": "Init File", "codeUpload": "Code Upload", @@ -574,6 +584,27 @@ "partition": "Partition", "cmdScript": "Script", "fileUpload": "File Upload", - "uploadSuccess": "Upload Success" + "uploadSuccess": "Upload Success", + "cpCluster": "Computing Power Cluster", + "computingResource": "Computing Resource", + "internet": "Internet", + "visualization": "Visualization", + "codeBranch": "Branch", + "runParams": "Params", + "imageName": "Image Name", + "packageName": "Package Name", + "targetCluster": "Target Cluster", + "datasetCategory": "Dataset Category", + "resourceRecom": "Resource Recommendation", + "authSetting": "Authentification Setting", + "applyList": "Apply List", + "applyAccount": "Apply Account", + "applyDataset": "Applied Dataset", + "applyModel": "Applied Model Name", + "category": "Category", + "datasetApplied": "Applied Dataset", + "modelApplied": "Applied Model", + "forApply": "Can Apply List", + "sonAlgorithmName": "Son Algorithm Name" } } \ No newline at end of file diff --git a/public/locales/zh.json b/public/locales/zh.json index 061f600..d04f9cb 100644 --- a/public/locales/zh.json +++ b/public/locales/zh.json @@ -41,7 +41,8 @@ "passwordMsg": "密码不能少于6位", "check": "验证", "submit": "提交", - "instance": "实例" + "instance": "实例", + "select": "选择" }, "menu": { "taskManagement": "任务管理", @@ -92,6 +93,7 @@ "resourceList": "接口管理", "oplList": "操作日志", "login": "登录", + "register": "注册", "monitorSelect": "综合运控", "monitorSelectBk": "资源中心", "monitorSelectNew": "PCM总览", @@ -103,7 +105,16 @@ "appObserve": "应用观测", "logMana": "日志管理", "monitorSelectPcm": "云际算力网基础平台", - "fileManagement": "文件管理" + "fileManagement": "文件管理", + "blockchain": "存证查验", + "blockchainLog": "数据可信核验", + "blockchainBrowser": "区块链浏览器", + "datasetManagement": "数据集管理", + "algorithmManagement": "算法管理", + "imageManagement": "镜像管理", + "modelManagement": "模型管理", + "personalCenter": "个人中心", + "pointManagement": "积分管理" }, "check": { "input": "请输入", @@ -551,6 +562,7 @@ "result": "结果", "pictureUpload": "图片上传", "createDeductiveTask": "创建智算推理任务", + "createTrainingTask": "中国算力网——智算训练任务创建", "image": "镜像", "initFile": "启动文件", "codeUpload": "代码上传", @@ -574,6 +586,27 @@ "partition": "分区", "cmdScript": "脚本", "fileUpload": "文件上传", - "uploadSuccess": "上传成功" + "uploadSuccess": "上传成功", + "cpCluster": "算力集群", + "computingResource": "计算资源", + "internet": "访问Internet", + "visualization": "可视化", + "codeBranch": "代码分支", + "runParams": "运行参数", + "imageName": "镜像名称", + "packageName": "Package名称", + "targetCluster": "目标集群", + "datasetCategory": "数据集类别", + "resourceRecom": "资源推荐", + "authSetting": "访问权限设置", + "applyList": "申请列表", + "applyAccount": "申请用户", + "applyDataset": "申请使用数据集名称", + "applyModel": "申请使用模型名称", + "category": "类别", + "datasetApplied": "申请使用数据集名称", + "modelApplied": "申请使用模型名称", + "forApply": "可申请数据集", + "sonAlgorithmName": "子算法名称" } } \ No newline at end of file diff --git a/src/App.vue b/src/App.vue index e868799..3cf265b 100644 --- a/src/App.vue +++ b/src/App.vue @@ -13,7 +13,7 @@ export default { } }, mounted() { - localStorage.setItem('jcceTheme', 'jcceDark') // Please delete code if you need other color + // localStorage.setItem('jcceTheme', 'jcceDark') // Please delete code if you need other color const jcceTheme = this.jcceTheme || 'jcceDark' document.documentElement.setAttribute('jcceTheme', jcceTheme) localStorage.setItem('jcceTheme', jcceTheme) diff --git a/src/api/authority/permissionManagement.js b/src/api/authority/permissionManagement.js new file mode 100644 index 0000000..6822cc8 --- /dev/null +++ b/src/api/authority/permissionManagement.js @@ -0,0 +1,282 @@ +import request from '@/utils/request' + +const preUrl = '/jcc-admin' +export function login(username, password) { + return request({ + url: preUrl + '/admin/login', + method: 'post', + data: { + username, + password + } + }) +} + +export function getInfo() { + return request({ + url: preUrl + '/admin/info', + method: 'get' + }) +} + +export function logout() { + return request({ + url: preUrl + '/admin/logout', + method: 'post' + }) +} + +export function getUserList(params) { + return request({ + url: preUrl + '/admin/list', + method: 'get', + params: params + }) +} + +export function createAdmin(data) { + return request({ + url: preUrl + '/admin/register', + method: 'post', + data: data + }) +} + +export function updateAdmin(id, data) { + return request({ + url: preUrl + '/admin/update/' + id, + method: 'put', + data: data + }) +} + +export function updateUserStatus(id, params) { + return request({ + url: preUrl + '/admin/updateStatus/' + id, + method: 'put', + params: params + }) +} + +export function deleteAdmin(id) { + return request({ + url: preUrl + '/admin/delete/' + id, + method: 'delete' + }) +} + +export function getRoleByAdmin(id) { + return request({ + url: preUrl + '/admin/role/' + id, + method: 'get' + }) +} + +export function allocRole(data) { + return request({ + url: preUrl + '/admin/role/update', + method: 'put', + data: data + }) +} + +// 角色列表 +export function getRoleList(params) { + return request({ + url: preUrl + '/role/list', + method: 'get', + params: params + }) +} + +export function createRole(data) { + return request({ + url: preUrl + '/role/create', + method: 'post', + data: data + }) +} + +export function updateRole(id, data) { + return request({ + url: preUrl + '/role/update/' + id, + method: 'put', + data: data + }) +} + +export function updateRoleStatus(id, params) { + return request({ + url: preUrl + '/role/updateStatus/' + id, + method: 'put', + params: params + }) +} + +export function deleteRole(params) { + return request({ + url: preUrl + '/role/delete', + method: 'delete', + params + }) +} + +export function fetchAllRoleList() { + return request({ + url: preUrl + '/role/listAll', + method: 'get' + }) +} + +export function listMenuByRole(roleId) { + return request({ + url: preUrl + '/role/listMenu/' + roleId, + method: 'get' + }) +} + +export function listResourceByRole(roleId) { + return request({ + url: preUrl + '/role/listResource/' + roleId, + method: 'get' + }) +} + +export function allocMenu(data) { + return request({ + url: preUrl + '/role/allocMenu', + method: 'post', + params: data + }) +} + +export function allocResource(data) { + return request({ + url: preUrl + '/role/allocResource', + method: 'post', + params: data + }) +} + +// 菜单列表 +export function getMenuList(parentId, params) { + return request({ + url: preUrl + '/menu/list/' + parentId, + method: 'get', + params: params + }) +} + +export function deleteMenu(id) { + return request({ + url: preUrl + '/menu/delete/' + id, + method: 'delete' + }) +} + +export function createMenu(data) { + return request({ + url: preUrl + '/menu/create', + method: 'post', + data: data + }) +} + +export function updateMenu(id, data) { + return request({ + url: preUrl + '/menu/update/' + id, + method: 'put', + data: data + }) +} + +export function getMenu(id) { + return request({ + url: preUrl + '/menu/' + id, + method: 'get' + }) +} + +export function updateHidden(id, params) { + return request({ + url: preUrl + '/menu/updateHidden/' + id, + method: 'put', + params: params + }) +} + +export function fetchTreeList() { + return request({ + url: preUrl + '/menu/treeList', + method: 'get' + }) +} + +// 资源列表 +export function getResourceList(params) { + return request({ + url: preUrl + '/resource/list', + method: 'get', + params: params + }) +} + +export function createResource(data) { + return request({ + url: preUrl + '/resource/create', + method: 'post', + data: data + }) +} + +export function updateResource(id, data) { + return request({ + url: preUrl + '/resource/update/' + id, + method: 'put', + data: data + }) +} + +export function deleteResource(id) { + return request({ + url: preUrl + '/resource/delete/' + id, + method: 'delete' + }) +} + +export function fetchAllResourceList() { + return request({ + url: preUrl + '/resource/listAll', + method: 'get' + }) +} + +export function listAllCate() { + return request({ + url: preUrl + '/resourceCategory/listAll', + method: 'get' + }) +} + +export function createResourceCategory(data) { + return request({ + url: preUrl + '/resourceCategory/create', + method: 'post', + data: data + }) +} + +export function updateResourceCategory(id, data) { + return request({ + url: preUrl + '/resourceCategory/update/' + id, + method: 'put', + data: data + }) +} + +export function deleteResourceCategory(id) { + return request({ + url: preUrl + '/resourceCategory/delete/' + id, + method: 'delete' + }) +} diff --git a/src/api/blockchain/blockchain.js b/src/api/blockchain/blockchain.js new file mode 100644 index 0000000..2829d4b --- /dev/null +++ b/src/api/blockchain/blockchain.js @@ -0,0 +1,89 @@ +import request from '@/utils/request' + +// 区块列表信息-最新区块 +export function getBlockList(params) { + return request({ + url: '/blockChain/blockChain/block/list', + method: 'get', + params + }) +} + +// 左上角信息 +export function getBlockChain(params) { + return request({ + url: '/blockChain/blockChain', + method: 'get', + params + }) +} + +// 合约调用记录分页查询-最新交易列表 +export function getRecordPage(params) { + return request({ + url: '/blockChain/invoke/record/page', + method: 'get', + params + }) +} + +// 查询区块上的交易列表 +export function getTransactions(id) { + return request({ + url: '/blockChain/blockChain/transactions/' + id, + method: 'get' + }) +} + +// 合约列表 +export function getContractList(params) { + return request({ + url: '/blockChain/contract/list', + method: 'get', + params + }) +} + +// 查询日志列表 +export function getBusinessLog(params) { + return request({ + url: '/blockChain/businessLog/page', + method: 'get', + params + }) +} + +// 节点列表 +export function getNodeList(params) { + return request({ + url: '/blockChain/blockChain/node/list', + method: 'get', + params + }) +} + +// 合约调用记录详情--交易详情 +export function getRecordDetail(params) { + return request({ + url: '/blockChain/invoke/record/detail', + method: 'get', + params + }) +} + +// 查询合约 +export function getRecordQuery(params) { + return request({ + url: '/blockChain/invoke/record/query', + method: 'get', + params + }) +} + +// 7日交易量 +export function get7dayChart() { + return request({ + url: '/blockChain/invoke/record/7dayChart', + method: 'get' + }) +} diff --git a/src/api/blockchain/pointManagement.js b/src/api/blockchain/pointManagement.js new file mode 100644 index 0000000..28ed564 --- /dev/null +++ b/src/api/blockchain/pointManagement.js @@ -0,0 +1,35 @@ +import request from '@/utils/request' + +// 最近7日积分变动情况 +export function get7dayChart(params) { + return request({ + url: '/blockChain/points/record/7dayChart', + method: 'get', + params + }) +} + +// 查询余额 +export function getBalance(params) { + return request({ + url: '/blockChain/points/balance', + method: 'get', + params + }) +} +// 积分流水 +export function getRecordList(params) { + return request({ + url: '/blockChain/points/record/page', + method: 'get', + params + }) +} +// 根据txHash查询积分记录 +export function getPointByHash(params) { + return request({ + url: '/blockChain/points/record/getByTxHash', + method: 'get', + params + }) +} diff --git a/src/api/jcs/jcs.js b/src/api/jcs/jcs.js new file mode 100644 index 0000000..2e2bb02 --- /dev/null +++ b/src/api/jcs/jcs.js @@ -0,0 +1,263 @@ +import request from '@/utils/jcs-request' + +export const taskSubmit = (data) => { + return request({ + url: '/jsm/jobSet/submit', + method: 'post', + data, + headers: { + 'Content-Type': 'application/json' + } + }) +} + +export const getFileList = (data) => { + return request({ + url: '/jsm/jobSet/queryUploaded', + method: 'post', + data + }) +} + +export const createPackage = (data) => { + return request({ + url: '/jsm/jobSet/createPackage', + method: 'post', + data + }) +} + +export function registerAdmin(params) { + return request({ + url: '/jsm/user/register', + method: 'get', + params + }) +} + +// export const getUploadData = (data) => { +// return request({ +// url: '/jsm/jobSet/notifyUploaded', +// method: 'post', +// data, +// headers: { +// 'Content-Type': 'application/json' +// } +// }) +// } + +export const getUploadData = (data) => { + return request({ + url: '/jsm/jobSet/notifyUploaded', + method: 'post', + data, + headers: { + 'Content-Type': 'application/json' + } + }) +} + +export const uploadData = (data) => { + return request({ + url: '/jcs/object/upload', + method: 'post', + data, + headers: { + 'Content-Type': 'multipart/form-data' + } + }) +} + +export const downloadFile = (params) => { + return request({ + url: '/jcs/object/download', + method: 'get', + params + }) +} + +export const updatecode = (data) => { + return request({ + url: '/jsm/jobSet/updateCode', + method: 'post', + data + }) +} + +export const uploadSuccessMessage = (data) => { + return request({ + url: '/jsm/jobSet/localFileUploaded', + method: 'post', + data, + headers: { + 'Content-Type': 'application/json' + } + }) +} + +export const createFolder = (data) => { + return request({ + url: '/jsm/jobSet/createFolder', + method: 'post', + data + }) +} + +export const deleteFolder = (data) => { + return request({ + url: '/jsm/jobSet/deleteFolder', + method: 'post', + data + }) +} + +export const deleteFile = (data) => { + return request({ + url: '/jsm/jobSet/deleteFile', + method: 'post', + data + }) +} + +export const deletePackage = (data) => { + return request({ + url: '/jsm/jobSet/deletePackage', + method: 'post', + data + }) +} + +export const getBindingList = (data) => { + return request({ + url: '/jsm/jobSet/queryBinding', + method: 'post', + data + }) +} + +export const addBinding = (data) => { + return request({ + url: '/jsm/jobSet/binding', + method: 'post', + data + }) +} + +export const deleteBinding = (data) => { + return request({ + url: '/jsm/jobSet/removeBinding', + method: 'post', + data + }) +} + +export const queryImages = (data) => { + return request({ + url: '/jsm/jobSet/queryImages', + method: 'post', + data + }) +} + +export const getResourceListByfilter = (data) => { + return request({ + url: '/jsm/jobSet/queryResource', + method: 'post', + data + }) +} + +export const getResourceRange = (data) => { + return request({ + url: '/jsm/jobSet/resourceRange', + method: 'post', + data + }) +} + +export const createTrainingTask = (data) => { + return request({ + url: '/jsm/jobSet/submit', + method: 'post', + data + }) +} + +export const getApplyList = (data) => { + return request({ + url: '/jsm/access/getAccessRequests', + method: 'post', + data + }) +} + +export const confirmApply = (data) => { + return request({ + url: '/jsm/access/approvalRequestAccess', + method: 'post', + data + }) +} + +// 访问权限设置 +export const accessAuthSetting = (data) => { + return request({ + url: '/jsm/access/updateBindingDataAccess', + method: 'post', + data + }) +} + +// 撤销申请接口 取消访问 status值:撤销申请:revoked,取消访问:cancel +export const cancelApply = (data) => { + return request({ + url: '/jsm/access/updateAccessRequestStatus', + method: 'post', + data + }) +} + +// 申请访问接口 +export const applyData = (data) => { + return request({ + url: '/jsm/access/applyRequestAccess', + method: 'post', + data + }) +} + +// 获取userID +export const getUserID = (params) => { + return request({ + url: '/jsm/user/query', + method: 'get', + params + }) +} + +// 创建子算法:/jobSet/addChildrenCode +export const addCode = (data) => { + return request({ + url: '/jsm/jobSet/addCodeVersion', + method: 'post', + data + }) +} + +// 查询算法列表 +export const queryCodeList = (data) => { + return request({ + url: '/jsm/jobSet/queryCodeVersion', + method: 'post', + data + }) +} + +// 查询算法列表 +export const deleteCode = (data) => { + return request({ + url: '/jsm/jobSet/removeCodeVersion', + method: 'post', + data + }) +} diff --git a/src/api/task/task.js b/src/api/task/task.js index e4eee34..7c8f020 100644 --- a/src/api/task/task.js +++ b/src/api/task/task.js @@ -37,7 +37,9 @@ export const getTrainingTaskStat = () => { export const getInstanceList = (params) => { return request({ url: '/pcm/v1/inference/instanceCenter', method: 'get', params }) } - +export const getHpcInstanceList = (params) => { + return request({ url: '/pcm/v1/hpc/ListInstanceCenter', method: 'get', params }) +} export const getAppPodsByAppName = (name, params) => { return request({ url: '/pcm/v1/apps/pods/' + name, method: 'get', params }) } diff --git a/src/assets/images/blockchain/block.png b/src/assets/images/blockchain/block.png new file mode 100644 index 0000000..fcb1dbe Binary files /dev/null and b/src/assets/images/blockchain/block.png differ diff --git a/src/assets/images/blockchain/blockList.png b/src/assets/images/blockchain/blockList.png new file mode 100644 index 0000000..cba5db0 Binary files /dev/null and b/src/assets/images/blockchain/blockList.png differ diff --git a/src/assets/images/blockchain/blockchain.png b/src/assets/images/blockchain/blockchain.png new file mode 100644 index 0000000..be5dca7 Binary files /dev/null and b/src/assets/images/blockchain/blockchain.png differ diff --git a/src/assets/images/blockchain/certificate.png b/src/assets/images/blockchain/certificate.png new file mode 100644 index 0000000..696e639 Binary files /dev/null and b/src/assets/images/blockchain/certificate.png differ diff --git a/src/assets/images/blockchain/currentBlock.png b/src/assets/images/blockchain/currentBlock.png new file mode 100644 index 0000000..28270db Binary files /dev/null and b/src/assets/images/blockchain/currentBlock.png differ diff --git a/src/assets/images/blockchain/different.png b/src/assets/images/blockchain/different.png new file mode 100644 index 0000000..27eb26f Binary files /dev/null and b/src/assets/images/blockchain/different.png differ diff --git a/src/assets/images/blockchain/icon1.png b/src/assets/images/blockchain/icon1.png new file mode 100644 index 0000000..ab0574d Binary files /dev/null and b/src/assets/images/blockchain/icon1.png differ diff --git a/src/assets/images/blockchain/icon2.png b/src/assets/images/blockchain/icon2.png new file mode 100644 index 0000000..39df8af Binary files /dev/null and b/src/assets/images/blockchain/icon2.png differ diff --git a/src/assets/images/blockchain/icon3.png b/src/assets/images/blockchain/icon3.png new file mode 100644 index 0000000..c2460ee Binary files /dev/null and b/src/assets/images/blockchain/icon3.png differ diff --git a/src/assets/images/blockchain/icon4.png b/src/assets/images/blockchain/icon4.png new file mode 100644 index 0000000..894f7c0 Binary files /dev/null and b/src/assets/images/blockchain/icon4.png differ diff --git a/src/assets/images/blockchain/icon5.png b/src/assets/images/blockchain/icon5.png new file mode 100644 index 0000000..60a0aac Binary files /dev/null and b/src/assets/images/blockchain/icon5.png differ diff --git a/src/assets/images/blockchain/icon6.png b/src/assets/images/blockchain/icon6.png new file mode 100644 index 0000000..6f7a892 Binary files /dev/null and b/src/assets/images/blockchain/icon6.png differ diff --git a/src/assets/images/blockchain/nextBlock.png b/src/assets/images/blockchain/nextBlock.png new file mode 100644 index 0000000..47abbb3 Binary files /dev/null and b/src/assets/images/blockchain/nextBlock.png differ diff --git a/src/assets/images/blockchain/same.png b/src/assets/images/blockchain/same.png new file mode 100644 index 0000000..17bd351 Binary files /dev/null and b/src/assets/images/blockchain/same.png differ diff --git a/src/assets/images/blockchain/transaction.png b/src/assets/images/blockchain/transaction.png new file mode 100644 index 0000000..5e27f51 Binary files /dev/null and b/src/assets/images/blockchain/transaction.png differ diff --git a/src/assets/images/exhibition/algo-1.png b/src/assets/images/exhibition/algo-1.png new file mode 100644 index 0000000..c4a5208 Binary files /dev/null and b/src/assets/images/exhibition/algo-1.png differ diff --git a/src/assets/images/exhibition/dataset-1.png b/src/assets/images/exhibition/dataset-1.png new file mode 100644 index 0000000..a323ff9 Binary files /dev/null and b/src/assets/images/exhibition/dataset-1.png differ diff --git a/src/assets/images/exhibition/dataset-2.png b/src/assets/images/exhibition/dataset-2.png new file mode 100644 index 0000000..98228a2 Binary files /dev/null and b/src/assets/images/exhibition/dataset-2.png differ diff --git a/src/assets/images/exhibition/dataset-3.png b/src/assets/images/exhibition/dataset-3.png new file mode 100644 index 0000000..fab9816 Binary files /dev/null and b/src/assets/images/exhibition/dataset-3.png differ diff --git a/src/assets/images/exhibition/image-1.png b/src/assets/images/exhibition/image-1.png new file mode 100644 index 0000000..d4c3a60 Binary files /dev/null and b/src/assets/images/exhibition/image-1.png differ diff --git a/src/assets/images/exhibition/model-1.png b/src/assets/images/exhibition/model-1.png new file mode 100644 index 0000000..2aa2378 Binary files /dev/null and b/src/assets/images/exhibition/model-1.png differ diff --git a/src/assets/images/loading.gif b/src/assets/images/loading.gif new file mode 100644 index 0000000..6abef24 Binary files /dev/null and b/src/assets/images/loading.gif differ diff --git a/src/assets/images/login-btn.png b/src/assets/images/login-btn.png new file mode 100644 index 0000000..446048a Binary files /dev/null and b/src/assets/images/login-btn.png differ diff --git a/src/assets/images/register_input.png b/src/assets/images/register_input.png new file mode 100644 index 0000000..5d666e6 Binary files /dev/null and b/src/assets/images/register_input.png differ diff --git a/src/assets/images/register_success.png b/src/assets/images/register_success.png new file mode 100644 index 0000000..3d67b34 Binary files /dev/null and b/src/assets/images/register_success.png differ diff --git a/src/assets/img/file-1.png b/src/assets/img/file-1.png new file mode 100644 index 0000000..39e0857 Binary files /dev/null and b/src/assets/img/file-1.png differ diff --git a/src/components/list.vue b/src/components/list.vue index 0b37eb7..fddc7fe 100644 --- a/src/components/list.vue +++ b/src/components/list.vue @@ -26,6 +26,16 @@ v-model="filterData[key]" type="date" /> + + diff --git a/src/views/prometheusMonitor/earth.vue b/src/views/prometheusMonitor/earth.vue index 81dade4..1bd87cd 100644 --- a/src/views/prometheusMonitor/earth.vue +++ b/src/views/prometheusMonitor/earth.vue @@ -163,6 +163,7 @@ export default { this.renderer = null this.camera = null this.aniId = null + this.raycaster = null } }, methods: { @@ -942,7 +943,7 @@ export default { if (this.camera && this.scene && this.scene.getObjectByName('cs')) { this.raycaster.setFromCamera(this.mouse, this.camera) const arr = this.scene.getObjectByName('cs').children.concat(this.scene.getObjectByName('dsxs').children) - var intersects = this.raycaster.intersectObjects(arr, true) + var intersects = (this.raycaster && arr) ? this.raycaster.intersectObjects(arr, true) : [] if (this.activeTab !== 'dsxs') { if (intersects.length) { this.scene.getObjectByName('csText').visible = false @@ -978,7 +979,7 @@ export default { if (this.camera && this.scene && this.raycaster) { this.raycaster.setFromCamera(this.mouse, this.camera) const arr = this.scene.getObjectByName('cs')?.children - var intersects = this.raycaster.intersectObjects(arr, true) + var intersects = this.raycaster ? this.raycaster.intersectObjects(arr, true) : [] if (intersects && intersects.length) { const hubCode = intersects[0].object.userData.hubCode if (hubCode === 9 || hubCode === 5) { diff --git a/src/views/prometheusMonitor/ray.vue b/src/views/prometheusMonitor/ray.vue index e3641bb..112b4ad 100644 --- a/src/views/prometheusMonitor/ray.vue +++ b/src/views/prometheusMonitor/ray.vue @@ -116,7 +116,7 @@ export default { this.orbitControls.update() this.zoomAnimate() this.originPosition = this.camera.position - console.log(this.originPosition) + // console.log(this.originPosition) const tweenL1 = new TWEEN.Tween( this.camera.position).to({ x: -400, y: 900, z: 1700 }, 1800) .easing(TWEEN.Easing.Sinusoidal.InOut) @@ -332,7 +332,7 @@ export default { return material }, flyAnimation(delta = 0.015) { - console.log(this.flyArr) + // console.log(this.flyArr) TWEEN.update() if (delta > 0.2) return this.flyArr.forEach(elem => { diff --git a/src/views/taskManagement/hpcList/appCenter.vue b/src/views/taskManagement/hpcList/appCenter.vue new file mode 100644 index 0000000..aee09b7 --- /dev/null +++ b/src/views/taskManagement/hpcList/appCenter.vue @@ -0,0 +1,234 @@ + + + + diff --git a/src/views/taskManagement/hpcList/taskList.vue b/src/views/taskManagement/hpcList/taskList.vue index b815be7..481ec6a 100644 --- a/src/views/taskManagement/hpcList/taskList.vue +++ b/src/views/taskManagement/hpcList/taskList.vue @@ -20,6 +20,7 @@ tooltip-effect="dark" > @@ -88,6 +89,9 @@ export default { // } }, methods: { + openAppCenter() { + this.$router.push({ path: `appCenter` }) + }, setColumn() { return [ { prop: 'name', label: this.$t('page.taskName'), sortable: true, formatter: (row) => { return this.viewDetail(row)}>{row.name} } }, diff --git a/src/views/taskManagement/taskList/components/trainingTask.vue b/src/views/taskManagement/taskList/components/trainingTask.vue new file mode 100644 index 0000000..df159f0 --- /dev/null +++ b/src/views/taskManagement/taskList/components/trainingTask.vue @@ -0,0 +1,682 @@ + + + + diff --git a/src/views/taskManagement/taskList/create.vue b/src/views/taskManagement/taskList/create.vue index d0a09fc..e23037a 100644 --- a/src/views/taskManagement/taskList/create.vue +++ b/src/views/taskManagement/taskList/create.vue @@ -27,7 +27,7 @@ - + - + + @@ -204,11 +205,11 @@ {{ $t("message.cancel") }} - {{ $t('message.next') }} + {{ $t('message.next') }} {{ $t('message.before') }} - {{ $t('message.next') }} + {{ $t('message.next') }} {{ $t('message.before') }} - {{ $t('message.create') }} + {{ $t('message.create') }} @@ -223,14 +224,15 @@ import hpcCreate from './components/hpcCreate.vue' import vaspCreate from './components/hpcVasp.vue' import { getClusterList } from '@/api/container/cluster' import aiCreate from './components/aiCreate.vue' +import trainingTask from './components/trainingTask.vue' import { getAdapterList } from '@/api/pcm/adapter' import vmForm from './components/virtualmachineForm.vue' import deductiveForm from './components/deductiveForm.vue' import { mapGetters } from 'vuex' - +import { createTrainingTask } from '@/api/jcs/jcs' // import jobForm from './components/jobForm.vue' export default { - components: { applicationForm, List, hpcCreate, aiCreate, vmForm, deductiveForm, vaspCreate }, + components: { applicationForm, List, hpcCreate, aiCreate, vmForm, deductiveForm, vaspCreate, trainingTask }, data() { return { getClusterList, @@ -263,7 +265,8 @@ export default { 'ai': { 'aiBase': 'createAibase', 'aiCard': 'createAiCard', - 'deductive': 'createDeductiveTask' + 'deductive': 'createDeductiveTask', + 'trainingTask': 'createTrainingTask' } }, adapterList: { @@ -392,6 +395,10 @@ export default { list[i] = e.data.list.filter(r => r.type === '1') break } + case 'trainingTask': { + list[i] = e.data.list.filter(r => r.type === '1') + break + } default: { list[i] = e.data.list.filter(r => r.resourceType === '01') break @@ -457,14 +464,14 @@ export default { this.strategySetting = true }, saveForm() { - if (!this.formData.adapterId) { + if (!this.formData.adapterId && this.taskType !== 'trainingTask') { this.$message.warning(this.$t('page.selectDiver')) return false } const type = this.taskType === 'aiCard' ? 'aiBase' : this.taskType let formHook = this.$refs[type].checkForm() if (!formHook) return false - if (this.taskType !== 'deductive') { + if (this.taskType !== 'deductive' && this.taskType !== 'trainingTask') { if (this.taskType !== 'aiCard') { formHook = { ...formHook, ...this.formData } } @@ -482,7 +489,7 @@ export default { formHook.adapterIds = [formHook.adapterId] delete formHook.adapterId } - + console.log(formHook) this.submitLoading = true switch (type) { case 'application': { @@ -573,6 +580,18 @@ export default { break } + case 'trainingTask': { + // formHook.clusterIds = formHook.aiClusterIds + delete formHook.aiClusterIds + console.log(formHook) + createTrainingTask(formHook).then(() => { + this.$message.success(this.$t('page.createdSuccess')) + this.$router.push({ path: '/taskManagement/taskList' }) + }).catch(e => { + this.submitLoading = false + }) + break + } case 'virtualmachine': { formHook.clusterIds = formHook.aiClusterIds delete formHook.aiClusterIds diff --git a/src/views/taskManagement/taskList/list.vue b/src/views/taskManagement/taskList/list.vue index 1c4b9a9..9725773 100644 --- a/src/views/taskManagement/taskList/list.vue +++ b/src/views/taskManagement/taskList/list.vue @@ -121,6 +121,8 @@ export default { this.viewDetail(row)}> {txt} + this.viewResult(row)}> 计算结果 + @@ -130,6 +132,9 @@ export default { viewDetail(row) { this.$router.push({ path: `detail`, query: { id: row.id }}) }, + viewResult(row) { + this.$router.push({ path: `result`, query: { id: row.id }}) + }, createItem() { this.$router.push({ path: `create` }) } diff --git a/src/views/taskManagement/taskList/result.vue b/src/views/taskManagement/taskList/result.vue new file mode 100644 index 0000000..ba7dfdb --- /dev/null +++ b/src/views/taskManagement/taskList/result.vue @@ -0,0 +1,224 @@ + + + + + diff --git a/vue.config.js b/vue.config.js index f9e68f8..abc93a7 100644 --- a/vue.config.js +++ b/vue.config.js @@ -54,6 +54,18 @@ module.exports = { // changeOrigin: true, // secure: false // }, + '/jcs': { + ws: false, + target: 'https://ai4m.jointcloud.net/', + changeOrigin: true, + secure: false + }, + '/jsm': { + ws: false, + target: 'https://ai4m.jointcloud.net/', + changeOrigin: true, + secure: false + }, '^/pcm': { ws: false, // target: 'https://jcos.jointcloud.net:443/', @@ -63,12 +75,25 @@ module.exports = { changeOrigin: true, secure: false }, + '^/jcc-': { + ws: false, + // target: 'https://10.101.15.6/apis', /* 测试环境 */ + target: 'https://dev.jointcloud.net/apis', + changeOrigin: true, + secure: false + }, '^/ai4m': { ws: false, target: 'https://ai4m.jointcloud.net:443/', changeOrigin: true, secure: false }, + '^/blockChain': { + ws: false, + target: 'https://ai4m.jointcloud.net:443/', + changeOrigin: true, + secure: false + }, '^/auth': { ws: false, target: 'https://comnet.jointcloud.net/',