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/ /dist/
/node_modules/

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

@ -1,6 +1,7 @@
import {WebsiteField} from "@/api/cms/website/field/model"; import {WebsiteField} from "@/api/cms/website/field/model";
import {Navigation} from "@/api/cms/navigation/model"; import {Navigation} from "@/api/cms/navigation/model";
import {ArrangeCategory} from "@/api/cms/category/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 {MenuMeta} from "ele-admin-pro/es/ele-pro-layout/types";
// import {MenuItem} from "ele-admin-pro"; // import {MenuItem} from "ele-admin-pro";
@ -13,6 +14,7 @@ export interface Website {
websiteCode?: string; websiteCode?: string;
websiteIcon?: string; websiteIcon?: string;
websiteLogo?: string; websiteLogo?: string;
websiteDarkLogo?: string;
keywords?: string; keywords?: string;
address?: string; address?: string;
phone?: string; phone?: string;
@ -41,16 +43,9 @@ export interface Website {
tenantName?: string; tenantName?: string;
navigations?: Navigation[]; navigations?: Navigation[];
categoryList?: ArrangeCategory[]; categoryList?: ArrangeCategory[];
links?: Link[];
// 配置信息 // 配置信息
config?: any; 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; openType?: number;
hide?: 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){ if(d.type == 0){
d.path = `/article/${d.categoryId}` d.path = `/article/${d.categoryId}`
} }
// 链接
if(d.type == 2){
d.path = `${d.path}`
}
return { return {
...d, ...d,
name: d.title, 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; const host = window.location.host;
return host.split('.'); return host.split('.');
} }
@ -8,7 +10,7 @@ export function getHost():any {
* *
* @return http://www.domain.com * @return http://www.domain.com
*/ */
export function getOriginDomain():string {
export function getOriginDomain(): string {
return window.origin; return window.origin;
} }
@ -20,7 +22,7 @@ export function getProtocol(): string {
* *
* @return https://www.domain.com * @return https://www.domain.com
*/ */
export function getDomain():string {
export function getDomain(): string {
return window.location.protocol + '//www.' + getRootDomain(); return window.location.protocol + '//www.' + getRootDomain();
} }
@ -28,42 +30,51 @@ export function getDomain():string {
* *
* abc.com * abc.com
*/ */
export function getRootDomain():string {
export function getRootDomain(): string {
const split = getHost(); const split = getHost();
return split[split.length-2] + '.' + split[split.length-1];
return split[split.length - 2] + '.' + split[split.length - 1];
} }
/** /**
* *
* @return abc.com * @return abc.com
*/ */
export function getSubDomainPath():string {
export function getSubDomainPath(): string {
const split = getHost(); const split = getHost();
if(split.length == 2) {
if (split.length == 2) {
return ''; 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 * ID
* @return 10048 * @return 10048
*/ */
export function getTenantId():string|null {
export function getTenantId(): string | null {
const subDomain = getSubDomainPath(); const subDomain = getSubDomainPath();
if(subDomain == undefined){
if (subDomain == undefined) {
return null; return null;
} }
return subDomain.replace(/[^\d]/g,'');
return subDomain.replace(/[^\d]/g, '');
} }
/** /**
* *
* @return 10048 * @return 10048
*/ */
export function getProductCode():string|null {
export function getProductCode(): string | null {
const subDomain = getSubDomainPath(); const subDomain = getSubDomainPath();
if(subDomain == undefined){
if (subDomain == undefined) {
return null; return null;
} }
const split = subDomain.split('-'); 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()}`; return `${window.location.protocol}//${path}.${getRootDomain()}`;
} }

17
src/utils/request.ts

@ -15,6 +15,7 @@ import {
import { getToken, setToken } from './token-util'; import { getToken, setToken } from './token-util';
import { logout } from './page-tab-util'; import { logout } from './page-tab-util';
import type { ApiResult } from '@/api'; import type { ApiResult } from '@/api';
import {getDomainPart1} from "@/utils/domain";
// import {getTenantId} from "@/utils/domain"; // import {getTenantId} from "@/utils/domain";
const service = axios.create({ const service = axios.create({
@ -31,14 +32,14 @@ service.interceptors.request.use(
if (token && config.headers) { if (token && config.headers) {
config.headers.common[TOKEN_HEADER_NAME] = token; 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; return config;
}, },
(error) => { (error) => {

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

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

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

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

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

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

34
src/views/index/index.vue

@ -105,7 +105,7 @@
<p>i. Smart Tourism</p> <p>i. Smart Tourism</p>
</div> </div>
</a-col> </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="ele-text-heading" style="padding: 16px 0"><b>Metaverse</b></div>
<div class="line-height-d5"> <div class="line-height-d5">
<p>a. Hardware/Software Architectures for Metaverse</p> <p>a. Hardware/Software Architectures for Metaverse</p>
@ -120,6 +120,23 @@
<p>f. Cyber Security for Metaverse</p> <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>g. Data Analytics to Identify Malicious Behaviors in Metaverse</p>
<p> h. Blockchain/AI Technologies 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>j. Interactive Data Exploration and Presentation in Metaverse</p>
<p>k. Emerging Technologies and Applications for Metaverse</p> <p>k. Emerging Technologies and Applications for Metaverse</p>
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
@ -165,7 +180,13 @@
<div class="title" style="margin-left: 280px">-Technical Sponsor-</div> <div class="title" style="margin-left: 280px">-Technical Sponsor-</div>
</div> </div>
</template> </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> </a-card>
</div> </div>
</a-layout-content> </a-layout-content>
@ -175,6 +196,11 @@
<script lang="ts" setup> <script lang="ts" setup>
import Banner from "@/components/Banner/index.vue"; 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>
<script lang="ts"> <script lang="ts">

Loading…
Cancel
Save