首页更新

This commit is contained in:
hrx 2026-07-06 17:56:04 +08:00
parent 15bd988891
commit 19b9cf3cfd
6 changed files with 758 additions and 1174 deletions

View File

@ -18,19 +18,80 @@ export default {
switchEnSuccess: 'Switched to English'
},
home: {
heroTitle: 'One Platform, Across All Industries',
heroSubtitle: 'Intelligent Leap',
heroSlogan: 'Making AI Everywhere, Make AI Easy',
heroTitle: 'One Platform ● Intelligent Leap ● Across All Industries.',
heroSubtitle: '',
heroSlogan: 'Make AI Everywhere, Make AI Easy',
solutionsBtn: 'Solutions',
contactSalesBtn: 'Contact Sales',
aiSolutionsTitle: 'AI + Solutions',
successCasesTitle: 'Success Stories',
moreCases: 'View More Cases',
successCasesTitle: 'Use Cases',
moreCases: 'View All Use Cases →',
ctaTitle: 'How Do These Solutions Work in Practice?',
ctaDesc: 'Get industry-specific AI solutions.',
contactUsArrow: 'Contact Us →',
companyNewsTitle: 'Company News',
viewMore: 'View More →'
viewMore: 'View More →',
footerProducts: 'Products & Services',
footerContact: 'Contact Us',
onlineChat: 'Online Chat',
solutionCards: {
collaboration: {
title: 'Collaborative Intelligence',
subtitle: 'Multi-Agent Coordination'
},
spatial: {
title: 'Spatial Intelligence',
subtitle: 'GIS Smart Analysis'
},
predictive: {
title: 'Predictive Insight',
subtitle: 'Intelligent Forecasting Engine'
},
vision: {
title: 'Microscopic Insight',
subtitle: 'Machine Vision Inspection'
},
qa: {
title: 'Instant Answers',
subtitle: 'Intelligent Q&A Knowledge Base'
},
protection: {
title: 'Continuous Protection',
subtitle: 'Intelligent Device Monitoring'
},
document: {
title: 'Document Intelligence',
subtitle: 'Smart Document Parsing'
},
edge: {
title: 'Edge Intelligence',
subtitle: 'Edge AI Inference'
}
},
cases: {
railway: {
name: 'China Railway Group · AI Industry Bidding Agent Engine',
title: 'Smart Engineering',
desc: 'AI-Powered Bidding Process'
},
forestry: {
name: 'Nanning Forestry Bureau · Smart Harvesting',
title: 'Smart Harvesting',
desc: 'AI-Powered Forestry Spatial Intelligence Review'
},
beigang: {
name: 'AI Empowerment · Beibu Gulf Big Data',
title: 'Digital & Intelligent Upgrade',
desc: 'Three Core AI Agent Platforms'
}
},
news: {
tag: 'Company News',
firstTitle: 'Open Computing AI Visits ASEAN with CCPIT',
firstDesc: 'Open Computing AI joined the CCPIT Guangxi branch delegation on business visits to Vietnam and Laos, where it engaged in deep discussions on AI agent deployment, cross-border digital infrastructure cooperation, and smart city solutions — further expanding its footprint in Southeast Asian markets.',
secondTitle: 'Open Computing AI Named Forbes China AI Commercial Application Demonstration Enterprise',
secondDesc: 'Recognized for its industrial-grade AI agent factory delivery capabilities and benchmark cases among central and state-owned enterprises, Open Computing AI was named a Forbes China AI Commercial Application Demonstration Enterprise — underscoring its leadership in turning AI technology into scalable, real-world industry solutions.'
}
},
...autoMessages
}

View File

@ -30,7 +30,68 @@ export default {
ctaDesc: '获取行业专属 AI 解决方案',
contactUsArrow: '联系我们 →',
companyNewsTitle: '企业动态',
viewMore: '查看更多 →'
viewMore: '查看更多 →',
footerProducts: '产品服务',
footerContact: '联系我们',
onlineChat: '在线咨询',
solutionCards: {
collaboration: {
title: '群智协作',
subtitle: '多智能体协同'
},
spatial: {
title: '空间觉醒',
subtitle: 'GIS智能分析'
},
predictive: {
title: '先见一步',
subtitle: '智能预测引擎'
},
vision: {
title: '洞察入微',
subtitle: '机器视觉检测'
},
qa: {
title: '一问即达',
subtitle: '智能问答知识库'
},
protection: {
title: '全程守护',
subtitle: '设备智能监控'
},
document: {
title: '触文即懂',
subtitle: '智能文档解析'
},
edge: {
title: '端侧即算',
subtitle: '边缘AI推理'
}
},
cases: {
railway: {
name: '中国中铁 · 慧投标智能体',
title: '智慧工程',
desc: 'AI驱动投标全流程从标书解读到报价编制中标率提升显著'
},
forestry: {
name: '南宁林业局',
title: '智慧采伐',
desc: '从采伐审批到科学监管——空间智能融合,让数据真正服务林区治理。'
},
beigang: {
name: '北港大数据',
title: 'AI赋能数智升级',
desc: '从投标到决策从合同到管理——全链路AI智能体让业务快人一步'
}
},
news: {
tag: '企业动态',
firstTitle: '开元云随贸促会走访东盟',
firstDesc: '开元云科技随贸促会广西分会经贸代表团密集出访越南、老挝,深度参与区域 AI 产业合作与数字经济交流。',
secondTitle: '开元云荣登福布斯中国人工智能商业落地示范企业',
secondDesc: '凭借 AI 智能体工厂的工业级交付能力与央国企标杆案例,开元云入选福布斯中国人工智能商业落地示范企业。'
}
},
...autoMessages
}

View File

@ -289,6 +289,11 @@ var onOverflow = ["/shoppingManagement", "/supplierManagement"];
// 修复:在路由守卫中恢复用户状态和重新生成路由
router.beforeEach(async (to, from, next) => {
if (to.path === '/login' || to.path.startsWith('/login/')) {
next();
return;
}
// 清空面包屑状态的代码
// store.commit('tagsView/resetBreadcrumbState');
@ -351,78 +356,6 @@ window.addEventListener('beforeunload', function () {
Object.keys(filters).forEach(key => {
Vue.filter(key, filters[key])
})
// 在 main.js 的 router.beforeEach 中添加
router.beforeEach((to, from, next) => {
// 清空面包屑状态的代码
// store.commit('tagsView/resetBreadcrumbState');
// 新增:检测是否为移动设备
// const userAgent = navigator.userAgent;
// const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent);
// // 如果是移动设备且访问的是根路径,重定向到移动端首页
// if (isMobile && to.path === '/') {
// next('/h5HomePage');
// return;
// }
// // 如果是移动设备且访问的不是移动端页面,重定向到移动端首页
// if (isMobile && !to.meta?.isMobile && to.path !== '/h5HomePage' && !to.path.startsWith('/h5HomePage/')) {
// next('/h5HomePage');
// return;
// }
// 如果已登录且有token但Vuex状态丢失从sessionStorage恢复
if (store.getters.token && (!store.getters.user || !store.getters.userType)) {
console.log("检测到状态丢失从sessionStorage恢复用户状态");
const user = sessionStorage.getItem('user');
const auths = sessionStorage.getItem('auths');
const userType = sessionStorage.getItem('userType');
const orgType = sessionStorage.getItem('orgType');
if (user) {
store.commit('user/SET_USER', user);
}
if (auths) {
store.commit('user/SET_AUTHS', JSON.parse(auths));
}
if (userType) {
store.commit('user/SET_USER_TYPE', userType);
}
if (orgType) {
store.commit('user/SET_ORG_TYPE', parseInt(orgType));
}
// 重新生成路由
try {
const accessRoutes = store.dispatch('permission/generateRoutes', {
user: store.getters.user,
auths: store.getters.auths,
userType: store.getters.userType,
orgType: store.getters.orgType
});
// 重新添加路由
router.addRoutes(accessRoutes);
// 重定向到当前路由以确保路由更新
next({ ...to, replace: true });
return;
} catch (error) {
console.error('重新生成路由失败:', error);
}
}
onOverflow.forEach(element => {
if (to.path == element) {
document.querySelector("body").setAttribute("style", "overflow: auto !important;")
}
});
next();
});
Vue.config.productionTip = false
new Vue({

File diff suppressed because it is too large Load Diff

View File

@ -21,7 +21,7 @@
<div class="footer-link-col">
<h4 class="footer-col-title">产品服务</h4>
<h4 class="footer-col-title">{{ $t('home.footerProducts') }}</h4>
<ul class="footer-link-list">
<li
v-for="item in footerProductServices"
@ -36,7 +36,7 @@
</div>
<div class="footer-contact-col">
<h4 class="footer-col-title">联系我们</h4>
<h4 class="footer-col-title">{{ $t('home.footerContact') }}</h4>
<ul class="footer-contact-list">
<li>地址<span>{{ footerHomeInfo.adress }}</span></li>
<li>邮箱<span>{{ footerHomeInfo.email }}</span></li>
@ -47,7 +47,7 @@
<div class="qr-code">
<img src="./img/img.png" alt="">
</div>
<span class="qr-content">微信客服</span>
<span class="qr-content">{{ $t('home.onlineChat') }}</span>
</div>
<div class="qr-box">
<div class="qr-code">
@ -370,10 +370,6 @@ export default Vue.extend({
transform: translateX(3px);
}
.footer-contact-col {
// width: 360px;
}
.footer-contact-list {
margin: 0;
padding: 0;

View File

@ -10,7 +10,7 @@
<div class="hero-title-row">
<h1>{{ $t('home.heroTitle') }}</h1>
</div>
<h2>{{ $t('home.heroSubtitle') }}</h2>
<h2 v-if="$t('home.heroSubtitle')">{{ $t('home.heroSubtitle') }}</h2>
<p>{{ $t('home.heroSlogan') }}</p>
<div class="hero-actions">
<button type="button" class="use-btn">{{ $t('home.solutionsBtn') }}</button>
@ -62,7 +62,7 @@
</div>
<div class="carousel-dots">
<button
v-for="(item, index) in solutionCards"
v-for="(item, index) in localizedSolutionCards"
:key="item.title"
type="button"
:class="{ active: index === currentSolutionIndex }"
@ -84,7 +84,7 @@
<div class="case-grid">
<article
v-for="item in caseCards"
v-for="item in localizedCaseCards"
:key="item.title"
class="case-card"
>
@ -127,7 +127,7 @@
<div class="news-list">
<article
v-for="(item, index) in newsList"
v-for="(item, index) in localizedNewsList"
:key="item.title"
class="news-card"
:class="{ 'news-card-active': index === activeNewsIndex }"
@ -228,7 +228,7 @@ export default {
{
title: '一问即达',
subtitle: '智能问答知识库',
detailTitle: '智能知识问答',
detailTitle: '智能问答知识库',
detailSubTitle: '燃机 AI 诊断助手',
detailDesc: '融合专家知识库,支持中英文自然语言多轮对话,自动生成诊断建议。',
metrics: [
@ -337,15 +337,62 @@ export default {
showTalkVisible() {
return this.$store.state.product.showTalk
},
localizedSolutionCards() {
const keyMap = {
'群智协作': 'collaboration',
'空间觉醒': 'spatial',
'先见一步': 'predictive',
'洞察入微': 'vision',
'一问即达': 'qa',
'全程守护': 'protection',
'触文即懂': 'document',
'端侧即算': 'edge'
}
return this.solutionCards.map((card) => {
const key = keyMap[card.title]
if (!key) return card
return {
...card,
title: this.$t(`home.solutionCards.${key}.title`),
subtitle: this.$t(`home.solutionCards.${key}.subtitle`)
}
})
},
localizedCaseCards() {
const keys = ['railway', 'forestry', 'beigang']
return this.caseCards.map((card, index) => {
const key = keys[index]
if (!key) return card
return {
...card,
name: this.$t(`home.cases.${key}.name`),
title: this.$t(`home.cases.${key}.title`),
desc: this.$t(`home.cases.${key}.desc`)
}
})
},
localizedNewsList() {
const keys = ['first', 'second']
return this.newsList.map((item, index) => {
const key = keys[index]
if (!key) return item
return {
...item,
tag: this.$t('home.news.tag'),
title: this.$t(`home.news.${key}Title`),
desc: this.$t(`home.news.${key}Desc`)
}
})
},
visibleSolutionCards() {
const slots = [-3, -2, -1, 0, 1, 2, 3]
const len = this.solutionCards.length
const len = this.localizedSolutionCards.length
return slots.map((slot) => {
const index = (this.currentSolutionIndex + slot + len) % len
return {
slot,
index,
card: this.solutionCards[index]
card: this.localizedSolutionCards[index]
}
})
}
@ -387,6 +434,9 @@ export default {
goCases() {
this.navigateTo('/homePage/agentStore')
},
goNews() {
this.navigateTo('/homePage/new')
},
nextSolution() {