diff --git a/src/api/organizationManage/organizationManageApi.ts b/src/api/organizationManage/organizationManageApi.ts new file mode 100644 index 0000000..f301f67 --- /dev/null +++ b/src/api/organizationManage/organizationManageApi.ts @@ -0,0 +1,53 @@ +import request from '@/utils/request'; + +// TODO 获取组织信息功能 没有相关接口,待对齐 +export function getOrganizationInfoApi(params) { + return request({ + url: ``, + method: 'get', + params, + }); +} + +export function createOrganizationApi(params) { + return request({ + url: `/api/v1/user/group/create`, + method: 'post', + data: params, + }); +} + +// TODO 更新组织信息功能 没有相关接口,待对齐 +export function updateOrganizationInfoApi(params) { + return request({ + url: `/api/v1/user/group/create`, + method: 'post', + data: params, + }); +} + +export function getOrganizationMemberListApi(params) { + return request({ + url: `/api/v1/user/group/member/list`, + method: 'get', + params, + }); +} + +export function inviteOrganizationMemberApi(params) { + return request({ + url: `/api/v1/user/group/member/invite `, + method: 'post', + data: params, + }); +} + +export function deleteOrganizationMemberApi(params) { + return request({ + url: `/api/v1/user/group/member/remove`, + method: 'delete', + data: params, + }); +} + + diff --git a/src/api/organizationManage/organizationManageType.ts b/src/api/organizationManage/organizationManageType.ts new file mode 100644 index 0000000..afcb7e9 --- /dev/null +++ b/src/api/organizationManage/organizationManageType.ts @@ -0,0 +1,12 @@ +export interface OrganizationInfoType { + organizationName: string; + organizationProfile: string; +} + +export interface OrganizationMemberItemType { + id: string; + userName: string; + role: string; + email: string; + joinDate: string; +} diff --git a/src/api/repo/index.ts b/src/api/repo/index.ts index 7c9f060..3ba175c 100644 --- a/src/api/repo/index.ts +++ b/src/api/repo/index.ts @@ -1542,3 +1542,14 @@ export const getOriginalComment = (params: types.DiscussionCommentProps): Promis }) ); } + +// 获取漏洞数据 +export const getVulnDetail = (params: types.VulnDetailProps): Promise => { + return reqCatch(() => + request({ + url: `/api/v1/repo/vulnerability/info`, + method: 'get', + params, + }) + ); +} diff --git a/src/api/repo/types.ts b/src/api/repo/types.ts index afc8aeb..c3b50a3 100644 --- a/src/api/repo/types.ts +++ b/src/api/repo/types.ts @@ -207,3 +207,8 @@ export interface DiscussionCommentProps { discussionId: string | number, } +export interface VulnDetailProps { + repoId: string, + id: string, +} + diff --git a/src/assets/css/devui.scss b/src/assets/css/devui.scss index 24bf709..d9c2446 100644 --- a/src/assets/css/devui.scss +++ b/src/assets/css/devui.scss @@ -118,12 +118,6 @@ div.devui-tooltip { } } } -// modal -.devui-modal { - &__header { - height: 40px !important; - } -} // textarea 文字计数颜色 .devui-textarea__show-count { color: var(--color-lighter) !important; diff --git a/src/assets/imgs/jyh/nodata.png b/src/assets/imgs/jyh/nodata.png deleted file mode 100644 index 8e8155b..0000000 Binary files a/src/assets/imgs/jyh/nodata.png and /dev/null differ diff --git a/src/assets/imgs/jyh/nodata.svg b/src/assets/imgs/jyh/nodata.svg new file mode 100644 index 0000000..c3ade21 --- /dev/null +++ b/src/assets/imgs/jyh/nodata.svg @@ -0,0 +1,249 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/imgs/jyh/nodata_small.svg b/src/assets/imgs/jyh/nodata_small.svg new file mode 100644 index 0000000..7937515 --- /dev/null +++ b/src/assets/imgs/jyh/nodata_small.svg @@ -0,0 +1,26 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components/NoData/NoData.vue b/src/components/NoData/NoData.vue index 5a2d04e..ce706e9 100644 --- a/src/components/NoData/NoData.vue +++ b/src/components/NoData/NoData.vue @@ -4,9 +4,8 @@ NoData @@ -17,16 +16,36 @@ - diff --git a/src/views/Jyh/PersonalCenter/Detail/EarlyWarning.vue b/src/views/Jyh/PersonalCenter/Detail/EarlyWarning.vue index fa5a86f..ca97a06 100644 --- a/src/views/Jyh/PersonalCenter/Detail/EarlyWarning.vue +++ b/src/views/Jyh/PersonalCenter/Detail/EarlyWarning.vue @@ -15,7 +15,6 @@ import { ref } from 'vue'; import EarlyWarningPerson from './EarlyWarningPerson.vue'; import EarlyWarningOrganization from './EarlyWarningOrganization.vue'; const selectTab = ref('gryj'); - + + diff --git a/src/views/Jyh/PersonalCenter/Detail/EarlyWarningDetail.vue b/src/views/Jyh/PersonalCenter/Detail/EarlyWarningDetail.vue new file mode 100644 index 0000000..bd51fd9 --- /dev/null +++ b/src/views/Jyh/PersonalCenter/Detail/EarlyWarningDetail.vue @@ -0,0 +1,106 @@ + + + + + \ No newline at end of file diff --git a/src/views/Jyh/PersonalCenter/Detail/EarlyWarningPerson.vue b/src/views/Jyh/PersonalCenter/Detail/EarlyWarningPerson.vue index f1ae10a..a072d18 100644 --- a/src/views/Jyh/PersonalCenter/Detail/EarlyWarningPerson.vue +++ b/src/views/Jyh/PersonalCenter/Detail/EarlyWarningPerson.vue @@ -10,7 +10,7 @@ @@ -25,11 +25,16 @@ + + + + \ No newline at end of file diff --git a/src/views/Jyh/PersonalCenter/OrganizationManage/OrganizationManage.vue b/src/views/Jyh/PersonalCenter/OrganizationManage/OrganizationManage.vue index 96b627f..079e5ac 100644 --- a/src/views/Jyh/PersonalCenter/OrganizationManage/OrganizationManage.vue +++ b/src/views/Jyh/PersonalCenter/OrganizationManage/OrganizationManage.vue @@ -1,13 +1,117 @@ diff --git a/src/views/Jyh/PersonalCenter/index.vue b/src/views/Jyh/PersonalCenter/index.vue index bba0934..863bbd6 100644 --- a/src/views/Jyh/PersonalCenter/index.vue +++ b/src/views/Jyh/PersonalCenter/index.vue @@ -23,6 +23,7 @@ + @@ -30,6 +31,7 @@ + @@ -41,6 +43,7 @@ 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'; +import InvitationNoticeList from './Detail/InvitationNoticeList.vue'; const { namespace } = getOrgInfo(); const avatarUrl = '/src/assets/imgs/avatar/male.png'; diff --git a/src/views/Jyh/Version/Detail/SubscriptionModal.vue b/src/views/Jyh/Version/Detail/SubscriptionModal.vue new file mode 100644 index 0000000..8718412 --- /dev/null +++ b/src/views/Jyh/Version/Detail/SubscriptionModal.vue @@ -0,0 +1,84 @@ + + + + + \ No newline at end of file diff --git a/src/views/Jyh/Version/Detail/VulnerabilitiesList.vue b/src/views/Jyh/Version/Detail/VulnerabilitiesList.vue index 13414f5..09d5a08 100644 --- a/src/views/Jyh/Version/Detail/VulnerabilitiesList.vue +++ b/src/views/Jyh/Version/Detail/VulnerabilitiesList.vue @@ -11,7 +11,7 @@ @filter-change="handleFilterChange" > 你确认删除此项:{{ item.cla_name }} ? + + + + + @@ -110,9 +115,10 @@ import { ref, reactive } from 'vue'; import { getGroupClaList, setGroupClaStatus, deleteGroupCla } from '@/api/cla'; import { useRouter, useRoute } from 'vue-router'; import { GModal } from '@/components/Setting/index'; -import { reqCatch } from '@/utils/catch'; +import { reqCatch } from '@/utils/catch'; import { getOrgInfo } from '@/views/Org/hooks/orgInfo'; import { Message } from 'vue-devui'; +import VulnerabilityDetail from '@/views/Jyh/Version/Detail/VulnerabilityDetail.vue' const { namespace } = getOrgInfo(); const tableData = ref([ @@ -233,6 +239,13 @@ const setClaStatus = async (row: any) => { const signCla = (row: any) => { router.push('/cla/' + row.object_id); }; + +const vulnDetailVisable = ref(false); +const currentVuln = ref(); +const openVulnDetail = (row) => { + vulnDetailVisable.value = true; + currentVuln.value = row; +} \ No newline at end of file diff --git a/src/views/Jyh/Version/Detail/index.vue b/src/views/Jyh/Version/Detail/index.vue index 6134c73..6bb4c15 100644 --- a/src/views/Jyh/Version/Detail/index.vue +++ b/src/views/Jyh/Version/Detail/index.vue @@ -9,18 +9,27 @@
-
vue
+
{{ softwareData.name }}
- 版本:3.5.13 + 版本:{{ softwareData.version }} - 生命周期状态:选型中 + 生命周期状态:{{ softwareData.lifecycle }} 集成风险: - 低风险 + {{ softwareData.risk }}
- 订阅 + 订阅 +
@@ -57,6 +66,7 @@ import LicenseInfo from '../../LicenseInfo/index.vue'; const { namespace } = getOrgInfo(); const route = useRoute(); // 获取路由对象 const avatarUrl = '/src/assets/imgs/jyh/工程首字母图标.png'; +import SubscriptionModal from '@/views/Jyh/Version/Detail/SubscriptionModal.vue'; const selectTab = ref('bbxx'); @@ -157,6 +167,21 @@ const setClaStatus = async (row: any) => { const signCla = (row: any) => { router.push('/cla/' + row.object_id); }; + +const softwareData = ref({ + name: 'vue', + version: '3.5.13', + lifecycle: '选中型', + risk: '低风险', +}); + +const subscribeModalVisable = ref(false); +const openSubscription = () => { + subscribeModalVisable.value = true; +}; +const colseSubscription = () => { + subscribeModalVisable.value = false; +}; + + \ No newline at end of file