diff --git a/web/public/images/mj-niji.png b/web/public/images/mj-niji.png new file mode 100644 index 00000000..79a6cfd0 Binary files /dev/null and b/web/public/images/mj-niji.png differ diff --git a/web/public/images/mj-normal.png b/web/public/images/mj-normal.png new file mode 100644 index 00000000..57661679 Binary files /dev/null and b/web/public/images/mj-normal.png differ diff --git a/web/src/assets/css/image-mj.css b/web/src/assets/css/image-mj.css new file mode 100644 index 00000000..efdfd297 --- /dev/null +++ b/web/src/assets/css/image-mj.css @@ -0,0 +1,178 @@ +.page-mj { + background-color: #282c34; +} +.page-mj .inner { + display: flex; +} +.page-mj .inner .mj-box { + margin: 10px; + background-color: #262626; + border: 1px solid #454545; + min-width: 300px; + max-width: 300px; + padding: 10px; + border-radius: 10px; + color: #fff; + font-size: 14px; +} +.page-mj .inner .mj-box h2 { + font-weight: bold; + font-size: 20px; + text-align: center; + color: #47fff1; +} +.page-mj .inner .mj-box ::-webkit-scrollbar { + width: 0; + height: 0; + background-color: transparent; +} +.page-mj .inner .mj-box .mj-params { + margin-top: 10px; + overflow: auto; +} +.page-mj .inner .mj-box .mj-params .param-line { + padding: 0 10px; +} +.page-mj .inner .mj-box .mj-params .param-line .el-icon { + position: relative; + top: 3px; +} +.page-mj .inner .mj-box .mj-params .param-line .grid-content { + background-color: #383838; + border-radius: 5px; + padding: 8px 14px; + display: flex; + cursor: pointer; +} +.page-mj .inner .mj-box .mj-params .param-line .grid-content:hover { + background-color: #585858; +} +.page-mj .inner .mj-box .mj-params .param-line .grid-content .shape { + width: 16px; + height: 16px; + margin-right: 5px; + border: 1px solid #c4c4c4; + border-radius: 3px; +} +.page-mj .inner .mj-box .mj-params .param-line .grid-content .shape.vertical { + width: 12px; + height: 20px; +} +.page-mj .inner .mj-box .mj-params .param-line .grid-content .shape.horizontal { + height: 12px; + width: 20px; + position: relative; + top: 3px; +} +.page-mj .inner .mj-box .mj-params .param-line .grid-content.active { + color: #47fff1; + background-color: #585858; +} +.page-mj .inner .mj-box .mj-params .param-line .grid-content.active .shape { + border: 1px solid #47fff1; +} +.page-mj .inner .mj-box .mj-params .param-line .model { + background-color: #383838; + border: 1px solid #454545; + border-radius: 5px; + padding: 10px; + display: flex; + flex-flow: column; + align-items: center; + cursor: pointer; +} +.page-mj .inner .mj-box .mj-params .param-line .model:hover { + background-color: #585858; +} +.page-mj .inner .mj-box .mj-params .param-line .model .el-image { + height: 60px; + width: 100%; +} +.page-mj .inner .mj-box .mj-params .param-line .model .text { + margin-top: 6px; +} +.page-mj .inner .mj-box .mj-params .param-line .model.active { + color: #47fff1; + background-color: #585858; + border: 1px solid #47fff1; +} +.page-mj .inner .mj-box .mj-params .param-line .form-item-inner { + display: flex; +} +.page-mj .inner .mj-box .mj-params .param-line .form-item-inner .el-icon { + margin-left: 10px; + margin-top: 2px; +} +.page-mj .inner .mj-box .mj-params .param-line .img-uploader .el-upload { + border: 1px dashed var(--el-border-color); + border-radius: 6px; + cursor: pointer; + position: relative; + overflow: hidden; + width: 100%; + transition: var(--el-transition-duration-fast); +} +.page-mj .inner .mj-box .mj-params .param-line .img-uploader .el-upload:hover { + border-color: var(--el-color-primary); +} +.page-mj .inner .mj-box .mj-params .param-line .img-uploader .el-upload .el-icon.uploader-icon { + font-size: 28px; + color: #8c939d; + width: 100%; + height: 120px; + text-align: center; +} +.page-mj .inner .mj-box .mj-params .param-line.pt { + padding-top: 5px; + padding-bottom: 5px; +} +.page-mj .inner .mj-box .submit-btn { + padding: 10px 15px 0 15px; + text-align: center; +} +.page-mj .inner .mj-box .submit-btn .el-button { + width: 100%; +} +.page-mj .inner .mj-box .submit-btn .el-button span { + color: #2d3a4b; +} +.page-mj .inner .el-form .el-form-item__label { + color: #fff; +} +.page-mj .inner .el-form .el-input, +.page-mj .inner .el-form .el-slider { + width: 180px; +} +.page-mj .inner .task-list-box { + width: 100%; + padding: 10px; + color: #fff; + overflow-x: hidden; + overflow-y: auto; +} +.page-mj .inner .task-list-box .task-list-inner .grid-content { + margin-bottom: 20px; +} +.page-mj .inner .task-list-box .task-list-inner .grid-content .opt .opt-line { + margin: 6px 0; +} +.page-mj .inner .task-list-box .task-list-inner .grid-content .opt .opt-line ul { + display: flex; + flex-flow: row; +} +.page-mj .inner .task-list-box .task-list-inner .grid-content .opt .opt-line ul li { + margin-right: 10px; +} +.page-mj .inner .task-list-box .task-list-inner .grid-content .opt .opt-line ul li a { + padding: 3px 0; + width: 50px; + text-align: center; + border-radius: 5px; + display: block; + cursor: pointer; + background-color: #4e5058; + color: #fff; +} +.page-mj .inner .task-list-box .task-list-inner .grid-content .opt .opt-line ul li a:hover { + background-color: #6d6f78; +} diff --git a/web/src/assets/css/image-mj.styl b/web/src/assets/css/image-mj.styl new file mode 100644 index 00000000..269b81dd --- /dev/null +++ b/web/src/assets/css/image-mj.styl @@ -0,0 +1,234 @@ +.page-mj { + background-color: #282c34; + + .inner { + display: flex; + + .mj-box { + margin 10px + background-color #262626 + border 1px solid #454545 + min-width 300px + max-width 300px + padding 10px + border-radius 10px + color #ffffff; + font-size 14px + + h2 { + font-weight: bold; + font-size 20px + text-align center + color #47fff1 + } + + // 隐藏滚动条 + + ::-webkit-scrollbar { + width: 0; + height: 0; + background-color: transparent; + } + + .mj-params { + margin-top 10px + overflow auto + + + .param-line { + padding 0 10px + + .el-icon { + position relative + top 3px + } + + .grid-content { + background-color #383838 + border-radius 5px + padding 8px 14px + display flex + cursor pointer + + &:hover { + background-color #585858 + } + + .shape { + width 16px + height 16px + margin-right 5px + border 1px solid #C4C4C4 + border-radius 3px + } + + .shape.vertical { + width 12px + height 20px + } + + .shape.horizontal { + height 12px + width 20px + position relative + top 3px + } + } + + + .grid-content.active { + color #47fff1 + background-color #585858 + + .shape { + border 1px solid #47fff1 + } + } + + .model { + background-color #383838 + border 1px solid #454545 + border-radius 5px + padding 10px + display flex + flex-flow column + align-items center + cursor pointer + + &:hover { + background-color #585858 + } + + .el-image { + height 60px + width 100% + } + + .text { + margin-top 6px + } + + } + + .model.active { + color #47fff1 + background-color #585858 + border 1px solid #47fff1 + } + + .form-item-inner { + display flex + + .el-icon { + margin-left 10px + margin-top 2px + } + } + + + .img-uploader { + .el-upload { + border: 1px dashed var(--el-border-color); + border-radius: 6px; + cursor: pointer; + position: relative; + overflow: hidden; + width 100% + transition: var(--el-transition-duration-fast); + + &:hover { + border-color: var(--el-color-primary); + } + + .el-icon.uploader-icon { + font-size: 28px + color: #8c939d + width 100% + height: 120px + text-align: center + } + } + } + + } + + .param-line.pt { + padding-top 5px + padding-bottom 5px + } + } + + .submit-btn { + padding 10px 15px 0 15px + text-align center + + .el-button { + width 100% + + span { + color #2D3A4B + } + } + } + } + + .el-form { + .el-form-item__label { + color #ffffff + } + + .el-input, .el-slider { + width 180px + } + } + + + .task-list-box { + width 100% + padding 10px + color #ffffff + overflow-x hidden + overflow-y auto + + .task-list-inner { + + .grid-content { + margin-bottom 20px + + .opt { + .opt-line { + margin 6px 0 + + ul { + display flex + flex-flow row + + li { + margin-right 10px + + a { + padding 3px 0 + width 50px + text-align center + border-radius 5px + display block + cursor pointer + background-color #4E5058 + color #ffffff + + &:hover { + background-color #6D6F78 + } + } + } + } + } + } + + } + } + + } + } + +} \ No newline at end of file diff --git a/web/src/views/ImageMj.vue b/web/src/views/ImageMj.vue index e76d8a27..efa8bdee 100644 --- a/web/src/views/ImageMj.vue +++ b/web/src/views/ImageMj.vue @@ -4,193 +4,325 @@

MidJourney 创作中心

-
-
- 图片比例: - - - - - -
+
+ +
+ 图片比例: + + + + + +
-
- - -
-
-
{{ item.text }}
+
+ + +
+
+
{{ item.text }}
+
+
+
+
+ +
+ 模型选择: + + + + + +
+
+ + +
+ +
{{ item.text }}
+
+
+
+
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + + + + +
+ +
+ + + +
+ +
+ +
+ + +
+
+ 立即生成 +
+
+
+
+

任务列表

+
+ + +
+
+

创作记录

+
+ + +
+ +
+
+ +
-
- 模型选择: - - - - - -
-
- - -
-
- +
+ +
-
{{ item.text }}
-
-

任务列表

- -

创作记录

-
-