@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.
Files changed (122) hide show
  1. package/.gitignore +1 -0
  2. package/bin/main.js +45 -0
  3. package/dist/index.js +1277 -909
  4. package/package.json +1 -1
  5. package/tests/test-app/.appthen/shadow-space-100001-test-app-e99876b1.json +1406 -0
  6. package/tests/test-app/.appthen/shadow-space-unknown-user-test-app-e99876b1.json +1060 -0
  7. package/tests/test-app/.appthen/space-config.json +8 -0
  8. package/tests/test-app/docs/AI-Workflow.flow +112 -0
  9. package/tests/test-app/docs/Logic-1.flow +16 -0
  10. package/tests/test-app/docs/Logic.flow +16 -0
  11. package/tests/test-app/docs/Project-Blueprint-1.flow +119 -0
  12. package/tests/test-app/docs/Project-Blueprint.flow +119 -0
  13. package/tests/test-app/docs/README.md +3 -0
  14. package/tests/test-app/docs/claude.md +194 -0
  15. package/tests/test-app/docs/page_requirement_analysis.md +149 -0
  16. 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
  17. package/tests/test-app/src/apis/AddTodoPost.api.ts +42 -0
  18. package/tests/test-app/src/apis/DeleteTodoPost.api.ts +32 -0
  19. package/tests/test-app/src/apis/GetListPost.api.ts +38 -0
  20. package/tests/test-app/src/apis/TicketAttachmentUploadPost.api.ts +42 -0
  21. package/tests/test-app/src/apis/UpdateTodoPost.api.ts +46 -0
  22. package/tests/test-app/src/app.css +15 -0
  23. package/tests/test-app/src/cloud_functions/ticket|attachment|upload.node.ts +86 -0
  24. package/tests/test-app/src/cloud_functions/ticket|comment|add.node.ts +65 -0
  25. package/tests/test-app/src/cloud_functions/types|entity|Ticket.node.ts +88 -0
  26. package/tests/test-app/src/cloud_functions/types|entity|TicketAttachment.node.ts +70 -0
  27. package/tests/test-app/src/cloud_functions/types|entity|TicketCategory.node.ts +56 -0
  28. package/tests/test-app/src/cloud_functions/types|entity|TicketComment.node.ts +62 -0
  29. package/tests/test-app/src/cloud_functions/types|entity|TicketHistory.node.ts +74 -0
  30. package/tests/test-app/src/cloud_functions/types|entity|TicketPriority.node.ts +68 -0
  31. package/tests/test-app/src/cloud_functions/types|entity|TicketStatus.node.ts +63 -0
  32. package/tests/test-app/src/cloud_functions/types|models|CreateTicketParams.node.ts +20 -0
  33. package/tests/test-app/src/cloud_functions/types|models|TicketListParams.node.ts +30 -0
  34. package/tests/test-app/src/cloud_functions/types|models|UpdateTicketParams.node.ts +22 -0
  35. package/tests/test-app/src/components/Button.js +11 -0
  36. package/tests/test-app/src/components/MouduleDemoNzp.tsx +40 -0
  37. package/tests/test-app/src/components/Timeline.tsx +145 -0
  38. package/tests/test-app/src/index.ts +2 -0
  39. package/tests/test-app/src/modules/work_order_module/apis/TicketCommentAddPost.api.ts +48 -0
  40. package/tests/test-app/src/modules/work_order_module/apis/TicketCreatePost.api.ts +52 -0
  41. package/tests/test-app/src/modules/work_order_module/apis/TicketDeleteDelete.api.ts +39 -0
  42. package/tests/test-app/src/modules/work_order_module/apis/TicketDetailGet.api.ts +39 -0
  43. package/tests/test-app/src/modules/work_order_module/apis/TicketListGet.api.ts +61 -0
  44. package/tests/test-app/src/modules/work_order_module/apis/TicketUpdatePut.api.ts +57 -0
  45. package/tests/test-app/src/modules/work_order_module/apis/TrainDoorFaultListGet.ts +76 -0
  46. package/tests/test-app/src/modules/work_order_module/apis/TrainDoorListGet.ts +76 -0
  47. package/tests/test-app/src/modules/work_order_module/apis/TrainDoorOperationRecordsGet.ts +284 -0
  48. package/tests/test-app/src/modules/work_order_module/apis/TrainDoorStatisticsGet.ts +96 -0
  49. package/tests/test-app/src/modules/work_order_module/cloud_function/category|list.node.ts +40 -0
  50. package/tests/test-app/src/modules/work_order_module/cloud_function/priority|list.node.ts +26 -0
  51. package/tests/test-app/src/modules/work_order_module/cloud_function/status|list.node.ts +26 -0
  52. package/tests/test-app/src/modules/work_order_module/cloud_function/ticket|create.node.ts +54 -0
  53. package/tests/test-app/src/modules/work_order_module/cloud_function/ticket|delete.node.ts +55 -0
  54. package/tests/test-app/src/modules/work_order_module/cloud_function/ticket|detail.node.ts +65 -0
  55. package/tests/test-app/src/modules/work_order_module/cloud_function/ticket|list.node.ts +85 -0
  56. package/tests/test-app/src/modules/work_order_module/cloud_function/ticket|update.node.ts +73 -0
  57. package/tests/test-app/src/modules/work_order_module/data_model/Ticket.m.ts +85 -0
  58. package/tests/test-app/src/modules/work_order_module/data_model/TicketCategory.m.ts +53 -0
  59. package/tests/test-app/src/modules/work_order_module/data_model/TicketStatus.m.ts +60 -0
  60. 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
  61. 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
  62. package/tests/test-app/src/pages/SLAManagement.tsx +668 -0
  63. package/tests/test-app/src/pages/TicketCreate.tsx +27 -0
  64. package/tests/test-app/src/pages/TicketDetail.tsx +27 -0
  65. package/tests/test-app/src/pages/TicketList.tsx +27 -0
  66. package/tests/test-app/src/pages/TicketManagementPage.tsx +1238 -0
  67. package/tests/test-app/src/pages/VisualAIIDEUpgrade.tsx +245 -0
  68. package/tests/test-app/src/pages/appthen_guide/ComponentTreeUnderstanding.tsx +26 -0
  69. package/tests/test-app/src/pages/appthen_guide/DataBindingLearning.tsx +26 -0
  70. package/tests/test-app/src/pages/back-end/adminRootLayout.tsx +155 -0
  71. package/tests/test-app/src/pages/back-end/adminRootLayout10.tsx +157 -0
  72. package/tests/test-app/src/pages/back-end/adminRootLayout2.tsx +156 -0
  73. package/tests/test-app/src/pages/back-end/adminRootLayout3.tsx +156 -0
  74. package/tests/test-app/src/pages/back-end/adminRootLayout4.tsx +157 -0
  75. package/tests/test-app/src/pages/back-end/adminRootLayout5.tsx +157 -0
  76. package/tests/test-app/src/pages/back-end/adminRootLayout6.tsx +157 -0
  77. package/tests/test-app/src/pages/back-end/adminRootLayout7.tsx +157 -0
  78. package/tests/test-app/src/pages/back-end/adminRootLayout8.tsx +157 -0
  79. package/tests/test-app/src/pages/back-end/adminRootLayout9.tsx +157 -0
  80. package/tests/test-app/src/pages/back-end/backgroundManagementSystem.css +5 -0
  81. package/tests/test-app/src/pages/back-end/backgroundManagementSystem.tsx +1745 -0
  82. package/tests/test-app/src/pages/component/WorkOrderCard.tsx +140 -0
  83. package/tests/test-app/src/pages/cover.tsx +42 -0
  84. package/tests/test-app/src/pages/data_dashboard/blueBrightGreenTechnologyWind.css +181 -0
  85. package/tests/test-app/src/pages/data_dashboard/blueBrightGreenTechnologyWind.tsx +225 -0
  86. package/tests/test-app/src/pages/data_dashboard/blueLargeScreen.css +181 -0
  87. package/tests/test-app/src/pages/data_dashboard/blueLargeScreen.tsx +138 -0
  88. package/tests/test-app/src/pages/data_dashboard/component_library/BlueBrightGreenBorder.tsx +47 -0
  89. package/tests/test-app/src/pages/data_dashboard/component_library/FullScreenContainer.tsx +133 -0
  90. package/tests/test-app/src/pages/description_of_mock_interface.md +32 -0
  91. package/tests/test-app/src/pages/digitalLargeScreen.css +181 -0
  92. package/tests/test-app/src/pages/digitalLargeScreen.tsx +1417 -0
  93. package/tests/test-app/src/pages/mobile_terminal/PersonalCenter.css +3 -0
  94. package/tests/test-app/src/pages/mobile_terminal/PersonalCenter.tsx +362 -0
  95. package/tests/test-app/src/pages/mobile_terminal/WorkOrderHomepage.tsx +337 -0
  96. package/tests/test-app/src/pages/mobile_terminal/newWorkOrder.tsx +224 -0
  97. package/tests/test-app/src/pages/mobile_terminal/tabbar.tsx +67 -0
  98. package/tests/test-app/src/pages/mobile_terminal/uiHandsOnPractice.tsx +638 -0
  99. package/tests/test-app/src/pages/mobile_terminal/workOrderDetails.tsx +346 -0
  100. package/tests/test-app/src/pages/mobile_terminal/workOrderPage.tsx +345 -0
  101. package/tests/test-app/src/pages/testPage.css +3 -0
  102. package/tests/test-app/src/pages/testPage.tsx +158 -0
  103. package/tests/test-app/src/pages/web_version/website.css +205 -0
  104. package/tests/test-app/src/pages/web_version/website.tsx +1066 -0
  105. package/tests/test-app/src/pages//345/276/205/345/212/236.apidoc.json +336 -0
  106. package/tests/test-app/src/project.json +1120 -0
  107. package/tests/test-app/src/store/global.store.ts +10 -0
  108. package/tests/test-app/src/types/CreateTicketParams.m.ts +20 -0
  109. package/tests/test-app/src/types/SLAPolicy.ts +50 -0
  110. package/tests/test-app/src/types/Ticket.ts +68 -0
  111. package/tests/test-app/src/types/TicketAttachment.m.ts +67 -0
  112. package/tests/test-app/src/types/TicketComment.m.ts +59 -0
  113. package/tests/test-app/src/types/TicketEvaluation.ts +44 -0
  114. package/tests/test-app/src/types/TicketHistory.m.ts +71 -0
  115. package/tests/test-app/src/types/TicketListParams.m.ts +30 -0
  116. package/tests/test-app/src/types/TicketPriority.m.ts +65 -0
  117. package/tests/test-app/src/types/TicketRecord.ts +47 -0
  118. package/tests/test-app/src/types/TrainDoor.ts +284 -0
  119. package/tests/test-app/src/types/UpdateTicketParams.m.ts +22 -0
  120. package/tests/test-app/src/utils/__afterRequest.util.ts +3 -0
  121. package/tests/test-app/src/utils/__beforeRequest.util.ts +10 -0
  122. 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;