商务合作修改

This commit is contained in:
谢宇宁
2026-10-09 18:34:05 +07:00
parent 62fe4bb4d0
commit a7637f65ba
11 changed files with 12 additions and 402 deletions
+6 -2
View File
@@ -5,17 +5,21 @@
<span class="siteName">黄果导航站</span>
</div>
<div class="optGroup">
<SvgIcon name="business" class="business" @click="jumpPage('/mobileBusiness')" />
<div class="official" @click="jumpPage('/mobileConnectInfo')">联系官方</div>
<SvgIcon name="business" class="business" @click="openTg" />
<div class="official" @click="openTg">联系官方</div>
</div>
</div>
</template>
<script setup lang="ts">
import { useRouter } from 'vue-router';
import { OFFICIAL_TG_URL } from '@/utils/index';
const router = useRouter();
const jumpPage = (path: string) => {
router.push(path);
};
const openTg = () => {
window.open(OFFICIAL_TG_URL);
};
</script>
<style lang="scss" scoped>
.advTopOpt {
-16
View File
@@ -23,14 +23,6 @@ const routes: RouteRecordRaw[] = [
title: '隐私政策',
},
},
{
path: '/mobileConnectInfo',
name: 'mobileConnectInfo',
component: () => import('@/views/mobile/connectInfo/index.vue'),
meta: {
title: '联系官方',
},
},
// {
// path: '/mobileClassification',
// name: 'mobileClassification',
@@ -39,14 +31,6 @@ const routes: RouteRecordRaw[] = [
// title: '分类列表',
// },
// },
{
path: '/mobileBusiness',
name: 'mobileBusiness',
component: () => import('@/views/mobile/mobileBusiness/index.vue'),
meta: {
title: '商务合作',
},
},
];
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
-18
View File
@@ -1,8 +1,6 @@
import { RouteRecordRaw } from 'vue-router';
import Home from '@/views/pc/home/index.vue'
import Contact from '@/views/pc/contact/index.vue'
import Privacy from '@/views/pc/privacy/index.vue'
import Business from '@/views/pc/business/index.vue'
// pc端路由
const pcRouter: RouteRecordRaw[] = [
@@ -14,22 +12,6 @@ const pcRouter: RouteRecordRaw[] = [
title: "首页"
},
},
{
path: '/contact',
name: 'contact',
component: Contact,
meta: {
title: "联系"
},
},
{
path: '/business',
name: 'business',
component: Business,
meta: {
title: "联系"
},
},
{
path: '/privacy',
name: 'privacy',
-8
View File
@@ -85,14 +85,6 @@ export default class AppApi {
// return request.post('/ads/click', data);
return request.post('/recreation/click', data);
}
/**
* @description 官方联系方式
* @param data 参数
* @returns
*/
static getBusiness(data: any): Promise<any> {
return request.get('/official/list', data);
}
/**
* @description 福利
* @param data 参数
-4
View File
@@ -25,7 +25,6 @@ export const useConfigStore = defineStore({
AUDIO: '',
Download: '',
},
contactInfo: <any>[]
};
},
actions: {
@@ -33,9 +32,6 @@ export const useConfigStore = defineStore({
saveBaseUrl(url: string) {
this.baseUrl = url;
},
setContactInfo(list: any) {
this.contactInfo = list
},
//保存全局配置
saveAppConfig(appConfig: Types.App.ConfigInfo) {
this.appConfig = appConfig;
-17
View File
@@ -208,22 +208,6 @@ const pingErrorPop = (hosts: any) => {
}
}
};
const queryContactInfo = async () => {
try {
let req = {
type: 2,
};
const res: any = await AppApi.getBusiness(req);
useConfigStore().setContactInfo(res || []);
// console.log(res);
// contactInfo
// configStore.saveAppConfig(configList);
// initSourceInfo(configList.sourceList);
// return true;
} catch (error) {
// return false;
}
};
/**
* 初始化
*/
@@ -272,7 +256,6 @@ const init = async () => {
}
}
}
queryContactInfo();
//获取配置信息
const configOk = await getConfig();
globalStore.setVideoRoadLine(configStore.sourceInfo.VID[0]); // 默认选择第一个线路
-87
View File
@@ -1,87 +0,0 @@
<template>
<div class="connectInfo overflow-y-auto">
<MobileHeader class="header" />
<div class="contentBox">
<div class="subTitle">官方联系</div>
<div class="connectItem" v-for="(item, index) in contactInfo" :key="index" @click="openPage(OFFICIAL_TG_URL)">
<lazyImg class="connectImg" :src="item.officialImg" />
<div class="infoBox">
<div class="conectName">{{ item.officialName }}</div>
<div class="conectDesc">{{ item.officialDesc }}</div>
</div>
</div>
</div>
<MobileBottom />
</div>
</template>
<script lang="ts"></script>
<script lang="ts" setup>
import { computed } from 'vue';
import { useConfigStore } from '@/stores/config';
import { OFFICIAL_TG_URL } from '@/utils/index';
const configStore = useConfigStore();
const contactInfo = computed(() => {
return configStore.contactInfo;
// return route.query.tid ? homeStore.homeData[0];
});
const openPage = (url: string) => {
window.open(url);
};
</script>
<style scoped lang="scss">
.connectInfo {
height: 100vh;
.header {
position: sticky;
top: 0;
z-index: 11;
}
.contentBox {
padding: 31px 16px 90px;
.subTitle {
color: #fff;
font-family: 'PingFang SC';
font-size: 20px;
font-style: normal;
font-weight: 600;
line-height: 41px; /* 205% */
padding-bottom: 7px;
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
margin-bottom: 31px;
}
.connectItem {
display: flex;
align-items: center;
margin-bottom: 39.5px;
.connectImg {
width: 47.5px;
height: 47.5px;
margin-right: 9.4px;
}
.infoBox {
.conectName {
color: #fff;
font-family: 'PingFang SC';
font-size: 9.945px;
font-style: normal;
font-weight: 600;
line-height: 9.945px; /* 100% */
margin-bottom: 5.5px;
}
.conectDesc {
color: #fff;
font-family: 'PingFang SC';
font-size: 7.735px;
font-style: normal;
font-weight: 400;
line-height: 9.945px; /* 128.571% */
}
}
}
.connectItem:last-child {
margin-bottom: 0;
}
}
}
</style>
-104
View File
@@ -1,104 +0,0 @@
<template>
<div class="connectInfo overflow-y-auto">
<MobileHeader class="header" />
<div class="contentBox">
<div class="subTitle">商务合作</div>
<div
class="connectItem"
v-for="(item, index) in state.contactInfo"
:key="index"
@click="openPage(OFFICIAL_TG_URL)"
>
<lazyImg class="connectImg" :src="item.officialImg" />
<div class="conectName">{{ item.officialName }}:</div>
<div class="conectDesc">点击这里</div>
</div>
</div>
<MobileBottom />
</div>
</template>
<script lang="ts"></script>
<script lang="ts" setup>
import { reactive } from 'vue';
import AppApi from '@/service/app';
import { OFFICIAL_TG_URL } from '@/utils/index';
const state = reactive({
contactInfo: <any>[],
});
const queryContactInfo = async () => {
try {
let req = {
type: 3,
};
const res: any = await AppApi.getBusiness(req);
state.contactInfo = res || [];
} catch (error) {
// return false;
}
};
queryContactInfo();
const openPage = (url: string) => {
window.open(url);
};
</script>
<style scoped lang="scss">
.connectInfo {
height: 100vh;
.header {
position: sticky;
top: 0;
z-index: 11;
}
.contentBox {
padding: 31px 16px 90px;
.subTitle {
color: #fff;
font-family: 'PingFang SC';
font-size: 20px;
font-style: normal;
font-weight: 600;
line-height: 41px; /* 205% */
padding-bottom: 7px;
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
margin-bottom: 31px;
}
.connectItem {
display: flex;
align-items: center;
margin-bottom: 39.5px;
.connectImg {
width: 47.5px;
height: 47.5px;
margin-right: 9.4px;
}
.conectName {
color: #fff;
text-align: center;
font-family: 'PingFang SC';
font-size: 14px;
font-style: normal;
font-weight: 600;
line-height: 10.047px; /* 71.761% */
}
.conectDesc {
color: var(--Style, #ffcd3f);
font-family: 'PingFang SC';
font-size: 14px;
font-style: normal;
font-weight: 600;
line-height: 10.047px;
text-decoration-line: underline;
text-decoration-style: solid;
text-decoration-skip-ink: auto;
text-decoration-thickness: auto;
text-underline-offset: auto;
text-underline-position: from-font;
}
}
.connectItem:last-child {
margin-bottom: 0;
}
}
}
</style>
-77
View File
@@ -1,77 +0,0 @@
<template>
<div class="contact">
<div class="title">商务合作</div>
<div class="contact-list">
<div class="item" v-for="(item, index) in state.contactInfo" :key="index" @click="openPage(OFFICIAL_TG_URL)">
<lazyImg class="connectImg" :src="item.officialImg" />
<div class="text">
<p class="name">{{ item.officialName }}</p>
<p class="described">{{ item.officialDesc }}</p>
</div>
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { reactive } from 'vue';
import AppApi from '@/service/app';
import { OFFICIAL_TG_URL } from '@/utils/index';
const state = reactive({
contactInfo: <any>[],
});
const queryContactInfo = async () => {
try {
let req = {
type: 3,
};
const res: any = await AppApi.getBusiness(req);
state.contactInfo = res || [];
} catch (error) {
}
};
queryContactInfo();
const openPage = (url: string) => {
window.open(url);
};
</script>
<style lang="scss" scoped>
@media (min-width: 768px) {
.contact {
color: #fff;
width: 1104px;
margin: 112px auto 0;
padding-bottom: 70px;
.title {
color: #FFF;
font-size: 20px;
font-weight: 600;
line-height: 41px;
}
.contact-list {
display: flex;
justify-content: space-between;
padding-top: 61px;
.item {
display: flex;
align-items: center;
cursor: pointer;
}
.connectImg {
width: 86px;
height: 86px;
border-radius: 50%;
margin-right: 17px;
}
.name {
font-size: 18px;
font-weight: 600;
}
.described {
font-size: 14px;
font-weight: 400;
margin-top: 10px;
}
}
}
}
</style>
-67
View File
@@ -1,67 +0,0 @@
<template>
<div class="contact">
<div class="title">官方联系</div>
<div class="contact-list">
<div class="item" v-for="(item, index) in contactInfo" :key="index" @click="openPage(OFFICIAL_TG_URL)">
<lazyImg class="connectImg" :src="item.officialImg" />
<div class="text">
<p class="name">{{ item.officialName }}</p>
<p class="described">{{ item.officialDesc }}</p>
</div>
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { computed } from 'vue';
import { useConfigStore } from '@/stores/config';
import { OFFICIAL_TG_URL } from '@/utils/index';
const configStore = useConfigStore();
const contactInfo = computed(() => {
return configStore.contactInfo;
});
const openPage = (url: string) => {
window.open(url);
};
</script>
<style lang="scss" scoped>
@media (min-width: 768px) {
.contact {
color: #fff;
width: 1104px;
margin: 112px auto 0;
padding-bottom: 70px;
.title {
color: #FFF;
font-size: 20px;
font-weight: 600;
line-height: 41px;
}
.contact-list {
display: flex;
justify-content: space-between;
padding-top: 61px;
.item {
display: flex;
align-items: center;
cursor: pointer;
}
.connectImg {
width: 86px;
height: 86px;
border-radius: 50%;
margin-right: 17px;
}
.name {
font-size: 18px;
font-weight: 600;
}
.described {
font-size: 14px;
font-weight: 400;
margin-top: 10px;
}
}
}
}
</style>
+6 -2
View File
@@ -9,11 +9,11 @@
</div>
</div>
<div class="right-list">
<div class="item" @click="jumpPage('/business')">
<div class="item" @click="openTg">
<img class="search" src="@/assets/images/pc/business.png" />
<p>商务合作</p>
</div>
<div class="official" @click="jumpPage('/contact')">联系官方</div>
<div class="official" @click="openTg">联系官方</div>
</div>
</div>
</div>
@@ -29,6 +29,7 @@
import { computed } from 'vue'
import { getAdItem } from '@/utils/getConfig'
import { useRouter } from 'vue-router';
import { OFFICIAL_TG_URL } from '@/utils/index';
import { useGlobalStore } from '@/stores/global';
const globalStore = useGlobalStore();
@@ -46,6 +47,9 @@ const isShowAdvPopup = computed(() => {
const closeHomePopupAdv = () => {
globalStore.setHomeAdvFirst();
};
const openTg = () => {
window.open(OFFICIAL_TG_URL)
}
const jumpPage = (path: string) => {
router.push(path)
}