Browse Source

优化友情链接的排序问题

master
gxwebsoft 1 year ago
parent
commit
b0e6e72e21
  1. 1
      .gitignore
  2. 11
      src/api/cms/website/model/index.ts
  3. 2
      src/api/link/model/index.ts
  4. 4
      src/store/modules/tenant.ts
  5. 39
      src/utils/domain.ts
  6. 17
      src/utils/request.ts
  7. 2
      src/views/about/components/detail.vue
  8. 2
      src/views/article/components/news-list.vue
  9. 2
      src/views/article/detail/components/news-detail.vue
  10. 34
      src/views/index/index.vue

1
.gitignore

@ -1 +1,2 @@
/dist/
/node_modules/

11
src/api/cms/website/model/index.ts

@ -1,6 +1,7 @@
import {WebsiteField} from "@/api/cms/website/field/model";
import {Navigation} from "@/api/cms/navigation/model";
import {ArrangeCategory} from "@/api/cms/category/model";
import {Link} from "@/api/link/model";
// import {MenuMeta} from "ele-admin-pro/es/ele-pro-layout/types";
// import {MenuItem} from "ele-admin-pro";
@ -13,6 +14,7 @@ export interface Website {
websiteCode?: string;
websiteIcon?: string;
websiteLogo?: string;
websiteDarkLogo?: string;
keywords?: string;
address?: string;
phone?: string;
@ -41,16 +43,9 @@ export interface Website {
tenantName?: string;
navigations?: Navigation[];
categoryList?: ArrangeCategory[];
links?: Link[];
// 配置信息
config?: any;
// path?: string;
// name?: string;
// meta: MenuMeta;
// component?: string;
// redirect?: string;
// children?: Array<MenuItem>;
// tempChildren?: Array<MenuItem>;
}
/**

2
src/api/link/model/index.ts

@ -38,6 +38,8 @@ export interface Link {
// 打开方式
openType?: number;
hide?: number;
url?: string;
icon?: string;
}
/**

4
src/store/modules/tenant.ts

@ -57,10 +57,6 @@ export const useTenantStore = defineStore({
if(d.type == 0){
d.path = `/article/${d.categoryId}`
}
// 链接
if(d.type == 2){
d.path = `${d.path}`
}
return {
...d,
name: d.title,

39
src/utils/domain.ts

@ -1,5 +1,7 @@
// 解析域名结构
export function getHost():any {
import { isNumber } from 'ele-admin-pro';
export function getHost(): any {
const host = window.location.host;
return host.split('.');
}
@ -8,7 +10,7 @@ export function getHost():any {
*
* @return http://www.domain.com
*/
export function getOriginDomain():string {
export function getOriginDomain(): string {
return window.origin;
}
@ -20,7 +22,7 @@ export function getProtocol(): string {
*
* @return https://www.domain.com
*/
export function getDomain():string {
export function getDomain(): string {
return window.location.protocol + '//www.' + getRootDomain();
}
@ -28,42 +30,51 @@ export function getDomain():string {
*
* abc.com
*/
export function getRootDomain():string {
export function getRootDomain(): string {
const split = getHost();
return split[split.length-2] + '.' + split[split.length-1];
return split[split.length - 2] + '.' + split[split.length - 1];
}
/**
*
* @return abc.com
*/
export function getSubDomainPath():string {
export function getSubDomainPath(): string {
const split = getHost();
if(split.length == 2) {
if (split.length == 2) {
return '';
}
return split[split.length-3];
return split[split.length - 3];
}
// 域名的第一部分
export function getDomainPart1(): any {
const split = getHost();
if (isNumber(split[0])) {
return split[0];
}
return undefined;
}
/**
* ID
* @return 10048
*/
export function getTenantId():string|null {
export function getTenantId(): string | null {
const subDomain = getSubDomainPath();
if(subDomain == undefined){
if (subDomain == undefined) {
return null;
}
return subDomain.replace(/[^\d]/g,'');
return subDomain.replace(/[^\d]/g, '');
}
/**
*
* @return 10048
*/
export function getProductCode():string|null {
export function getProductCode(): string | null {
const subDomain = getSubDomainPath();
if(subDomain == undefined){
if (subDomain == undefined) {
return null;
}
const split = subDomain.split('-');
@ -73,6 +84,6 @@ export function getProductCode():string|null {
/**
*
*/
export function navSubDomain(path):string {
export function navSubDomain(path): string {
return `${window.location.protocol}//${path}.${getRootDomain()}`;
}

17
src/utils/request.ts

@ -15,6 +15,7 @@ import {
import { getToken, setToken } from './token-util';
import { logout } from './page-tab-util';
import type { ApiResult } from '@/api';
import {getDomainPart1} from "@/utils/domain";
// import {getTenantId} from "@/utils/domain";
const service = axios.create({
@ -31,14 +32,14 @@ service.interceptors.request.use(
if (token && config.headers) {
config.headers.common[TOKEN_HEADER_NAME] = token;
}
// 从配置文件获取租户ID
if(config.headers){
config.headers.common['TenantId'] = TENANT_ID;
// 解析二级域名获取租户ID
// if(getTenantId() != null && getTenantId() != '0'){
// config.headers.common['TenantId'] = getTenantId();
// }
}
// 从配置文件获取租户ID
if (config.headers) {
config.headers.common['TenantId'] = TENANT_ID;
// 解析二级域名获取租户ID
if (getDomainPart1()) {
config.headers.common['TenantId'] = getDomainPart1();
}
}
return config;
},
(error) => {

2
src/views/about/components/detail.vue

@ -4,7 +4,7 @@
<div class="breadcrumb">
<a-breadcrumb>
<a-breadcrumb-item>
<a @click="openUrl(`/`)"><HomeOutlined /> 首页</a>
<a @click="openUrl(`/`)"><HomeOutlined /> Home</a>
</a-breadcrumb-item>
<a-breadcrumb-item>
<span>{{ form.name }}</span>

2
src/views/article/components/news-list.vue

@ -4,7 +4,7 @@
<div class="breadcrumb">
<a-breadcrumb>
<a-breadcrumb-item>
<a @click="openUrl(`/`)"><HomeOutlined /> 首页</a>
<a @click="openUrl(`/`)"><HomeOutlined /> Home</a>
</a-breadcrumb-item>
<a-breadcrumb-item v-if="form.parentName">
<span>{{ form.parentName }}</span>

2
src/views/article/detail/components/news-detail.vue

@ -4,7 +4,7 @@
<div class="breadcrumb">
<a-breadcrumb>
<a-breadcrumb-item>
<a @click="openUrl(`/`)"><HomeOutlined /> 首页</a>
<a @click="openUrl(`/`)"><HomeOutlined /> Home</a>
</a-breadcrumb-item>
<a-breadcrumb-item>
<a :href="`/article/${form.categoryId}`">{{ form.categoryName }}</a>

34
src/views/index/index.vue

@ -105,7 +105,7 @@
<p>i. Smart Tourism</p>
</div>
</a-col>
<a-col :xl="24" :lg="24" :md="24" :sm="24">
<a-col :xl="12" :lg="24" :md="24" :sm="24">
<div class="ele-text-heading" style="padding: 16px 0"><b>Metaverse</b></div>
<div class="line-height-d5">
<p>a. Hardware/Software Architectures for Metaverse</p>
@ -120,6 +120,23 @@
<p>f. Cyber Security for Metaverse</p>
<!-- <p>g. Data Analytics to Identify Malicious Behaviors in Metaverse</p>-->
<!-- <p> h. Blockchain/AI Technologies in Metaverse</p>-->
<!-- <p>i. New models to Evaluate the Impact of the Metaverse</p>-->
<!-- <p>j. Interactive Data Exploration and Presentation in Metaverse</p>-->
<!-- <p>k. Emerging Technologies and Applications for Metaverse</p>-->
</div>
</a-col>
<a-col :xl="12" :lg="24" :md="24" :sm="24">
<div class="ele-text-heading" style="padding: 16px 0"><b><s /></b></div>
<div class="line-height-d5">
<p>g. Data Analytics to Identify Malicious Behaviors in Metaverse</p>
<p> h. Blockchain/AI Technologies in Metaverse</p>
@ -129,8 +146,6 @@
<p>j. Interactive Data Exploration and Presentation in Metaverse</p>
<p>k. Emerging Technologies and Applications for Metaverse</p>
</div>
</a-col>
</a-row>
@ -165,7 +180,13 @@
<div class="title" style="margin-left: 280px">-Technical Sponsor-</div>
</div>
</template>
<a-image src="https://oss.wsdns.cn/20240303/bfe52a6864d44535beb6bf9ca6dbb263.jpg" :preview="false" />
<div class="ele-cell" v-if="siteInfo">
<div class="ele-cell-content" v-for="(item,index) in siteInfo.links" :key="index">
<a-image :src="item.icon" :width="160" :preview="false"></a-image>
</div>
</div>
<!-- <a-image src="https://oss.wsdns.cn/20240303/bfe52a6864d44535beb6bf9ca6dbb263.jpg" :preview="false" />-->
</a-card>
</div>
</a-layout-content>
@ -175,6 +196,11 @@
<script lang="ts" setup>
import Banner from "@/components/Banner/index.vue";
import {storeToRefs} from "pinia";
import {useTenantStore} from "@/store/modules/tenant";
const tenantStore = useTenantStore();
const { siteInfo } = storeToRefs(tenantStore);
</script>
<script lang="ts">

Loading…
Cancel
Save