#4042 V20230410.patch

Merged
ychao_1983 merged 28 commits from V20230410.patch into develop 1 year ago
  1. +14
    -2
      modules/markup/markdown/goldmark.go
  2. +7
    -2
      modules/markup/markdown/markdown.go
  3. +3
    -3
      modules/markup/markdown/markdown_test.go
  4. BIN
      public/img/ros-hmci/07efd9450ffe064783352fc7f834c818.png
  5. BIN
      public/img/ros-hmci/227958a1d5796fb19d379cf8df9c873f.png
  6. BIN
      public/img/ros-hmci/2742681bb0685ab3ec198a5239289f24.png
  7. BIN
      public/img/ros-hmci/3a6453ce7a73331de8dc8d46ac792980.png
  8. BIN
      public/img/ros-hmci/55e24ed247765c26ba9ebdc7178aa587.png
  9. BIN
      public/img/ros-hmci/573ef7ee84a6b4884195d6d20d48d192.png
  10. BIN
      public/img/ros-hmci/6ae4d710aaf64c9fb32198a417e7deda.png
  11. BIN
      public/img/ros-hmci/773a29fe9380b2cc94bd776e88326612.png
  12. BIN
      public/img/ros-hmci/7d4242ae6000756d9803b94091a63ac0.png
  13. BIN
      public/img/ros-hmci/8279c173d27a54e6b94f388c39e11b3c.png
  14. BIN
      public/img/ros-hmci/9bc5d1cb63349198bf52b2a42368ece0.png
  15. BIN
      public/img/ros-hmci/a4d322f169a5c03496df6112251f6224.png
  16. BIN
      public/img/ros-hmci/ad2db5cbb91e3ebe8eaf533ba78ed1be.png
  17. BIN
      public/img/ros-hmci/f13a6d984172be166dcf1d8646e431c7.png
  18. +0
    -0
      public/img/ros-hmci/group3576.png
  19. +0
    -0
      public/img/ros-hmci/group4654.png
  20. +0
    -0
      public/img/ros-hmci/group5706@2x.png
  21. +0
    -0
      public/img/ros-hmci/group5727@2x.png
  22. +0
    -0
      public/img/ros-hmci/group6507@2x.png
  23. +0
    -0
      public/img/ros-hmci/group668.png
  24. +0
    -0
      public/img/ros-hmci/group6995.png
  25. +0
    -0
      public/img/ros-hmci/group7079.png
  26. +0
    -0
      public/img/ros-hmci/group7103.png
  27. +0
    -0
      public/img/ros-hmci/group7302.png
  28. +0
    -0
      public/img/ros-hmci/group7304.png
  29. +0
    -0
      public/img/ros-hmci/group7305.png
  30. +0
    -0
      public/img/ros-hmci/group7307.png
  31. +0
    -0
      public/img/ros-hmci/group7310.png
  32. +0
    -0
      public/img/ros-hmci/group7311.png
  33. +0
    -0
      public/img/ros-hmci/group7312.png
  34. +0
    -0
      public/img/ros-hmci/group7314.png
  35. +0
    -0
      public/img/ros-hmci/group7348.png
  36. +0
    -0
      public/img/ros-hmci/group7389.png
  37. +0
    -0
      public/img/ros-hmci/group7390.png
  38. +0
    -0
      public/img/ros-hmci/group7391.png
  39. +0
    -0
      public/img/ros-hmci/group7392.png
  40. +0
    -0
      public/img/ros-hmci/mbz545.png
  41. +0
    -0
      public/img/ros-hmci/mbz546.png
  42. +0
    -0
      public/img/ros-hmci/mbz547.png
  43. +0
    -0
      public/img/ros-hmci/mbz548.png
  44. +0
    -0
      public/img/ros-hmci/mbz549.png
  45. +0
    -0
      public/img/ros-hmci/mbz561.png
  46. +0
    -0
      public/img/ros-hmci/mbz605.png
  47. +0
    -0
      public/img/ros-hmci/mbz606.png
  48. +0
    -0
      public/img/ros-hmci/mbz607.png
  49. +0
    -0
      public/img/ros-hmci/mbz609.png
  50. +0
    -0
      public/img/ros-hmci/mbz610.png
  51. +0
    -0
      public/img/ros-hmci/mbz611.png
  52. +0
    -0
      public/img/ros-hmci/mbz612.png
  53. +0
    -0
      public/img/ros-hmci/mbz613.png
  54. +0
    -0
      public/img/ros-hmci/mbz614.png
  55. +0
    -0
      public/img/ros-hmci/mbz627.png
  56. +0
    -0
      public/img/ros-hmci/mbz628.png
  57. +0
    -0
      public/img/ros-hmci/mbz635.png
  58. +0
    -0
      public/img/ros-hmci/mbz636.png
  59. +0
    -0
      public/img/ros-hmci/mbz637.png
  60. +0
    -0
      public/img/ros-hmci/mbz638.png
  61. +0
    -0
      public/img/ros-hmci/mbz639.png
  62. +0
    -0
      public/img/ros-hmci/mbz640.png
  63. +0
    -0
      public/img/ros-hmci/mbz641.png
  64. +0
    -0
      public/img/ros-hmci/mbz642.png
  65. +0
    -0
      public/img/ros-hmci/mbz655.png
  66. +0
    -0
      public/img/ros-hmci/mbz658.png
  67. +0
    -0
      public/img/ros-hmci/mbz660.png
  68. +0
    -0
      public/img/ros-hmci/mbz662.png
  69. +0
    -0
      public/img/ros-hmci/mbz667.png
  70. +0
    -0
      public/img/ros-hmci/mbz668.png
  71. +0
    -0
      public/img/ros-hmci/mbz669.png
  72. +0
    -0
      public/img/ros-hmci/mbz6691.png
  73. +0
    -0
      public/img/ros-hmci/mbz7305.png
  74. +0
    -0
      public/img/ros-hmci/mbz7307.png
  75. BIN
      public/img/ros-hmci/前进 下一个.png
  76. BIN
      public/img/ros-hmci/目录.png
  77. BIN
      public/img/ros-hmci/视频图.png
  78. +2
    -2
      routers/api/v1/misc/markdown.go
  79. +4
    -2
      routers/repo/ai_model_square.go
  80. +8
    -2
      routers/repo/view.go
  81. +5
    -5
      templates/repo/cloudbrain/trainjob/show.tmpl
  82. +5
    -5
      templates/repo/grampus/trainjob/show.tmpl
  83. +12
    -14
      templates/repo/modelarts/trainjob/show.tmpl
  84. +5
    -5
      web_src/js/components/model/ModelSelect.vue
  85. +4
    -2
      web_src/less/_markdown.less
  86. +35
    -1
      web_src/vuepages/pages/modelmanage/graph/model-graph.css
  87. +1
    -0
      web_src/vuepages/pages/modelmanage/local/index.vue
  88. +5
    -1
      web_src/vuepages/pages/modelmanage/settings/index.vue
  89. +1
    -1
      web_src/vuepages/pages/ros-hmci/components/AppBanner.vue
  90. +7
    -7
      web_src/vuepages/pages/ros-hmci/components/NavigationBar.vue
  91. +2
    -3
      web_src/vuepages/pages/ros-hmci/components/helpCollaps.vue
  92. +12
    -57
      web_src/vuepages/pages/ros-hmci/views/CommunitySource.vue
  93. +9
    -9
      web_src/vuepages/pages/ros-hmci/views/HelpCenter.vue
  94. +57
    -43
      web_src/vuepages/pages/ros-hmci/views/HomePage.vue
  95. +37
    -30
      web_src/vuepages/pages/ros-hmci/views/OSSystem.vue
  96. +1
    -1
      web_src/vuepages/pages/ros-hmci/views/OpenApp.vue
  97. +3
    -3
      web_src/vuepages/pages/ros-hmci/views/ResourceDetail.vue

+ 14
- 2
modules/markup/markdown/goldmark.go View File

@@ -26,6 +26,7 @@ import (
)

var byteMailto = []byte("mailto:")
var tocKey = parser.NewContextKey()

// Header holds the data about a header.
type Header struct {
@@ -41,8 +42,7 @@ type ASTTransformer struct{}
func (g *ASTTransformer) Transform(node *ast.Document, reader text.Reader, pc parser.Context) {
metaData := meta.GetItems(pc)
firstChild := node.FirstChild()

createTOC := setting.Markdown.EnableToc
createTOC := false
var toc = []Header{}
rc := &RenderConfig{
Meta: "",
@@ -59,6 +59,10 @@ func (g *ASTTransformer) Transform(node *ast.Document, reader text.Reader, pc pa
createTOC = rc.TOC
toc = make([]Header, 0, 100)
}
if isShowToc(pc) {
createTOC = true
toc = make([]Header, 0, 100)
}

_ = ast.Walk(node, func(n ast.Node, entering bool) (ast.WalkStatus, error) {
if !entering {
@@ -192,6 +196,14 @@ func (g *ASTTransformer) Transform(node *ast.Document, reader text.Reader, pc pa
}
}

func isShowToc(pc parser.Context) bool {
v := pc.Get(tocKey)
if v == nil {
return false
}
return v.(bool)
}

type prefixedIDs struct {
values map[string]bool
}


+ 7
- 2
modules/markup/markdown/markdown.go View File

@@ -42,7 +42,7 @@ func NewGiteaParseContext(urlPrefix string, isWiki bool) parser.Context {
}

// RenderRaw renders Markdown to HTML without handling special links.
func RenderRaw(body []byte, urlPrefix string, wikiMarkdown bool) []byte {
func RenderRaw(body []byte, urlPrefix string, wikiMarkdown bool, metas map[string]string) []byte {
once.Do(func() {
converter = goldmark.New(
goldmark.WithExtensions(
@@ -116,6 +116,11 @@ func RenderRaw(body []byte, urlPrefix string, wikiMarkdown bool) []byte {
})

pc := NewGiteaParseContext(urlPrefix, wikiMarkdown)
if metas != nil {
if metas["include_toc"] == "true" {
pc.Set(tocKey, true)
}
}
var buf bytes.Buffer
if err := converter.Convert(giteautil.NormalizeEOL(body), &buf, parser.WithContext(pc)); err != nil {
log.Error("Unable to render: %v", err)
@@ -147,7 +152,7 @@ func (Parser) Extensions() []string {

// Render implements markup.Parser
func (Parser) Render(rawBytes []byte, urlPrefix string, metas map[string]string, isWiki bool) []byte {
return RenderRaw(rawBytes, urlPrefix, isWiki)
return RenderRaw(rawBytes, urlPrefix, isWiki, metas)
}

// Render renders Markdown to HTML with all specific handling stuff.


+ 3
- 3
modules/markup/markdown/markdown_test.go View File

@@ -290,15 +290,15 @@ func TestTotal_RenderString(t *testing.T) {
func TestRender_RenderParagraphs(t *testing.T) {
test := func(t *testing.T, str string, cnt int) {
unix := []byte(str)
res := string(RenderRaw(unix, "", false))
res := string(RenderRaw(unix, "", false, nil))
assert.Equal(t, strings.Count(res, "<p"), cnt, "Rendered result for unix should have %d paragraph(s) but has %d:\n%s\n", cnt, strings.Count(res, "<p"), res)

mac := []byte(strings.ReplaceAll(str, "\n", "\r"))
res = string(RenderRaw(mac, "", false))
res = string(RenderRaw(mac, "", false, nil))
assert.Equal(t, strings.Count(res, "<p"), cnt, "Rendered result for mac should have %d paragraph(s) but has %d:\n%s\n", cnt, strings.Count(res, "<p"), res)

dos := []byte(strings.ReplaceAll(str, "\n", "\r\n"))
res = string(RenderRaw(dos, "", false))
res = string(RenderRaw(dos, "", false, nil))
assert.Equal(t, strings.Count(res, "<p"), cnt, "Rendered result for windows should have %d paragraph(s) but has %d:\n%s\n", cnt, strings.Count(res, "<p"), res)
}



BIN
public/img/ros-hmci/07efd9450ffe064783352fc7f834c818.png View File

Before After
Width: 60  |  Height: 60  |  Size: 7.3 KiB

BIN
public/img/ros-hmci/227958a1d5796fb19d379cf8df9c873f.png View File

Before After
Width: 74  |  Height: 74  |  Size: 10 KiB

BIN
public/img/ros-hmci/2742681bb0685ab3ec198a5239289f24.png View File

Before After
Width: 30  |  Height: 30  |  Size: 2.4 KiB

BIN
public/img/ros-hmci/3a6453ce7a73331de8dc8d46ac792980.png View File

Before After
Width: 74  |  Height: 74  |  Size: 11 KiB

BIN
public/img/ros-hmci/55e24ed247765c26ba9ebdc7178aa587.png View File

Before After
Width: 74  |  Height: 74  |  Size: 9.4 KiB

BIN
public/img/ros-hmci/573ef7ee84a6b4884195d6d20d48d192.png View File

Before After
Width: 30  |  Height: 30  |  Size: 2.6 KiB

BIN
public/img/ros-hmci/6ae4d710aaf64c9fb32198a417e7deda.png View File

Before After
Width: 74  |  Height: 74  |  Size: 12 KiB

BIN
public/img/ros-hmci/773a29fe9380b2cc94bd776e88326612.png View File

Before After
Width: 30  |  Height: 30  |  Size: 2.6 KiB

BIN
public/img/ros-hmci/7d4242ae6000756d9803b94091a63ac0.png View File

Before After
Width: 30  |  Height: 30  |  Size: 2.6 KiB

BIN
public/img/ros-hmci/8279c173d27a54e6b94f388c39e11b3c.png View File

Before After
Width: 74  |  Height: 74  |  Size: 11 KiB

BIN
public/img/ros-hmci/9bc5d1cb63349198bf52b2a42368ece0.png View File

Before After
Width: 30  |  Height: 30  |  Size: 2.5 KiB

BIN
public/img/ros-hmci/a4d322f169a5c03496df6112251f6224.png View File

Before After
Width: 74  |  Height: 74  |  Size: 11 KiB

BIN
public/img/ros-hmci/ad2db5cbb91e3ebe8eaf533ba78ed1be.png View File

Before After
Width: 30  |  Height: 30  |  Size: 2.7 KiB

BIN
public/img/ros-hmci/f13a6d984172be166dcf1d8646e431c7.png View File

Before After
Width: 30  |  Height: 30  |  Size: 2.5 KiB

public/img/ros-hmci/组 3576.png → public/img/ros-hmci/group3576.png View File


public/img/ros-hmci/组 4654.png → public/img/ros-hmci/group4654.png View File


public/img/ros-hmci/组 5706@2x.png → public/img/ros-hmci/group5706@2x.png View File


public/img/ros-hmci/组 5727@2x.png → public/img/ros-hmci/group5727@2x.png View File


public/img/ros-hmci/组 6507@2x.png → public/img/ros-hmci/group6507@2x.png View File


public/img/ros-hmci/组 668.png → public/img/ros-hmci/group668.png View File


public/img/ros-hmci/组 6995.png → public/img/ros-hmci/group6995.png View File


public/img/ros-hmci/组 7079.png → public/img/ros-hmci/group7079.png View File


public/img/ros-hmci/组 7103.png → public/img/ros-hmci/group7103.png View File


public/img/ros-hmci/组 7302.png → public/img/ros-hmci/group7302.png View File


public/img/ros-hmci/组 7304.png → public/img/ros-hmci/group7304.png View File


public/img/ros-hmci/组 7305.png → public/img/ros-hmci/group7305.png View File


public/img/ros-hmci/组 7307.png → public/img/ros-hmci/group7307.png View File


public/img/ros-hmci/组 7310.png → public/img/ros-hmci/group7310.png View File


public/img/ros-hmci/组 7311.png → public/img/ros-hmci/group7311.png View File


public/img/ros-hmci/组 7312.png → public/img/ros-hmci/group7312.png View File


public/img/ros-hmci/组 7314.png → public/img/ros-hmci/group7314.png View File


public/img/ros-hmci/组 7348.png → public/img/ros-hmci/group7348.png View File


public/img/ros-hmci/组 7389.png → public/img/ros-hmci/group7389.png View File


public/img/ros-hmci/组 7390.png → public/img/ros-hmci/group7390.png View File


public/img/ros-hmci/组 7391.png → public/img/ros-hmci/group7391.png View File


public/img/ros-hmci/组 7392.png → public/img/ros-hmci/group7392.png View File


public/img/ros-hmci/蒙版组 545.png → public/img/ros-hmci/mbz545.png View File


public/img/ros-hmci/蒙版组 546.png → public/img/ros-hmci/mbz546.png View File


public/img/ros-hmci/蒙版组 547.png → public/img/ros-hmci/mbz547.png View File


public/img/ros-hmci/蒙版组 548.png → public/img/ros-hmci/mbz548.png View File


public/img/ros-hmci/蒙版组 549.png → public/img/ros-hmci/mbz549.png View File


public/img/ros-hmci/蒙版组 561.png → public/img/ros-hmci/mbz561.png View File


public/img/ros-hmci/蒙版组 605.png → public/img/ros-hmci/mbz605.png View File


public/img/ros-hmci/蒙版组 606.png → public/img/ros-hmci/mbz606.png View File


public/img/ros-hmci/蒙版组 607.png → public/img/ros-hmci/mbz607.png View File


public/img/ros-hmci/蒙版组 609.png → public/img/ros-hmci/mbz609.png View File


public/img/ros-hmci/蒙版组 610.png → public/img/ros-hmci/mbz610.png View File


public/img/ros-hmci/蒙版组 611.png → public/img/ros-hmci/mbz611.png View File


public/img/ros-hmci/蒙版组 612.png → public/img/ros-hmci/mbz612.png View File


public/img/ros-hmci/蒙版组 613.png → public/img/ros-hmci/mbz613.png View File


public/img/ros-hmci/蒙版组 614.png → public/img/ros-hmci/mbz614.png View File


public/img/ros-hmci/蒙版组 627.png → public/img/ros-hmci/mbz627.png View File


public/img/ros-hmci/蒙版组 628.png → public/img/ros-hmci/mbz628.png View File


public/img/ros-hmci/蒙版组 635.png → public/img/ros-hmci/mbz635.png View File


public/img/ros-hmci/蒙版组 636.png → public/img/ros-hmci/mbz636.png View File


public/img/ros-hmci/蒙版组 637.png → public/img/ros-hmci/mbz637.png View File


public/img/ros-hmci/蒙版组 638.png → public/img/ros-hmci/mbz638.png View File


public/img/ros-hmci/蒙版组 639.png → public/img/ros-hmci/mbz639.png View File


public/img/ros-hmci/蒙版组 640.png → public/img/ros-hmci/mbz640.png View File


public/img/ros-hmci/蒙版组 641.png → public/img/ros-hmci/mbz641.png View File


public/img/ros-hmci/蒙版组 642.png → public/img/ros-hmci/mbz642.png View File


public/img/ros-hmci/蒙版组 655.png → public/img/ros-hmci/mbz655.png View File


public/img/ros-hmci/蒙版组 658.png → public/img/ros-hmci/mbz658.png View File


public/img/ros-hmci/蒙版组 660.png → public/img/ros-hmci/mbz660.png View File


public/img/ros-hmci/蒙版组 662.png → public/img/ros-hmci/mbz662.png View File


public/img/ros-hmci/蒙版组 667.png → public/img/ros-hmci/mbz667.png View File


public/img/ros-hmci/蒙版组 668.png → public/img/ros-hmci/mbz668.png View File


public/img/ros-hmci/蒙版组 669.png → public/img/ros-hmci/mbz669.png View File


public/img/ros-hmci/蒙版组 6691.png → public/img/ros-hmci/mbz6691.png View File


public/img/ros-hmci/蒙版组 7305.png → public/img/ros-hmci/mbz7305.png View File


public/img/ros-hmci/蒙版组 7307.png → public/img/ros-hmci/mbz7307.png View File


BIN
public/img/ros-hmci/前进 下一个.png View File

Before After
Width: 14  |  Height: 25  |  Size: 479 B

BIN
public/img/ros-hmci/目录.png View File

Before After
Width: 708  |  Height: 28  |  Size: 5.4 KiB

BIN
public/img/ros-hmci/视频图.png View File

Before After
Width: 764  |  Height: 430  |  Size: 8.6 KiB

+ 2
- 2
routers/api/v1/misc/markdown.go View File

@@ -77,7 +77,7 @@ func Markdown(ctx *context.APIContext, form api.MarkdownOption) {
}
}
default:
_, err := ctx.Write(markdown.RenderRaw([]byte(form.Text), "", false))
_, err := ctx.Write(markdown.RenderRaw([]byte(form.Text), "", false, nil))
if err != nil {
ctx.InternalServerError(err)
return
@@ -112,7 +112,7 @@ func MarkdownRaw(ctx *context.APIContext) {
ctx.Error(http.StatusUnprocessableEntity, "", err)
return
}
_, err = ctx.Write(markdown.RenderRaw(body, "", false))
_, err = ctx.Write(markdown.RenderRaw(body, "", false, nil))
if err != nil {
ctx.InternalServerError(err)
return


+ 4
- 2
routers/repo/ai_model_square.go View File

@@ -469,12 +469,14 @@ func QueryModelReadMe(ctx *context.Context) {
}
}
}
metas:=map[string]string{"include_toc":"true"}
if find {
re["isExistMDFile"] = "true"
re["fileName"] = README_FILE_NAME
strc := string(content)
re["content"] = strc
re["htmlcontent"] = string(markdown.RenderRaw([]byte(strc), "", false))

re["htmlcontent"] = string(markdown.RenderRaw([]byte(strc), "", false,metas))
} else {
re["isExistMDFile"] = "false"
re["fileName"] = README_FILE_NAME
@@ -482,7 +484,7 @@ func QueryModelReadMe(ctx *context.Context) {
result, err := repository.RecommendContentFromPromote(url)
if err == nil {
re["content"] = result
re["htmlcontent"] = string(markdown.RenderRaw([]byte(result), "", false))
re["htmlcontent"] = string(markdown.RenderRaw([]byte(result), "", false,metas))
}
}
re["code"] = "0"


+ 8
- 2
routers/repo/view.go View File

@@ -334,7 +334,7 @@ func renderDirectory(ctx *context.Context, treeLink string) {
if markupType := markup.Type(readmeFile.name); markupType != "" {
ctx.Data["IsMarkup"] = true
ctx.Data["MarkupType"] = string(markupType)
ctx.Data["FileContent"] = string(markup.Render(readmeFile.name, buf, readmeTreelink, ctx.Repo.Repository.ComposeMetas()))
ctx.Data["FileContent"] = string(markup.Render(readmeFile.name, buf, readmeTreelink, getMetaData(ctx)))
} else {
ctx.Data["IsRenderedHTML"] = true
ctx.Data["FileContent"] = strings.Replace(
@@ -372,6 +372,12 @@ func renderDirectory(ctx *context.Context, treeLink string) {
}
}

func getMetaData(ctx *context.Context) map[string]string {
metas := ctx.Repo.Repository.ComposeMetas()
metas["include_toc"] = "true"
return metas
}

func renderFile(ctx *context.Context, entry *git.TreeEntry, treeLink, rawLink string) {
ctx.Data["IsViewFile"] = true

@@ -476,7 +482,7 @@ func renderFile(ctx *context.Context, entry *git.TreeEntry, treeLink, rawLink st
if markupType := markup.Type(blob.Name()); markupType != "" {
ctx.Data["IsMarkup"] = true
ctx.Data["MarkupType"] = markupType
ctx.Data["FileContent"] = string(markup.Render(blob.Name(), buf, path.Dir(treeLink), ctx.Repo.Repository.ComposeMetas()))
ctx.Data["FileContent"] = string(markup.Render(blob.Name(), buf, path.Dir(treeLink), getMetaData(ctx)))
} else if readmeExist {
ctx.Data["IsRenderedHTML"] = true
ctx.Data["FileContent"] = strings.Replace(


+ 5
- 5
templates/repo/cloudbrain/trainjob/show.tmpl View File

@@ -473,10 +473,9 @@
<input style="width: 83%;margin-left: 7px;" id="label" name="label" maxlength="255"
placeholder='{{.i18n.Tr "repo.modelarts.train_job.label_place"}}'>
</div>
<div class="inline fields">
<label>{{.i18n.Tr "repo.model.manage.modelaccess"}}&nbsp;&nbsp;&nbsp;</label>
{{if eq $.Repository.IsPrivate false}}
<div class="inline fields">
<label>{{.i18n.Tr "repo.model.manage.modelaccess"}}&nbsp;&nbsp;&nbsp;</label>
<div class="field">
<div class="ui radio checkbox">
<input type="radio" name="isPrivate" checked="checked" value="false">
@@ -489,7 +488,8 @@
<label>{{.i18n.Tr "repo.model.manage.modelaccess.private"}}</label>
</div>
</div>
</div>
</div>
{{end}}
<div class="inline field">
<label for="description">{{.i18n.Tr "repo.model.manage.modeldesc"}}</label>
<textarea style="width: 83%;margin-left: 7px;" id="description" name="description" rows="3"


+ 5
- 5
templates/repo/grampus/trainjob/show.tmpl View File

@@ -527,10 +527,9 @@
<input style="width: 83%;margin-left: 7px;" id="label" name="label" maxlength="255"
placeholder='{{.i18n.Tr "repo.modelarts.train_job.label_place"}}'>
</div>
<div class="inline fields">
<label>{{.i18n.Tr "repo.model.manage.modelaccess"}}&nbsp;&nbsp;&nbsp;</label>
{{if eq $.Repository.IsPrivate false}}
<div class="inline fields">
<label>{{.i18n.Tr "repo.model.manage.modelaccess"}}&nbsp;&nbsp;&nbsp;</label>
<div class="field">
<div class="ui radio checkbox">
<input type="radio" name="isPrivate" checked="checked" value="false">
@@ -543,7 +542,8 @@
<label>{{.i18n.Tr "repo.model.manage.modelaccess.private"}}</label>
</div>
</div>
</div>
</div>
{{end}}
<div class="inline field">
<label for="description">{{.i18n.Tr "repo.model.manage.modeldesc"}}</label>
<textarea style="width: 83%;margin-left: 7px;" id="description" name="description" rows="3"


+ 12
- 14
templates/repo/modelarts/trainjob/show.tmpl View File

@@ -529,22 +529,20 @@
placeholder='{{.i18n.Tr "repo.modelarts.train_job.label_place"}}'>
</div>
{{if eq $.Repository.IsPrivate false}}
<div class="inline fields">
<label>{{.i18n.Tr "repo.model.manage.modelaccess"}}&nbsp;&nbsp;&nbsp;</label>
<div class="field">
<div class="ui radio checkbox">
<input type="radio" name="isPrivate" checked="checked" value="false">
<label>{{.i18n.Tr "repo.model.manage.modelaccess.public"}}</label>
</div>
<div class="inline fields">
<label>{{.i18n.Tr "repo.model.manage.modelaccess"}}&nbsp;&nbsp;&nbsp;</label>
<div class="field">
<div class="ui radio checkbox">
<input type="radio" name="isPrivate" checked="checked" value="false">
<label>{{.i18n.Tr "repo.model.manage.modelaccess.public"}}</label>
</div>
<div class="field">
<div class="ui radio checkbox">
<input type="radio" name="isPrivate" value="true">
<label>{{.i18n.Tr "repo.model.manage.modelaccess.private"}}</label>
</div>
</div>
<div class="field">
<div class="ui radio checkbox">
<input type="radio" name="isPrivate" value="true">
<label>{{.i18n.Tr "repo.model.manage.modelaccess.private"}}</label>
</div>
</div>
</div>
{{end}}
<div class="inline field">


+ 5
- 5
web_src/js/components/model/ModelSelect.vue View File

@@ -20,14 +20,14 @@
<i class="el-icon-plus"></i>
<span>{{ $t('modelObj.model_select') }}</span>
</div>
<div style="display:flex;align-items:center;justify-content:center;margin-left:6px;">
<!-- <div style="display:flex;align-items:center;justify-content:center;margin-left:6px;">
<el-tooltip placement="top" effect="light">
<i class="question circle icon link" style="margin-top:-7px"></i>
<div slot="content">
<div style="width:200px;text-align:center;">{{ $t('modelObj.model_suport_file_tips') }}</div>
</div>
</el-tooltip>
</div>
</div> -->
<el-dialog class="model-dlg" :visible.sync="dlgShow" :title="$t('modelObj.model_select')" width="1000px" :modal="true"
:close-on-click-modal="false" :show-close="true" :destroy-on-close="false" :before-close="beforeClose" @open="open"
@closed="closed">
@@ -114,7 +114,7 @@

<script>

const supportCheckPointFileExt = ["ckpt", "pb", "h5", "json", "pkl", "pth", "t7", "pdparams", "onnx", "pbtxt", "keras", "mlmodel", "cfg", "pt"];
// const supportCheckPointFileExt = ["ckpt", "pb", "h5", "json", "pkl", "pth", "t7", "pdparams", "onnx", "pbtxt", "keras", "mlmodel", "cfg", "pt"];
export default {
name: "ModelSelect",
props: {
@@ -227,8 +227,8 @@ export default {
for (let j = 0, jLen = _children.length; j < jLen; j++) {
const file = _children[j];
if (file.IsDir) continue;
const arr = file.FileName.split('.');
if (!supportCheckPointFileExt.includes(arr[arr.length - 1])) continue;
// const arr = file.FileName.split('.');
// if (!supportCheckPointFileExt.includes(arr[arr.length - 1])) continue;
file._modelID = dataI.id;
file._modelName = dataI.name;
file._modelVersion = dataI.version;


+ 4
- 2
web_src/less/_markdown.less View File

@@ -172,7 +172,9 @@
margin-top: 0;
margin-bottom: 16px;
}

p:last-child{
margin-bottom: 0;
}
hr {
height: 4px;
padding: 0;
@@ -601,7 +603,7 @@
outline: none;
color: #40485b;
}
.markdown-content {
.file-view .markdown-content {
min-height: calc(50vh);
border-left: 1px solid #dce3e8;
padding: 1rem 2rem 1rem 2rem;


+ 35
- 1
web_src/vuepages/pages/modelmanage/graph/model-graph.css View File

@@ -94,7 +94,7 @@
display: flex;
align-items: center;
justify-content: center;
padding: 10px;
padding: 2px 10px;
}

._tree-layout ._tree-node .name {
@@ -120,6 +120,16 @@
background: rgb(122, 184, 251);
}

._tree-layout ._tree-node.model-parent .name {
max-height: 100%;
overflow: hidden;
text-overflow: ellipsis;
word-break: break-all;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
}

._tree-layout ._tree-node.model-current {
border-style: none;
border-color: unset;
@@ -137,6 +147,13 @@

._tree-layout ._tree-node.model-current .name {
cursor: default;
max-height: 100%;
overflow: hidden;
text-overflow: ellipsis;
word-break: break-all;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 5;
}

._tree-layout ._tree-node.model-current .name:hover {
@@ -157,6 +174,16 @@
background: rgb(3, 102, 214);
}

._tree-layout ._tree-node.model-derive .name {
max-height: 100%;
overflow: hidden;
text-overflow: ellipsis;
word-break: break-all;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
}

._tree-layout ._tree-node.repo {
border-color: rgb(3, 102, 214);
border-width: 1px;
@@ -174,6 +201,13 @@

._tree-layout ._tree-node.repo .name {
color: #101010;
max-height: 100%;
overflow: hidden;
text-overflow: ellipsis;
word-break: break-all;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}

._tree-layout ._tree-node .descr {


+ 1
- 0
web_src/vuepages/pages/modelmanage/local/index.vue View File

@@ -131,6 +131,7 @@ export default {
this.state.label = list.slice(0, MAX_LABEL_COUNT).join(' ') + (hasEndSpace && list.length < MAX_LABEL_COUNT ? ' ' : '');
},
submit() {
this.state.name = this.state.name.trim();
if (!this.checkName()) {
// this.$message({
// type: 'info',


+ 5
- 1
web_src/vuepages/pages/modelmanage/settings/index.vue View File

@@ -125,7 +125,10 @@ export default {
if (this.backUrl) {
window.location.href = this.backUrl;
} else {
this.goDetail();
const list = window.location.href.split('/');
list.pop();
list.push('model_readme_tmpl');
window.location.href = list.join('/') + '?name=' + encodeURIComponent(this.modelName);
}
},
goDetail() {
@@ -135,6 +138,7 @@ export default {
window.location.href = list.join('/') + '?name=' + encodeURIComponent(this.state.name);
},
submit() {
this.state.name = this.state.name.trim();
if (!this.checkName()) {
this.$message({
type: 'info',


+ 1
- 1
web_src/vuepages/pages/ros-hmci/components/AppBanner.vue View File

@@ -33,7 +33,7 @@ export default {
.group {
position: relative;
top: 0px;
background: url(/img/ros-hmci/蒙版组\ 605.png);
background: url(/img/ros-hmci/mbz605.png);
background-size: 100% 100%;
height: 541px;
width: 100%;


+ 7
- 7
web_src/vuepages/pages/ros-hmci/components/NavigationBar.vue View File

@@ -85,31 +85,31 @@ export default {
imgElement.src = imgElement.src.replace(`icon-${id}`, `icon${id}`);
},
gotoHomePage() {
console.log(this.$router);
// console.log(this.$router);
this.$router.push("/");
},
gotoOSSystem() {
console.log(this.$router);
// console.log(this.$router);
this.$router.push("/os-system");
},
gotoOpenApp() {
console.log(this.$router);
// console.log(this.$router);
this.$router.push("/open-app");
},
gotoOpenData() {
console.log(this.$router);
// console.log(this.$router);
this.$router.push("/open-data");
},
gotoOpenModel() {
console.log(this.$router);
// console.log(this.$router);
this.$router.push("/open-model");
},
gotoComunitySource() {
console.log(this.$router);
// console.log(this.$router);
this.$router.push("/community-source");
},
gotoHelpCenter() {
console.log(this.$router);
// console.log(this.$router);
this.$router.push("/help-center");
},
},


+ 2
- 3
web_src/vuepages/pages/ros-hmci/components/helpCollaps.vue View File

@@ -51,7 +51,7 @@ export default {
},
methods: {
handleChange(val) {
console.log(val);
// console.log(val);
}
}
}
@@ -98,6 +98,7 @@ export default {
::v-deep .el-collapse-item__header {
font-size: 15px;
border-top: 0;
color: #575757;
}

::v-deep .el-collapse {
@@ -143,8 +144,6 @@ export default {
}

.section_10 {
margin-right: 16px;
margin-top: 18px;
padding: 24px 24px 26px;
background-color: #f3f4f6;
border-radius: 6px;


+ 12
- 57
web_src/vuepages/pages/ros-hmci/views/CommunitySource.vue View File

@@ -1,15 +1,6 @@
<template>
<div class="flex-col page">
<div class="flex-col justify-start group_25">
<NavigationBar></NavigationBar>
<div class="info justify-center flex-col">
<span class="info1">人机协同智能操作系统</span>
<div class="info-div flex-row items-center justify-center">
<span class="info2">智能操作软件库和工具 构建人工智能应用程序</span>
</div>
<span class="info3">ROS hmci</span>
</div>
</div>
<AppBanner></AppBanner>



@@ -30,7 +21,7 @@
{{ resource.synopsis }}
</span>
<div class="flex-col self-start group_6">
<img class="shrink-0 self-start image_14" src="/img/ros-hmci/蒙版组 627.png" />
<img class="shrink-0 self-start image_14" src="/img/ros-hmci/mbz627.png" />
<span class="self-center font_2 text_20">提交日期:{{ resource.create_time }}</span>
</div>
<div class="divider"></div>
@@ -53,7 +44,7 @@
<div class="flex-row justify-between items-center section_7 pos_3">
<div class="flex-col justify-start items-start relative group_4">
<input class="font_1 text_15" outline:none type="text" placeholder="请输入资源名称以搜索" v-model="searchQuery" />
<img class="image_11 pos_4" src="/img/ros-hmci/bcea28a03624dcba382543662dbb0a2c.png"/>
<img class="image_11 pos_4" src="/img/ros-hmci/bcea28a03624dcba382543662dbb0a2c.png" />
</div>
<div class="flex-row space-x-28">
<!-- <div class="flex-row items-center space-x-6">
@@ -71,7 +62,7 @@
</template>
<script>
import NavigationBar from '../components/NavigationBar.vue'
import AppBanner from '../components/AppBanner.vue'
import axios from 'axios'
import linksConfig from './links.js'

@@ -98,7 +89,7 @@ export default {
},

components: {
NavigationBar,
AppBanner,
},

methods: {
@@ -203,52 +194,16 @@ export default {
background-color: #282828;
}

.info {
position: absolute;
top: 104px;
left: 18%;
}

.info>*:not(:first-child) {
margin-top: 36px;
}

.info-div {
width: 486.09px;
height: 53px;
background-image: linear-gradient(150.44deg, #00e850 0%, #0100be 100%);
border-radius: 28px;
}

.group_25 {
position: relative;
top: 0;
background: url(/img/ros-hmci/蒙版组\ 605.png);
background: url(/img/ros-hmci/mbz605.png);
background-size: 100% auto;
height: 541px;
width: 100%;
}

.info1 {
font-family: sucaijishikufangti;
color: #ffffff;
font-size: 45px;
letter-spacing: 7px;
}

.info2 {
font-family: Alibaba PuHuiTi;
color: #ffffff;
font-size: 21px;
letter-spacing: 1px;
}

.info3 {
font-family: Alibaba PuHuiTi;
color: #ffffff;
font-size: 40px;
letter-spacing: 8px;
}

.space-x-40>*:not(:first-child) {
margin-left: 40px;
@@ -479,9 +434,6 @@ export default {
line-height: 14px;
}

.group {
width: 104px;
}

.section_2 {
border-radius: 15px;
@@ -625,14 +577,17 @@ export default {
}

.group_3 {
background-color: #ffffff;
padding-top: 58px;
}

.section_8 {
padding: 52px 354px 52px 360px;
width: 1100px;
left: 50%;
transform: translateX(-50%);
padding: 52px 0;
background-color: #ffffff;
border-radius: 4px;
box-shadow: 0px 0px 12px #0716156b;
}

.font_3 {
@@ -867,7 +822,7 @@ export default {

.text_15 {
border: solid 1px #caced8;
padding: 7px 0;
padding: 7px 15px;
border-radius: 4px;
width: 442px;
background-color: #f6f9fb;


+ 9
- 9
web_src/vuepages/pages/ros-hmci/views/HelpCenter.vue View File

@@ -7,7 +7,7 @@
</div>
</div>

<img class="image_8 pos_5" src="/img/ros-hmci/5727@2x.png" />
<img class="image_8 pos_5" src="/img/ros-hmci/group5727@2x.png" />
<div class="flex-col relative space-y-64">
<div class="self-center">
<div class="flex-row group_3 space-x-14">
@@ -17,19 +17,19 @@
</div>
<div class="self-center section_9"></div>
<div class="flex-row group_6 space-x-8">
<img class="image_10" src="/img/ros-hmci/蒙版组 640.png" />
<img class="image_10" src="/img/ros-hmci/mbz640.png" />
<span class="font_4">常见问题</span>
</div>
<div class="flex-row group_6 space-x-8">
<img class="image_10" src="/img/ros-hmci/蒙版组 637.png" />
<img class="image_10" src="/img/ros-hmci/mbz637.png" />
<span class="font_4">入门指南</span>
</div>
<div class="flex-row group_6 space-x-8">
<img class="image_10" src="/img/ros-hmci/蒙版组 636.png" />
<img class="image_10" src="/img/ros-hmci/mbz636.png" />
<span class="font_4">安装手册</span>
</div>
<div class="flex-row group_6 space-x-8">
<img class="image_10" src="/img/ros-hmci/蒙版组 635.png" />
<img class="image_10" src="/img/ros-hmci/mbz635.png" />
<span class="font_4">API接口</span>
</div>
</div>
@@ -77,9 +77,9 @@ export default {
}

.banner {
background-image: url("/img/ros-hmci/7348.png");
background-image: url("/img/ros-hmci/group7348.png");
background-size: 100% 100%;
height: 464px;
height: 541px;
margin-top: -1px;
}

@@ -229,7 +229,7 @@ export default {

.pos_6 {
position: relative;
top: 166px;
top: 184px;
}

.pos_2 {
@@ -294,7 +294,7 @@ export default {
position: absolute;
left: 0;
right: 0;
top: 357px;
top: 469px;
}

.space-y-64>*:not(:first-child) {


+ 57
- 43
web_src/vuepages/pages/ros-hmci/views/HomePage.vue View File

@@ -2,10 +2,10 @@
<div class="flex-col relative group_4 page" style="padding-bottom: 0px">
<div class="flex-col section_6">
<div class="banner_a">
<img class="sec_1" src="/img/ros-hmci/7392.png">
<img class="sec_2" src="/img/ros-hmci/7391.png">
<img class="sec_3" src="/img/ros-hmci/7390.png">
<img class="sec_4" src="/img/ros-hmci/7389.png">
<img class="sec_1" src="/img/ros-hmci/group7392.png">
<img class="sec_2" src="/img/ros-hmci/group7391.png">
<img class="sec_3" src="/img/ros-hmci/group7390.png">
<img class="sec_4" src="/img/ros-hmci/group7389.png">
<img class="banner_ros bounce" src="/img/ros-hmci/banner-ros.png">
<img class="banner_bg" src="/img/ros-hmci/首页路径.png">
</div>
@@ -16,7 +16,9 @@
<img class="shrink-0 image_11" src="/img/ros-hmci/c1b8b11fc5718ac77fbc93056561e611.png" />
<span class="font_4">智能操作系统</span>
</div>
<span class="self-start font_5 text_16">AI学习者的一体化智能学习交流平台</span>
<div class="info-div">
<span class="text_16">AI学习者的一体化智能学习交流平台</span>
</div>
</div>
<div @click="getdownload('/os-system', 'osDownload')"
class="flex-col justify-start items-center self-start text-wrapper_2">
@@ -38,7 +40,7 @@
瞄准人机协同自主作业需求,针对“可持续自主学习型智能操作系统”和“人机物融合、多主体协同计算平台”两大科学问题,着眼构建新一代人工智能基础软件,创新和突破相关基础理论和关键技术,研制人机协同智能操作系统原型版本,构建支持操作系统开源生态构建和智能资源共享的开源开放基础平台,面向典型场景和任务开展应用验证。
</span>
</div>
<img class="shrink-0 self-center image_17" src="/img/ros-hmci/蒙版组 549.png" />
<img class="shrink-0 self-center image_17" src="/img/ros-hmci/mbz549.png" />
</div>
</div>

@@ -184,22 +186,22 @@
<span class="font_7 text_25 text_26 pos_4">Project collaboration</span>
<div class="xmxt justify-center items-center flex-row">
<div class="justify-center items-center flex-col sjx">
<img class="image_42" src="/img/ros-hmci/蒙版组 545.png" />
<img class="image_42" src="/img/ros-hmci/mbz545.png" />
<a class="text_73">{{ systemComponentTotal }}</a>
<a class="text_74">系统组件</a>
</div>
<div class="justify-center items-center flex-col sjx">
<img class="image_42" src="/img/ros-hmci/蒙版组 546.png" />
<img class="image_42" src="/img/ros-hmci/mbz546.png" />
<a class="text_73">{{ applicationSoftwareTotal }}</a>
<a class="text_74">应用软件</a>
</div>
<div class="justify-center items-center flex-col sjx">
<img class="image_42" src="/img/ros-hmci/蒙版组 547.png" />
<img class="image_42" src="/img/ros-hmci/mbz547.png" />
<a class="text_73">{{ statisticsData.developer }}</a>
<a class="text_74">开发者</a>
</div>
<div class="justify-center items-center flex-col sjx">
<img class="image_42" src="/img/ros-hmci/蒙版组 548.png" />
<img class="image_42" src="/img/ros-hmci/mbz548.png" />
<a class="text_73">{{ statisticsData.organization }}</a>
<a class="text_74">组织</a>
</div>
@@ -482,8 +484,8 @@ export default {
},
links: linksConfig,
showText: [false, false],
feedbackImgSrc: "/img/ros-hmci/7305.png",
qrcodeImgSrc: "/img/ros-hmci/7307.png",
feedbackImgSrc: "/img/ros-hmci/group7305.png",
qrcodeImgSrc: "/img/ros-hmci/group7307.png",
systemComponentTotal: 0,
applicationSoftwareTotal: 0,
};
@@ -512,7 +514,7 @@ export default {
async fetchStatisticsData() {
try {
//主页的项目协同后两项获取地址
const response = await axios.get("/root/ROS-hmci-resource/raw/branch/master/homePage_statistics.json");
const response = await axios.get(this.links.home_statisticsData);
/*
json格式如下
{
@@ -530,20 +532,20 @@ export default {
handleMouseEnter(id) {
if (id === 1) {
this.showText[0] = true;
this.feedbackImgSrc = "/img/ros-hmci/蒙版组 668.png";
this.feedbackImgSrc = "/img/ros-hmci/mbz668.png";
} else if (id === 2) {
this.showText[1] = true;
this.qrcodeImgSrc = "/img/ros-hmci/蒙版组 669.png";
this.qrcodeImgSrc = "/img/ros-hmci/mbz669.png";
}
},

handleMouseLeave(id) {
if (id === 1) {
this.showText[0] = false;
this.feedbackImgSrc = "/img/ros-hmci/7305.png";
this.feedbackImgSrc = "/img/ros-hmci/group7305.png";
} else if (id === 2) {
this.showText[1] = false;
this.qrcodeImgSrc = "/img/ros-hmci/7307.png";
this.qrcodeImgSrc = "/img/ros-hmci/group7307.png";
}
},

@@ -663,32 +665,32 @@ export default {

.sec_1 {
position: absolute;
top: 255px;
right: 1020px;
top: 220px;
right: 963px;
height: 24px;
}

.sec_2 {
animation-delay: 1s;
position: absolute;
top: 244px;
right: 1008px;
top: 208px;
right: 950px;
height: 42px;
}

.sec_3 {
animation-delay: 1.5s;
position: absolute;
top: 260px;
right: 995px;
top: 222px;
right: 936px;
height: 34px;
}

.sec_4 {
animation-delay: 2s;
position: absolute;
top: 247px;
right: 982px;
top: 207px;
right: 923px;
height: 56px;
}

@@ -726,8 +728,8 @@ export default {
height: 186px;
width: 322px;
position: absolute;
top: 105px;
right: 528px;
top: 692px;
right: 492px;
animation: fadeinout 1.5s ease-in-out infinite;
}

@@ -763,8 +765,8 @@ export default {

.banner_ros {
position: absolute;
top: 140px;
right: 605px;
top: 90px;
right: 581px;
width: 156.5px;
height: 80.5px;
}
@@ -779,7 +781,7 @@ export default {
width: 100%;
overflow-y: auto;
overflow-x: hidden;
height: 4190px;
height: 4116px;
margin-bottom: -80px;
}

@@ -1013,8 +1015,8 @@ export default {

.section_6 {
position: relative;
top: -26px;
height: 614px;
top: 0px;
height: 541px;
background-image: url("/img/ros-hmci/homepageBanner.png");
background-position: right;
background-size: cover;
@@ -1052,7 +1054,7 @@ export default {
.group_5 {
position: relative;
left: 18.75%;
top: 146px;
top: 110px;
}

.font_4 {
@@ -1083,9 +1085,9 @@ export default {
}

.text_16 {
margin-top: 24px;
line-height: 15px;
opacity: 0.82;
font-family: Alibaba PuHuiTi;
color: #ffffff;
font-size: 20px;
}

.text-wrapper_2 {
@@ -1096,7 +1098,7 @@ export default {
border: solid 1px #00000000;
position: relative;
left: 18.75%;
top: 225px;
top: 185px;
}

.text-wrapper_2:hover {
@@ -1310,6 +1312,18 @@ export default {
margin-left: -23px;
}

.info-div {
margin-top: 17px;
display: inline-flex;
flex-direction: row;
align-items: center;
padding-left: 23.45px;
width: 419px;
height: 42px;
background-image: linear-gradient(90deg, #1cb08f 0%, rgba(3, 13, 35, 0.46) 100%);
border-radius: 4px;
}

.font_11 {
font-size: 16px;
font-family: Alibaba PuHuiTi;
@@ -1452,7 +1466,7 @@ export default {

.section_10 {
height: 1777px;
background-image: url("/img/ros-hmci/蒙版组\ 667.png");
background-image: url("/img/ros-hmci/mbz667.png");
background-size: 100% 100%;
background-repeat: no-repeat;
}
@@ -1461,7 +1475,7 @@ export default {
position: absolute;
left: 0;
right: -1px;
top: 589px;
top: 541px;
}

.font_8 {
@@ -1525,7 +1539,7 @@ export default {

.pos_7 {
position: absolute;
top: 1147px;
top: 1085px;
left: 50%;
width: 1210px;
transform: translateX(-50%);
@@ -2100,7 +2114,7 @@ export default {
.pos_9 {
position: absolute;
left: 50%;
top: 1328.5px;
top: 1260px;
transform: translateX(-50%);
}

@@ -2452,7 +2466,7 @@ export default {
position: absolute;
left: 0;
right: 0;
top: 3934px;
top: 3860px;
}

.pos_56 {
@@ -2578,7 +2592,7 @@ export default {

.pos_88 {
position: absolute;
top: 3313px;
top: 3239px;
height: 621px;
width: 100%;
background: url("/img/ros-hmci/底部.png");


+ 37
- 30
web_src/vuepages/pages/ros-hmci/views/OSSystem.vue View File

@@ -12,7 +12,7 @@
<div ref="leftElem" class="flex-col self-start group_5 space-y-54 slide-in-left" :class="{ 'show': showLeft }">
<div class="flex-col">
<div class="flex-row space-x-16">
<img class="image_12" src="/img/ros-hmci/蒙版组 606.png" />
<img class="image_12" src="/img/ros-hmci/mbz606.png" />
<span class="font_41 text_17">系统概述</span>
</div>
<div class="flex-col items-center group_6 space-y-2">
@@ -31,11 +31,11 @@
</div>
<div class="flex-row items-center self-start section_8">
<a :href="links.os_info" class="text_19">更多详情</a>
<img class="shrink-0 image_14" src="/img/ros-hmci/蒙版组 607.png" />
<img class="shrink-0 image_14" src="/img/ros-hmci/mbz607.png" />
</div>
</div>
<img ref="rightElem" class="image_27 slide-in-right" :class="{ 'show': showRight }"
src="/img/ros-hmci/4654.png" />
src="/img/ros-hmci/group4654.png" />
</div>
</div>
</div>
@@ -77,7 +77,7 @@
<div id="tab1" class="tab visible flex-row items-center group_31 space-x-40">
<div class="flex-col group_26 space-y-18">
<div class="flex-col justify-start section_12">
<img class="imgpos_1" src="/img/ros-hmci/蒙版组 609.png" />
<img class="imgpos_1" src="/img/ros-hmci/mbz609.png" />
<div class="flex-col group_29 space-y-12">
<span class="self-start font_7 text_25">传感器</span>
<div class="flex-col space-y-9">
@@ -101,7 +101,7 @@
</div>
</div>
<div class="flex-col justify-start section_12">
<img class="imgpos_1" src="/img/ros-hmci/蒙版组 610.png" />
<img class="imgpos_1" src="/img/ros-hmci/mbz610.png" />
<div class="flex-col group_29 space-y-12">
<span class="self-start font_7">实时无线通信</span>
<div class="flex-col">
@@ -120,7 +120,7 @@
</div>
</div>
<div class="flex-col justify-start section_12">
<img class="imgpos_1" src="/img/ros-hmci/蒙版组 611.png" />
<img class="imgpos_1" src="/img/ros-hmci/mbz611.png" />
<div class="flex-col items-start group_29 space-y-12">
<span class="font_7">执行器</span>
<div class="flex-col space-y-9">
@@ -155,7 +155,7 @@
<div id="tab2" class="tab flex-row items-center group_31 space-x-40">
<div class="flex-col group_26 space-y-18">
<div class="flex-col justify-start section_123">
<img class="imgpos_5" src="/img/ros-hmci/668.png" />
<img class="imgpos_5" src="/img/ros-hmci/group668.png" />
<div class="flex-col group_29 space-y-12">
<span class="self-start font_7 text_25">感知模块</span>
<div class="flex-col space-y-9">
@@ -196,7 +196,7 @@
<div id="tab3" class="tab flex-row items-center group_31 space-x-40">
<div class="flex-col group_26 space-y-18">
<div class="flex-col justify-start section_122">
<img class="imgpos_4" src="/img/ros-hmci/7079.png" />
<img class="imgpos_4" src="/img/ros-hmci/group7079.png" />
<div class="flex-col group_29 space-y-12">
<span class="self-start font_7 text_25">作业状态切换引擎</span>
<div class="flex-col space-y-9">
@@ -215,7 +215,7 @@
</div>
</div>
<div class="flex-col justify-start section_122">
<img class="imgpos_4" src="/img/ros-hmci/7103.png" />
<img class="imgpos_4" src="/img/ros-hmci/group7103.png" />
<div class="flex-col group_29 space-y-12">
<span class="self-start font_7">失效处理</span>
<div class="flex-col">
@@ -247,7 +247,7 @@
<div id="tab4" class="tab flex-row items-center group_31 space-x-40">
<div class="flex-col group_26 space-y-18">
<div class="flex-col justify-start section_12">
<img class="imgpos_1" src="/img/ros-hmci/蒙版组 609.png" />
<img class="imgpos_1" src="/img/ros-hmci/mbz609.png" />
<div class="flex-col group_29 space-y-12">
<span class="self-start font_7 text_25">人机互理解</span>
<div class="flex-col space-y-9">
@@ -266,7 +266,7 @@
</div>
</div>
<div class="flex-col justify-start section_12">
<img class="imgpos_1" src="/img/ros-hmci/蒙版组 610.png" />
<img class="imgpos_1" src="/img/ros-hmci/mbz610.png" />
<div class="flex-col group_29 space-y-12">
<span class="self-start font_7">协同作业规划</span>
<div class="flex-col">
@@ -282,7 +282,7 @@
</div>
</div>
<div class="flex-col justify-start section_12">
<img class="imgpos_1" src="/img/ros-hmci/蒙版组 611.png" />
<img class="imgpos_1" src="/img/ros-hmci/mbz611.png" />
<div class="flex-col items-start group_29 space-y-12">
<span class="font_7">人机自主协同操控</span>
<div class="flex-col space-y-9">
@@ -317,7 +317,7 @@
<div id="tab5" class="tab flex-row items-center group_31 space-x-40">
<div class="flex-col group_26 space-y-181">
<div class="flex-col justify-start section_121">
<img class="imgpos_3" src="/img/ros-hmci/蒙版组 658.png" />
<img class="imgpos_3" src="/img/ros-hmci/mbz658.png" />
<div class="flex-col group_29 space-y-12">
<span class="self-start font_7 text_25">管理平台</span>
<div class="flex-col space-y-9">
@@ -336,7 +336,7 @@
</div>
</div>
<div class="flex-col justify-start section_12">
<img class="imgpos_1" src="/img/ros-hmci/蒙版组 610.png" />
<img class="imgpos_1" src="/img/ros-hmci/mbz610.png" />
<div class="flex-col group_29 space-y-12">
<span class="self-start font_7">虚拟学习引擎</span>
<div class="flex-col">
@@ -360,7 +360,7 @@
</div>
</div>
<div class="flex-col justify-start section_12">
<img class="imgpos_1" src="/img/ros-hmci/蒙版组 611.png" />
<img class="imgpos_1" src="/img/ros-hmci/mbz611.png" />
<div class="flex-col items-start group_29 space-y-12">
<span class="font_7">数据生成引擎</span>
<div class="flex-col space-y-9">
@@ -379,7 +379,7 @@
</div>
</div>
<div class="flex-col justify-start section_12">
<img class="imgpos_1" src="/img/ros-hmci/蒙版组 611.png" />
<img class="imgpos_1" src="/img/ros-hmci/mbz611.png" />
<div class="flex-col items-start group_29 space-y-12">
<span class="font_7">模拟仿真引擎</span>
<div class="flex-col space-y-9">
@@ -414,13 +414,13 @@
<div id="tab6" class="tab flex-row items-center group_31 space-x-40">
<div class="flex-col group_26 space-y-18">
<div class="flex-col justify-start section_12">
<img class="imgpos_2" src="/img/ros-hmci/7310.png" />
<img class="imgpos_2" src="/img/ros-hmci/group7310.png" />
<div class="flex-col group_29 space-y-12">
<span class="self-start font_7 text_25">地图和障碍物</span>
</div>
</div>
<div class="flex-col justify-start section_12">
<img class="imgpos_2" src="/img/ros-hmci/7311.png" />
<img class="imgpos_2" src="/img/ros-hmci/group7311.png" />
<div class="flex-col group_29 space-y-12">
<span class="self-start font_7">自身位姿和速度</span>
</div>
@@ -454,7 +454,7 @@
<div class="flex-row relative">
<div class="flex-col section_14">
<div v-for="(repo, index) in repos" :id="`sec${index + 1}`" :ref="`sec${index + 1}`" class="sec repo"
@mouseenter="xtxz(`sec${index + 1}`); selectedRepoName = repo.Name; selectedRepoAlias = repo.Alias">
@mouseenter="xtxz(`sec${index + 1}`); selectedRepoName = repo.Name; selectedRepoAlias = repo.Alias; selectedRepoOwner = repo.OwnerName">
<div class="flex-col items-start section_16 xz_active"
:style="{ display: index === 0 ? '' : 'none' }">
<span class="font_10">人机协同智能操作系统</span>
@@ -478,7 +478,7 @@
<span class="font_11"> {{ description }} </span>
</div>
<div class="flex-row self-start section_18 space-x-2">
<a :href="`/root/${selectedRepoName}/datasets`" class="font_8 text_38">更多详情</a>
<a :href="`/${selectedRepoOwner}/${selectedRepoName}/datasets`" class="font_8 text_38">更多详情</a>
<img class="shrink-0 image_21" src="/img/ros-hmci/8aacfa799145b95562e808dcf6004f2d.png" />
</div>

@@ -493,10 +493,10 @@
<div class="group_14 view_5">
<span class="font_14">{{ attachment.Name }}</span>
<a :href="`/attachments/${attachment.UUID}?type=0`"><img class="shrink-0 image_22"
src="/img/ros-hmci/蒙版组 614.png" /></a>
src="/img/ros-hmci/mbz614.png" /></a>
</div>
<div class="flex-row items-baseline group_14">
<a :href="`/root/${selectedRepoName}/datasets`" class="font_13 text_42">本次改动内容...</a>
<a :href="`/${selectedRepoOwner}/${selectedRepoName}/datasets`" class="font_13 text_42">本次改动内容...</a>
<span class="font_15">{{ attachment.CreatedUnix | formatDate }}</span>
</div>
</div>
@@ -530,6 +530,7 @@ export default {
attachments: [],
selectedRepoAlias: '',
selectedRepoName: '',
selectedRepoOwner: '',
showLeft: false,
showRight: false,
};
@@ -586,12 +587,18 @@ export default {

async fetchRepos() {
try {
const apiUrl = '/explore/repos/search?q=操作系统&topic=&sort=mostpopular&pageSize=15&page=1';
const apiUrl = '/explore/repos/search?q=ros-hmci-os&topic=&sort=mostpopular&pageSize=15&page=1';
const response = await axios.get(apiUrl);

// 如果返回值的Code为0,表示请求成功,将Repos数据赋值给data属性repos
if (response.data.Code === 0) {
this.repos = response.data.Data.Repos;

// 遍历仓库列表并调用fetchCurrentRepoData方法
for (const repo of this.repos) {
await this.fetchCurrentRepoData(repo.OwnerName, repo.Name);
}

} else {
// 处理请求失败的情况
console.error('请求失败:', response.data.Msg);
@@ -601,9 +608,9 @@ export default {
console.error('请求异常:', error);
}
},
async fetchCurrentRepoData(repoName) {
async fetchCurrentRepoData(repoOwnerName, repoName) {
try {
const apiUrl = `/root/${repoName}/datasets/current_repo_m?q=&page=1&q=&type=0`;
const apiUrl = `/${repoOwnerName}/${repoName}/datasets/current_repo_m?q=&page=1&q=&type=0`;
const response = await axios.get(apiUrl);

// 处理请求成功的情况
@@ -622,12 +629,12 @@ export default {
},

toLocal() {
console.log(this.$route);
// console.log(this.$route);
// 查找存储的锚点id
let Id = this.$route.query.id;

let toElement = document.getElementById(Id);
console.log(toElement, "toElement");
// console.log(toElement, "toElement");
//锚点存在跳转
if (Id) {
toElement.scrollIntoView();
@@ -719,7 +726,7 @@ export default {
.group_25 {
position: relative;
top: 0px;
background: url(/img/ros-hmci/蒙版组\ 605.png);
background: url(/img/ros-hmci/mbz605.png);
background-size: 100% auto;
height: 541px;
width: 100%;
@@ -1349,7 +1356,7 @@ export default {
margin-top: -13px;

padding: 264px 0 154px;
background-image: url("/img/ros-hmci/蒙版组 612.png");
background-image: url("/img/ros-hmci/mbz612.png");
background-size: 100% 100%;
background-repeat: no-repeat;
}
@@ -1399,7 +1406,7 @@ export default {

.section_16 {
padding: 14px 20px;
background-image: url("/img/ros-hmci/3576.png");
background-image: url("/img/ros-hmci/group3576.png");
border-radius: 4px;
background-size: 100% 100%;
background-repeat: no-repeat;


+ 1
- 1
web_src/vuepages/pages/ros-hmci/views/OpenApp.vue View File

@@ -24,7 +24,7 @@
<div class="ui container">
<div class="ui grid">
<div class="computer only ui two wide computer column">
<ReposFilters ref="reposFiltersRef" @change="filtersChange"></ReposFilters>
<!-- <ReposFilters ref="reposFiltersRef" @change="filtersChange"></ReposFilters> -->
</div>
<div class="ui sixteen wide mobile twelve wide tablet ten wide computer column">
<ReposList ref="reposListRef" :sort="reposListSortType" :q="reposListQurey" :topic="reposListTopic" :page="page"


+ 3
- 3
web_src/vuepages/pages/ros-hmci/views/ResourceDetail.vue View File

@@ -24,7 +24,7 @@
<div class="flex-col items-start section_8">
<div class="flex-row justify-center group_4 space-x-36">
<div class="flex-row items-start justify-center">
<img class="shrink-0 image_11" src="/img/ros-hmci/蒙版组 628.png" />
<img class="shrink-0 image_11" src="/img/ros-hmci/mbz628.png" />
<span class="text_19">概述</span>
</div>
</div>
@@ -95,7 +95,7 @@ export default {
async created() {
const resourceName = this.$route.params.name;
const response = await fetch(
`/root/ROS-hmci-resource/raw/branch/master/resource/${resourceName}.json`
`/fanshuai/ROS-hmci-resource/raw/branch/master/resource/${resourceName}.json`
);
const data = await response.json();
this.resourceDetails = data[0]; // 假设响应中的第一个对象包含所需的详细信息
@@ -110,7 +110,7 @@ export default {
try {
const resourceName = this.$route.params.name;
const response = await axios.get(
`/root/ROS-hmci-resource/raw/branch/master/markdown/${resourceName}.md`
`/fanshuai/ROS-hmci-resource/raw/branch/master/markdown/${resourceName}.md`
);
this.markdownContent = response.data;



Loading…
Cancel
Save