diff --git a/src/assets/css/devui.scss b/src/assets/css/devui.scss index 0090549..24bf709 100644 --- a/src/assets/css/devui.scss +++ b/src/assets/css/devui.scss @@ -289,10 +289,10 @@ button.devui-button--solid--secondary { padding: 3px 0; } .devui-checkbox__label-text { - font-size: 16px; + font-size: 14px; } .devui-radio.devui-radio--md span .devui-radio__label { - font-size: 16px; + font-size: 14px; } .devui-radio-group div.devui-radio__wrapper { height: auto; diff --git a/src/assets/css/jyh.scss b/src/assets/css/jyh.scss index a703187..0cbae40 100644 --- a/src/assets/css/jyh.scss +++ b/src/assets/css/jyh.scss @@ -117,11 +117,29 @@ background: transparent; li { - background: #F3F3F3; + //background: #F3F3F3; + background: transparent; } .active { - background: #ffffff !important; + //background: #ffffff !important; + } + } +} +.jyh-tabs-4 { + .devui-tabs__nav { + background: transparent; + + li { + background: transparent; + padding: 8px 0; + margin-right: 24px; + } + + .active { + background: transparent !important; + border: 0px !important; + border-bottom: 2px solid black !important; } } } @@ -246,3 +264,11 @@ text-align: left; } } + +.devui-status:before { + margin-right: 12px; +} + +.yellow-status:before { + background-color: #FAC20A !important; +} diff --git a/src/assets/css/main.scss b/src/assets/css/main.scss index 7ff0af9..fea6bd9 100644 --- a/src/assets/css/main.scss +++ b/src/assets/css/main.scss @@ -16,13 +16,15 @@ body, height: 100%; -webkit-font-smoothing: antialiased; // scorll 事件失效 overflow-y: overlay + // devUI 主题颜色重置 + --devui-text: rgb(25, 25, 25); } html { overflow-y: scroll; // html本身没有滚动 为了防止自定义滚动条出现时界面抖动,需要预留轨道 } html body { //background-color: $devui-global-bg; - background-color: #F6F6F8; + background-color: #f6f6f8; font-size: var(--text-sm); color: var(--color-font); @@ -126,15 +128,17 @@ textarea::placeholder { } } /* 滚动条样式自定义 */ -body::-webkit-scrollbar, body>* ::-webkit-scrollbar { +body::-webkit-scrollbar, +body > * ::-webkit-scrollbar { width: 6px; height: 4px; } -body::-webkit-scrollbar-thumb, body>* ::-webkit-scrollbar-thumb { +body::-webkit-scrollbar-thumb, +body > * ::-webkit-scrollbar-thumb { border-radius: 8px; background-color: var(--devui-disabled-text); - &:hover{ - background-color: var(--devui-placeholder) + &:hover { + background-color: var(--devui-placeholder); } } body::-webkit-scrollbar-track { @@ -188,12 +192,16 @@ body::-webkit-scrollbar-corner { } /* 自动补全输入框 去掉hover效果*/ -.devui-auto-complete-input__wrapper:not(.devui-auto-complete--disabled):not(.devui-auto-complete-input__wrapper--error):hover { +.devui-auto-complete-input__wrapper:not(.devui-auto-complete--disabled):not( + .devui-auto-complete-input__wrapper--error + ):hover { border-color: var(--devui-line, #d7d8da); } /* 可输入下拉选择框 去掉hover效果*/ -.devui-editable-select-input__wrapper:not(.devui-editable-select-input__wrapper--disabled):not(.devui-editable-select-input__wrapper--focus):hover { +.devui-editable-select-input__wrapper:not(.devui-editable-select-input__wrapper--disabled):not( + .devui-editable-select-input__wrapper--focus + ):hover { border-color: var(--devui-line, #d7d8da); } @@ -216,7 +224,10 @@ body::-webkit-scrollbar-corner { } /* 时间范围选择 去掉hover效果 */ -.devui-range-date-picker-pro .devui-range-date-picker-pro__range-picker:not(.devui-range-date-picker-pro--error):not(.devui-range-date-picker-pro--disabled):hover { +.devui-range-date-picker-pro + .devui-range-date-picker-pro__range-picker:not(.devui-range-date-picker-pro--error):not( + .devui-range-date-picker-pro--disabled + ):hover { border-color: var(--devui-line, #d7d8da); } @@ -356,16 +367,20 @@ body::-webkit-scrollbar-corner { } input { - background-color:transparent !important; + background-color: transparent !important; // appearance: none; - &:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill { + &:-webkit-autofill, + textarea:-webkit-autofill, + select:-webkit-autofill { -webkit-text-fill-color: inherit !important; background-color: transparent !important; background-image: none; transition: background-color 36000s ease-in-out 0s; //背景色透明 生效时长 过渡效果 启用时延迟的时间 } - &:-moz-autofill, textarea:-moz-autofill, select:-moz-autofill { + &:-moz-autofill, + textarea:-moz-autofill, + select:-moz-autofill { -webkit-text-fill-color: inherit !important; background-color: transparent !important; background-image: none; @@ -385,8 +400,6 @@ input { } } - - .g-content-card-v2 { background-color: $devui-global-bg; border-radius: $devui-border-radius-card; @@ -424,7 +437,7 @@ input { height: 1px; width: 100%; background: var(--devui-dividing-line); - margin: 32px 0 + margin: 32px 0; } .g-tip-text { @@ -434,7 +447,7 @@ input { } // 新版设计统一设置标题样式 大小颜色行高 -.unify-settingTitle-title{ +.unify-settingTitle-title { font-weight: 700; line-height: 34px; font-size: 24px; @@ -447,14 +460,16 @@ input { } // 下拉框动效 -.arrow-down{ - transition: transform var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1)); +.arrow-down { + transition: transform var(--devui-animation-duration-slow, 0.3s) + var(--devui-animation-ease-in-out-smooth, cubic-bezier(0.645, 0.045, 0.355, 1)); transform-origin: center; transform: rotateZ(0deg) !important; } -.arrow-up{ - transition: transform var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1)); +.arrow-up { + transition: transform var(--devui-animation-duration-slow, 0.3s) + var(--devui-animation-ease-in-out-smooth, cubic-bezier(0.645, 0.045, 0.355, 1)); transform-origin: center; transform: rotateZ(180deg) !important; } diff --git a/src/assets/imgs/jyh/license/allow.webp b/src/assets/imgs/jyh/license/allow.webp new file mode 100644 index 0000000..6d99135 Binary files /dev/null and b/src/assets/imgs/jyh/license/allow.webp differ diff --git a/src/assets/imgs/jyh/license/notAllow.webp b/src/assets/imgs/jyh/license/notAllow.webp new file mode 100644 index 0000000..7944552 Binary files /dev/null and b/src/assets/imgs/jyh/license/notAllow.webp differ diff --git a/src/assets/imgs/jyh/license/warning.webp b/src/assets/imgs/jyh/license/warning.webp new file mode 100644 index 0000000..fc134ac Binary files /dev/null and b/src/assets/imgs/jyh/license/warning.webp differ diff --git a/src/assets/imgs/jyh/nodata.png b/src/assets/imgs/jyh/nodata.png new file mode 100644 index 0000000..8e8155b Binary files /dev/null and b/src/assets/imgs/jyh/nodata.png differ diff --git a/src/components/LicenseInfo/SidePanel.vue b/src/components/LicenseInfo/SidePanel.vue index bdfb202..e118232 100644 --- a/src/components/LicenseInfo/SidePanel.vue +++ b/src/components/LicenseInfo/SidePanel.vue @@ -13,12 +13,19 @@ -
-
- +
+

许可证属性

+
+
+
- 允许的 +
+
+ +
+ 允许的 +
Commercial Use Modify Distribute @@ -28,7 +35,12 @@
- 必要的 +
+
+ +
+ 必要的 +
Include Copyright Include License State changes @@ -37,7 +49,12 @@
- 受限的 +
+
+ +
+ 受限的 +
Place Warranty Hold Liable Use Trademark @@ -73,25 +90,84 @@ const emit = defineEmits(['close']); display: flex; flex-direction: column; align-items: start; - gap: 8px; - padding: 12px; - - .dheader, .dcontent{ + .dheader { width: 100%; - border-bottom: 1px solid gray; - padding: 12px; } - .dfooter { + .dcontent { + border-radius: 8px; + border: 1px solid #EEF0F5; + margin: 20px 0; width: 100%; - padding: 12px; + &-title { + height: 40px; + background-color: $devui-area; + display: flex; + justify-content: left; + align-items: center; + h1 { + padding-left: 20px; + color: #252B3A; + font-weight: 800; + font-size: 14px; + line-height: 22px; + letter-spacing: 0px; + } + } + + &-body { + padding: 20px; + + &-col-title { + width: 100%; + height: 23px; + border-radius: 14px; + border: 1px solid; + display: flex; + align-items: center; + img { + width: 14px; + height: 14px; + } + &-icon { + height: 100%; + width: 32px; + display: flex; + justify-content: center; + align-items: center; + border-radius: 14px 0 0 14px; + margin-right: 8px; + } + + &-1 { + border-color: #24B286; + .dcontent-body-col-title-icon { + background-color: #24B286; + } + } + &-2 { + border-color: #FAC20A; + .dcontent-body-col-title-icon { + background-color: #FAC20A; + } + } + &-3 { + border-color: $devui-danger; + .dcontent-body-col-title-icon { + background-color: $devui-danger; + } + } + } + } } .title { font-size: 20px; font-weight: bold; display: flex; + width: 100%; justify-content: space-between; + align-items: center; d-icon { cursor: pointer; } @@ -111,6 +187,10 @@ const emit = defineEmits(['close']); } .dfooter { + border-radius: 8px; + border: 1px solid #EEF0F5; + padding: 20px; + width: 100%; display: flex; flex-direction: column; align-items: start; @@ -118,20 +198,7 @@ const emit = defineEmits(['close']); } .side-panel { - padding: 20px; border: 1px solid #ccc; border-radius: 4px; } - -.color-danger { - color: $devui-danger; -} - -.color-info { - color: $devui-warning; -} - -.color-allow { - color: $devui-success; -} \ No newline at end of file diff --git a/src/components/NoData/NoData.vue b/src/components/NoData/NoData.vue new file mode 100644 index 0000000..5a2d04e --- /dev/null +++ b/src/components/NoData/NoData.vue @@ -0,0 +1,32 @@ + + + + diff --git a/src/router/config/home.ts b/src/router/config/home.ts index 1dcdc58..08ba130 100644 --- a/src/router/config/home.ts +++ b/src/router/config/home.ts @@ -68,7 +68,7 @@ export default [ } }, { - path: 'repoDetail/basicInfo/:versionId', + path: 'repoDetail/:versionId', name: 'VersionDetail', component: () => import('@/views/Jyh/Version/Detail/index.vue'), meta: { diff --git a/src/views/Jyh/LicenseInfo/index.vue b/src/views/Jyh/LicenseInfo/index.vue index 7cf7322..cdb69fe 100644 --- a/src/views/Jyh/LicenseInfo/index.vue +++ b/src/views/Jyh/LicenseInfo/index.vue @@ -1,42 +1,60 @@ + + diff --git a/src/views/Jyh/PersonalCenter/Detail/EarlyWarningPerson.vue b/src/views/Jyh/PersonalCenter/Detail/EarlyWarningPerson.vue new file mode 100644 index 0000000..f1ae10a --- /dev/null +++ b/src/views/Jyh/PersonalCenter/Detail/EarlyWarningPerson.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/src/views/Jyh/PersonalCenter/OrganizationManage/OrganizationManage.vue b/src/views/Jyh/PersonalCenter/OrganizationManage/OrganizationManage.vue new file mode 100644 index 0000000..96b627f --- /dev/null +++ b/src/views/Jyh/PersonalCenter/OrganizationManage/OrganizationManage.vue @@ -0,0 +1,98 @@ + + + + + diff --git a/src/views/Jyh/PersonalCenter/index.vue b/src/views/Jyh/PersonalCenter/index.vue index 40a9acf..bba0934 100644 --- a/src/views/Jyh/PersonalCenter/index.vue +++ b/src/views/Jyh/PersonalCenter/index.vue @@ -3,7 +3,7 @@
首页 - 高级搜索 + 个人中心
@@ -22,12 +22,14 @@ +
+
@@ -38,6 +40,8 @@ import { useRouter, useRoute } from 'vue-router'; import { getOrgInfo } from '@/views/Org/hooks/orgInfo'; import EarlyWarning from './Detail/EarlyWarning.vue'; import SubscribeList from './Detail/SubscribeList.vue'; +import OrganizationManage from './OrganizationManage/OrganizationManage.vue'; + const { namespace } = getOrgInfo(); const avatarUrl = '/src/assets/imgs/avatar/male.png'; diff --git a/src/views/Jyh/Search/index.vue b/src/views/Jyh/Search/index.vue index d88c24d..33bd383 100644 --- a/src/views/Jyh/Search/index.vue +++ b/src/views/Jyh/Search/index.vue @@ -3,7 +3,7 @@ 首页 - 软件商城-软件版本列表 + 开源软件列表 diff --git a/src/views/Jyh/Version/Detail/CommunityInfo.vue b/src/views/Jyh/Version/Detail/CommunityInfo.vue index 222c276..8675ef5 100644 --- a/src/views/Jyh/Version/Detail/CommunityInfo.vue +++ b/src/views/Jyh/Version/Detail/CommunityInfo.vue @@ -34,11 +34,11 @@ -

国家/地球分布

+

国家/地球分布

-

组织/公司分布

+

组织/公司分布

@@ -127,4 +127,7 @@ const optionOrgChart = reactive({ font-size: 12px; color: #808080; } +.mt-translate-y { + transform: translateY(-30px); +} diff --git a/src/views/Jyh/Version/Detail/SBOM.vue b/src/views/Jyh/Version/Detail/SBOM.vue new file mode 100644 index 0000000..cde5c23 --- /dev/null +++ b/src/views/Jyh/Version/Detail/SBOM.vue @@ -0,0 +1,91 @@ + + + + diff --git a/src/views/Jyh/Version/Detail/index.vue b/src/views/Jyh/Version/Detail/index.vue index 921e9e9..c6f73d5 100644 --- a/src/views/Jyh/Version/Detail/index.vue +++ b/src/views/Jyh/Version/Detail/index.vue @@ -2,8 +2,8 @@
首页 - 软件商城-软件版本列表 - 软件商城-软件版本详情 + + 软件详情
@@ -27,17 +27,20 @@ + - +
+ -
+ +
@@ -48,6 +51,7 @@ import { getOrgInfo } from '@/views/Org/hooks/orgInfo'; import VulnerabilitiesList from './VulnerabilitiesList.vue'; import CommunityInfo from './CommunityInfo.vue'; import VersionInfo from './VersionInfo.vue'; +import SBOM from './SBOM.vue'; import AIRepair from '../../AIRepair/index.vue'; import LicenseInfo from '../../LicenseInfo/index.vue'; const { namespace } = getOrgInfo();