diff --git a/Yi.Bbs.Vue3/src/apis/settingApi.js b/Yi.Bbs.Vue3/src/apis/settingApi.js
new file mode 100644
index 00000000..32ed6416
--- /dev/null
+++ b/Yi.Bbs.Vue3/src/apis/settingApi.js
@@ -0,0 +1,11 @@
+import request from "@/config/axios/service";
+
+/**
+ * 获取图标列表
+ */
+export function getIconList() {
+ return request({
+ url: `/setting/icon`,
+ method: "get",
+ });
+}
diff --git a/Yi.Bbs.Vue3/src/assets/common/icons/gitee.png b/Yi.Bbs.Vue3/src/assets/common/icons/gitee.png
new file mode 100644
index 00000000..81d9e627
Binary files /dev/null and b/Yi.Bbs.Vue3/src/assets/common/icons/gitee.png differ
diff --git a/Yi.Bbs.Vue3/src/assets/styles/index.scss b/Yi.Bbs.Vue3/src/assets/styles/index.scss
index f9d0a723..00ec06f6 100644
--- a/Yi.Bbs.Vue3/src/assets/styles/index.scss
+++ b/Yi.Bbs.Vue3/src/assets/styles/index.scss
@@ -1,190 +1,194 @@
-// @import './variables.module.scss';
-// @import './mixin.scss';
-// @import './transition.scss';
-// @import './element-ui.scss';
-// @import './sidebar.scss';
-// @import './btn.scss';
-// @import './ruoyi.scss';
-
-// body {
-// height: 100%;
-// margin: 0;
-// -moz-osx-font-smoothing: grayscale;
-// -webkit-font-smoothing: antialiased;
-// text-rendering: optimizeLegibility;
-// font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
-// }
-
-// label {
-// font-weight: 700;
-// }
-
-// html {
-// height: 100%;
-// box-sizing: border-box;
-// }
-
-// #app {
-// height: 100%;
-// }
-
-// *,
-// *:before,
-// *:after {
-// box-sizing: inherit;
-// }
-
-// .no-padding {
-// padding: 0px !important;
-// }
-
-// .padding-content {
-// padding: 4px 0;
-// }
-
-// a:focus,
-// a:active {
-// outline: none;
-// }
-
-// a,
-// a:focus,
-// a:hover {
-// cursor: pointer;
-// color: inherit;
-// text-decoration: none;
-// }
-
-// div:focus {
-// outline: none;
-// }
-
-// .fr {
-// float: right;
-// }
-
-// .fl {
-// float: left;
-// }
-
-// .pr-5 {
-// padding-right: 5px;
-// }
-
-// .pl-5 {
-// padding-left: 5px;
-// }
-
-// .block {
-// display: block;
-// }
-
-// .pointer {
-// cursor: pointer;
-// }
-
-// .inlineBlock {
-// display: block;
-// }
-
-// .clearfix {
-// &:after {
-// visibility: hidden;
-// display: block;
-// font-size: 0;
-// content: " ";
-// clear: both;
-// height: 0;
-// }
-// }
-
-// aside {
-// background: #eef1f6;
-// padding: 8px 24px;
-// margin-bottom: 20px;
-// border-radius: 2px;
-// display: block;
-// line-height: 32px;
-// font-size: 16px;
-// font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
-// color: #2c3e50;
-// -webkit-font-smoothing: antialiased;
-// -moz-osx-font-smoothing: grayscale;
-
-// a {
-// color: #337ab7;
-// cursor: pointer;
-
-// &:hover {
-// color: rgb(32, 160, 255);
-// }
-// }
-// }
-
-
-
-// .components-container {
-// margin: 30px 50px;
-// position: relative;
-// }
-
-// .pagination-container {
-// margin-top: 30px;
-// }
-
-.text-center {
- text-align: center
+/**
+ * Eric Meyer's Reset CSS v2.0 (http://meyerweb.com/eric/tools/css/reset/)
+ * http://cssreset.com
+ * 全局初始化样式
+ */
+html,
+body,
+div,
+span,
+applet,
+object,
+iframe,
+p,
+blockquote,
+pre,
+a,
+abbr,
+acronym,
+address,
+big,
+cite,
+code,
+del,
+dfn,
+em,
+img,
+ins,
+kbd,
+q,
+s,
+samp,
+small,
+strike,
+strong,
+sub,
+sup,
+tt,
+var,
+b,
+u,
+i,
+center,
+dl,
+dt,
+dd,
+ol,
+ul,
+li,
+fieldset,
+form,
+label,
+legend,
+table,
+caption,
+tbody,
+tfoot,
+thead,
+tr,
+th,
+td,
+article,
+aside,
+canvas,
+details,
+embed,
+figure,
+figcaption,
+footer,
+header,
+menu,
+nav,
+output,
+ruby,
+section,
+summary,
+time,
+mark,
+audio,
+video,
+input {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font-weight: normal;
+ vertical-align: baseline;
+ outline: none;
}
-// .sub-navbar {
-// height: 50px;
-// line-height: 50px;
-// position: relative;
-// width: 100%;
-// text-align: right;
-// padding-right: 20px;
-// transition: 600ms ease position;
-// background: linear-gradient(90deg, rgba(32, 182, 249, 1) 0%, rgba(32, 182, 249, 1) 0%, rgba(33, 120, 241, 1) 100%, rgba(33, 120, 241, 1) 100%);
+body {
+ /* px-to-viewport-ignore-next */
+ min-width: 1024px; /* px-to-viewport-ignore */
+}
+html {
+ /* px-to-viewport-ignore-next */
+ min-width: 1024px; /* px-to-viewport-ignore */
+}
-// .subtitle {
-// font-size: 20px;
-// color: #fff;
-// }
+/* HTML5 display-role reset for older browsers */
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+menu,
+nav,
+section {
+ display: block;
+}
-// &.draft {
-// background: #d0d0d0;
-// }
+blockquote,
+q {
+ quotes: none;
+}
-// &.deleted {
-// background: #d0d0d0;
-// }
-// }
+blockquote::before,
+blockquote::after,
+q::before,
+q::after {
+ content: none;
+}
-// .link-type,
-// .link-type:focus {
-// color: #337ab7;
-// cursor: pointer;
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
-// &:hover {
-// color: rgb(32, 160, 255);
-// }
-// }
+/* custom */
+li {
+ list-style: none;
+}
-// .filter-container {
-// padding-bottom: 10px;
+button {
+ outline: none;
+ cursor: pointer;
+ background-color: transparent;
+ border-style: none;
+}
-// .filter-item {
-// display: inline-block;
-// vertical-align: middle;
-// margin-bottom: 10px;
-// }
-// }
+.el-textarea__inner::placeholder {
+ color: #999 !important;
+}
-// //refine vue-multiselect plugin
-// .multiselect {
-// line-height: 16px;
-// }
+.el-input__inner::placeholder {
+ color: #999 !important;
+}
-// .multiselect--active {
-// z-index: 1000 !important;
-// }
+input::-webkit-input-placeholder {
+ color: #999 !important;
+}
+
+.el-input__inner::-webkit-input-placeholder {
+ color: #999 !important;
+}
+
+input::placeholder {
+ color: #999 !important;
+}
+
+textarea::placeholder {
+ color: #999 !important;
+}
+
+* {
+ box-sizing: border-box;
+}
+html,
+body,
+#app {
+ width: 100%;
+ height: 100%;
+ font-family: Microsoft YaHei, Helvetica Neue, Helvetica, Arial, sans-serif,
+ Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbo;
+}
+
+/* //滚动条样式 */
+::-webkit-scrollbar {
+ width: 10px;
+ height: 10px;
+}
+/* 滚动槽 */
+::-webkit-scrollbar-track {
+ border-radius: 10px;
+}
+/* 滚动条滑块 */
+::-webkit-scrollbar-thumb {
+ border-radius: 10px;
+ background: #ccc;
+}
+::-webkit-scrollbar-thumb:window-inactive {
+ background: rgba(249, 222, 222, 0.6);
+}
diff --git a/Yi.Bbs.Vue3/src/components/AvatarInfo.vue b/Yi.Bbs.Vue3/src/components/AvatarInfo.vue
index cb8ff657..cb072c42 100644
--- a/Yi.Bbs.Vue3/src/components/AvatarInfo.vue
+++ b/Yi.Bbs.Vue3/src/components/AvatarInfo.vue
@@ -117,17 +117,17 @@ const Init = () => {
const statusTypeList = [
{
label: "正常",
- value: 0,
+ value: "Normal",
type: "success",
},
{
label: "危险",
- value: 1,
+ value: "Dangerous",
type: "warning",
},
{
label: "已禁止",
- value: 2,
+ value: "Ban",
type: "danger",
},
];
diff --git a/Yi.Bbs.Vue3/src/components/BottomInfo.vue b/Yi.Bbs.Vue3/src/components/BottomInfo.vue
index 79edfa8b..51d9e4ca 100644
--- a/Yi.Bbs.Vue3/src/components/BottomInfo.vue
+++ b/Yi.Bbs.Vue3/src/components/BottomInfo.vue
@@ -1,38 +1,59 @@
-
+