| @@ -1,11 +1,11 @@ | |||||
| <div class="dataset-repolink" id="dataset-repolink-init" style="display: none;" data-repolink="{{.RepoLink}}" | <div class="dataset-repolink" id="dataset-repolink-init" style="display: none;" data-repolink="{{.RepoLink}}" | ||||
| data-dataset-type="{{.datasetType}}"></div> | data-dataset-type="{{.datasetType}}"></div> | ||||
| <div class="inline required unite min_title field" id="dataset-base" style="margin-bottom: 0 !important;"> | |||||
| <div class="inline required min_title field" id="dataset-base" style="margin-bottom: 0 !important;"> | |||||
| {{if or (.benchmarkMode) (.newInference)}} | {{if or (.benchmarkMode) (.newInference)}} | ||||
| <label | <label | ||||
| style="font-weight: normal;">{{if .benchmarkMode}}{{.i18n.Tr "repo.model_manager"}}</label><span> </span>{{else}}{{.i18n.Tr "dataset.dataset"}}</label> {{end}} | style="font-weight: normal;">{{if .benchmarkMode}}{{.i18n.Tr "repo.model_manager"}}</label><span> </span>{{else}}{{.i18n.Tr "dataset.dataset"}}</label> {{end}} | ||||
| {{else}} | {{else}} | ||||
| <label style="font-weight: normal;">{{.i18n.Tr "dataset.dataset"}}</label> | |||||
| <label class="label-fix-width" style="font-weight: normal;">{{.i18n.Tr "dataset.dataset"}}</label> | |||||
| {{end}} | {{end}} | ||||
| <input type="hidden" name="attachment" :value="dataset_uuid"> | <input type="hidden" name="attachment" :value="dataset_uuid"> | ||||
| <input class="disabled" type="text" :value="dataset_name" required onfocus="this.blur();" style="width: 48.5%;"> | <input class="disabled" type="text" :value="dataset_name" required onfocus="this.blur();" style="width: 48.5%;"> | ||||
| @@ -91,7 +91,7 @@ | |||||
| <input type="hidden" id="ai_flaver_name" name="flaver_names" value=""> | <input type="hidden" id="ai_flaver_name" name="flaver_names" value=""> | ||||
| <h4 class="train-job-title ui header ">{{.i18n.Tr "repo.modelarts.train_job.basic_info"}}:</h4> | <h4 class="train-job-title ui header ">{{.i18n.Tr "repo.modelarts.train_job.basic_info"}}:</h4> | ||||
| <div class="required unite min_title inline field"> | <div class="required unite min_title inline field"> | ||||
| <label style="font-weight: normal;">{{.i18n.Tr "cloudbrain.resource_cluster"}}</label> | |||||
| <label class="label-fix-width" style="font-weight: normal;">{{.i18n.Tr "cloudbrain.resource_cluster"}}</label> | |||||
| <div class="ui blue mini menu compact selectcloudbrain"> | <div class="ui blue mini menu compact selectcloudbrain"> | ||||
| <a class="active item" href="{{.RepoLink}}/cloudbrain/train-job/create"> | <a class="active item" href="{{.RepoLink}}/cloudbrain/train-job/create"> | ||||
| <svg class="svg" sxmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-2.29-2.333A17.9 17.9 0 0 1 8.027 13H4.062a8.008 8.008 0 0 0 5.648 6.667zM10.03 13c.151 2.439.848 4.73 1.97 6.752A15.905 15.905 0 0 0 13.97 13h-3.94zm9.908 0h-3.965a17.9 17.9 0 0 1-1.683 6.667A8.008 8.008 0 0 0 19.938 13zM4.062 11h3.965A17.9 17.9 0 0 1 9.71 4.333 8.008 8.008 0 0 0 4.062 11zm5.969 0h3.938A15.905 15.905 0 0 0 12 4.248 15.905 15.905 0 0 0 10.03 11zm4.259-6.667A17.9 17.9 0 0 1 15.973 11h3.965a8.008 8.008 0 0 0-5.648-6.667z"></path></svg> | <svg class="svg" sxmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-2.29-2.333A17.9 17.9 0 0 1 8.027 13H4.062a8.008 8.008 0 0 0 5.648 6.667zM10.03 13c.151 2.439.848 4.73 1.97 6.752A15.905 15.905 0 0 0 13.97 13h-3.94zm9.908 0h-3.965a17.9 17.9 0 0 1-1.683 6.667A8.008 8.008 0 0 0 19.938 13zM4.062 11h3.965A17.9 17.9 0 0 1 9.71 4.333 8.008 8.008 0 0 0 4.062 11zm5.969 0h3.938A15.905 15.905 0 0 0 12 4.248 15.905 15.905 0 0 0 10.03 11zm4.259-6.667A17.9 17.9 0 0 1 15.973 11h3.965a8.008 8.008 0 0 0-5.648-6.667z"></path></svg> | ||||
| @@ -1,20 +1,15 @@ | |||||
| {{template "base/head" .}} | {{template "base/head" .}} | ||||
| <style> | <style> | ||||
| .unite{ | |||||
| .train-job-title { | |||||
| font-family: SourceHanSansSC-medium !important; | font-family: SourceHanSansSC-medium !important; | ||||
| color: rgba(16, 16, 16, 100) !important; | color: rgba(16, 16, 16, 100) !important; | ||||
| } | |||||
| .title{ | |||||
| font-size: 16px !important; | font-size: 16px !important; | ||||
| padding-left: 3rem !important; | padding-left: 3rem !important; | ||||
| } | } | ||||
| .min_title{ | .min_title{ | ||||
| font-size: 14px !important; | font-size: 14px !important; | ||||
| padding-left: 6rem !important; | |||||
| margin-bottom: 2rem !important; | margin-bottom: 2rem !important; | ||||
| } | } | ||||
| .width{ | .width{ | ||||
| width:100% !important; | width:100% !important; | ||||
| @@ -32,7 +27,6 @@ | |||||
| margin-left: 4.5rem !important; | margin-left: 4.5rem !important; | ||||
| } | } | ||||
| .width81{ | .width81{ | ||||
| margin-left: 1.5rem !important; | |||||
| width: 81% !important; | width: 81% !important; | ||||
| } | } | ||||
| @@ -53,7 +47,13 @@ | |||||
| text-align: center; | text-align: center; | ||||
| color: #C2C7CC; | color: #C2C7CC; | ||||
| } | } | ||||
| .label-fix-width{ | |||||
| width: 140px !important; | |||||
| text-align: right; | |||||
| font-family: SourceHanSansSC-medium !important; | |||||
| color: rgba(16, 16, 16, 100) !important; | |||||
| font-size: 14px !important; | |||||
| } | |||||
| </style> | </style> | ||||
| <!-- <div class="ui page dimmer"> | <!-- <div class="ui page dimmer"> | ||||
| <div class="ui text loader">{{.i18n.Tr "loading"}}</div> | <div class="ui text loader">{{.i18n.Tr "loading"}}</div> | ||||
| @@ -81,9 +81,9 @@ | |||||
| <input type="hidden" name="action" value="update"> | <input type="hidden" name="action" value="update"> | ||||
| <input type="hidden" id="ai_engine_name" name="engine_names" value=""> | <input type="hidden" id="ai_engine_name" name="engine_names" value=""> | ||||
| <input type="hidden" id="ai_flavor_name" name="flavor_name" value=""> | <input type="hidden" id="ai_flavor_name" name="flavor_name" value=""> | ||||
| <h4 class="unite title ui header ">{{.i18n.Tr "repo.modelarts.train_job.basic_info"}}:</h4> | |||||
| <div class="required unite min_title inline field"> | |||||
| <label style="font-weight: normal;">{{.i18n.Tr "cloudbrain.resource_cluster"}}</label> | |||||
| <h4 class="train-job-title ui header ">{{.i18n.Tr "repo.modelarts.train_job.basic_info"}}:</h4> | |||||
| <div class="required min_title inline field"> | |||||
| <label class="label-fix-width" style="font-weight: normal;">{{.i18n.Tr "cloudbrain.resource_cluster"}}</label> | |||||
| <div class="ui blue mini menu compact selectcloudbrain"> | <div class="ui blue mini menu compact selectcloudbrain"> | ||||
| <a class="item" href="{{.RepoLink}}/cloudbrain/train-job/create"> | <a class="item" href="{{.RepoLink}}/cloudbrain/train-job/create"> | ||||
| <svg class="svg" sxmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-2.29-2.333A17.9 17.9 0 0 1 8.027 13H4.062a8.008 8.008 0 0 0 5.648 6.667zM10.03 13c.151 2.439.848 4.73 1.97 6.752A15.905 15.905 0 0 0 13.97 13h-3.94zm9.908 0h-3.965a17.9 17.9 0 0 1-1.683 6.667A8.008 8.008 0 0 0 19.938 13zM4.062 11h3.965A17.9 17.9 0 0 1 9.71 4.333 8.008 8.008 0 0 0 4.062 11zm5.969 0h3.938A15.905 15.905 0 0 0 12 4.248 15.905 15.905 0 0 0 10.03 11zm4.259-6.667A17.9 17.9 0 0 1 15.973 11h3.965a8.008 8.008 0 0 0-5.648-6.667z"></path></svg> | <svg class="svg" sxmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-2.29-2.333A17.9 17.9 0 0 1 8.027 13H4.062a8.008 8.008 0 0 0 5.648 6.667zM10.03 13c.151 2.439.848 4.73 1.97 6.752A15.905 15.905 0 0 0 13.97 13h-3.94zm9.908 0h-3.965a17.9 17.9 0 0 1-1.683 6.667A8.008 8.008 0 0 0 19.938 13zM4.062 11h3.965A17.9 17.9 0 0 1 9.71 4.333 8.008 8.008 0 0 0 4.062 11zm5.969 0h3.938A15.905 15.905 0 0 0 12 4.248 15.905 15.905 0 0 0 10.03 11zm4.259-6.667A17.9 17.9 0 0 1 15.973 11h3.965a8.008 8.008 0 0 0-5.648-6.667z"></path></svg> | ||||
| @@ -95,8 +95,8 @@ | |||||
| </a> | </a> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <div class="required unite min_title inline field"> | |||||
| <label style="font-weight: normal;">{{.i18n.Tr "cloudbrain.compute_resource"}}</label> | |||||
| <div class="required min_title inline field"> | |||||
| <label class="label-fix-width" style="font-weight: normal;">{{.i18n.Tr "cloudbrain.compute_resource"}}</label> | |||||
| <div class="ui blue mini menu compact selectcloudbrain"> | <div class="ui blue mini menu compact selectcloudbrain"> | ||||
| <a {{if.GPUEnabled}}class="active item" href="{{.RepoLink}}/grampus/train-job/gpu/create"{{else}}href="javascript:return false;" class="item disabled" {{end}}> | <a {{if.GPUEnabled}}class="active item" href="{{.RepoLink}}/grampus/train-job/gpu/create"{{else}}href="javascript:return false;" class="item disabled" {{end}}> | ||||
| <svg class="svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16"> | <svg class="svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16"> | ||||
| @@ -113,23 +113,23 @@ | |||||
| Ascend NPU</a> | Ascend NPU</a> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <div class="required unite min_title inline field"> | |||||
| <label style="font-weight: normal;">{{.i18n.Tr "repo.modelarts.train_job.job_name"}}</label> | |||||
| <div class="required min_title inline field"> | |||||
| <label class="label-fix-width" style="font-weight: normal;">{{.i18n.Tr "repo.modelarts.train_job.job_name"}}</label> | |||||
| <input style="width: 60%;" name="display_job_name" id="display_job_name" placeholder={{.i18n.Tr "repo.modelarts.train_job.job_name"}} value="{{.display_job_name}}" tabindex="3" onkeyup="this.value=this.value.replace(/[, ]/g,'')" autofocus required maxlength="64"> | <input style="width: 60%;" name="display_job_name" id="display_job_name" placeholder={{.i18n.Tr "repo.modelarts.train_job.job_name"}} value="{{.display_job_name}}" tabindex="3" onkeyup="this.value=this.value.replace(/[, ]/g,'')" autofocus required maxlength="64"> | ||||
| <span class="tooltips" style="display: block;">{{.i18n.Tr "cloudbrain.job_name_rule"}}</span> | |||||
| <span class="tooltips" style="margin-left: 11.5rem;display: block;">{{.i18n.Tr "cloudbrain.job_name_rule"}}</span> | |||||
| </div> | </div> | ||||
| <div class="unite min_title inline field"> | |||||
| <label style="font-weight: normal;" for="description">{{.i18n.Tr "repo.modelarts.train_job.description"}} </label> | |||||
| <div class="min_title inline field"> | |||||
| <label class="label-fix-width" style="font-weight: normal;" for="description">{{.i18n.Tr "repo.modelarts.train_job.description"}} </label> | |||||
| <textarea style="width: 80%;" id="description" name="description" rows="3" maxlength="255" placeholder={{.i18n.Tr "repo.modelarts.train_job.new_place"}} onchange="this.value=this.value.substring(0, 255)" onkeydown="this.value=this.value.substring(0, 255)" onkeyup="this.value=this.value.substring(0, 255)"></textarea> | <textarea style="width: 80%;" id="description" name="description" rows="3" maxlength="255" placeholder={{.i18n.Tr "repo.modelarts.train_job.new_place"}} onchange="this.value=this.value.substring(0, 255)" onkeydown="this.value=this.value.substring(0, 255)" onkeyup="this.value=this.value.substring(0, 255)"></textarea> | ||||
| </div> | </div> | ||||
| <div class="ui divider"></div> | <div class="ui divider"></div> | ||||
| <h4 class="unite title ui header ">{{.i18n.Tr "repo.modelarts.train_job.parameter_setting"}}:</h4> | |||||
| <h4 class="train-job-title ui header ">{{.i18n.Tr "repo.modelarts.train_job.parameter_setting"}}:</h4> | |||||
| <div class="required unite min_title inline field"> | |||||
| <label style="font-weight: normal;">{{.i18n.Tr "repo.modelarts.code_version"}}</label> | |||||
| <div class="required min_title inline field"> | |||||
| <label class="label-fix-width" style="font-weight: normal;">{{.i18n.Tr "repo.modelarts.code_version"}}</label> | |||||
| <select class="ui dropdown width80 left2" id="code_version" name="branch_name"> | <select class="ui dropdown width80 left2" id="code_version" name="branch_name"> | ||||
| {{if .branch_name}} | {{if .branch_name}} | ||||
| <option name="branch_name" value="{{.branch_name}}">{{.branch_name}}</option> | <option name="branch_name" value="{{.branch_name}}">{{.branch_name}}</option> | ||||
| @@ -152,8 +152,8 @@ | |||||
| <div id="images-new-grampus"> | <div id="images-new-grampus"> | ||||
| </div> | </div> | ||||
| <div class="inline unite min_title field required"> | |||||
| <label style="font-weight: normal;">{{.i18n.Tr "repo.modelarts.train_job.start_file"}}</label> | |||||
| <div class="inline min_title field required"> | |||||
| <label class="label-fix-width" style="font-weight: normal;">{{.i18n.Tr "repo.modelarts.train_job.start_file"}}</label> | |||||
| {{if .bootFile}} | {{if .bootFile}} | ||||
| <input style="width: 48.5%;" name="boot_file" id="trainjob_boot_file" value="{{.bootFile}}" tabindex="3" autofocus required maxlength="255" > | <input style="width: 48.5%;" name="boot_file" id="trainjob_boot_file" value="{{.bootFile}}" tabindex="3" autofocus required maxlength="255" > | ||||
| {{else}} | {{else}} | ||||
| @@ -168,8 +168,8 @@ | |||||
| {{template "custom/select_dataset_train" .}} | {{template "custom/select_dataset_train" .}} | ||||
| <span class="tooltips" style="margin-left: 11.5rem;margin-bottom: 2rem;">{{.i18n.Tr "repo.grampus.dataset_path_rule"}}</span> | <span class="tooltips" style="margin-left: 11.5rem;margin-bottom: 2rem;">{{.i18n.Tr "repo.grampus.dataset_path_rule"}}</span> | ||||
| <div class="inline unite min_title field"> | |||||
| <label style="font-weight: normal;">{{.i18n.Tr "repo.modelarts.train_job.run_parameter"}}</label> | |||||
| <div class="inline min_title field"> | |||||
| <label class="label-fix-width" style="font-weight: normal;">{{.i18n.Tr "repo.modelarts.train_job.run_parameter"}}</label> | |||||
| <span id="add_run_para" style="margin-left: 0.5rem;cursor:pointer;color: rgba(3, 102, 214, 100);font-size: 14px;line-height: 26px;font-family: SourceHanSansSC-medium;"><i class="plus square outline icon"></i>{{.i18n.Tr "repo.modelarts.train_job.add_run_parameter"}}</span> | <span id="add_run_para" style="margin-left: 0.5rem;cursor:pointer;color: rgba(3, 102, 214, 100);font-size: 14px;line-height: 26px;font-family: SourceHanSansSC-medium;"><i class="plus square outline icon"></i>{{.i18n.Tr "repo.modelarts.train_job.add_run_parameter"}}</span> | ||||
| <input id="store_run_para" type="hidden" name="run_para_list"> | <input id="store_run_para" type="hidden" name="run_para_list"> | ||||
| <div class="dynamic field" style="margin-top: 1rem;"> | <div class="dynamic field" style="margin-top: 1rem;"> | ||||
| @@ -194,8 +194,8 @@ | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <div class="required unite min_title inline field" id="flavor_name"> | |||||
| <label style="font-weight: normal;">{{.i18n.Tr "repo.modelarts.train_job.standard"}}</label> | |||||
| <div class="required min_title inline field" id="flavor_name"> | |||||
| <label class="label-fix-width" style="font-weight: normal;">{{.i18n.Tr "repo.modelarts.train_job.standard"}}</label> | |||||
| <select class="ui dropdown width81" id="trainjob-flavor" style='width:385px' name="flavor"> | <select class="ui dropdown width81" id="trainjob-flavor" style='width:385px' name="flavor"> | ||||
| {{range .flavor_infos}} | {{range .flavor_infos}} | ||||
| <option name="flavor" value="{{.ID}}">{{.Name}}</option> | <option name="flavor" value="{{.ID}}">{{.Name}}</option> | ||||
| @@ -203,7 +203,8 @@ | |||||
| </select> | </select> | ||||
| </div> | </div> | ||||
| <div class="inline unite min_title field"> | |||||
| <div class="inline min_title field"> | |||||
| <label class="label-fix-width"></label> | |||||
| <button class="ui create_train_job green button"> | <button class="ui create_train_job green button"> | ||||
| {{.i18n.Tr "repo.cloudbrain.new"}} | {{.i18n.Tr "repo.cloudbrain.new"}} | ||||
| </button> | </button> | ||||
| @@ -1,20 +1,14 @@ | |||||
| {{template "base/head" .}} | {{template "base/head" .}} | ||||
| <style> | <style> | ||||
| .unite{ | |||||
| .train-job-title { | |||||
| font-family: SourceHanSansSC-medium !important; | font-family: SourceHanSansSC-medium !important; | ||||
| color: rgba(16, 16, 16, 100) !important; | color: rgba(16, 16, 16, 100) !important; | ||||
| } | |||||
| .title{ | |||||
| font-size: 16px !important; | font-size: 16px !important; | ||||
| padding-left: 3rem !important; | padding-left: 3rem !important; | ||||
| } | } | ||||
| .min_title{ | .min_title{ | ||||
| font-size: 14px !important; | font-size: 14px !important; | ||||
| padding-left: 6rem !important; | |||||
| margin-bottom: 2rem !important; | margin-bottom: 2rem !important; | ||||
| } | } | ||||
| .width{ | .width{ | ||||
| width:100% !important; | width:100% !important; | ||||
| @@ -28,7 +22,6 @@ | |||||
| margin-left: 4.5rem !important; | margin-left: 4.5rem !important; | ||||
| } | } | ||||
| .width81{ | .width81{ | ||||
| margin-left: 1.5rem; | |||||
| width: 81% !important; | width: 81% !important; | ||||
| } | } | ||||
| @@ -49,7 +42,13 @@ | |||||
| text-align: center; | text-align: center; | ||||
| color: #C2C7CC; | color: #C2C7CC; | ||||
| } | } | ||||
| .label-fix-width{ | |||||
| width: 140px !important; | |||||
| text-align: right; | |||||
| font-family: SourceHanSansSC-medium !important; | |||||
| color: rgba(16, 16, 16, 100) !important; | |||||
| font-size: 14px !important; | |||||
| } | |||||
| </style> | </style> | ||||
| <!-- <div class="ui page dimmer"> | <!-- <div class="ui page dimmer"> | ||||
| <div class="ui text loader">{{.i18n.Tr "loading"}}</div> | <div class="ui text loader">{{.i18n.Tr "loading"}}</div> | ||||
| @@ -77,9 +76,9 @@ | |||||
| <input type="hidden" name="action" value="update"> | <input type="hidden" name="action" value="update"> | ||||
| <input type="hidden" id="ai_engine_name" name="engine_name" value=""> | <input type="hidden" id="ai_engine_name" name="engine_name" value=""> | ||||
| <input type="hidden" id="ai_flavor_name" name="flavor_name" value=""> | <input type="hidden" id="ai_flavor_name" name="flavor_name" value=""> | ||||
| <h4 class="unite title ui header ">{{.i18n.Tr "repo.modelarts.train_job.basic_info"}}:</h4> | |||||
| <div class="required unite min_title inline field"> | |||||
| <label style="font-weight: normal;">{{.i18n.Tr "cloudbrain.resource_cluster"}}</label> | |||||
| <h4 class="train-job-title ui header ">{{.i18n.Tr "repo.modelarts.train_job.basic_info"}}:</h4> | |||||
| <div class="required min_title inline field"> | |||||
| <label class="label-fix-width" style="font-weight: normal;">{{.i18n.Tr "cloudbrain.resource_cluster"}}</label> | |||||
| <div class="ui blue mini menu compact selectcloudbrain"> | <div class="ui blue mini menu compact selectcloudbrain"> | ||||
| <a class="item" href="{{.RepoLink}}/cloudbrain/train-job/create"> | <a class="item" href="{{.RepoLink}}/cloudbrain/train-job/create"> | ||||
| <svg class="svg" sxmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-2.29-2.333A17.9 17.9 0 0 1 8.027 13H4.062a8.008 8.008 0 0 0 5.648 6.667zM10.03 13c.151 2.439.848 4.73 1.97 6.752A15.905 15.905 0 0 0 13.97 13h-3.94zm9.908 0h-3.965a17.9 17.9 0 0 1-1.683 6.667A8.008 8.008 0 0 0 19.938 13zM4.062 11h3.965A17.9 17.9 0 0 1 9.71 4.333 8.008 8.008 0 0 0 4.062 11zm5.969 0h3.938A15.905 15.905 0 0 0 12 4.248 15.905 15.905 0 0 0 10.03 11zm4.259-6.667A17.9 17.9 0 0 1 15.973 11h3.965a8.008 8.008 0 0 0-5.648-6.667z"></path></svg> | <svg class="svg" sxmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-2.29-2.333A17.9 17.9 0 0 1 8.027 13H4.062a8.008 8.008 0 0 0 5.648 6.667zM10.03 13c.151 2.439.848 4.73 1.97 6.752A15.905 15.905 0 0 0 13.97 13h-3.94zm9.908 0h-3.965a17.9 17.9 0 0 1-1.683 6.667A8.008 8.008 0 0 0 19.938 13zM4.062 11h3.965A17.9 17.9 0 0 1 9.71 4.333 8.008 8.008 0 0 0 4.062 11zm5.969 0h3.938A15.905 15.905 0 0 0 12 4.248 15.905 15.905 0 0 0 10.03 11zm4.259-6.667A17.9 17.9 0 0 1 15.973 11h3.965a8.008 8.008 0 0 0-5.648-6.667z"></path></svg> | ||||
| @@ -91,8 +90,8 @@ | |||||
| </a> | </a> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <div class="required unite min_title inline field"> | |||||
| <label style="font-weight: normal;">{{.i18n.Tr "cloudbrain.compute_resource"}}</label> | |||||
| <div class="required min_title inline field"> | |||||
| <label class="label-fix-width" style="font-weight: normal;">{{.i18n.Tr "cloudbrain.compute_resource"}}</label> | |||||
| <div class="ui blue mini menu compact selectcloudbrain"> | <div class="ui blue mini menu compact selectcloudbrain"> | ||||
| <a {{if.GPUEnabled}}class="item" href="{{.RepoLink}}/grampus/train-job/gpu/create"{{else}}href="javascript:return false;" class="item disabled" {{end}}> | <a {{if.GPUEnabled}}class="item" href="{{.RepoLink}}/grampus/train-job/gpu/create"{{else}}href="javascript:return false;" class="item disabled" {{end}}> | ||||
| <svg class="svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16"> | <svg class="svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16"> | ||||
| @@ -109,23 +108,23 @@ | |||||
| Ascend NPU</a> | Ascend NPU</a> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <div class="required unite min_title inline field"> | |||||
| <label style="font-weight: normal;">{{.i18n.Tr "repo.modelarts.train_job.job_name"}}</label> | |||||
| <div class="required min_title inline field"> | |||||
| <label class="label-fix-width" style="font-weight: normal;">{{.i18n.Tr "repo.modelarts.train_job.job_name"}}</label> | |||||
| <input style="width: 60%;" name="display_job_name" id="display_job_name" placeholder={{.i18n.Tr "repo.modelarts.train_job.job_name"}} value="{{.display_job_name}}" tabindex="3" onkeyup="this.value=this.value.replace(/[, ]/g,'')" autofocus required maxlength="64"> | <input style="width: 60%;" name="display_job_name" id="display_job_name" placeholder={{.i18n.Tr "repo.modelarts.train_job.job_name"}} value="{{.display_job_name}}" tabindex="3" onkeyup="this.value=this.value.replace(/[, ]/g,'')" autofocus required maxlength="64"> | ||||
| <span class="tooltips" style="display: block;">{{.i18n.Tr "cloudbrain.job_name_rule"}}</span> | <span class="tooltips" style="display: block;">{{.i18n.Tr "cloudbrain.job_name_rule"}}</span> | ||||
| </div> | </div> | ||||
| <div class="unite min_title inline field"> | |||||
| <label style="font-weight: normal;" for="description">{{.i18n.Tr "repo.modelarts.train_job.description"}} </label> | |||||
| <div class="min_title inline field"> | |||||
| <label class="label-fix-width" style="font-weight: normal;" for="description">{{.i18n.Tr "repo.modelarts.train_job.description"}} </label> | |||||
| <textarea style="width: 80%;" id="description" name="description" rows="3" maxlength="255" placeholder={{.i18n.Tr "repo.modelarts.train_job.new_place"}} onchange="this.value=this.value.substring(0, 255)" onkeydown="this.value=this.value.substring(0, 255)" onkeyup="this.value=this.value.substring(0, 255)"></textarea> | <textarea style="width: 80%;" id="description" name="description" rows="3" maxlength="255" placeholder={{.i18n.Tr "repo.modelarts.train_job.new_place"}} onchange="this.value=this.value.substring(0, 255)" onkeydown="this.value=this.value.substring(0, 255)" onkeyup="this.value=this.value.substring(0, 255)"></textarea> | ||||
| </div> | </div> | ||||
| <div class="ui divider"></div> | <div class="ui divider"></div> | ||||
| <h4 class="unite title ui header ">{{.i18n.Tr "repo.modelarts.train_job.parameter_setting"}}:</h4> | |||||
| <h4 class="train-job-title title ui header ">{{.i18n.Tr "repo.modelarts.train_job.parameter_setting"}}:</h4> | |||||
| <div class="required unite min_title inline field"> | <div class="required unite min_title inline field"> | ||||
| <label style="font-weight: normal;">{{.i18n.Tr "repo.modelarts.code_version"}}</label> | |||||
| <label class="label-fix-width" style="font-weight: normal;">{{.i18n.Tr "repo.modelarts.code_version"}}</label> | |||||
| <select class="ui dropdown width80 left2" id="code_version" name="branch_name"> | <select class="ui dropdown width80 left2" id="code_version" name="branch_name"> | ||||
| {{if .branch_name}} | {{if .branch_name}} | ||||
| <option name="branch_name" value="{{.branch_name}}">{{.branch_name}}</option> | <option name="branch_name" value="{{.branch_name}}">{{.branch_name}}</option> | ||||
| @@ -145,8 +144,8 @@ | |||||
| </select> | </select> | ||||
| </div> | </div> | ||||
| <div class="required unite min_title inline field" id="engine_name"> | |||||
| <label style="font-weight: normal;">{{.i18n.Tr "cloudbrain.mirror"}}</label> | |||||
| <div class="required min_title inline field" id="engine_name"> | |||||
| <label class="label-fix-width" style="font-weight: normal;">{{.i18n.Tr "cloudbrain.mirror"}}</label> | |||||
| <select class="ui dropdown width81" id="trainjob_images" name="image_id"> | <select class="ui dropdown width81" id="trainjob_images" name="image_id"> | ||||
| {{range .images}} | {{range .images}} | ||||
| <option name="image_id" value="{{.ID}}">{{.Name}}</option> | <option name="image_id" value="{{.ID}}">{{.Name}}</option> | ||||
| @@ -154,8 +153,8 @@ | |||||
| </select> | </select> | ||||
| </div> | </div> | ||||
| <div class="inline unite min_title field required"> | |||||
| <label style="font-weight: normal;">{{.i18n.Tr "repo.modelarts.train_job.start_file"}}</label> | |||||
| <div class="inline min_title field required"> | |||||
| <label class="label-fix-width" style="font-weight: normal;">{{.i18n.Tr "repo.modelarts.train_job.start_file"}}</label> | |||||
| {{if .bootFile}} | {{if .bootFile}} | ||||
| <input style="width: 48.5%;" name="boot_file" id="trainjob_boot_file" value="{{.bootFile}}" tabindex="3" autofocus required maxlength="255" > | <input style="width: 48.5%;" name="boot_file" id="trainjob_boot_file" value="{{.bootFile}}" tabindex="3" autofocus required maxlength="255" > | ||||
| {{else}} | {{else}} | ||||
| @@ -169,24 +168,24 @@ | |||||
| {{template "custom/select_dataset_train" .}} | {{template "custom/select_dataset_train" .}} | ||||
| <span class="tooltips" style="margin-left: 11.5rem;margin-bottom: 2rem;">{{.i18n.Tr "repo.grampus.dataset_path_rule"}}</span> | <span class="tooltips" style="margin-left: 11.5rem;margin-bottom: 2rem;">{{.i18n.Tr "repo.grampus.dataset_path_rule"}}</span> | ||||
| <div class="inline unite min_title field"> | |||||
| <label style="font-weight: normal;">{{.i18n.Tr "repo.modelarts.train_job.run_parameter"}}</label> | |||||
| <div class="inline min_title field"> | |||||
| <label class="label-fix-width" style="font-weight: normal;">{{.i18n.Tr "repo.modelarts.train_job.run_parameter"}}</label> | |||||
| <span id="add_run_para" style="margin-left: 0.5rem;cursor:pointer;color: rgba(3, 102, 214, 100);font-size: 14px;line-height: 26px;font-family: SourceHanSansSC-medium;"><i class="plus square outline icon"></i>{{.i18n.Tr "repo.modelarts.train_job.add_run_parameter"}}</span> | <span id="add_run_para" style="margin-left: 0.5rem;cursor:pointer;color: rgba(3, 102, 214, 100);font-size: 14px;line-height: 26px;font-family: SourceHanSansSC-medium;"><i class="plus square outline icon"></i>{{.i18n.Tr "repo.modelarts.train_job.add_run_parameter"}}</span> | ||||
| <input id="store_run_para" type="hidden" name="run_para_list"> | <input id="store_run_para" type="hidden" name="run_para_list"> | ||||
| <div class="dynamic field" style="margin-top: 1rem;"> | <div class="dynamic field" style="margin-top: 1rem;"> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <div class="required unite min_title inline field" id="flavor_name"> | |||||
| <label style="font-weight: normal;">{{.i18n.Tr "repo.modelarts.train_job.standard"}}</label> | |||||
| <div class="required min_title inline field" id="flavor_name"> | |||||
| <label class="label-fix-width" style="font-weight: normal;">{{.i18n.Tr "repo.modelarts.train_job.standard"}}</label> | |||||
| <select class="ui dropdown width81" id="trainjob-flavor" style='width:385px' name="flavor"> | <select class="ui dropdown width81" id="trainjob-flavor" style='width:385px' name="flavor"> | ||||
| {{range .flavor_infos}} | {{range .flavor_infos}} | ||||
| <option name="flavor" value="{{.ID}}">{{.Name}}</option> | <option name="flavor" value="{{.ID}}">{{.Name}}</option> | ||||
| {{end}} | {{end}} | ||||
| </select> | </select> | ||||
| </div> | </div> | ||||
| <div class="inline required unite min_title field"> | |||||
| <label style="font-weight: normal;">{{.i18n.Tr "repo.modelarts.train_job.amount_of_compute_node"}}</label> | |||||
| <div class="inline required min_title field"> | |||||
| <label class="label-fix-width" style="font-weight: normal;">{{.i18n.Tr "repo.modelarts.train_job.amount_of_compute_node"}}</label> | |||||
| <div class="ui labeled input" style="width: 5%;"> | <div class="ui labeled input" style="width: 5%;"> | ||||
| @@ -200,7 +199,8 @@ | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <div class="inline unite min_title field"> | |||||
| <div class="inline min_title field"> | |||||
| <label class="label-fix-width"></label> | |||||
| <button class="ui create_train_job green button"> | <button class="ui create_train_job green button"> | ||||
| {{.i18n.Tr "repo.cloudbrain.new"}} | {{.i18n.Tr "repo.cloudbrain.new"}} | ||||
| </button> | </button> | ||||
| @@ -69,7 +69,6 @@ | |||||
| } | } | ||||
| .tab_2_content { | .tab_2_content { | ||||
| min-height: 460px; | |||||
| margin-left: 10px; | margin-left: 10px; | ||||
| } | } | ||||
| @@ -338,30 +337,6 @@ | |||||
| </div> | </div> | ||||
| </td> | </td> | ||||
| </tr> | </tr> | ||||
| <tr class="ti-no-ng-animate"> | |||||
| <td class="ti-no-ng-animate ti-text-form-label text-width80"> | |||||
| {{$.i18n.Tr "repo.modelarts.train_job.dura_time"}} | |||||
| </td> | |||||
| <td class="ti-text-form-content"> | |||||
| <div class="text-span text-span-w" | |||||
| id="{{.VersionName}}-duration"> | |||||
| {{$.duration}} | |||||
| </div> | |||||
| </td> | |||||
| </tr> | |||||
| <tr class="ti-no-ng-animate"> | |||||
| <td class="ti-no-ng-animate ti-text-form-label text-width80"> | |||||
| {{$.i18n.Tr "repo.cloudbrain.datasetdownload"}} | |||||
| </td> | |||||
| <td class="ti-text-form-content"> | |||||
| <div class="text-span-new" id="model_description"> | |||||
| {{$.datasetDownloadLink}} | |||||
| </div> | |||||
| </td> | |||||
| </tr> | |||||
| <tr class="ti-no-ng-animate"> | <tr class="ti-no-ng-animate"> | ||||
| <td class="ti-no-ng-animate ti-text-form-label text-width80"> | <td class="ti-no-ng-animate ti-text-form-label text-width80"> | ||||
| {{$.i18n.Tr "cloudbrain.description"}} | {{$.i18n.Tr "cloudbrain.description"}} | ||||
| @@ -392,24 +367,6 @@ | |||||
| </div> | </div> | ||||
| </td> | </td> | ||||
| </tr> | </tr> | ||||
| <tr class="ti-no-ng-animate"> | |||||
| <td class="ti-no-ng-animate ti-text-form-label text-width80"> | |||||
| {{$.i18n.Tr "repo.modelarts.train_job.dataset"}} | |||||
| </td> | |||||
| <td class="ti-text-form-content"> | |||||
| <div class="text-span text-span-w" | |||||
| id="{{.VersionName}}-BenchmarkTypeName"> | |||||
| {{.DatasetName}} | |||||
| </div> | |||||
| </td> | |||||
| </tr> | |||||
| <tr class="ti-no-ng-animate"> | <tr class="ti-no-ng-animate"> | ||||
| <td class="ti-no-ng-animate ti-text-form-label text-width80"> | <td class="ti-no-ng-animate ti-text-form-label text-width80"> | ||||
| {{$.i18n.Tr "repo.modelarts.train_job.standard"}} | {{$.i18n.Tr "repo.modelarts.train_job.standard"}} | ||||
| @@ -456,6 +413,18 @@ | |||||
| </div> | </div> | ||||
| </td> | </td> | ||||
| </tr> | </tr> | ||||
| <tr class="ti-no-ng-animate"> | |||||
| <td class="ti-no-ng-animate ti-text-form-label text-width80"> | |||||
| {{$.i18n.Tr "repo.modelarts.train_job.dura_time"}} | |||||
| </td> | |||||
| <td class="ti-text-form-content"> | |||||
| <div class="text-span text-span-w" | |||||
| id="{{.VersionName}}-duration"> | |||||
| {{$.duration}} | |||||
| </div> | |||||
| </td> | |||||
| </tr> | |||||
| </tbody> | </tbody> | ||||
| @@ -463,8 +432,26 @@ | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <div style="clear:both"> | |||||
| <table style="border:none" class="ui fixed small stackable table"> | |||||
| <thead> | |||||
| <tr><th style="color: #8a8e99;font-size:12px" class="three wide center aligned">数据集文件</th> | |||||
| <th style="color: #8a8e99;font-size:12px"class="eleven wide">数据集下载地址</th> | |||||
| <th style="color: #8a8e99;font-size:12px" class="two wide center aligned">操作</th> | |||||
| </tr></thead> | |||||
| <tbody> | |||||
| {{range $.datasetDownload}} | |||||
| <tr> | |||||
| <td style="word-wrap: break-word;word-break: break-all;" class="center aligned"><a>{{.DatasetName}}</a></td> | |||||
| <td style="word-wrap: break-word;word-break: break-all;">{{.DatasetDownloadLink}}</td> | |||||
| <td class="center aligned" data-label="Job"><a class="clipboard" data-clipboard-text="{{.DatasetDownloadLink}}">复制链接</a></td> | |||||
| </tr> | |||||
| {{end}} | |||||
| </tbody> | |||||
| </table> | |||||
| </div> | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| @@ -509,4 +496,5 @@ | |||||
| $(document).ready(function () { | $(document).ready(function () { | ||||
| $('.secondary.menu .item').tab(); | $('.secondary.menu .item').tab(); | ||||
| }); | }); | ||||
| console.log({{$.datasetDownload}}) | |||||
| </script> | </script> | ||||
| @@ -1,11 +1,8 @@ | |||||
| {{template "base/head" .}} | {{template "base/head" .}} | ||||
| <style> | <style> | ||||
| .unite{ | |||||
| .train-job-title { | |||||
| font-family: SourceHanSansSC-medium !important; | font-family: SourceHanSansSC-medium !important; | ||||
| color: rgba(16, 16, 16, 100) !important; | color: rgba(16, 16, 16, 100) !important; | ||||
| } | |||||
| .title{ | |||||
| font-size: 16px !important; | font-size: 16px !important; | ||||
| padding-left: 3rem !important; | padding-left: 3rem !important; | ||||
| } | } | ||||
| @@ -84,9 +81,9 @@ | |||||
| <input type="hidden" name="action" value="update"> | <input type="hidden" name="action" value="update"> | ||||
| <input type="hidden" id="ai_engine_name" name="engine_names" value=""> | <input type="hidden" id="ai_engine_name" name="engine_names" value=""> | ||||
| <input type="hidden" id="ai_flaver_name" name="flaver_names" value=""> | <input type="hidden" id="ai_flaver_name" name="flaver_names" value=""> | ||||
| <h4 class="unite title ui header ">{{.i18n.Tr "repo.modelarts.train_job.basic_info"}}:</h4> | |||||
| <div class="required unite min_title inline field"> | |||||
| <label style="font-weight: normal;">{{.i18n.Tr "cloudbrain.resource_cluster"}}</label> | |||||
| <h4 class="train-job-title ui header ">{{.i18n.Tr "repo.modelarts.train_job.basic_info"}}:</h4> | |||||
| <div class="required min_title inline field"> | |||||
| <label class="label-fix-width" style="font-weight: normal;">{{.i18n.Tr "cloudbrain.resource_cluster"}}</label> | |||||
| <div class="ui blue mini menu compact selectcloudbrain"> | <div class="ui blue mini menu compact selectcloudbrain"> | ||||
| <a class="active item" href="{{.RepoLink}}/cloudbrain/train-job/create"> | <a class="active item" href="{{.RepoLink}}/cloudbrain/train-job/create"> | ||||
| <svg class="svg" sxmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-2.29-2.333A17.9 17.9 0 0 1 8.027 13H4.062a8.008 8.008 0 0 0 5.648 6.667zM10.03 13c.151 2.439.848 4.73 1.97 6.752A15.905 15.905 0 0 0 13.97 13h-3.94zm9.908 0h-3.965a17.9 17.9 0 0 1-1.683 6.667A8.008 8.008 0 0 0 19.938 13zM4.062 11h3.965A17.9 17.9 0 0 1 9.71 4.333 8.008 8.008 0 0 0 4.062 11zm5.969 0h3.938A15.905 15.905 0 0 0 12 4.248 15.905 15.905 0 0 0 10.03 11zm4.259-6.667A17.9 17.9 0 0 1 15.973 11h3.965a8.008 8.008 0 0 0-5.648-6.667z"></path></svg> | <svg class="svg" sxmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-2.29-2.333A17.9 17.9 0 0 1 8.027 13H4.062a8.008 8.008 0 0 0 5.648 6.667zM10.03 13c.151 2.439.848 4.73 1.97 6.752A15.905 15.905 0 0 0 13.97 13h-3.94zm9.908 0h-3.965a17.9 17.9 0 0 1-1.683 6.667A8.008 8.008 0 0 0 19.938 13zM4.062 11h3.965A17.9 17.9 0 0 1 9.71 4.333 8.008 8.008 0 0 0 4.062 11zm5.969 0h3.938A15.905 15.905 0 0 0 12 4.248 15.905 15.905 0 0 0 10.03 11zm4.259-6.667A17.9 17.9 0 0 1 15.973 11h3.965a8.008 8.008 0 0 0-5.648-6.667z"></path></svg> | ||||
| @@ -132,7 +129,7 @@ | |||||
| </div> | </div> | ||||
| <div class="ui divider"></div> | <div class="ui divider"></div> | ||||
| <h4 class="unite title ui header ">{{.i18n.Tr "repo.modelarts.train_job.parameter_setting"}}:</h4> | |||||
| <h4 class="train-job-title ui header ">{{.i18n.Tr "repo.modelarts.train_job.parameter_setting"}}:</h4> | |||||
| <div class="required inline min_title field"> | <div class="required inline min_title field"> | ||||
| @@ -39,8 +39,15 @@ | |||||
| class="disabled" | class="disabled" | ||||
| style="width: 48.5%" | style="width: 48.5%" | ||||
| placeholder="选择数据集文件" | placeholder="选择数据集文件" | ||||
| required | |||||
| /> | |||||
| <input | |||||
| v-else | |||||
| type="text" | |||||
| class="disabled" | |||||
| required | |||||
| placeholder="选择数据集文件" | |||||
| /> | /> | ||||
| <input v-else type="text" class="disabled" placeholder="选择数据集文件" /> | |||||
| </span> | </span> | ||||
| <el-button | <el-button | ||||
| @@ -99,30 +106,37 @@ | |||||
| > | > | ||||
| <span slot-scope="{ node, data }" class="slot-wrap"> | <span slot-scope="{ node, data }" class="slot-wrap"> | ||||
| <span v-if="data.parent" class="custom-tree-node"> | <span v-if="data.parent" class="custom-tree-node"> | ||||
| <el-tooltip v-if="data.Description" placement="left"> | |||||
| <el-tooltip v-if="data.Description" placement="top-start"> | |||||
| <div slot="content" class="multiple-wrap"> | <div slot="content" class="multiple-wrap"> | ||||
| {{ data.Description }} | {{ data.Description }} | ||||
| </div> | </div> | ||||
| <span class="dataset-title dataset-nowrap" | <span class="dataset-title dataset-nowrap" | ||||
| >{{ node.label }} | |||||
| ><div class="dataset_flex"> | |||||
| <span | |||||
| style="flex: inherit" | |||||
| class="dataset-nowrap" | |||||
| >{{ node.label }}</span | |||||
| > | |||||
| <img | |||||
| v-if="data.Recommend" | |||||
| style="margin-left: 0.4rem" | |||||
| src="/img/jian.svg" | |||||
| /> | |||||
| </div> | |||||
| </span> | </span> | ||||
| </el-tooltip> | </el-tooltip> | ||||
| <span v-else class="dataset-title dataset-nowrap" | <span v-else class="dataset-title dataset-nowrap" | ||||
| >{{ node.label }} | |||||
| ><div class="dataset_flex"> | |||||
| <span style="flex: inherit" class="dataset-nowrap">{{ | |||||
| node.label | |||||
| }}</span> | |||||
| <img | |||||
| v-if="data.Recommend" | |||||
| style="margin-left: 0.4rem" | |||||
| src="/img/jian.svg" | |||||
| /> | |||||
| </div> | |||||
| </span> | </span> | ||||
| <!-- <a | |||||
| :href=" | |||||
| '/' + | |||||
| data.Repo.OwnerName + | |||||
| '/' + | |||||
| data.Repo.Alias + | |||||
| '/datasets' | |||||
| " | |||||
| target="_blank" | |||||
| class="dataset-repolink dataset-nowrap" | |||||
| :title="data.Repo.OwnerName + '/' + data.Repo.Alias" | |||||
| >{{ data.Repo.OwnerName }}/{{ data.Repo.Alias }}</a | |||||
| > --> | |||||
| <span | <span | ||||
| class="dataset-repolink dataset-nowrap" | class="dataset-repolink dataset-nowrap" | ||||
| @click.stop="return false;" | @click.stop="return false;" | ||||
| @@ -194,16 +208,36 @@ | |||||
| > | > | ||||
| <span slot-scope="{ node, data }" class="slot-wrap"> | <span slot-scope="{ node, data }" class="slot-wrap"> | ||||
| <span v-if="data.parent" class="custom-tree-node"> | <span v-if="data.parent" class="custom-tree-node"> | ||||
| <el-tooltip v-if="data.Description" placement="left"> | |||||
| <el-tooltip v-if="data.Description" placement="top-start"> | |||||
| <div slot="content" class="multiple-wrap"> | <div slot="content" class="multiple-wrap"> | ||||
| {{ data.Description }} | {{ data.Description }} | ||||
| </div> | </div> | ||||
| <span class="dataset-title dataset-nowrap" | <span class="dataset-title dataset-nowrap" | ||||
| >{{ node.label }} | |||||
| ><div class="dataset_flex"> | |||||
| <span | |||||
| style="flex: inherit" | |||||
| class="dataset-nowrap" | |||||
| >{{ node.label }}</span | |||||
| > | |||||
| <img | |||||
| v-if="data.Recommend" | |||||
| style="margin-left: 0.4rem" | |||||
| src="/img/jian.svg" | |||||
| /> | |||||
| </div> | |||||
| </span> | </span> | ||||
| </el-tooltip> | </el-tooltip> | ||||
| <span v-else class="dataset-title dataset-nowrap" | <span v-else class="dataset-title dataset-nowrap" | ||||
| >{{ node.label }} | |||||
| ><div class="dataset_flex"> | |||||
| <span style="flex: inherit" class="dataset-nowrap">{{ | |||||
| node.label | |||||
| }}</span> | |||||
| <img | |||||
| v-if="data.Recommend" | |||||
| style="margin-left: 0.4rem" | |||||
| src="/img/jian.svg" | |||||
| /> | |||||
| </div> | |||||
| </span> | </span> | ||||
| <a | <a | ||||
| :href=" | :href=" | ||||
| @@ -276,16 +310,36 @@ | |||||
| > | > | ||||
| <span slot-scope="{ node, data }" class="slot-wrap"> | <span slot-scope="{ node, data }" class="slot-wrap"> | ||||
| <span v-if="data.parent" class="custom-tree-node"> | <span v-if="data.parent" class="custom-tree-node"> | ||||
| <el-tooltip v-if="data.Description" placement="left"> | |||||
| <el-tooltip v-if="data.Description" placement="top-start"> | |||||
| <div slot="content" class="multiple-wrap"> | <div slot="content" class="multiple-wrap"> | ||||
| {{ data.Description }} | {{ data.Description }} | ||||
| </div> | </div> | ||||
| <span class="dataset-title dataset-nowrap" | <span class="dataset-title dataset-nowrap" | ||||
| >{{ node.label }} | |||||
| ><div class="dataset_flex"> | |||||
| <span | |||||
| style="flex: inherit" | |||||
| class="dataset-nowrap" | |||||
| >{{ node.label }}</span | |||||
| > | |||||
| <img | |||||
| v-if="data.Recommend" | |||||
| style="margin-left: 0.4rem" | |||||
| src="/img/jian.svg" | |||||
| /> | |||||
| </div> | |||||
| </span> | </span> | ||||
| </el-tooltip> | </el-tooltip> | ||||
| <span v-else class="dataset-title dataset-nowrap" | <span v-else class="dataset-title dataset-nowrap" | ||||
| >{{ node.label }} | |||||
| ><div class="dataset_flex"> | |||||
| <span style="flex: inherit" class="dataset-nowrap">{{ | |||||
| node.label | |||||
| }}</span> | |||||
| <img | |||||
| v-if="data.Recommend" | |||||
| style="margin-left: 0.4rem" | |||||
| src="/img/jian.svg" | |||||
| /> | |||||
| </div> | |||||
| </span> | </span> | ||||
| <a | <a | ||||
| :href=" | :href=" | ||||
| @@ -358,16 +412,36 @@ | |||||
| > | > | ||||
| <span slot-scope="{ node, data }" class="slot-wrap"> | <span slot-scope="{ node, data }" class="slot-wrap"> | ||||
| <span v-if="data.parent" class="custom-tree-node"> | <span v-if="data.parent" class="custom-tree-node"> | ||||
| <el-tooltip v-if="data.Description" placement="left"> | |||||
| <el-tooltip v-if="data.Description" placement="top-start"> | |||||
| <div slot="content" class="multiple-wrap"> | <div slot="content" class="multiple-wrap"> | ||||
| {{ data.Description }} | {{ data.Description }} | ||||
| </div> | </div> | ||||
| <span class="dataset-title dataset-nowrap" | <span class="dataset-title dataset-nowrap" | ||||
| >{{ node.label }} | |||||
| ><div class="dataset_flex"> | |||||
| <span | |||||
| style="flex: inherit" | |||||
| class="dataset-nowrap" | |||||
| >{{ node.label }}</span | |||||
| > | |||||
| <img | |||||
| v-if="data.Recommend" | |||||
| style="margin-left: 0.4rem" | |||||
| src="/img/jian.svg" | |||||
| /> | |||||
| </div> | |||||
| </span> | </span> | ||||
| </el-tooltip> | </el-tooltip> | ||||
| <span v-else class="dataset-title dataset-nowrap" | <span v-else class="dataset-title dataset-nowrap" | ||||
| >{{ node.label }} | |||||
| ><div class="dataset_flex"> | |||||
| <span style="flex: inherit" class="dataset-nowrap">{{ | |||||
| node.label | |||||
| }}</span> | |||||
| <img | |||||
| v-if="data.Recommend" | |||||
| style="margin-left: 0.4rem" | |||||
| src="/img/jian.svg" | |||||
| /> | |||||
| </div> | |||||
| </span> | </span> | ||||
| <a | <a | ||||
| :href=" | :href=" | ||||
| @@ -1,216 +1,292 @@ | |||||
| <template> | <template> | ||||
| <div class="inline required field" :class="{ 'unite': benchmarkNew, 'min_title': benchmarkNew}"> | |||||
| <label v-if="benchmarkNew" style="font-weight: normal;">镜像</label> | |||||
| <label v-else>镜像</label> | |||||
| <span v-if="benchmarkNew"> </span> | |||||
| <input v-if="benchmarkNew" type="text" name="image" :value="imageAddress" style="width: 48.5%;" | |||||
| placeholder="选择镜像或输入镜像地址"> | |||||
| <input v-else type="text" name="image" :value="imageAddress" placeholder="选择镜像或输入镜像地址"> | |||||
| <el-button type="text" @click="dialogVisible = true" icon="el-icon-plus" style="color: #0366d6;">选择镜像 | |||||
| </el-button> | |||||
| <el-dialog title="选择镜像" :visible.sync="dialogVisible" width="50%"> | |||||
| <div class="ui icon input" style="z-index: 9999;position: absolute;right: 50px;height:30px;"> | |||||
| <i class="search icon" style="cursor: pointer;pointer-events:auto"></i> | |||||
| <input type="text" placeholder="搜镜像Tag/描述/标签..." v-model="search"> | |||||
| <div | |||||
| class="inline required field" | |||||
| :class="{ unite: benchmarkNew, min_title: benchmarkNew }" | |||||
| > | |||||
| <label | |||||
| v-if="benchmarkNew" | |||||
| class="label-fix-width" | |||||
| style="font-weight: normal" | |||||
| >镜像</label | |||||
| > | |||||
| <label v-else>镜像</label> | |||||
| <input | |||||
| v-if="benchmarkNew" | |||||
| type="text" | |||||
| name="image" | |||||
| :value="imageAddress" | |||||
| style="width: 48.5%" | |||||
| placeholder="选择镜像或输入镜像地址" | |||||
| /> | |||||
| <input | |||||
| v-else | |||||
| type="text" | |||||
| name="image" | |||||
| :value="imageAddress" | |||||
| placeholder="选择镜像或输入镜像地址" | |||||
| /> | |||||
| <el-button | |||||
| type="text" | |||||
| @click="dialogVisible = true" | |||||
| icon="el-icon-plus" | |||||
| style="color: #0366d6" | |||||
| >选择镜像 | |||||
| </el-button> | |||||
| <el-dialog title="选择镜像" :visible.sync="dialogVisible" width="50%"> | |||||
| <div | |||||
| class="ui icon input" | |||||
| style="z-index: 9999; position: absolute; right: 50px; height: 30px" | |||||
| > | |||||
| <i | |||||
| class="search icon" | |||||
| style="cursor: pointer; pointer-events: auto" | |||||
| ></i> | |||||
| <input | |||||
| type="text" | |||||
| placeholder="搜镜像Tag/描述/标签..." | |||||
| v-model="search" | |||||
| /> | |||||
| </div> | |||||
| <el-tabs v-model="activeName" @tab-click="handleClick"> | |||||
| <el-tab-pane label="公开镜像" name="first" v-loading="loadingPublic"> | |||||
| <div | |||||
| style=" | |||||
| display: flex; | |||||
| align-items: center; | |||||
| justify-content: space-between; | |||||
| padding: 1rem 0; | |||||
| border-bottom: 1px solid #f5f5f5; | |||||
| " | |||||
| v-for="(publicData, index) in tableDataPublic" | |||||
| :key="index" | |||||
| > | |||||
| <div style="width: 90%"> | |||||
| <div | |||||
| style=" | |||||
| display: flex; | |||||
| align-items: center; | |||||
| justify-content: space-between; | |||||
| " | |||||
| > | |||||
| <div style="display: flex; align-items: center"> | |||||
| <span | |||||
| class="panel_dataset_name text-over" | |||||
| style="margin-left: 0" | |||||
| >{{ publicData.tag }} | |||||
| </span> | |||||
| <img | |||||
| v-if="publicData.type == 5" | |||||
| src="/img/jian.svg" | |||||
| style="margin-left: 0.5rem" | |||||
| /> | |||||
| </div> | |||||
| <div v-if="!!publicData.topics" class="text-over"> | |||||
| <span | |||||
| v-for="(topic, index) in publicData.topics" | |||||
| class="ui repo-topic label topic" | |||||
| >{{ topic }}</span | |||||
| > | |||||
| </div> | |||||
| </div> | |||||
| <div style="margin-top: 8px; display: flex"> | |||||
| <a | |||||
| v-if="publicData.relAvatarLink || publicData.userName" | |||||
| :title="publicData.userName" | |||||
| style="cursor: default" | |||||
| > | |||||
| <img | |||||
| class="ui avatar mini image" | |||||
| style="width: 20px; height: 20px" | |||||
| :src="publicData.relAvatarLink" | |||||
| /> | |||||
| </a> | |||||
| <a v-else | |||||
| ><img | |||||
| class="ui avatar mini image" | |||||
| title="Ghost" | |||||
| src="/user/avatar/ghost/-1" | |||||
| style="width: 20px; height: 20px" | |||||
| /></a> | |||||
| <span class="panel_datset_desc">{{ | |||||
| publicData.description | |||||
| }}</span> | |||||
| </div> | |||||
| </div> | </div> | ||||
| <el-tabs v-model="activeName" @tab-click="handleClick"> | |||||
| <el-tab-pane label="公开镜像" name="first" v-loading="loadingPublic"> | |||||
| <div style="display: flex;align-items: center;justify-content: space-between;padding: 1rem 0;border-bottom:1px solid #F5F5F5" | |||||
| v-for="(publicData,index) in tableDataPublic" :key="index"> | |||||
| <div style="width: 90%;"> | |||||
| <div style="display: flex;align-items: center;justify-content: space-between;"> | |||||
| <div style="display: flex;align-items: center;"> | |||||
| <span class="panel_dataset_name text-over" | |||||
| style="margin-left: 0;">{{publicData.tag}} </span> | |||||
| <img v-if="publicData.type==5" src="/img/jian.svg" style="margin-left: 0.5rem;"> | |||||
| </div> | |||||
| <div v-if="!!publicData.topics" class="text-over"> | |||||
| <span v-for="(topic,index) in publicData.topics" | |||||
| class="ui repo-topic label topic">{{topic}}</span> | |||||
| </div> | |||||
| </div> | |||||
| <div style="margin-top: 8px;display: flex;"> | |||||
| <a v-if="publicData.relAvatarLink||publicData.userName" :title="publicData.userName" | |||||
| style="cursor: default;"> | |||||
| <img class="ui avatar mini image" style="width: 20px;height: 20px;" | |||||
| :src="publicData.relAvatarLink"> | |||||
| </a> | |||||
| <a v-else><img class="ui avatar mini image" title="Ghost" src="/user/avatar/ghost/-1" | |||||
| style="width: 20px;height: 20px;"></a> | |||||
| <span class="panel_datset_desc">{{publicData.description}}</span> | |||||
| </div> | |||||
| </div> | |||||
| <div> | |||||
| <button class="ui primary basic button mini" | |||||
| @click.stop.prevent="selectImages(publicData.place,publicData.tag)">使用</button> | |||||
| </div> | |||||
| </div> | |||||
| <div class="ui container" style="margin-top:50px;text-align:center"> | |||||
| <el-pagination background @current-change="handleCurrentChangePublic" | |||||
| :current-page="currentPagePublic" :page-size="pageSizePublic" | |||||
| layout="total, prev, pager, next" :total="totalNumPublic"> | |||||
| </el-pagination> | |||||
| </div> | |||||
| </el-tab-pane> | |||||
| </el-tabs> | |||||
| </el-dialog> | |||||
| </div> | |||||
| <div> | |||||
| <button | |||||
| class="ui primary basic button mini" | |||||
| @click.stop.prevent=" | |||||
| selectImages(publicData.place, publicData.tag) | |||||
| " | |||||
| > | |||||
| 使用 | |||||
| </button> | |||||
| </div> | |||||
| </div> | |||||
| <div | |||||
| class="ui container" | |||||
| style="margin-top: 50px; text-align: center" | |||||
| > | |||||
| <el-pagination | |||||
| background | |||||
| @current-change="handleCurrentChangePublic" | |||||
| :current-page="currentPagePublic" | |||||
| :page-size="pageSizePublic" | |||||
| layout="total, prev, pager, next" | |||||
| :total="totalNumPublic" | |||||
| > | |||||
| </el-pagination> | |||||
| </div> | |||||
| </el-tab-pane> | |||||
| </el-tabs> | |||||
| </el-dialog> | |||||
| </div> | |||||
| </template> | </template> | ||||
| <script> | <script> | ||||
| const { _AppSubUrl, _StaticUrlPrefix, csrf } = window.config; | |||||
| export default { | |||||
| components: { | |||||
| }, | |||||
| data() { | |||||
| return { | |||||
| dialogVisible: false, | |||||
| benchmarkNew: false, | |||||
| imageAddress: '', | |||||
| activeName: 'first', | |||||
| search: '', | |||||
| checked: false, | |||||
| currentPagePublic: 1, | |||||
| pageSizePublic: 5, | |||||
| totalNumPublic: 0, | |||||
| paramsPublic: { page: 1, pageSize: 5, q: '', recommend: false,cloudbrainType: 2 }, | |||||
| tableDataPublic: [], | |||||
| loadingPublic: false, | |||||
| }; | |||||
| }, | |||||
| methods: { | |||||
| handleClick(tab, event) { | |||||
| this.search = '' | |||||
| if (tab.name == "first") { | |||||
| this.paramsPublic.q = '' | |||||
| this.getImageListPublic() | |||||
| } | |||||
| }, | |||||
| tableHeaderStyle({ row, column, rowIndex, columnIndex }) { | |||||
| if (rowIndex === 0) { | |||||
| return 'background:#f5f5f6;color:#606266' | |||||
| } | |||||
| }, | |||||
| handleCurrentChangePublic(val) { | |||||
| this.paramsPublic.page = val | |||||
| this.getImageListPublic() | |||||
| }, | |||||
| getImageListPublic() { | |||||
| this.loadingPublic = true | |||||
| this.$axios.get('/explore/images/public', { | |||||
| params: this.paramsPublic | |||||
| }).then((res) => { | |||||
| this.totalNumPublic = res.data.count | |||||
| this.tableDataPublic = res.data.images | |||||
| this.loadingPublic = false | |||||
| }) | |||||
| }, | |||||
| searchName() { | |||||
| if (this.activeName == 'first') { | |||||
| this.paramsPublic.q = this.search | |||||
| this.paramsPublic.page = 1 | |||||
| this.getImageListPublic() | |||||
| } | |||||
| }, | |||||
| selectImages(place) { | |||||
| this.imageAddress = place | |||||
| this.dialogVisible = false | |||||
| }, | |||||
| }, | |||||
| watch: { | |||||
| search(val) { | |||||
| if (this.activeName == 'first') { | |||||
| this.paramsPublic.q = val | |||||
| this.getImageListPublic() | |||||
| } | |||||
| } | |||||
| }, | |||||
| mounted() { | |||||
| this.getImageListPublic() | |||||
| if (location.href.indexOf('benchmark') !== -1 || location.href.indexOf('train-job') !== -1) { | |||||
| this.benchmarkNew = true | |||||
| } | |||||
| }, | |||||
| created() { | |||||
| } | |||||
| const { _AppSubUrl, _StaticUrlPrefix, csrf } = window.config; | |||||
| export default { | |||||
| components: {}, | |||||
| data() { | |||||
| return { | |||||
| dialogVisible: false, | |||||
| benchmarkNew: false, | |||||
| imageAddress: "", | |||||
| activeName: "first", | |||||
| search: "", | |||||
| checked: false, | |||||
| currentPagePublic: 1, | |||||
| pageSizePublic: 5, | |||||
| totalNumPublic: 0, | |||||
| paramsPublic: { | |||||
| page: 1, | |||||
| pageSize: 5, | |||||
| q: "", | |||||
| recommend: false, | |||||
| cloudbrainType: 2, | |||||
| }, | |||||
| tableDataPublic: [], | |||||
| loadingPublic: false, | |||||
| }; | }; | ||||
| }, | |||||
| methods: { | |||||
| handleClick(tab, event) { | |||||
| this.search = ""; | |||||
| if (tab.name == "first") { | |||||
| this.paramsPublic.q = ""; | |||||
| this.getImageListPublic(); | |||||
| } | |||||
| }, | |||||
| tableHeaderStyle({ row, column, rowIndex, columnIndex }) { | |||||
| if (rowIndex === 0) { | |||||
| return "background:#f5f5f6;color:#606266"; | |||||
| } | |||||
| }, | |||||
| handleCurrentChangePublic(val) { | |||||
| this.paramsPublic.page = val; | |||||
| this.getImageListPublic(); | |||||
| }, | |||||
| getImageListPublic() { | |||||
| this.loadingPublic = true; | |||||
| this.$axios | |||||
| .get("/explore/images/public", { | |||||
| params: this.paramsPublic, | |||||
| }) | |||||
| .then((res) => { | |||||
| this.totalNumPublic = res.data.count; | |||||
| this.tableDataPublic = res.data.images; | |||||
| this.loadingPublic = false; | |||||
| }); | |||||
| }, | |||||
| searchName() { | |||||
| if (this.activeName == "first") { | |||||
| this.paramsPublic.q = this.search; | |||||
| this.paramsPublic.page = 1; | |||||
| this.getImageListPublic(); | |||||
| } | |||||
| }, | |||||
| selectImages(place) { | |||||
| this.imageAddress = place; | |||||
| this.dialogVisible = false; | |||||
| }, | |||||
| }, | |||||
| watch: { | |||||
| search(val) { | |||||
| if (this.activeName == "first") { | |||||
| this.paramsPublic.q = val; | |||||
| this.getImageListPublic(); | |||||
| } | |||||
| }, | |||||
| }, | |||||
| mounted() { | |||||
| this.getImageListPublic(); | |||||
| if ( | |||||
| location.href.indexOf("benchmark") !== -1 || | |||||
| location.href.indexOf("train-job") !== -1 | |||||
| ) { | |||||
| this.benchmarkNew = true; | |||||
| } | |||||
| }, | |||||
| created() {}, | |||||
| }; | |||||
| </script> | </script> | ||||
| <style scoped> | <style scoped> | ||||
| .header-wrapper { | |||||
| background-color: #f5f5f6; | |||||
| padding-top: 15px; | |||||
| } | |||||
| .image_text { | |||||
| padding: 25px 0 55px 0; | |||||
| } | |||||
| #header { | |||||
| position: relative; | |||||
| top: -40px; | |||||
| } | |||||
| #success { | |||||
| background-color: #5bb973; | |||||
| color: white; | |||||
| } | |||||
| .text-over { | |||||
| overflow: hidden; | |||||
| text-overflow: ellipsis; | |||||
| vertical-align: middle; | |||||
| white-space: nowrap; | |||||
| } | |||||
| .image_title { | |||||
| display: inline-block; | |||||
| width: 80%; | |||||
| cursor: default; | |||||
| color: rgb(66, 98, 144); | |||||
| } | |||||
| .image_desc { | |||||
| -webkit-line-clamp: 2; | |||||
| -webkit-box-orient: vertical; | |||||
| display: -webkit-box; | |||||
| text-overflow: ellipsis; | |||||
| overflow: hidden; | |||||
| } | |||||
| .heart-stroke { | |||||
| stroke: #666; | |||||
| stroke-width: 2; | |||||
| fill: #fff | |||||
| } | |||||
| .stars_active { | |||||
| fill: #FA8C16 !important; | |||||
| stroke: #FA8C16 !important | |||||
| } | |||||
| </style> | |||||
| .header-wrapper { | |||||
| background-color: #f5f5f6; | |||||
| padding-top: 15px; | |||||
| } | |||||
| .image_text { | |||||
| padding: 25px 0 55px 0; | |||||
| } | |||||
| #header { | |||||
| position: relative; | |||||
| top: -40px; | |||||
| } | |||||
| #success { | |||||
| background-color: #5bb973; | |||||
| color: white; | |||||
| } | |||||
| .text-over { | |||||
| overflow: hidden; | |||||
| text-overflow: ellipsis; | |||||
| vertical-align: middle; | |||||
| white-space: nowrap; | |||||
| } | |||||
| .image_title { | |||||
| display: inline-block; | |||||
| width: 80%; | |||||
| cursor: default; | |||||
| color: rgb(66, 98, 144); | |||||
| } | |||||
| .image_desc { | |||||
| -webkit-line-clamp: 2; | |||||
| -webkit-box-orient: vertical; | |||||
| display: -webkit-box; | |||||
| text-overflow: ellipsis; | |||||
| overflow: hidden; | |||||
| } | |||||
| .heart-stroke { | |||||
| stroke: #666; | |||||
| stroke-width: 2; | |||||
| fill: #fff; | |||||
| } | |||||
| .stars_active { | |||||
| fill: #fa8c16 !important; | |||||
| stroke: #fa8c16 !important; | |||||
| } | |||||
| </style> | |||||
| @@ -18,6 +18,7 @@ | |||||
| :value="imageAddress" | :value="imageAddress" | ||||
| style="width: 48.5%" | style="width: 48.5%" | ||||
| placeholder="选择镜像或输入镜像地址" | placeholder="选择镜像或输入镜像地址" | ||||
| required | |||||
| /> | /> | ||||
| <input | <input | ||||
| v-else | v-else | ||||
| @@ -25,6 +26,7 @@ | |||||
| name="image" | name="image" | ||||
| :value="imageAddress" | :value="imageAddress" | ||||
| placeholder="选择镜像或输入镜像地址" | placeholder="选择镜像或输入镜像地址" | ||||
| required | |||||
| /> | /> | ||||
| <el-button | <el-button | ||||
| type="text" | type="text" | ||||