diff --git a/src/assets/icon/conda.svg b/src/assets/icon/conda.svg new file mode 100644 index 0000000000000000000000000000000000000000..9111c0dddf63929e24a157779fc333884dd39123 --- /dev/null +++ b/src/assets/icon/conda.svg @@ -0,0 +1,4 @@ + diff --git a/src/assets/style/global.scss b/src/assets/style/global.scss index a30bb9d5431bf5aa51f7a9fa20cfb7e3f58aa2c8..152589ebf66a00b76c5317a942665dfcdd6e4036 100644 --- a/src/assets/style/global.scss +++ b/src/assets/style/global.scss @@ -20,7 +20,7 @@ html { height: 16px; } > a + a { - margin-left: 8px; + margin-left: 6px; } .o-tag { cursor: pointer; @@ -35,6 +35,12 @@ html { &.rpm-icon .o-icon { color: #00a7b3; } + &.oepkg-icon .o-icon { + color: #4260c2; + } + &.conda-icon .o-icon { + color: #b1d42a; + } &:hover { --tag-bg-color: var(--o-color-control2-light); } diff --git a/src/components/OTableItemNew.vue b/src/components/OTableItemNew.vue index 6626d1f7a30c4930df90eab9a30646509ca4b941..2432b030300cac8d5170fa01c9a76a9534329aff 100644 --- a/src/components/OTableItemNew.vue +++ b/src/components/OTableItemNew.vue @@ -333,7 +333,6 @@ const onClickLink = (row: any) => { } :deep(.o-table) { - --table-cell-height: 62px; .label { display: flex; align-items: center; @@ -377,8 +376,10 @@ const onClickLink = (row: any) => { display: flex; align-items: center; } + &.rpmpkg { + --table-cell-height: 62px; + } &.oepkg { - --table-cell-height: auto; thead { .name { width: 200px; @@ -391,8 +392,19 @@ const onClickLink = (row: any) => { } } } + &.condapkg { + thead { + .name, + .version, + .os { + width: 160px; + } + .arch { + width: 120px; + } + } + } &.apppkg { - --table-cell-height: auto; thead { .os { width: 180px; @@ -403,9 +415,6 @@ const onClickLink = (row: any) => { } } } - &.appversion { - --table-cell-height: auto; - } thead { .order { height: 12px; diff --git a/src/components/detail/DetailAside.vue b/src/components/detail/DetailAside.vue index 45c6bdac3aa67e684b4eeb9ae44bc4528452d2ee..e24923a9b2344a68adf49a9a0b84f55d95534190 100644 --- a/src/components/detail/DetailAside.vue +++ b/src/components/detail/DetailAside.vue @@ -255,8 +255,8 @@ const isSecurityIconShow = (v: string) => {
{{ data.license }}
-+ + 为您找到{{ total }}个与{{ searchKey }}匹配的搜索结果 + + 为您找到符合条件的筛选{{ total }}个 +
+ +
diff --git a/src/views/field/TheFieldDetail.vue b/src/views/field/TheFieldDetail.vue
index 7de4b5c9180f9669b5499522a07e8e52abba74b7..a85450f3045a1f275014dc162af8c4bca5a7f009 100644
--- a/src/views/field/TheFieldDetail.vue
+++ b/src/views/field/TheFieldDetail.vue
@@ -26,6 +26,7 @@ import IconEpkg from '~icons/pkg/epkg.svg';
import IconOEpkg from '~icons/pkg/oepkg.svg';
import IconImage from '~icons/pkg/image.svg';
import IconRpm from '~icons/pkg/rpm.svg';
+import IconCanda from '~icons/pkg/conda.svg';
import { currentFieldDetailTabInjection, pkgIdInjection } from '@/data/injectionKeys';
import { oaReport } from '@/shared/analytics';
@@ -80,19 +81,21 @@ const epkgData = ref();
const oepkgData = ref();
const rpmData = ref();
const imgData = ref();
+const condaData = ref();
const isLoading = ref(true);
provide(pkgIdInjection, pkgId);
provide(currentFieldDetailTabInjection, activeName);
const queryEntity = () => {
const query = route.query;
- const { type, appPkgId, epkgPkgId, rpmPkgId, oepkgPkgId } = query;
+ const { type, appPkgId, epkgPkgId, rpmPkgId, oepkgPkgId, condaPkgId } = query;
getDetail(
filterEmptyParams({
appPkgId: (appPkgId as string) || '',
epkgPkgId: (epkgPkgId as string) || '',
rpmPkgId: (rpmPkgId as string) || '',
oepkgPkgId: (oepkgPkgId as string) || '',
+ condaPkgId: (condaPkgId as string) || '',
})
)
.then((res) => {
@@ -105,6 +108,7 @@ const queryEntity = () => {
rpmData.value = data['RPM'];
imgData.value = data['IMAGE'];
oepkgData.value = data['OEPKG'];
+ condaData.value = data['CONDA'];
appDataName.value = data[data.tags[0]].name;
pkgId.value = data[data.tags[0]].pkgId;
if (isValidTags(type)) {
@@ -150,6 +154,11 @@ const onChange = (tab: string, noReport?: boolean) => {
typePkg.value = 'IMAGE';
queryVer();
getDetailValue(imgData.value);
+ } else if (tab === 'CONDA') {
+ tabValue.value = 'condapkg';
+ typePkg.value = 'CONDA';
+ queryVer();
+ getDetailValue(condaData.value);
} else {
useViewStore().showNotFound();
}
@@ -167,7 +176,7 @@ const onChange = (tab: string, noReport?: boolean) => {
const handleQueryData = (tab: string) => {
const query = route.query;
- const { appPkgId, rpmPkgId, epkgPkgId, oepkgPkgId } = query;
+ const { appPkgId, rpmPkgId, epkgPkgId, oepkgPkgId, condaPkgId } = query;
router.push({
path: `/${locale.value}/field/detail`,
query: {
@@ -176,6 +185,7 @@ const handleQueryData = (tab: string) => {
rpmPkgId,
epkgPkgId,
oepkgPkgId,
+ condaPkgId,
},
});
};
@@ -273,6 +283,20 @@ const getDetailValue = (data: any) => {
latestOsSupport.value = data.latestOsSupport === 'true';
summary.value = data.description;
appData.value.version = data.appVer;
+
+ moreMessge.value = [];
+ } else if (typePkg.value === 'CONDA') {
+ basicInfo.value = [
+ { name: t('detail.osSupport'), value: data.os },
+ { name: t('detail.arch'), value: data.arch },
+ { name: t('detail.epkgCategory'), value: data.category || '其他' },
+ ];
+
+ latestOsSupport.value = data.latestOsSupport === 'true';
+ summary.value = data.description;
+ appData.value.version = data.appVer;
+ appData.value.size = 0;
+ moreMessge.value = [];
}
tagVer.value = [data.osSupport, data.arch];
maintainer.value = {
@@ -288,6 +312,10 @@ const getDetailValue = (data: any) => {
downloadData.value = mkit(data?.download || '', { isCopy: true, Tag: data.appVer });
installation.value = mkit(data?.installation || '', { isCopy: true, Tag: data.appVer });
+ if (typePkg.value === 'CONDA') {
+ installation.value = mkit(data?.condaUsage || '', { isCopy: true, Tag: data.appVer });
+ }
+
imageUsage.value = mkit(data?.imageUsage || '', { isCopy: true, Tag: data.appVer });
appData.value.name = data.name;
appData.value.source_code = data.srcDownloadUrl;
@@ -316,6 +344,8 @@ const getTabIcon = (tab: string) => {
return IconImage;
} else if (tab === 'OEPKG') {
return IconOEpkg;
+ } else if (tab === 'CONDA') {
+ return IconCanda;
}
};
@@ -347,8 +377,8 @@ const onChangeImage = (v: string) => {
const tagsOptions = computed(() => {
return {
name: appData.value.name,
- os: tagVer.value[0],
- arch: tagVer.value[1],
+ os: tagVer.value[0] || '',
+ arch: tagVer.value[1] || '',
};
});
@@ -401,7 +431,8 @@ const onCodeSuccess = () => {
-
+
+
> {{ t('detail.more') }}
diff --git a/src/views/search/TheSearch.vue b/src/views/search/TheSearch.vue
index c6a3ce194075e4a02ec0314bf608302b1f6fb9a8..3d245edff570a84cc485413e64be99785283d015 100644
--- a/src/views/search/TheSearch.vue
+++ b/src/views/search/TheSearch.vue
@@ -13,6 +13,7 @@ import EpkgContent from '@/views/epkg/EpkgContent.vue';
import OepkgContent from '@/views/oepkg/OEpkgContent.vue';
import ImageContent from '@/views/image/ImageContent.vue';
import RpmContent from '@/views/package/RpmContent.vue';
+import CondaContent from '@/views/conda/CondaContent.vue';
import UpstreamContent from '@/views/upstream/UpstreamContent.vue';
const route = useRoute();
@@ -56,11 +57,13 @@ const handleQueryData = () => {
keywordType.value = FLITERMENUOPTIONS[0].id;
}
- if (isValidSearchTabName(tab)) {
+ if (isValidSearchTabName(tab) || tab === 'conda') {
tabName.value = tab as string;
} else {
tabName.value = TABNAME_OPTIONS[0];
}
+ console.log('DATATYPE :>> ', tab);
+
querySearchCount();
};
handleQueryData();
@@ -93,8 +96,10 @@ watch(
为您找到符合条件的筛选{{ total }}