@appthen/cli 1.2.8 → 1.2.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitignore +1 -0
- package/bin/main.js +45 -0
- package/dist/index.js +1277 -909
- package/package.json +1 -1
- package/tests/test-app/.appthen/shadow-space-100001-test-app-e99876b1.json +1406 -0
- package/tests/test-app/.appthen/shadow-space-unknown-user-test-app-e99876b1.json +1060 -0
- package/tests/test-app/.appthen/space-config.json +8 -0
- package/tests/test-app/docs/AI-Workflow.flow +112 -0
- package/tests/test-app/docs/Logic-1.flow +16 -0
- package/tests/test-app/docs/Logic.flow +16 -0
- package/tests/test-app/docs/Project-Blueprint-1.flow +119 -0
- package/tests/test-app/docs/Project-Blueprint.flow +119 -0
- package/tests/test-app/docs/README.md +3 -0
- package/tests/test-app/docs/claude.md +194 -0
- package/tests/test-app/docs/page_requirement_analysis.md +149 -0
- package/tests/test-app/docs//345/267/245/345/215/225/347/256/241/347/220/206/347/263/273/347/273/237/350/257/246/347/273/206/350/256/276/350/256/241.md +377 -0
- package/tests/test-app/src/apis/AddTodoPost.api.ts +42 -0
- package/tests/test-app/src/apis/DeleteTodoPost.api.ts +32 -0
- package/tests/test-app/src/apis/GetListPost.api.ts +38 -0
- package/tests/test-app/src/apis/TicketAttachmentUploadPost.api.ts +42 -0
- package/tests/test-app/src/apis/UpdateTodoPost.api.ts +46 -0
- package/tests/test-app/src/app.css +15 -0
- package/tests/test-app/src/cloud_functions/ticket|attachment|upload.node.ts +86 -0
- package/tests/test-app/src/cloud_functions/ticket|comment|add.node.ts +65 -0
- package/tests/test-app/src/cloud_functions/types|entity|Ticket.node.ts +88 -0
- package/tests/test-app/src/cloud_functions/types|entity|TicketAttachment.node.ts +70 -0
- package/tests/test-app/src/cloud_functions/types|entity|TicketCategory.node.ts +56 -0
- package/tests/test-app/src/cloud_functions/types|entity|TicketComment.node.ts +62 -0
- package/tests/test-app/src/cloud_functions/types|entity|TicketHistory.node.ts +74 -0
- package/tests/test-app/src/cloud_functions/types|entity|TicketPriority.node.ts +68 -0
- package/tests/test-app/src/cloud_functions/types|entity|TicketStatus.node.ts +63 -0
- package/tests/test-app/src/cloud_functions/types|models|CreateTicketParams.node.ts +20 -0
- package/tests/test-app/src/cloud_functions/types|models|TicketListParams.node.ts +30 -0
- package/tests/test-app/src/cloud_functions/types|models|UpdateTicketParams.node.ts +22 -0
- package/tests/test-app/src/components/Button.js +11 -0
- package/tests/test-app/src/components/MouduleDemoNzp.tsx +40 -0
- package/tests/test-app/src/components/Timeline.tsx +145 -0
- package/tests/test-app/src/index.ts +2 -0
- package/tests/test-app/src/modules/work_order_module/apis/TicketCommentAddPost.api.ts +48 -0
- package/tests/test-app/src/modules/work_order_module/apis/TicketCreatePost.api.ts +52 -0
- package/tests/test-app/src/modules/work_order_module/apis/TicketDeleteDelete.api.ts +39 -0
- package/tests/test-app/src/modules/work_order_module/apis/TicketDetailGet.api.ts +39 -0
- package/tests/test-app/src/modules/work_order_module/apis/TicketListGet.api.ts +61 -0
- package/tests/test-app/src/modules/work_order_module/apis/TicketUpdatePut.api.ts +57 -0
- package/tests/test-app/src/modules/work_order_module/apis/TrainDoorFaultListGet.ts +76 -0
- package/tests/test-app/src/modules/work_order_module/apis/TrainDoorListGet.ts +76 -0
- package/tests/test-app/src/modules/work_order_module/apis/TrainDoorOperationRecordsGet.ts +284 -0
- package/tests/test-app/src/modules/work_order_module/apis/TrainDoorStatisticsGet.ts +96 -0
- package/tests/test-app/src/modules/work_order_module/cloud_function/category|list.node.ts +40 -0
- package/tests/test-app/src/modules/work_order_module/cloud_function/priority|list.node.ts +26 -0
- package/tests/test-app/src/modules/work_order_module/cloud_function/status|list.node.ts +26 -0
- package/tests/test-app/src/modules/work_order_module/cloud_function/ticket|create.node.ts +54 -0
- package/tests/test-app/src/modules/work_order_module/cloud_function/ticket|delete.node.ts +55 -0
- package/tests/test-app/src/modules/work_order_module/cloud_function/ticket|detail.node.ts +65 -0
- package/tests/test-app/src/modules/work_order_module/cloud_function/ticket|list.node.ts +85 -0
- package/tests/test-app/src/modules/work_order_module/cloud_function/ticket|update.node.ts +73 -0
- package/tests/test-app/src/modules/work_order_module/data_model/Ticket.m.ts +85 -0
- package/tests/test-app/src/modules/work_order_module/data_model/TicketCategory.m.ts +53 -0
- package/tests/test-app/src/modules/work_order_module/data_model/TicketStatus.m.ts +60 -0
- package/tests/test-app/src/modules/work_order_module//345/267/245/345/215/225/347/263/273/347/273/237/344/272/247/345/223/201/350/256/276/350/256/241/346/226/207/346/241/243.md +301 -0
- package/tests/test-app/src/modules/work_order_module//345/267/245/345/215/225/347/263/273/347/273/237/345/274/200/345/217/221/344/273/273/345/212/241/345/210/206/345/267/245/346/226/207/346/241/243.md +345 -0
- package/tests/test-app/src/pages/SLAManagement.tsx +668 -0
- package/tests/test-app/src/pages/TicketCreate.tsx +27 -0
- package/tests/test-app/src/pages/TicketDetail.tsx +27 -0
- package/tests/test-app/src/pages/TicketList.tsx +27 -0
- package/tests/test-app/src/pages/TicketManagementPage.tsx +1238 -0
- package/tests/test-app/src/pages/VisualAIIDEUpgrade.tsx +245 -0
- package/tests/test-app/src/pages/appthen_guide/ComponentTreeUnderstanding.tsx +26 -0
- package/tests/test-app/src/pages/appthen_guide/DataBindingLearning.tsx +26 -0
- package/tests/test-app/src/pages/back-end/adminRootLayout.tsx +155 -0
- package/tests/test-app/src/pages/back-end/adminRootLayout10.tsx +157 -0
- package/tests/test-app/src/pages/back-end/adminRootLayout2.tsx +156 -0
- package/tests/test-app/src/pages/back-end/adminRootLayout3.tsx +156 -0
- package/tests/test-app/src/pages/back-end/adminRootLayout4.tsx +157 -0
- package/tests/test-app/src/pages/back-end/adminRootLayout5.tsx +157 -0
- package/tests/test-app/src/pages/back-end/adminRootLayout6.tsx +157 -0
- package/tests/test-app/src/pages/back-end/adminRootLayout7.tsx +157 -0
- package/tests/test-app/src/pages/back-end/adminRootLayout8.tsx +157 -0
- package/tests/test-app/src/pages/back-end/adminRootLayout9.tsx +157 -0
- package/tests/test-app/src/pages/back-end/backgroundManagementSystem.css +5 -0
- package/tests/test-app/src/pages/back-end/backgroundManagementSystem.tsx +1745 -0
- package/tests/test-app/src/pages/component/WorkOrderCard.tsx +140 -0
- package/tests/test-app/src/pages/cover.tsx +42 -0
- package/tests/test-app/src/pages/data_dashboard/blueBrightGreenTechnologyWind.css +181 -0
- package/tests/test-app/src/pages/data_dashboard/blueBrightGreenTechnologyWind.tsx +225 -0
- package/tests/test-app/src/pages/data_dashboard/blueLargeScreen.css +181 -0
- package/tests/test-app/src/pages/data_dashboard/blueLargeScreen.tsx +138 -0
- package/tests/test-app/src/pages/data_dashboard/component_library/BlueBrightGreenBorder.tsx +47 -0
- package/tests/test-app/src/pages/data_dashboard/component_library/FullScreenContainer.tsx +133 -0
- package/tests/test-app/src/pages/description_of_mock_interface.md +32 -0
- package/tests/test-app/src/pages/digitalLargeScreen.css +181 -0
- package/tests/test-app/src/pages/digitalLargeScreen.tsx +1417 -0
- package/tests/test-app/src/pages/mobile_terminal/PersonalCenter.css +3 -0
- package/tests/test-app/src/pages/mobile_terminal/PersonalCenter.tsx +362 -0
- package/tests/test-app/src/pages/mobile_terminal/WorkOrderHomepage.tsx +337 -0
- package/tests/test-app/src/pages/mobile_terminal/newWorkOrder.tsx +224 -0
- package/tests/test-app/src/pages/mobile_terminal/tabbar.tsx +67 -0
- package/tests/test-app/src/pages/mobile_terminal/uiHandsOnPractice.tsx +638 -0
- package/tests/test-app/src/pages/mobile_terminal/workOrderDetails.tsx +346 -0
- package/tests/test-app/src/pages/mobile_terminal/workOrderPage.tsx +345 -0
- package/tests/test-app/src/pages/testPage.css +3 -0
- package/tests/test-app/src/pages/testPage.tsx +158 -0
- package/tests/test-app/src/pages/web_version/website.css +205 -0
- package/tests/test-app/src/pages/web_version/website.tsx +1066 -0
- package/tests/test-app/src/pages//345/276/205/345/212/236.apidoc.json +336 -0
- package/tests/test-app/src/project.json +1120 -0
- package/tests/test-app/src/store/global.store.ts +10 -0
- package/tests/test-app/src/types/CreateTicketParams.m.ts +20 -0
- package/tests/test-app/src/types/SLAPolicy.ts +50 -0
- package/tests/test-app/src/types/Ticket.ts +68 -0
- package/tests/test-app/src/types/TicketAttachment.m.ts +67 -0
- package/tests/test-app/src/types/TicketComment.m.ts +59 -0
- package/tests/test-app/src/types/TicketEvaluation.ts +44 -0
- package/tests/test-app/src/types/TicketHistory.m.ts +71 -0
- package/tests/test-app/src/types/TicketListParams.m.ts +30 -0
- package/tests/test-app/src/types/TicketPriority.m.ts +65 -0
- package/tests/test-app/src/types/TicketRecord.ts +47 -0
- package/tests/test-app/src/types/TrainDoor.ts +284 -0
- package/tests/test-app/src/types/UpdateTicketParams.m.ts +22 -0
- package/tests/test-app/src/utils/__afterRequest.util.ts +3 -0
- package/tests/test-app/src/utils/__beforeRequest.util.ts +10 -0
- package/tests/test-app/src/utils/testGlobalAction.util.ts +7 -0
|
@@ -0,0 +1,1066 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 网站首页
|
|
3
|
+
* @type Page
|
|
4
|
+
* @screen 1400w
|
|
5
|
+
* @frames web
|
|
6
|
+
*/
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import { Image, Page, Text, View } from '@appthen/react';
|
|
9
|
+
import { Icon } from '@appthen/antd';
|
|
10
|
+
import form from '/src/pages/block/form';
|
|
11
|
+
import './website.css';
|
|
12
|
+
|
|
13
|
+
class IProps {}
|
|
14
|
+
|
|
15
|
+
/*
|
|
16
|
+
* 数据与接口请求定义
|
|
17
|
+
*/
|
|
18
|
+
class IState {
|
|
19
|
+
navbarScrolled: boolean;
|
|
20
|
+
showBackToTop: boolean;
|
|
21
|
+
mobileMenuOpen: boolean;
|
|
22
|
+
animatedNumbers: {
|
|
23
|
+
/* @example 0 */projects?: number,
|
|
24
|
+
/* @example 0 */clients?: number,
|
|
25
|
+
/* @example 0 */experience?: number,
|
|
26
|
+
/* @example 0 */awards?: number,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
class Document extends React.Component<IProps, IState> {
|
|
31
|
+
state = {
|
|
32
|
+
navbarScrolled: false,
|
|
33
|
+
showBackToTop: false,
|
|
34
|
+
mobileMenuOpen: false,
|
|
35
|
+
animatedNumbers: { projects: 0, clients: 0, experience: 0, awards: 0 },
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
componentDidMount() {
|
|
39
|
+
window.addEventListener('scroll', this.handleScroll);
|
|
40
|
+
this.animateNumbers();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
componentWillUnmount() {
|
|
44
|
+
window.removeEventListener('scroll', this.handleScroll);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
handleScroll() {
|
|
48
|
+
const scrollTop = window.pageYOffset;
|
|
49
|
+
this.setState({
|
|
50
|
+
navbarScrolled: scrollTop > 50,
|
|
51
|
+
showBackToTop: scrollTop > 300,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
scrollToTop() {
|
|
56
|
+
window.scrollTo({
|
|
57
|
+
top: 0,
|
|
58
|
+
behavior: 'smooth',
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
scrollToSection(sectionId) {
|
|
63
|
+
const element = document.getElementById(sectionId);
|
|
64
|
+
if (element) {
|
|
65
|
+
element.scrollIntoView({
|
|
66
|
+
behavior: 'smooth',
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
animateNumbers() {
|
|
72
|
+
const targets = {
|
|
73
|
+
projects: 150,
|
|
74
|
+
clients: 500,
|
|
75
|
+
experience: 10,
|
|
76
|
+
awards: 25,
|
|
77
|
+
};
|
|
78
|
+
const duration = 2000;
|
|
79
|
+
const steps = 50;
|
|
80
|
+
const interval = duration / steps;
|
|
81
|
+
let currentStep = 0;
|
|
82
|
+
const timer = setInterval(() => {
|
|
83
|
+
currentStep++;
|
|
84
|
+
const progress = currentStep / steps;
|
|
85
|
+
this.setState({
|
|
86
|
+
animatedNumbers: {
|
|
87
|
+
projects: Math.floor(targets.projects * progress),
|
|
88
|
+
clients: Math.floor(targets.clients * progress),
|
|
89
|
+
experience: Math.floor(targets.experience * progress),
|
|
90
|
+
awards: Math.floor(targets.awards * progress),
|
|
91
|
+
},
|
|
92
|
+
});
|
|
93
|
+
if (currentStep >= steps) {
|
|
94
|
+
clearInterval(timer);
|
|
95
|
+
this.setState({
|
|
96
|
+
animatedNumbers: targets,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
}, interval);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
render() {
|
|
103
|
+
return (
|
|
104
|
+
<Page className="min-h-screen bg-[#ffffff]">
|
|
105
|
+
<nav
|
|
106
|
+
className={`fixed top-0 left-0 right-0 z-50 transition-all duration-300 ${
|
|
107
|
+
this.state.navbarScrolled
|
|
108
|
+
? 'bg-[rgba(26,62,114,0.98)] shadow-lg py-3'
|
|
109
|
+
: 'bg-[rgba(26,62,114,0.95)] py-4'
|
|
110
|
+
}`}
|
|
111
|
+
>
|
|
112
|
+
<View className="container ml-[auto] mr-[auto] pl-[16px] pr-[16px]">
|
|
113
|
+
<View className="flex items-center justify-between">
|
|
114
|
+
<View href="#" className="flex items-center">
|
|
115
|
+
<Text className="text-[31px] text-[#ffffff]">LOGO</Text>
|
|
116
|
+
</View>
|
|
117
|
+
<button
|
|
118
|
+
className="lg:hidden text-[#ffffff]"
|
|
119
|
+
onClick={() =>
|
|
120
|
+
this.setState({
|
|
121
|
+
mobileMenuOpen: !this.state.mobileMenuOpen,
|
|
122
|
+
})
|
|
123
|
+
}
|
|
124
|
+
>
|
|
125
|
+
<Icon className="fas fa-bars text-xl" />
|
|
126
|
+
</button>
|
|
127
|
+
<View className="hidden lg:flex space-x-8 items-center">
|
|
128
|
+
<View
|
|
129
|
+
href="#home"
|
|
130
|
+
className="text-white hover:text-gray-300 transition-colors"
|
|
131
|
+
onClick={() => this.scrollToSection('home')}
|
|
132
|
+
>
|
|
133
|
+
<Text>首页</Text>
|
|
134
|
+
</View>
|
|
135
|
+
<View
|
|
136
|
+
href="#services"
|
|
137
|
+
className="text-white hover:text-gray-300 transition-colors"
|
|
138
|
+
onClick={() => this.scrollToSection('services')}
|
|
139
|
+
>
|
|
140
|
+
<Text>服务</Text>
|
|
141
|
+
</View>
|
|
142
|
+
<View
|
|
143
|
+
href="#about"
|
|
144
|
+
className="text-white hover:text-gray-300 transition-colors"
|
|
145
|
+
onClick={() => this.scrollToSection('about')}
|
|
146
|
+
>
|
|
147
|
+
<Text>关于我们</Text>
|
|
148
|
+
</View>
|
|
149
|
+
<View
|
|
150
|
+
href="#team"
|
|
151
|
+
className="text-white hover:text-gray-300 transition-colors"
|
|
152
|
+
onClick={() => this.scrollToSection('team')}
|
|
153
|
+
>
|
|
154
|
+
<Text>团队</Text>
|
|
155
|
+
</View>
|
|
156
|
+
<View
|
|
157
|
+
href="#portfolio"
|
|
158
|
+
className="text-white hover:text-gray-300 transition-colors"
|
|
159
|
+
onClick={() => this.scrollToSection('portfolio')}
|
|
160
|
+
>
|
|
161
|
+
<Text>案例</Text>
|
|
162
|
+
</View>
|
|
163
|
+
<View
|
|
164
|
+
href="#contact"
|
|
165
|
+
className="text-white hover:text-gray-300 transition-colors"
|
|
166
|
+
onClick={() => this.scrollToSection('contact')}
|
|
167
|
+
>
|
|
168
|
+
<Text>联系我们</Text>
|
|
169
|
+
</View>
|
|
170
|
+
<View
|
|
171
|
+
href="tel:+86-400-123-4567"
|
|
172
|
+
className="border-white text-white hover:bg-white hover:text-[#1A3E72] transition-all duration-300 border-solid border border-solid pl-[16px] pr-[16px] pt-[8px] pb-[8px] rounded-full"
|
|
173
|
+
>
|
|
174
|
+
<Text>联系我们</Text>
|
|
175
|
+
</View>
|
|
176
|
+
</View>
|
|
177
|
+
</View>
|
|
178
|
+
</View>
|
|
179
|
+
</nav>
|
|
180
|
+
<section
|
|
181
|
+
id="home"
|
|
182
|
+
className="bg-gradient-to-br from-[#1A3E72] via-[#1A3E72] to-[#142D55] relative text-[#ffffff] pt-[128px] pb-[96px] overflow-hidden"
|
|
183
|
+
>
|
|
184
|
+
<View className="top-1/4 left-1/12 animate-pulse absolute w-[128px] h-[128px] bg-[#E74C3C] rounded-full [opacity:0.1]" />
|
|
185
|
+
<View className="bottom-1/4 right-1/12 animate-pulse delay-1000 absolute w-[160px] h-[160px] bg-[#F39C12] rounded-full [opacity:0.1]" />
|
|
186
|
+
<View className="container ml-[auto] mr-[auto] pl-[16px] pr-[16px] relative z-10">
|
|
187
|
+
<View className="lg:grid-cols-2 grid gap-12 items-center">
|
|
188
|
+
<View>
|
|
189
|
+
<h1 className="text-4xl md:text-5xl lg:text-6xl font-bold mb-[24px] [lineHeight:1.25]">
|
|
190
|
+
<Text>创新科技</Text>
|
|
191
|
+
<br />
|
|
192
|
+
<Text>引领未来</Text>
|
|
193
|
+
</h1>
|
|
194
|
+
<p className="text-xl md:text-2xl text-gray-200 mb-[32px]">
|
|
195
|
+
专业的技术团队,为您提供全方位的数字化解决方案
|
|
196
|
+
</p>
|
|
197
|
+
<View className="flex flex-wrap gap-4">
|
|
198
|
+
<button
|
|
199
|
+
onClick={() => this.scrollToSection('contact')}
|
|
200
|
+
className="bg-[#E74C3C] hover:bg-[#c0392b] transition-all duration-300 transform hover:scale-105 text-[#ffffff] pl-[32px] pr-[32px] pt-[12px] pb-[12px] rounded-full font-semibold"
|
|
201
|
+
>
|
|
202
|
+
<Text>立即咨询</Text>
|
|
203
|
+
</button>
|
|
204
|
+
<button
|
|
205
|
+
onClick={() => this.scrollToSection('services')}
|
|
206
|
+
className="border-2 border-white text-white hover:bg-white hover:text-[#1A3E72] transition-all duration-300 pl-[32px] pr-[32px] pt-[12px] pb-[12px] rounded-full font-semibold"
|
|
207
|
+
>
|
|
208
|
+
<Text>了解服务</Text>
|
|
209
|
+
</button>
|
|
210
|
+
</View>
|
|
211
|
+
</View>
|
|
212
|
+
<View className="hidden lg:block">
|
|
213
|
+
<View className="bg-white/10 backdrop-blur-sm rounded-2xl p-[32px]">
|
|
214
|
+
<h3 className="text-2xl font-bold mb-[24px]">企业数据概览</h3>
|
|
215
|
+
<View className="grid grid-cols-2 gap-6">
|
|
216
|
+
<View className="">
|
|
217
|
+
<View className="text-4xl font-bold text-[#F39C12] mb-[8px]">
|
|
218
|
+
<Text>{this.state.animatedNumbers.projects}</Text>
|
|
219
|
+
</View>
|
|
220
|
+
<p className="text-sm text-[#d1d5db]">成功项目</p>
|
|
221
|
+
</View>
|
|
222
|
+
<View className="">
|
|
223
|
+
<View className="text-4xl font-bold text-[#F39C12] mb-[8px]">
|
|
224
|
+
<Text>{this.state.animatedNumbers.clients}</Text>
|
|
225
|
+
</View>
|
|
226
|
+
<p className="text-sm text-[#d1d5db]">满意客户</p>
|
|
227
|
+
</View>
|
|
228
|
+
<View className="">
|
|
229
|
+
<View className="text-4xl font-bold text-[#F39C12] mb-[8px]">
|
|
230
|
+
<Text>{this.state.animatedNumbers.experience}</Text>
|
|
231
|
+
</View>
|
|
232
|
+
<p className="text-sm text-[#d1d5db]">年行业经验</p>
|
|
233
|
+
</View>
|
|
234
|
+
<View className="">
|
|
235
|
+
<View className="text-4xl font-bold text-[#F39C12] mb-[8px]">
|
|
236
|
+
<Text>{this.state.animatedNumbers.awards}</Text>
|
|
237
|
+
</View>
|
|
238
|
+
<p className="text-sm text-[#d1d5db]">获得奖项</p>
|
|
239
|
+
</View>
|
|
240
|
+
</View>
|
|
241
|
+
</View>
|
|
242
|
+
</View>
|
|
243
|
+
</View>
|
|
244
|
+
</View>
|
|
245
|
+
</section>
|
|
246
|
+
<section
|
|
247
|
+
id="services"
|
|
248
|
+
className="pt-[80px] pb-[80px] bg-[var(--gray-50)]"
|
|
249
|
+
>
|
|
250
|
+
<View className="container ml-[auto] mr-[auto] pl-[16px] pr-[16px]">
|
|
251
|
+
<View className="mb-[64px]">
|
|
252
|
+
<h2 className="inline-block text-4xl font-bold text-[#1A3E72] mb-[16px] relative">
|
|
253
|
+
<Text>我们的服务</Text>
|
|
254
|
+
<Text className="-bottom-3 left-1/2 transform -translate-x-1/2 bg-gradient-to-r from-[#E74C3C] to-[#F39C12] absolute w-[64px] h-[4px]" />
|
|
255
|
+
</h2>
|
|
256
|
+
<p className="text-xl text-[#4b5563]">
|
|
257
|
+
为企业提供全方位的数字化解决方案
|
|
258
|
+
</p>
|
|
259
|
+
</View>
|
|
260
|
+
<View className="md:grid-cols-3 grid gap-8">
|
|
261
|
+
{[
|
|
262
|
+
{
|
|
263
|
+
title: 'Web开发',
|
|
264
|
+
icon: 'fas fa-code',
|
|
265
|
+
image:
|
|
266
|
+
'https://images.unsplash.com/photo-1461749280684-dccba630e2f6?w=800',
|
|
267
|
+
items: [
|
|
268
|
+
'响应式网站',
|
|
269
|
+
'电商平台',
|
|
270
|
+
'企业官网',
|
|
271
|
+
'Web应用',
|
|
272
|
+
'API开发',
|
|
273
|
+
'性能优化',
|
|
274
|
+
'SEO优化',
|
|
275
|
+
],
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
title: '移动应用开发',
|
|
279
|
+
icon: 'fas fa-mobile-alt',
|
|
280
|
+
image:
|
|
281
|
+
'https://images.unsplash.com/photo-1512941937669-90a1b58e7e9c?w=800',
|
|
282
|
+
items: [
|
|
283
|
+
'iOS应用',
|
|
284
|
+
'Android应用',
|
|
285
|
+
'跨平台开发',
|
|
286
|
+
'UI/UX设计',
|
|
287
|
+
'应用商店上架',
|
|
288
|
+
'应用维护',
|
|
289
|
+
],
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
title: '云服务与运维',
|
|
293
|
+
icon: 'fas fa-cloud',
|
|
294
|
+
image:
|
|
295
|
+
'https://images.unsplash.com/photo-1451187580459-43490279c0fa?w=800',
|
|
296
|
+
items: [
|
|
297
|
+
'云架构设计',
|
|
298
|
+
'服务器部署',
|
|
299
|
+
'数据库管理',
|
|
300
|
+
'安全防护',
|
|
301
|
+
'监控运维',
|
|
302
|
+
'备份恢复',
|
|
303
|
+
],
|
|
304
|
+
},
|
|
305
|
+
].map((service, index) => (
|
|
306
|
+
<View
|
|
307
|
+
key={index}
|
|
308
|
+
className="shadow-lg hover:shadow-2xl transition-all duration-300 transform hover:-translate-y-2 bg-[#ffffff] rounded-2xl"
|
|
309
|
+
>
|
|
310
|
+
<View className="rounded-t-[16px] h-[192px] bg-cover bg-center" />
|
|
311
|
+
<View className="p-[32px]">
|
|
312
|
+
<View className="text-4xl text-[#E74C3C] mb-[16px]">
|
|
313
|
+
<Icon className={service.icon} />
|
|
314
|
+
</View>
|
|
315
|
+
<h3 className="text-2xl font-bold mb-[16px]">
|
|
316
|
+
{service.title}
|
|
317
|
+
</h3>
|
|
318
|
+
<ul className="space-y-2 mb-[24px]">
|
|
319
|
+
{service.items.map((item, idx) => (
|
|
320
|
+
<li key={idx} className="flex items-center">
|
|
321
|
+
<Icon className="fas fa-check-circle text-[#1A3E72] mr-[8px]" />
|
|
322
|
+
<Text className="text-[#374151]">{item}</Text>
|
|
323
|
+
</li>
|
|
324
|
+
))}
|
|
325
|
+
</ul>
|
|
326
|
+
<View
|
|
327
|
+
href="#"
|
|
328
|
+
className="text-[#1A3E72] hover:text-[#E74C3C] transition-colors font-semibold"
|
|
329
|
+
>
|
|
330
|
+
<Text>查看详情</Text>
|
|
331
|
+
<Icon className="fas fa-arrow-right ml-[4px]" />
|
|
332
|
+
</View>
|
|
333
|
+
</View>
|
|
334
|
+
</View>
|
|
335
|
+
))}
|
|
336
|
+
</View>
|
|
337
|
+
</View>
|
|
338
|
+
</section>
|
|
339
|
+
<section className="pt-[80px] pb-[80px]">
|
|
340
|
+
<View className="container ml-[auto] mr-[auto] pl-[16px] pr-[16px]">
|
|
341
|
+
<View className="mb-[64px]">
|
|
342
|
+
<h2 className="inline-block text-4xl font-bold text-[#1A3E72] mb-[16px] relative">
|
|
343
|
+
<Text>合作客户</Text>
|
|
344
|
+
<Text className="-bottom-3 left-1/2 transform -translate-x-1/2 bg-gradient-to-r from-[#E74C3C] to-[#F39C12] absolute w-[64px] h-[4px]" />
|
|
345
|
+
</h2>
|
|
346
|
+
<p className="text-xl text-[#4b5563]">
|
|
347
|
+
服务众多知名企业,助力数字化转型
|
|
348
|
+
</p>
|
|
349
|
+
</View>
|
|
350
|
+
<View className="md:grid-cols-3 lg:grid-cols-5 grid grid-cols-2 gap-8">
|
|
351
|
+
{[
|
|
352
|
+
'阿里巴巴',
|
|
353
|
+
'腾讯科技',
|
|
354
|
+
'百度',
|
|
355
|
+
'京东',
|
|
356
|
+
'美团',
|
|
357
|
+
'字节跳动',
|
|
358
|
+
'小米科技',
|
|
359
|
+
'华为',
|
|
360
|
+
'滴滴出行',
|
|
361
|
+
'网易',
|
|
362
|
+
'新浪',
|
|
363
|
+
'搜狐',
|
|
364
|
+
'360',
|
|
365
|
+
'携程',
|
|
366
|
+
'拼多多',
|
|
367
|
+
].map((client, index) => (
|
|
368
|
+
<View key={index} className="group ">
|
|
369
|
+
<View className="group-hover:shadow-lg transition-all duration-300 bg-[#f3f4f6] rounded-lg p-[24px] mb-[12px]">
|
|
370
|
+
<Image
|
|
371
|
+
src={`https://via.placeholder.com/150x60/FFFFFF/1A3E72?text=${encodeURIComponent(
|
|
372
|
+
client
|
|
373
|
+
)}`}
|
|
374
|
+
alt={client}
|
|
375
|
+
className="filter grayscale group-hover:grayscale-0 transition-all duration-300 w-full h-[48px] [objectFit:contain]"
|
|
376
|
+
/>
|
|
377
|
+
</View>
|
|
378
|
+
<p className="text-sm font-medium text-[#374151]">{client}</p>
|
|
379
|
+
</View>
|
|
380
|
+
))}
|
|
381
|
+
</View>
|
|
382
|
+
</View>
|
|
383
|
+
</section>
|
|
384
|
+
<section id="about" className="pt-[80px] pb-[80px] bg-[var(--gray-50)]">
|
|
385
|
+
<View className="container ml-[auto] mr-[auto] pl-[16px] pr-[16px]">
|
|
386
|
+
<View className="lg:grid-cols-2 grid gap-16">
|
|
387
|
+
<View>
|
|
388
|
+
<h2 className="inline-block text-4xl font-bold text-[#1A3E72] mb-[32px] relative">
|
|
389
|
+
<Text>企业使命与愿景</Text>
|
|
390
|
+
<Text className="-bottom-3 bg-gradient-to-r from-[#E74C3C] to-[#F39C12] absolute left-[0px] w-[64px] h-[4px]" />
|
|
391
|
+
</h2>
|
|
392
|
+
<View className="mb-[32px]">
|
|
393
|
+
<h3 className="bg-gradient-to-r from-[#1A3E72] to-[#E74C3C] [WebkitBackgroundClip:text] [WebkitTextFillColor:transparent] [backgroundClip:text] [WebkitBackgroundClip:text] [WebkitTextFillColor:transparent] [backgroundClip:text] text-2xl font-bold mb-[16px]">
|
|
394
|
+
使命 (Mission)
|
|
395
|
+
</h3>
|
|
396
|
+
<p className="text-xl font-bold mb-[16px]">
|
|
397
|
+
通过创新技术和专业服务,助力企业数字化转型,创造更大价值
|
|
398
|
+
</p>
|
|
399
|
+
<ul className="space-y-2">
|
|
400
|
+
<li className="flex items-start">
|
|
401
|
+
<Icon className="fas fa-check-circle text-[#1A3E72] mr-[12px] mt-[4px]" />
|
|
402
|
+
<Text>提供高质量的技术解决方案</Text>
|
|
403
|
+
</li>
|
|
404
|
+
<li className="flex items-start">
|
|
405
|
+
<Icon className="fas fa-check-circle text-[#1A3E72] mr-[12px] mt-[4px]" />
|
|
406
|
+
<Text>专注客户需求,持续创新</Text>
|
|
407
|
+
</li>
|
|
408
|
+
<li className="flex items-start">
|
|
409
|
+
<Icon className="fas fa-check-circle text-[#1A3E72] mr-[12px] mt-[4px]" />
|
|
410
|
+
<Text>构建长期合作伙伴关系</Text>
|
|
411
|
+
</li>
|
|
412
|
+
</ul>
|
|
413
|
+
</View>
|
|
414
|
+
<View>
|
|
415
|
+
<h3 className="bg-gradient-to-r from-[#1A3E72] to-[#E74C3C] [WebkitBackgroundClip:text] [WebkitTextFillColor:transparent] [backgroundClip:text] [WebkitBackgroundClip:text] [WebkitTextFillColor:transparent] [backgroundClip:text] text-2xl font-bold mb-[16px]">
|
|
416
|
+
愿景 (Vision)
|
|
417
|
+
</h3>
|
|
418
|
+
<p className="text-xl font-bold mb-[16px]">
|
|
419
|
+
成为行业领先的数字化服务提供商,推动企业创新发展
|
|
420
|
+
</p>
|
|
421
|
+
<ul className="space-y-2">
|
|
422
|
+
<li className="flex items-start">
|
|
423
|
+
<Icon className="fas fa-check-circle text-[#1A3E72] mr-[12px] mt-[4px]" />
|
|
424
|
+
<Text>引领技术创新趋势</Text>
|
|
425
|
+
</li>
|
|
426
|
+
<li className="flex items-start">
|
|
427
|
+
<Icon className="fas fa-check-circle text-[#1A3E72] mr-[12px] mt-[4px]" />
|
|
428
|
+
<Text>打造行业标杆案例</Text>
|
|
429
|
+
</li>
|
|
430
|
+
</ul>
|
|
431
|
+
</View>
|
|
432
|
+
</View>
|
|
433
|
+
<View>
|
|
434
|
+
<h2 className="inline-block text-4xl font-bold text-[#1A3E72] mb-[32px] relative">
|
|
435
|
+
<Text>核心价值观</Text>
|
|
436
|
+
<Text className="-bottom-3 bg-gradient-to-r from-[#E74C3C] to-[#F39C12] absolute left-[0px] w-[64px] h-[4px]" />
|
|
437
|
+
</h2>
|
|
438
|
+
<View className="md:grid-cols-2 grid gap-6">
|
|
439
|
+
{[
|
|
440
|
+
{
|
|
441
|
+
title: '技术创新',
|
|
442
|
+
desc: '持续关注前沿技术,运用最新的开发框架和工具,为客户提供领先的技术解决方案',
|
|
443
|
+
icon: 'fas fa-rocket',
|
|
444
|
+
},
|
|
445
|
+
{
|
|
446
|
+
title: '质量至上',
|
|
447
|
+
desc: '严格的质量控制体系,确保每个项目都达到最高标准,为客户创造长期价值',
|
|
448
|
+
icon: 'fas fa-award',
|
|
449
|
+
},
|
|
450
|
+
{
|
|
451
|
+
title: '客户导向',
|
|
452
|
+
desc: '深入理解客户需求,提供个性化解决方案,与客户共同成长',
|
|
453
|
+
icon: 'fas fa-users',
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
title: '团队协作',
|
|
457
|
+
desc: '高效的团队协作机制,发挥每个成员的专业优势,共同完成项目目标',
|
|
458
|
+
icon: 'fas fa-handshake',
|
|
459
|
+
},
|
|
460
|
+
].map((value, index) => (
|
|
461
|
+
<View
|
|
462
|
+
key={index}
|
|
463
|
+
className="shadow-lg hover:shadow-2xl transition-all duration-300 transform hover:-translate-y-2 border-solid bg-[#ffffff] rounded-2xl p-[24px] border-t-[16px] border-t-solid border-[#D4AF37] border border-solid"
|
|
464
|
+
>
|
|
465
|
+
<h3 className="bg-gradient-to-r from-[#1A3E72] to-[#E74C3C] [WebkitBackgroundClip:text] [WebkitTextFillColor:transparent] [backgroundClip:text] [WebkitBackgroundClip:text] [WebkitTextFillColor:transparent] [backgroundClip:text] text-xl font-bold mb-[12px]">
|
|
466
|
+
{value.title}
|
|
467
|
+
</h3>
|
|
468
|
+
<p className="text-[#374151] mb-[16px]">{value.desc}</p>
|
|
469
|
+
<View className="">
|
|
470
|
+
<Icon
|
|
471
|
+
className={`${value.icon} text-3xl text-gray-300`}
|
|
472
|
+
/>
|
|
473
|
+
</View>
|
|
474
|
+
</View>
|
|
475
|
+
))}
|
|
476
|
+
</View>
|
|
477
|
+
</View>
|
|
478
|
+
</View>
|
|
479
|
+
</View>
|
|
480
|
+
</section>
|
|
481
|
+
<section className="pt-[80px] pb-[80px] bg-[#1A3E72] text-[#ffffff]">
|
|
482
|
+
<View className="container ml-[auto] mr-[auto] pl-[16px] pr-[16px]">
|
|
483
|
+
<View className="md:grid-cols-4 grid gap-8">
|
|
484
|
+
{[
|
|
485
|
+
{
|
|
486
|
+
icon: 'fas fa-project-diagram',
|
|
487
|
+
value: state.animatedNumbers.projects,
|
|
488
|
+
label: '成功项目',
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
icon: 'fas fa-users',
|
|
492
|
+
value: state.animatedNumbers.clients,
|
|
493
|
+
label: '满意客户',
|
|
494
|
+
},
|
|
495
|
+
{
|
|
496
|
+
icon: 'fas fa-calendar-alt',
|
|
497
|
+
value: state.animatedNumbers.experience,
|
|
498
|
+
label: '年行业经验',
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
icon: 'fas fa-trophy',
|
|
502
|
+
value: state.animatedNumbers.awards,
|
|
503
|
+
label: '获得奖项',
|
|
504
|
+
},
|
|
505
|
+
].map((stat, index) => (
|
|
506
|
+
<View key={index} className="">
|
|
507
|
+
<View className="bg-white/10 backdrop-blur-sm hover:bg-white/20 transition-all duration-300 rounded-2xl p-[32px]">
|
|
508
|
+
<Icon
|
|
509
|
+
className={`${stat.icon} text-4xl mb-4 text-[#F39C12]`}
|
|
510
|
+
size={0}
|
|
511
|
+
rotate={0}
|
|
512
|
+
spin={false}
|
|
513
|
+
/>
|
|
514
|
+
<View className="text-4xl font-bold mb-[8px]">
|
|
515
|
+
<Text>{stat?.value}</Text>
|
|
516
|
+
</View>
|
|
517
|
+
<p className="text-[#d1d5db]">{stat.label}</p>
|
|
518
|
+
</View>
|
|
519
|
+
</View>
|
|
520
|
+
))}
|
|
521
|
+
</View>
|
|
522
|
+
</View>
|
|
523
|
+
</section>
|
|
524
|
+
<section id="team" className="pt-[80px] pb-[80px] bg-[var(--gray-50)]">
|
|
525
|
+
<View className="container ml-[auto] mr-[auto] pl-[16px] pr-[16px]">
|
|
526
|
+
<View className="mb-[64px]">
|
|
527
|
+
<h2 className="inline-block text-4xl font-bold text-[#1A3E72] mb-[16px] relative">
|
|
528
|
+
<Text>专业团队</Text>
|
|
529
|
+
<Text className="-bottom-3 left-1/2 transform -translate-x-1/2 bg-gradient-to-r from-[#E74C3C] to-[#F39C12] absolute w-[64px] h-[4px]" />
|
|
530
|
+
</h2>
|
|
531
|
+
<p className="text-xl text-[#4b5563]">
|
|
532
|
+
经验丰富的技术专家,为您提供专业服务
|
|
533
|
+
</p>
|
|
534
|
+
</View>
|
|
535
|
+
<View className="md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 grid gap-8">
|
|
536
|
+
{[
|
|
537
|
+
{
|
|
538
|
+
name: '张伟',
|
|
539
|
+
title: '技术总监',
|
|
540
|
+
role: '全栈开发专家',
|
|
541
|
+
desc: '10年+开发经验,精通前后端技术栈,曾任职于知名互联网公司',
|
|
542
|
+
},
|
|
543
|
+
{
|
|
544
|
+
name: '李明',
|
|
545
|
+
title: '产品经理',
|
|
546
|
+
role: '用户体验专家',
|
|
547
|
+
desc: '专注产品设计与用户体验,成功主导多个大型项目',
|
|
548
|
+
},
|
|
549
|
+
{
|
|
550
|
+
name: '王芳',
|
|
551
|
+
title: 'UI/UX设计师',
|
|
552
|
+
role: '视觉设计专家',
|
|
553
|
+
desc: '资深设计师,擅长品牌视觉和交互设计,作品获得多项设计奖项',
|
|
554
|
+
},
|
|
555
|
+
{
|
|
556
|
+
name: '刘强',
|
|
557
|
+
title: '运维工程师',
|
|
558
|
+
role: '云架构专家',
|
|
559
|
+
desc: '云计算和DevOps专家,负责系统架构设计和运维保障',
|
|
560
|
+
},
|
|
561
|
+
].map((leader, index) => (
|
|
562
|
+
<View
|
|
563
|
+
key={index}
|
|
564
|
+
className="shadow-lg hover:shadow-2xl transition-all duration-300 transform hover:-translate-y-2 bg-[#ffffff] rounded-2xl"
|
|
565
|
+
>
|
|
566
|
+
<Image
|
|
567
|
+
src={`https://images.unsplash.com/photo-${
|
|
568
|
+
1560250097 + index
|
|
569
|
+
}-0b93528c311a?w=400`}
|
|
570
|
+
alt={leader.name}
|
|
571
|
+
className="rounded-t-[16px] w-full h-[256px] [objectFit:cover]"
|
|
572
|
+
/>
|
|
573
|
+
<View className="p-[24px]">
|
|
574
|
+
<h3 className="text-xl font-bold mb-[4px]">
|
|
575
|
+
{leader.name}
|
|
576
|
+
</h3>
|
|
577
|
+
<p className="text-sm text-[#4b5563] mb-[8px]">
|
|
578
|
+
{leader.title}
|
|
579
|
+
</p>
|
|
580
|
+
<p className="text-sm font-semibold text-[#1A3E72] mb-[8px]">
|
|
581
|
+
{leader.role}
|
|
582
|
+
</p>
|
|
583
|
+
<p className="text-sm text-[#4b5563]">{leader.desc}</p>
|
|
584
|
+
</View>
|
|
585
|
+
</View>
|
|
586
|
+
))}
|
|
587
|
+
</View>
|
|
588
|
+
</View>
|
|
589
|
+
</section>
|
|
590
|
+
<section id="portfolio" className="pt-[80px] pb-[80px]">
|
|
591
|
+
<View className="container ml-[auto] mr-[auto] pl-[16px] pr-[16px]">
|
|
592
|
+
<View className="mb-[64px]">
|
|
593
|
+
<h2 className="inline-block text-4xl font-bold text-[#1A3E72] mb-[16px] relative">
|
|
594
|
+
<Text>成功案例</Text>
|
|
595
|
+
<Text className="-bottom-3 left-1/2 transform -translate-x-1/2 bg-gradient-to-r from-[#E74C3C] to-[#F39C12] absolute w-[64px] h-[4px]" />
|
|
596
|
+
</h2>
|
|
597
|
+
<p className="text-xl text-[#4b5563]">
|
|
598
|
+
精选项目案例,展示我们的专业实力
|
|
599
|
+
</p>
|
|
600
|
+
</View>
|
|
601
|
+
<View className="lg:grid-cols-2 grid gap-12">
|
|
602
|
+
<View>
|
|
603
|
+
<View className="space-y-8">
|
|
604
|
+
{[
|
|
605
|
+
'电商平台开发',
|
|
606
|
+
'企业管理系统',
|
|
607
|
+
'移动应用开发',
|
|
608
|
+
'云架构迁移',
|
|
609
|
+
'数据分析平台',
|
|
610
|
+
].map((item, index) => (
|
|
611
|
+
<View key={index} className="flex items-start">
|
|
612
|
+
<View className="flex-shrink-0 w-[16px] h-[16px] bg-[#E74C3C] rounded-full mt-[8px] mr-[16px] relative">
|
|
613
|
+
<View className="inset-0 animate-ping absolute bg-[#E74C3C] rounded-full" />
|
|
614
|
+
</View>
|
|
615
|
+
<View>
|
|
616
|
+
<h4 className="text-lg font-semibold">{item}</h4>
|
|
617
|
+
<p className="text-[#4b5563]">
|
|
618
|
+
运用先进技术,为客户创造价值
|
|
619
|
+
</p>
|
|
620
|
+
</View>
|
|
621
|
+
</View>
|
|
622
|
+
))}
|
|
623
|
+
</View>
|
|
624
|
+
</View>
|
|
625
|
+
<View>
|
|
626
|
+
<View className="space-y-8">
|
|
627
|
+
{[
|
|
628
|
+
'品牌官网设计',
|
|
629
|
+
'API接口开发',
|
|
630
|
+
'系统性能优化',
|
|
631
|
+
'安全防护升级',
|
|
632
|
+
'运维监控系统',
|
|
633
|
+
].map((item, index) => (
|
|
634
|
+
<View key={index} className="flex items-start">
|
|
635
|
+
<View className="flex-shrink-0 w-[16px] h-[16px] bg-[#E74C3C] rounded-full mt-[8px] mr-[16px] relative">
|
|
636
|
+
<View className="inset-0 animate-ping absolute bg-[#E74C3C] rounded-full" />
|
|
637
|
+
</View>
|
|
638
|
+
<View>
|
|
639
|
+
<h4 className="text-lg font-semibold">{item}</h4>
|
|
640
|
+
<p className="text-[#4b5563]">专业服务,保障项目成功</p>
|
|
641
|
+
</View>
|
|
642
|
+
</View>
|
|
643
|
+
))}
|
|
644
|
+
</View>
|
|
645
|
+
</View>
|
|
646
|
+
</View>
|
|
647
|
+
</View>
|
|
648
|
+
</section>
|
|
649
|
+
<section className="pt-[80px] pb-[80px]">
|
|
650
|
+
<View className="container ml-[auto] mr-[auto] pl-[16px] pr-[16px]">
|
|
651
|
+
<View className="mb-[64px]">
|
|
652
|
+
<h2 className="inline-block text-4xl font-bold text-[#1A3E72] mb-[16px] relative">
|
|
653
|
+
<Text>客户见证</Text>
|
|
654
|
+
<Text className="-bottom-3 left-1/2 transform -translate-x-1/2 bg-gradient-to-r from-[#E74C3C] to-[#F39C12] absolute w-[64px] h-[4px]" />
|
|
655
|
+
</h2>
|
|
656
|
+
<p className="text-xl text-[#4b5563]">客户的成功就是我们的成功</p>
|
|
657
|
+
</View>
|
|
658
|
+
<View className="md:grid-cols-3 grid gap-8">
|
|
659
|
+
{[
|
|
660
|
+
{
|
|
661
|
+
name: '张总',
|
|
662
|
+
company: '某电商平台CTO',
|
|
663
|
+
quote:
|
|
664
|
+
'TechCorp团队的技术实力和服务态度都非常出色,帮助我们成功完成了平台的技术升级,用户体验得到了显著提升,业务增长超出预期。',
|
|
665
|
+
},
|
|
666
|
+
{
|
|
667
|
+
name: '李总',
|
|
668
|
+
company: '某制造企业信息总监',
|
|
669
|
+
quote:
|
|
670
|
+
'与TechCorp合作开发的企业管理系统,大大提高了我们的工作效率。他们的专业团队不仅技术过硬,更重要的是能够深入理解我们的业务需求。',
|
|
671
|
+
},
|
|
672
|
+
{
|
|
673
|
+
name: '王总',
|
|
674
|
+
company: '某金融公司产品经理',
|
|
675
|
+
quote:
|
|
676
|
+
'从需求分析到系统上线,TechCorp提供了全程的专业服务。他们的移动应用开发能力让我们的产品在市场上获得了很好的反响。',
|
|
677
|
+
},
|
|
678
|
+
].map((testimonial, index) => (
|
|
679
|
+
<View
|
|
680
|
+
key={index}
|
|
681
|
+
className="bg-[#ffffff] rounded-2xl shadow-[0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)] p-[32px] relative"
|
|
682
|
+
>
|
|
683
|
+
<View className="top-[16px] right-[16px] absolute text-6xl text-[#e5e7eb]">
|
|
684
|
+
<Icon className="fas fa-quote-right" />
|
|
685
|
+
</View>
|
|
686
|
+
<p className="italic text-[#374151] mb-[24px]">{`"${testimonial.quote}"`}</p>
|
|
687
|
+
<View className="flex items-center">
|
|
688
|
+
<Image
|
|
689
|
+
src={`https://images.unsplash.com/photo-${
|
|
690
|
+
1560250097 + index
|
|
691
|
+
}-0b93528c311a?w=100`}
|
|
692
|
+
alt={testimonial.name}
|
|
693
|
+
className="w-[48px] h-[48px] rounded-full mr-[16px]"
|
|
694
|
+
/>
|
|
695
|
+
<View>
|
|
696
|
+
<h4 className="font-bold">{testimonial.name}</h4>
|
|
697
|
+
<p className="text-sm text-[#4b5563]">
|
|
698
|
+
{testimonial.company}
|
|
699
|
+
</p>
|
|
700
|
+
</View>
|
|
701
|
+
</View>
|
|
702
|
+
</View>
|
|
703
|
+
))}
|
|
704
|
+
</View>
|
|
705
|
+
<View className="mt-[48px]">
|
|
706
|
+
<button className="text-[#1A3E72] hover:bg-[#1A3E72] hover:text-white transition-all duration-300 border-solid border border-solid border-[#1A3E72] pl-[24px] pr-[24px] pt-[12px] pb-[12px] rounded-full mr-[16px]">
|
|
707
|
+
<Text>查看更多案例</Text>
|
|
708
|
+
</button>
|
|
709
|
+
<button className="bg-[#1A3E72] hover:bg-[#142D55] transition-all duration-300 text-[#ffffff] pl-[24px] pr-[24px] pt-[12px] pb-[12px] rounded-full">
|
|
710
|
+
<Text>印尼观察报告</Text>
|
|
711
|
+
</button>
|
|
712
|
+
</View>
|
|
713
|
+
</View>
|
|
714
|
+
</section>
|
|
715
|
+
<section
|
|
716
|
+
id="contact"
|
|
717
|
+
className="pt-[80px] pb-[80px] bg-[#1A3E72] text-[#ffffff]"
|
|
718
|
+
>
|
|
719
|
+
<View className="container ml-[auto] mr-[auto] pl-[16px] pr-[16px]">
|
|
720
|
+
<View className="lg:grid-cols-2 grid gap-12">
|
|
721
|
+
<View>
|
|
722
|
+
<h2 className="text-4xl font-bold mb-[24px]">联系我们</h2>
|
|
723
|
+
<p className="text-xl mb-[32px] text-[#d1d5db]">
|
|
724
|
+
无论您有任何技术需求,我们的专业团队随时为您服务
|
|
725
|
+
</p>
|
|
726
|
+
<View className="space-y-6">
|
|
727
|
+
<View className="flex items-start">
|
|
728
|
+
<View className="bg-white/10 backdrop-blur-sm rounded-full p-[12px] mr-[16px]">
|
|
729
|
+
<Icon className="fas fa-phone-alt" />
|
|
730
|
+
</View>
|
|
731
|
+
<View>
|
|
732
|
+
<h4 className="font-bold mb-[4px]">电话</h4>
|
|
733
|
+
<p className="text-[#d1d5db]">+86-400-123-4567</p>
|
|
734
|
+
</View>
|
|
735
|
+
</View>
|
|
736
|
+
<View className="flex items-start">
|
|
737
|
+
<View className="bg-white/10 backdrop-blur-sm rounded-full p-[12px] mr-[16px]">
|
|
738
|
+
<Icon className="fas fa-envelope" />
|
|
739
|
+
</View>
|
|
740
|
+
<View>
|
|
741
|
+
<h4 className="font-bold mb-[4px]">邮箱</h4>
|
|
742
|
+
<p className="text-[#d1d5db]">contact@techcorp.com</p>
|
|
743
|
+
</View>
|
|
744
|
+
</View>
|
|
745
|
+
<View className="flex items-start">
|
|
746
|
+
<View className="bg-white/10 backdrop-blur-sm rounded-full p-[12px] mr-[16px]">
|
|
747
|
+
<Icon className="fas fa-map-marker-alt" />
|
|
748
|
+
</View>
|
|
749
|
+
<View>
|
|
750
|
+
<h4 className="font-bold mb-[4px]">地址</h4>
|
|
751
|
+
<p className="text-[#d1d5db]">
|
|
752
|
+
北京市朝阳区建国门外大街1号国贸大厦A座20层
|
|
753
|
+
</p>
|
|
754
|
+
</View>
|
|
755
|
+
</View>
|
|
756
|
+
</View>
|
|
757
|
+
<View className="flex flex-wrap gap-4 mt-[32px]">
|
|
758
|
+
<View
|
|
759
|
+
href="tel:+86-400-123-4567"
|
|
760
|
+
className="bg-white hover:bg-gray-100 transition-all duration-300 text-[#1A3E72] pl-[24px] pr-[24px] pt-[12px] pb-[12px] rounded-full font-semibold"
|
|
761
|
+
>
|
|
762
|
+
<Icon className="fas fa-phone-alt mr-[8px]" />
|
|
763
|
+
<Text>电话咨询</Text>
|
|
764
|
+
</View>
|
|
765
|
+
<View
|
|
766
|
+
href="mailto:contact@techcorp.com"
|
|
767
|
+
className="border-white text-white hover:bg-white hover:text-[#1A3E72] transition-all duration-300 border-solid border border-solid pl-[24px] pr-[24px] pt-[12px] pb-[12px] rounded-full font-semibold"
|
|
768
|
+
>
|
|
769
|
+
<Icon className="fas fa-envelope mr-[8px]" />
|
|
770
|
+
<Text>邮件联系</Text>
|
|
771
|
+
</View>
|
|
772
|
+
</View>
|
|
773
|
+
</View>
|
|
774
|
+
<View>
|
|
775
|
+
<View className="bg-[#ffffff] rounded-2xl p-[32px]">
|
|
776
|
+
<h3 className="text-2xl font-bold text-[#1A3E72] mb-[24px]">
|
|
777
|
+
咨询表单
|
|
778
|
+
</h3>
|
|
779
|
+
<form>
|
|
780
|
+
<View className="mb-[16px]">
|
|
781
|
+
<label className="block text-[#374151] mb-[8px]">
|
|
782
|
+
<Text>姓名</Text>
|
|
783
|
+
<Text className="text-[#ef4444]">*</Text>
|
|
784
|
+
</label>
|
|
785
|
+
<input
|
|
786
|
+
type="text"
|
|
787
|
+
className="border-gray-300 focus:outline-none focus:border-[#1A3E72] border-solid w-full pl-[16px] pr-[16px] pt-[12px] pb-[12px] border border-solid rounded-lg"
|
|
788
|
+
required={true}
|
|
789
|
+
/>
|
|
790
|
+
</View>
|
|
791
|
+
<View className="mb-[16px]">
|
|
792
|
+
<label className="block text-[#374151] mb-[8px]">
|
|
793
|
+
<Text>公司名称</Text>
|
|
794
|
+
</label>
|
|
795
|
+
<input
|
|
796
|
+
type="text"
|
|
797
|
+
className="border-gray-300 focus:outline-none focus:border-[#1A3E72] border-solid w-full pl-[16px] pr-[16px] pt-[12px] pb-[12px] border border-solid rounded-lg"
|
|
798
|
+
/>
|
|
799
|
+
</View>
|
|
800
|
+
<View className="md:grid-cols-2 grid gap-4 mb-[16px]">
|
|
801
|
+
<View>
|
|
802
|
+
<label className="block text-[#374151] mb-[8px]">
|
|
803
|
+
<Text>电话</Text>
|
|
804
|
+
<Text className="text-[#ef4444]">*</Text>
|
|
805
|
+
</label>
|
|
806
|
+
<input
|
|
807
|
+
type="tel"
|
|
808
|
+
className="border-gray-300 focus:outline-none focus:border-[#1A3E72] border-solid w-full pl-[16px] pr-[16px] pt-[12px] pb-[12px] border border-solid rounded-lg"
|
|
809
|
+
required={true}
|
|
810
|
+
/>
|
|
811
|
+
</View>
|
|
812
|
+
<View>
|
|
813
|
+
<label className="block text-[#374151] mb-[8px]">
|
|
814
|
+
<Text>邮箱</Text>
|
|
815
|
+
<Text className="text-[#ef4444]">*</Text>
|
|
816
|
+
</label>
|
|
817
|
+
<input
|
|
818
|
+
type="email"
|
|
819
|
+
className="border-gray-300 focus:outline-none focus:border-[#1A3E72] border-solid w-full pl-[16px] pr-[16px] pt-[12px] pb-[12px] border border-solid rounded-lg"
|
|
820
|
+
required={true}
|
|
821
|
+
/>
|
|
822
|
+
</View>
|
|
823
|
+
</View>
|
|
824
|
+
<View className="mb-[16px]">
|
|
825
|
+
<label className="block text-[#374151] mb-[8px]">
|
|
826
|
+
<Text>感兴趣的服务</Text>
|
|
827
|
+
</label>
|
|
828
|
+
<select className="border-gray-300 focus:outline-none focus:border-[#1A3E72] border-solid w-full pl-[16px] pr-[16px] pt-[12px] pb-[12px] border border-solid rounded-lg">
|
|
829
|
+
<option>
|
|
830
|
+
<Text>请选择服务类型</Text>
|
|
831
|
+
</option>
|
|
832
|
+
<option>
|
|
833
|
+
<Text>Web开发</Text>
|
|
834
|
+
</option>
|
|
835
|
+
<option>
|
|
836
|
+
<Text>移动应用开发</Text>
|
|
837
|
+
</option>
|
|
838
|
+
<option>
|
|
839
|
+
<Text>云服务与运维</Text>
|
|
840
|
+
</option>
|
|
841
|
+
<option>
|
|
842
|
+
<Text>UI/UX设计</Text>
|
|
843
|
+
</option>
|
|
844
|
+
<option>
|
|
845
|
+
<Text>系统集成</Text>
|
|
846
|
+
</option>
|
|
847
|
+
<option>
|
|
848
|
+
<Text>技术咨询</Text>
|
|
849
|
+
</option>
|
|
850
|
+
<option>
|
|
851
|
+
<Text>数据分析</Text>
|
|
852
|
+
</option>
|
|
853
|
+
<option>
|
|
854
|
+
<Text>安全防护</Text>
|
|
855
|
+
</option>
|
|
856
|
+
<option>
|
|
857
|
+
<Text>性能优化</Text>
|
|
858
|
+
</option>
|
|
859
|
+
<option>
|
|
860
|
+
<Text>其他服务</Text>
|
|
861
|
+
</option>
|
|
862
|
+
</select>
|
|
863
|
+
</View>
|
|
864
|
+
<View className="mb-[24px]">
|
|
865
|
+
<label className="block text-[#374151] mb-[8px]">
|
|
866
|
+
<Text>咨询内容</Text>
|
|
867
|
+
</label>
|
|
868
|
+
<textarea
|
|
869
|
+
className="border-gray-300 focus:outline-none focus:border-[#1A3E72] border-solid w-full pl-[16px] pr-[16px] pt-[12px] pb-[12px] border border-solid rounded-lg"
|
|
870
|
+
rows="4"
|
|
871
|
+
/>
|
|
872
|
+
</View>
|
|
873
|
+
<button
|
|
874
|
+
type="submit"
|
|
875
|
+
className="bg-[#E74C3C] hover:bg-[#c0392b] transition-all duration-300 w-full text-[#ffffff] pt-[16px] pb-[16px] rounded-lg font-bold"
|
|
876
|
+
>
|
|
877
|
+
<Text>提交咨询</Text>
|
|
878
|
+
</button>
|
|
879
|
+
</form>
|
|
880
|
+
</View>
|
|
881
|
+
</View>
|
|
882
|
+
</View>
|
|
883
|
+
</View>
|
|
884
|
+
</section>
|
|
885
|
+
<footer className="bg-[#2C3E50] text-[#ffffff] pt-[64px] pb-[64px]">
|
|
886
|
+
<View className="container ml-[auto] mr-[auto] pl-[16px] pr-[16px]">
|
|
887
|
+
<View className="md:grid-cols-2 lg:grid-cols-4 grid gap-8">
|
|
888
|
+
<View>
|
|
889
|
+
<Image
|
|
890
|
+
src="https://via.placeholder.com/180x50/FFFFFF/1A3E72?text=TechCorp"
|
|
891
|
+
alt="TechCorp"
|
|
892
|
+
className="mb-[16px]"
|
|
893
|
+
/>
|
|
894
|
+
<p className="text-[#d1d5db] mb-[16px]">
|
|
895
|
+
专业的技术团队,为您提供全方位的数字化解决方案
|
|
896
|
+
</p>
|
|
897
|
+
<View className="space-x-4 flex">
|
|
898
|
+
<View
|
|
899
|
+
href="#"
|
|
900
|
+
className="text-gray-300 hover:text-white transition-colors"
|
|
901
|
+
>
|
|
902
|
+
<Icon className="fab fa-weixin text-xl" />
|
|
903
|
+
</View>
|
|
904
|
+
<View
|
|
905
|
+
href="#"
|
|
906
|
+
className="text-gray-300 hover:text-white transition-colors"
|
|
907
|
+
>
|
|
908
|
+
<Icon className="fab fa-linkedin text-xl" />
|
|
909
|
+
</View>
|
|
910
|
+
<View
|
|
911
|
+
href="#"
|
|
912
|
+
className="text-gray-300 hover:text-white transition-colors"
|
|
913
|
+
>
|
|
914
|
+
<Icon className="fab fa-github text-xl" />
|
|
915
|
+
</View>
|
|
916
|
+
<View
|
|
917
|
+
href="#"
|
|
918
|
+
className="text-gray-300 hover:text-white transition-colors"
|
|
919
|
+
>
|
|
920
|
+
<Icon className="fab fa-twitter text-xl" />
|
|
921
|
+
</View>
|
|
922
|
+
</View>
|
|
923
|
+
</View>
|
|
924
|
+
<View>
|
|
925
|
+
<h4 className="text-lg font-bold mb-[16px]">快速链接</h4>
|
|
926
|
+
<ul className="space-y-2">
|
|
927
|
+
<li>
|
|
928
|
+
<View
|
|
929
|
+
href="#home"
|
|
930
|
+
className="text-gray-300 hover:text-white transition-colors"
|
|
931
|
+
onClick={() => this.scrollToSection('home')}
|
|
932
|
+
>
|
|
933
|
+
<Text>首页</Text>
|
|
934
|
+
</View>
|
|
935
|
+
</li>
|
|
936
|
+
<li>
|
|
937
|
+
<View
|
|
938
|
+
href="#services"
|
|
939
|
+
className="text-gray-300 hover:text-white transition-colors"
|
|
940
|
+
onClick={() => this.scrollToSection('services')}
|
|
941
|
+
>
|
|
942
|
+
<Text>服务</Text>
|
|
943
|
+
</View>
|
|
944
|
+
</li>
|
|
945
|
+
<li>
|
|
946
|
+
<View
|
|
947
|
+
href="#about"
|
|
948
|
+
className="text-gray-300 hover:text-white transition-colors"
|
|
949
|
+
onClick={() => this.scrollToSection('about')}
|
|
950
|
+
>
|
|
951
|
+
<Text>关于我们</Text>
|
|
952
|
+
</View>
|
|
953
|
+
</li>
|
|
954
|
+
<li>
|
|
955
|
+
<View
|
|
956
|
+
href="#team"
|
|
957
|
+
className="text-gray-300 hover:text-white transition-colors"
|
|
958
|
+
onClick={() => this.scrollToSection('team')}
|
|
959
|
+
>
|
|
960
|
+
<Text>团队</Text>
|
|
961
|
+
</View>
|
|
962
|
+
</li>
|
|
963
|
+
<li>
|
|
964
|
+
<View
|
|
965
|
+
href="#portfolio"
|
|
966
|
+
className="text-gray-300 hover:text-white transition-colors"
|
|
967
|
+
onClick={() => this.scrollToSection('portfolio')}
|
|
968
|
+
>
|
|
969
|
+
<Text>案例</Text>
|
|
970
|
+
</View>
|
|
971
|
+
</li>
|
|
972
|
+
<li>
|
|
973
|
+
<View
|
|
974
|
+
href="#contact"
|
|
975
|
+
className="text-gray-300 hover:text-white transition-colors"
|
|
976
|
+
onClick={() => this.scrollToSection('contact')}
|
|
977
|
+
>
|
|
978
|
+
<Text>联系我们</Text>
|
|
979
|
+
</View>
|
|
980
|
+
</li>
|
|
981
|
+
</ul>
|
|
982
|
+
</View>
|
|
983
|
+
<View>
|
|
984
|
+
<h4 className="text-lg font-bold mb-[16px]">服务领域</h4>
|
|
985
|
+
<ul className="space-y-2">
|
|
986
|
+
<li>
|
|
987
|
+
<View
|
|
988
|
+
href="#"
|
|
989
|
+
className="text-gray-300 hover:text-white transition-colors"
|
|
990
|
+
>
|
|
991
|
+
<Text>政府许可与资质</Text>
|
|
992
|
+
</View>
|
|
993
|
+
</li>
|
|
994
|
+
<li>
|
|
995
|
+
<View
|
|
996
|
+
href="#"
|
|
997
|
+
className="text-gray-300 hover:text-white transition-colors"
|
|
998
|
+
>
|
|
999
|
+
<Text>政商关系服务</Text>
|
|
1000
|
+
</View>
|
|
1001
|
+
</li>
|
|
1002
|
+
<li>
|
|
1003
|
+
<View
|
|
1004
|
+
href="#"
|
|
1005
|
+
className="text-gray-300 hover:text-white transition-colors"
|
|
1006
|
+
>
|
|
1007
|
+
<Text>财务与咨询服务</Text>
|
|
1008
|
+
</View>
|
|
1009
|
+
</li>
|
|
1010
|
+
<li>
|
|
1011
|
+
<View
|
|
1012
|
+
href="#indonesia"
|
|
1013
|
+
className="text-gray-300 hover:text-white transition-colors"
|
|
1014
|
+
onClick={() => this.scrollToSection('indonesia')}
|
|
1015
|
+
>
|
|
1016
|
+
<Text>市场概况</Text>
|
|
1017
|
+
</View>
|
|
1018
|
+
</li>
|
|
1019
|
+
</ul>
|
|
1020
|
+
</View>
|
|
1021
|
+
<View>
|
|
1022
|
+
<h4 className="text-lg font-bold mb-[16px]">联系方式</h4>
|
|
1023
|
+
<ul className="space-y-3">
|
|
1024
|
+
<li className="flex items-start">
|
|
1025
|
+
<Icon className="fas fa-map-marker-alt mr-[12px] mt-[4px] text-[#E74C3C]" />
|
|
1026
|
+
<Text className="text-[#d1d5db]">Address xxxxx</Text>
|
|
1027
|
+
</li>
|
|
1028
|
+
<li className="flex items-start">
|
|
1029
|
+
<Icon className="fas fa-phone-alt mr-[12px] mt-[4px] text-[#E74C3C]" />
|
|
1030
|
+
<Text className="text-[#d1d5db]">
|
|
1031
|
+
00000000000 / 000000000
|
|
1032
|
+
</Text>
|
|
1033
|
+
</li>
|
|
1034
|
+
<li className="flex items-start">
|
|
1035
|
+
<Icon className="fas fa-envelope mr-[12px] mt-[4px] text-[#E74C3C]" />
|
|
1036
|
+
<Text className="text-[#d1d5db]">000000000@gmail.com</Text>
|
|
1037
|
+
</li>
|
|
1038
|
+
</ul>
|
|
1039
|
+
</View>
|
|
1040
|
+
</View>
|
|
1041
|
+
<View className="border-gray-600 border-t border-t-solid mt-[48px] pt-[32px]">
|
|
1042
|
+
<View className="md:flex-row flex flex-col justify-between items-center">
|
|
1043
|
+
<p className="mb-4 md:mb-0 text-[#d1d5db]">
|
|
1044
|
+
© 2023 通用咨询. 保留所有权利.
|
|
1045
|
+
</p>
|
|
1046
|
+
<p className="text-[#d1d5db]">赋能中国企业数字化安全高效落地</p>
|
|
1047
|
+
</View>
|
|
1048
|
+
</View>
|
|
1049
|
+
</View>
|
|
1050
|
+
</footer>
|
|
1051
|
+
<button
|
|
1052
|
+
onClick={this.scrollToTop}
|
|
1053
|
+
className={`fixed bottom-8 right-8 w-12 h-12 bg-[#E74C3C] text-white rounded-full flex items-center justify-center shadow-lg transition-all duration-300 ${
|
|
1054
|
+
this.state.showBackToTop
|
|
1055
|
+
? 'opacity-100 translate-y-0'
|
|
1056
|
+
: 'opacity-0 translate-y-10 pointer-events-none'
|
|
1057
|
+
} hover:bg-[#c0392b] hover:scale-110`}
|
|
1058
|
+
>
|
|
1059
|
+
<Icon className="fas fa-arrow-up" />
|
|
1060
|
+
</button>
|
|
1061
|
+
</Page>
|
|
1062
|
+
);
|
|
1063
|
+
}
|
|
1064
|
+
}
|
|
1065
|
+
|
|
1066
|
+
export default Document;
|