@appthen/cli 1.2.10 → 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 +1108 -267
- 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,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 工单卡片
|
|
3
|
+
* @type Component
|
|
4
|
+
* @screen 375x194 #f5f5f5
|
|
5
|
+
* @frames app, web
|
|
6
|
+
*/
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import { AtIcon, Component, Text, View } from 'cross-ui';
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class IProps {
|
|
12
|
+
/* 工单状态 */
|
|
13
|
+
status: string;
|
|
14
|
+
/* 跳转详情函数 */
|
|
15
|
+
onGoDetail: Function;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/*
|
|
19
|
+
* 数据与接口请求定义
|
|
20
|
+
*/
|
|
21
|
+
class IState {}
|
|
22
|
+
|
|
23
|
+
class Document extends React.Component<IProps, IState> {
|
|
24
|
+
static defaultProps = { status: '' };
|
|
25
|
+
state = {};
|
|
26
|
+
|
|
27
|
+
render() {
|
|
28
|
+
return (
|
|
29
|
+
<React.Fragment>
|
|
30
|
+
<View className="pr-[1px] flex flex-row">
|
|
31
|
+
<View
|
|
32
|
+
__hidePh={true}
|
|
33
|
+
inlineStyle={[
|
|
34
|
+
{
|
|
35
|
+
enable: this.props.status == 'completed',
|
|
36
|
+
name: '动态样式1',
|
|
37
|
+
style: { backgroundColor: '#3b82f6' },
|
|
38
|
+
},
|
|
39
|
+
]}
|
|
40
|
+
className="bottom-[0px] top-[0px] left-[0px] w-[17px] rounded-tl-[20px] rounded-bl-[20px] mr-[-11px]"
|
|
41
|
+
/>
|
|
42
|
+
<View
|
|
43
|
+
__hidePh={true}
|
|
44
|
+
className="bg-[#ffffff] rounded-xl relative flex-1 pt-[10px] pb-[10px] pl-[10px] pr-[10px]"
|
|
45
|
+
>
|
|
46
|
+
<View className="flex flex-row items-center">
|
|
47
|
+
<View className="flex-1">
|
|
48
|
+
<Text className="text-sm text-[#666666]">WO-2023110001</Text>
|
|
49
|
+
</View>
|
|
50
|
+
<View className="bg-[#22c55e] pt-[6px] pr-[10px] pb-[6px] pl-[10px] rounded-[15px]">
|
|
51
|
+
<Text className="text-xs text-[#ffffff]">已完成</Text>
|
|
52
|
+
</View>
|
|
53
|
+
</View>
|
|
54
|
+
<View className="mt-[10px]">
|
|
55
|
+
<Text className="text-sm text-[#333] font-bold">
|
|
56
|
+
设备故障维修申请
|
|
57
|
+
</Text>
|
|
58
|
+
</View>
|
|
59
|
+
<View className="mt-[10px]">
|
|
60
|
+
<Text numberOfLines={1} className="text-xs text-[#333]">
|
|
61
|
+
3号生产线主轴电机出现异常噪音,需要紧急检修以比
|
|
62
|
+
</Text>
|
|
63
|
+
</View>
|
|
64
|
+
<View className="mt-[10px] flex flex-row items-center">
|
|
65
|
+
<View className="flex flex-row">
|
|
66
|
+
<AtIcon
|
|
67
|
+
color="#666"
|
|
68
|
+
size={20}
|
|
69
|
+
svg="<?xml version="1.0" encoding="utf-8" ?> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%" viewBox="0 0 12 12"> \t<defs> \t\t<clipPath id="clipPath5115394031"> \t\t\t<path d="M0 0L12 0L12 12L0 12L0 0Z" fill-rule="nonzero" transform="matrix(1 0 0 1 0 0)" fill="currentColor"/> \t\t</clipPath> \t</defs> \t<g clip-path="url(#clipPath5115394031)"> \t\t<path d="M1.67816 6.0308L1.67816 2.65931C1.67816 2.45221 1.51027 2.28431 1.30316 2.28431C1.09606 2.28431 0.928164 2.45221 0.928164 2.65931L0.928164 6.0308Q0.936713 6.57501 1.32039 6.95267Q1.70406 7.33034 2.24242 7.33034Q2.78078 7.33034 3.16446 6.95267Q3.54813 6.57501 3.55663 6.03672L3.55973 1.61191Q3.56967 0.794366 2.99203 0.209683Q2.4144 -0.375 1.5925 -0.375Q0.770602 -0.375 0.192968 0.209683Q-0.384667 0.794366 -0.374698 1.6162L-0.374726 6.06056Q-0.390517 7.14867 0.377193 7.92757Q1.1449 8.70648 2.23856 8.70648Q3.33221 8.70648 4.09992 7.92758Q4.86763 7.14867 4.8518 6.05513L4.85184 1.90322C4.85184 1.69611 4.68394 1.52822 4.47684 1.52822C4.26973 1.52822 4.10184 1.69611 4.10184 1.90322L4.10188 6.06599Q4.11316 6.84572 3.56576 7.4011Q3.01836 7.95648 2.23856 7.95648Q1.45875 7.95648 0.911348 7.4011Q0.363947 6.84572 0.375274 6.06056L0.375246 1.60711Q0.369078 1.09857 0.726504 0.736788Q1.08393 0.375 1.5925 0.375Q2.10107 0.375 2.4585 0.736788Q2.81592 1.09858 2.80973 1.6114L2.80673 6.02487Q2.80308 6.25601 2.63833 6.41817Q2.47359 6.58034 2.24242 6.58034Q2.01126 6.58034 1.84651 6.41817Q1.68177 6.25601 1.67816 6.0308Z" fill-rule="evenodd" transform="matrix(1 0 0 1 3.76121 1.84069)" fill="currentColor"/> \t</g> </svg> "
|
|
70
|
+
/>
|
|
71
|
+
</View>
|
|
72
|
+
<View className="ml-[5px]">
|
|
73
|
+
<Text className="text-xs text-[#666666]">2个附件</Text>
|
|
74
|
+
</View>
|
|
75
|
+
</View>
|
|
76
|
+
<View className="mt-[10px] flex flex-row">
|
|
77
|
+
<View className="flex flex-row items-center">
|
|
78
|
+
<View className="w-[28px] h-[28px] bg-[#add2ff] rounded-[15px] flex flex-col justify-center items-center">
|
|
79
|
+
<Text className="text-sm text-[#3b82f6]">李</Text>
|
|
80
|
+
</View>
|
|
81
|
+
<View className="ml-[10px]">
|
|
82
|
+
<Text className="text-sm text-[#666666]">李明</Text>
|
|
83
|
+
</View>
|
|
84
|
+
</View>
|
|
85
|
+
<View className="flex-row flex-1 flex justify-end">
|
|
86
|
+
<View
|
|
87
|
+
__hidePh={true}
|
|
88
|
+
onClick={e => {
|
|
89
|
+
this.props.onGoDetail();
|
|
90
|
+
}}
|
|
91
|
+
className="bg-[#f3f4f6] w-[40px] h-[40px] rounded-[20px] flex flex-col justify-center items-center mr-[10px]"
|
|
92
|
+
>
|
|
93
|
+
<AtIcon
|
|
94
|
+
color="#666"
|
|
95
|
+
size={20}
|
|
96
|
+
svg="<?xml version="1.0" encoding="utf-8" ?> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%" viewBox="0 0 20 20"> \t<defs> \t\t<clipPath id="clipPath0894376390"> \t\t\t<path d="M0 0L20 0L20 20L0 20L0 0Z" fill-rule="nonzero" transform="matrix(1 0 0 1 0 0)" fill="currentColor"/> \t\t</clipPath> \t</defs> \t<g clip-path="url(#clipPath0894376390)"> \t\t<circle cx="2.5" cy="2.5" r="2.5" transform="matrix(1 0 0 1 7.5 7.5)" fill="currentColor"/> \t\t<path d="M18.5492 5.57031C17.5156 3.97188 16.1746 2.61406 14.6715 1.64336C13.0086 0.568359 11.1727 0 9.36252 0C7.70158 0 6.06837 0.474609 4.50822 1.41055C2.9172 2.36484 1.4758 3.75898 0.223843 5.55391C0.079313 5.76135 0.00477175 5.99146 0.000219643 6.24425C-0.00433246 6.49703 0.0618755 6.72968 0.198843 6.94219C1.23048 8.55664 2.55822 9.91641 4.03791 10.8738C5.70392 11.9531 7.49689 12.5 9.36252 12.5C11.1871 12.5 13.027 11.9363 14.6828 10.8703C16.1852 9.90273 17.5235 8.53984 18.5531 6.92812C18.6852 6.72088 18.7509 6.49438 18.7501 6.24865C18.7494 6.00291 18.6825 5.7768 18.5492 5.57031ZM9.3758 10C8.34026 10 7.45638 9.63388 6.72415 8.90165C5.99191 8.16942 5.6258 7.28553 5.6258 6.25C5.6258 5.21447 5.99191 4.33058 6.72415 3.59835C7.45638 2.86612 8.34026 2.5 9.3758 2.5C10.4113 2.5 11.2952 2.86612 12.0274 3.59835C12.7597 4.33058 13.1258 5.21447 13.1258 6.25C13.1246 7.28504 12.7581 8.16851 12.0262 8.90039C11.2943 9.63228 10.4108 9.99882 9.3758 10Z" fill-rule="nonzero" transform="matrix(1 0 0 1 0.624204 3.75)" fill="currentColor"/> \t</g> </svg> "
|
|
97
|
+
/>
|
|
98
|
+
</View>
|
|
99
|
+
<View
|
|
100
|
+
__hidePh={true}
|
|
101
|
+
className="bg-[#f3f4f6] w-[40px] h-[40px] rounded-[20px] flex flex-col justify-center items-center mr-[10px]"
|
|
102
|
+
>
|
|
103
|
+
<AtIcon
|
|
104
|
+
color="#666"
|
|
105
|
+
size={20}
|
|
106
|
+
svg="<?xml version="1.0" encoding="utf-8" ?> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%" viewBox="0 0 20 20"> \t<defs> \t\t<clipPath id="clipPath2557746411"> \t\t\t<path d="M0 0L20 0L20 20L0 20L0 0Z" fill-rule="nonzero" transform="matrix(1 0 0 1 0 0)" fill="currentColor"/> \t\t</clipPath> \t</defs> \t<g clip-path="url(#clipPath2557746411)"> \t\t<path d="M12.7935 -0.418716L12.7938 -0.419009Q13.2343 -0.859375 13.8572 -0.859375Q14.4804 -0.859375 14.921 -0.418751L14.9505 -0.389229Q15.3907 0.0513004 15.3907 0.674075Q15.3907 1.29685 14.9502 1.7376L14.4897 2.19815Q14.4299 2.258 14.3595 2.30503Q14.2891 2.35205 14.2109 2.38444Q14.1327 2.41683 14.0497 2.43334Q13.9667 2.44986 13.882 2.44986Q13.7974 2.44986 13.7144 2.43334Q13.6314 2.41683 13.5532 2.38444Q13.475 2.35205 13.4046 2.30503Q13.3342 2.258 13.2744 2.19815L12.3327 1.25649Q12.2729 1.19661 12.2259 1.12621Q12.1789 1.05582 12.1465 0.977606Q12.1142 0.899394 12.0977 0.816373Q12.0812 0.733351 12.0812 0.64871Q12.0813 0.564069 12.0978 0.481061Q12.1144 0.398054 12.1468 0.319869Q12.1792 0.241685 12.2263 0.171328Q12.2733 0.100972 12.3332 0.0411472L12.7935 -0.418716ZM10.6665 1.70781L0.035724 12.3648Q-0.084919 12.4857 -0.150137 12.6436L-0.794278 14.203Q-0.826593 14.2812 -0.843025 14.3643Q-0.859457 14.4473 -0.859375 14.5319Q-0.859292 14.6166 -0.842699 14.6996Q-0.826106 14.7826 -0.793639 14.8607Q-0.761172 14.9389 -0.71408 15.0092Q-0.666988 15.0796 -0.607079 15.1394Q-0.547171 15.1992 -0.476749 15.2461Q-0.406327 15.2931 -0.328097 15.3254Q-0.170506 15.3905 7.45058e-09 15.3905Q0.170506 15.3905 0.328097 15.3254L1.88747 14.6812Q2.04536 14.616 2.1663 14.4954L12.8225 3.8653Q12.8825 3.80553 12.9296 3.73521Q12.9767 3.66489 13.0092 3.58673Q13.0417 3.50857 13.0583 3.42558Q13.0749 3.34259 13.075 3.25794Q13.0751 3.1733 13.0587 3.09027Q13.0423 3.00723 13.01 2.929Q12.9777 2.85076 12.9308 2.78032Q12.8838 2.70989 12.824 2.64997L11.8819 1.70781Q11.822 1.64796 11.7517 1.60094Q11.6813 1.55391 11.6031 1.52152Q11.5249 1.48913 11.4419 1.47262Q11.3589 1.45611 11.2742 1.45611Q11.1896 1.45611 11.1066 1.47262Q11.0235 1.48913 10.9453 1.52152Q10.8672 1.55391 10.7968 1.60094Q10.7264 1.64796 10.6665 1.70781Z" fill-rule="evenodd" transform="matrix(1 0 0 1 2.73438 2.73452)" fill="currentColor"/> \t</g> </svg> "
|
|
107
|
+
/>
|
|
108
|
+
</View>
|
|
109
|
+
<View
|
|
110
|
+
__hidePh={true}
|
|
111
|
+
className="bg-[#f3f4f6] w-[40px] h-[40px] rounded-[20px] flex flex-col justify-center items-center"
|
|
112
|
+
>
|
|
113
|
+
<AtIcon
|
|
114
|
+
color="#666"
|
|
115
|
+
size={20}
|
|
116
|
+
svg="<?xml version="1.0" encoding="utf-8" ?> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%" viewBox="0 0 20 20"> \t<defs> \t\t<clipPath id="clipPath0406936548"> \t\t\t<path d="M0 0L20 0L20 20L0 20L0 0Z" fill-rule="nonzero" transform="matrix(1 0 0 1 0 0)" fill="currentColor"/> \t\t</clipPath> \t</defs> \t<g clip-path="url(#clipPath0406936548)"> \t\t<path d="M12.5003 6.875C11.6972 6.875 10.9206 6.51641 10.3128 5.86563C9.72178 5.23086 9.36084 4.38438 9.29717 3.48281C9.2292 2.52109 9.52256 1.63672 10.123 0.992188C10.7233 0.347657 11.5628 0 12.5003 0C13.4312 0 14.273 0.353906 14.8714 0.996875C15.4757 1.64609 15.7698 2.52891 15.7019 3.48242C15.6366 4.38516 15.2761 5.23125 14.6862 5.86523C14.08 6.51641 13.3038 6.875 12.5003 6.875ZM17.6499 13.75L7.35108 13.75C7.18329 13.7509 7.02391 13.7147 6.87293 13.6415C6.72196 13.5683 6.59488 13.4655 6.4917 13.3332C6.3823 13.1898 6.30957 13.0298 6.27353 12.853C6.23748 12.6763 6.24172 12.5006 6.28623 12.3258C6.61514 11.0051 7.42999 9.90976 8.64248 9.15859C9.71866 8.49219 11.0886 8.125 12.5003 8.125C13.9398 8.125 15.2737 8.47656 16.3562 9.14258C17.5714 9.88984 18.3874 10.9914 18.7148 12.3281C18.7587 12.503 18.7625 12.6788 18.726 12.8554C18.6896 13.032 18.6166 13.1919 18.5069 13.3352C18.4039 13.4669 18.2771 13.5691 18.1265 13.642C17.976 13.7149 17.8171 13.7509 17.6499 13.75ZM5.11749 7.03125C3.74288 7.03125 2.53428 5.75313 2.42217 4.18242C2.3667 3.37773 2.61749 2.63359 3.1253 2.08789C3.62764 1.54766 4.33624 1.25 5.11749 1.25C5.89874 1.25 6.60186 1.54922 7.10694 2.09258C7.61866 2.64258 7.86866 3.38516 7.81006 4.1832C7.69795 5.75352 6.48975 7.03125 5.11749 7.03125ZM7.68233 8.25977C6.99522 7.92383 6.10342 7.75586 5.11788 7.75586C3.96709 7.75586 2.84952 8.05586 1.97061 8.60039C0.974126 9.21875 0.303814 10.1191 0.0331106 11.2063C-0.00701755 11.3646 -0.010671 11.5239 0.0221504 11.6839C0.0549717 11.844 0.120995 11.9889 0.22022 12.1187C0.314407 12.2397 0.430431 12.3336 0.568293 12.4006C0.706154 12.4676 0.851718 12.5007 1.00499 12.5L5.34092 12.5C5.41644 12.5 5.48318 12.4758 5.54114 12.4274C5.59911 12.379 5.63485 12.3177 5.64834 12.2434C5.65264 12.2187 5.65811 12.1941 5.66436 12.1699C5.99561 10.8395 6.77178 9.71523 7.91866 8.8957C8.01024 8.82968 8.05338 8.74029 8.04808 8.62751C8.04277 8.51473 7.99143 8.42978 7.89405 8.37265C7.83272 8.33672 7.76241 8.29883 7.68233 8.25977Z" fill-rule="nonzero" transform="matrix(1 0 0 1 0.624702 3.125)" fill="currentColor"/> \t</g> </svg> "
|
|
117
|
+
/>
|
|
118
|
+
</View>
|
|
119
|
+
</View>
|
|
120
|
+
</View>
|
|
121
|
+
<View className="mt-[10px] flex flex-row items-center justify-between">
|
|
122
|
+
<View>
|
|
123
|
+
<Text className="text-sm text-[#9b9b9b]">
|
|
124
|
+
创建于 2023-11-05
|
|
125
|
+
</Text>
|
|
126
|
+
</View>
|
|
127
|
+
<View>
|
|
128
|
+
<Text className="text-sm text-[#ef4444]">
|
|
129
|
+
期望完成:2023-11-08
|
|
130
|
+
</Text>
|
|
131
|
+
</View>
|
|
132
|
+
</View>
|
|
133
|
+
</View>
|
|
134
|
+
</View>
|
|
135
|
+
</React.Fragment>
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
export default Document;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 封面管理
|
|
3
|
+
* 封面列表与操作
|
|
4
|
+
*
|
|
5
|
+
* @type Page
|
|
6
|
+
* @screen 400x250
|
|
7
|
+
* @frames app, web
|
|
8
|
+
* @clients weapp
|
|
9
|
+
*/
|
|
10
|
+
import React from 'react';
|
|
11
|
+
import { Page, Text, View } from '@appthen/react';
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class IProps {}
|
|
15
|
+
|
|
16
|
+
/*
|
|
17
|
+
* 数据与接口请求定义
|
|
18
|
+
*/
|
|
19
|
+
class IState {
|
|
20
|
+
newField?: string;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
class Document extends React.Component<IProps, IState> {
|
|
24
|
+
state = {};
|
|
25
|
+
|
|
26
|
+
render() {
|
|
27
|
+
return (
|
|
28
|
+
<Page
|
|
29
|
+
statusBarMode="light"
|
|
30
|
+
backgroundImage="https://cdn.appthen.com/Fmk8IZVxeE9QYk9hKJM-D2L4Q52_"
|
|
31
|
+
>
|
|
32
|
+
<View className="h-[250px] bg-[rgba(58,58,58,0.74)] flex flex-col justify-center items-center">
|
|
33
|
+
<Text className="text-[40px] text-[#40a9ff] font-bold">
|
|
34
|
+
快速上手指南
|
|
35
|
+
</Text>
|
|
36
|
+
</View>
|
|
37
|
+
</Page>
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export default Document;
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--primary-color: #1a1b2f;
|
|
3
|
+
--secondary-color: #2a2b3f;
|
|
4
|
+
--accent-color: #81d3fc;
|
|
5
|
+
--text-color: #ffffff;
|
|
6
|
+
--warning-color: #ffcc00;
|
|
7
|
+
--danger-color: #ff4d4f;
|
|
8
|
+
--success-color: #52c41a;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
body {
|
|
12
|
+
margin: 0;
|
|
13
|
+
padding: 0;
|
|
14
|
+
font-family: 'Arial', sans-serif;
|
|
15
|
+
background-color: var(--primary-color);
|
|
16
|
+
color: var(--text-color);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.container {
|
|
20
|
+
width: 100%;
|
|
21
|
+
height: 100vh;
|
|
22
|
+
display: grid;
|
|
23
|
+
grid-template-rows: 80px 1fr;
|
|
24
|
+
grid-template-columns: 1fr;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.header {
|
|
28
|
+
background-color: var(--secondary-color);
|
|
29
|
+
padding: 0 20px;
|
|
30
|
+
display: flex;
|
|
31
|
+
align-items: center;
|
|
32
|
+
justify-content: space-between;
|
|
33
|
+
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.header-title {
|
|
37
|
+
font-size: 24px;
|
|
38
|
+
font-weight: bold;
|
|
39
|
+
color: var(--accent-color);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.header-status {
|
|
43
|
+
display: flex;
|
|
44
|
+
align-items: center;
|
|
45
|
+
gap: 15px;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.status-indicator {
|
|
49
|
+
display: flex;
|
|
50
|
+
align-items: center;
|
|
51
|
+
gap: 5px;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.status-dot {
|
|
55
|
+
width: 10px;
|
|
56
|
+
height: 10px;
|
|
57
|
+
border-radius: 50%;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.status-dot.online {
|
|
61
|
+
background-color: var(--success-color);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.main-content {
|
|
65
|
+
display: grid;
|
|
66
|
+
grid-template-columns: 300px 1fr 300px;
|
|
67
|
+
gap: 20px;
|
|
68
|
+
padding: 20px;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.panel {
|
|
72
|
+
background-color: var(--secondary-color);
|
|
73
|
+
border-radius: 8px;
|
|
74
|
+
padding: 15px;
|
|
75
|
+
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.panel-title {
|
|
79
|
+
font-size: 18px;
|
|
80
|
+
font-weight: bold;
|
|
81
|
+
color: var(--accent-color);
|
|
82
|
+
margin-bottom: 15px;
|
|
83
|
+
padding-bottom: 10px;
|
|
84
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.metro-map {
|
|
88
|
+
display: flex;
|
|
89
|
+
flex-direction: column;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.train-list {
|
|
93
|
+
display: flex;
|
|
94
|
+
flex-direction: column;
|
|
95
|
+
gap: 15px;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.train-card {
|
|
99
|
+
background-color: rgba(42, 43, 63, 0.8);
|
|
100
|
+
border-radius: 6px;
|
|
101
|
+
padding: 15px;
|
|
102
|
+
border-left: 4px solid var(--accent-color);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.train-info {
|
|
106
|
+
display: flex;
|
|
107
|
+
justify-content: space-between;
|
|
108
|
+
margin-bottom: 10px;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.train-id {
|
|
112
|
+
font-weight: bold;
|
|
113
|
+
color: var(--accent-color);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.train-status {
|
|
117
|
+
padding: 3px 8px;
|
|
118
|
+
border-radius: 4px;
|
|
119
|
+
font-size: 12px;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.status-normal {
|
|
123
|
+
background-color: var(--success-color);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.status-warning {
|
|
127
|
+
background-color: var(--warning-color);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.status-danger {
|
|
131
|
+
background-color: var(--danger-color);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.train-details {
|
|
135
|
+
display: grid;
|
|
136
|
+
grid-template-columns: repeat(2, 1fr);
|
|
137
|
+
gap: 10px;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.detail-item {
|
|
141
|
+
font-size: 14px;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.detail-label {
|
|
145
|
+
color: rgba(255, 255, 255, 0.7);
|
|
146
|
+
margin-right: 5px;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.alert-list {
|
|
150
|
+
display: flex;
|
|
151
|
+
flex-direction: column;
|
|
152
|
+
gap: 10px;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.alert-item {
|
|
156
|
+
background-color: rgba(42, 43, 63, 0.8);
|
|
157
|
+
border-radius: 6px;
|
|
158
|
+
padding: 12px;
|
|
159
|
+
border-left: 4px solid var(--danger-color);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
.alert-time {
|
|
163
|
+
font-size: 12px;
|
|
164
|
+
color: rgba(255, 255, 255, 0.7);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.alert-message {
|
|
168
|
+
font-weight: bold;
|
|
169
|
+
margin: 5px 0;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.alert-train {
|
|
173
|
+
font-size: 12px;
|
|
174
|
+
color: var(--accent-color);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
@media (max-width: 1200px) {
|
|
178
|
+
.main-content {
|
|
179
|
+
grid-template-columns: 1fr;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 蓝亮绿科技风
|
|
3
|
+
* @type Page
|
|
4
|
+
* @screen 1440w #2c2c2c
|
|
5
|
+
* @frames web
|
|
6
|
+
*/
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import { Page, Text, View } from '@appthen/react';
|
|
9
|
+
import BlueBrightGreenBorder from '/src/pages/border/BlueBrightGreenBorder';
|
|
10
|
+
import FullScreenContainer from '/src/pages/screen/FullScreenContainer';
|
|
11
|
+
import './blueBrightGreenTechnologyWind.css';
|
|
12
|
+
|
|
13
|
+
class IProps {}
|
|
14
|
+
|
|
15
|
+
/*
|
|
16
|
+
* 数据与接口请求定义
|
|
17
|
+
*/
|
|
18
|
+
class IState {}
|
|
19
|
+
|
|
20
|
+
class Document extends React.Component<IProps, IState> {
|
|
21
|
+
state = {};
|
|
22
|
+
|
|
23
|
+
getDoorChartOption() {
|
|
24
|
+
return {
|
|
25
|
+
tooltip: {
|
|
26
|
+
trigger: 'item',
|
|
27
|
+
},
|
|
28
|
+
series: [
|
|
29
|
+
{
|
|
30
|
+
type: 'pie',
|
|
31
|
+
radius: ['50%', '70%'],
|
|
32
|
+
data: [
|
|
33
|
+
{
|
|
34
|
+
value: 120,
|
|
35
|
+
name: '正常车门',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
value: 30,
|
|
39
|
+
name: '预警车门',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
value: 15,
|
|
43
|
+
name: '故障车门',
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
color: ['#60AE46', '#FF9900', '#D94746'],
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
getAirConditionChartOption() {
|
|
53
|
+
return {
|
|
54
|
+
tooltip: {
|
|
55
|
+
trigger: 'item',
|
|
56
|
+
},
|
|
57
|
+
series: [
|
|
58
|
+
{
|
|
59
|
+
type: 'pie',
|
|
60
|
+
radius: ['50%', '70%'],
|
|
61
|
+
data: [
|
|
62
|
+
{
|
|
63
|
+
value: 85,
|
|
64
|
+
name: '正常空调',
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
value: 45,
|
|
68
|
+
name: '预警空调',
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
value: 20,
|
|
72
|
+
name: '故障空调',
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
color: ['#60AE46', '#FF9900', '#D94746'],
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
getBrakeChartOption() {
|
|
82
|
+
return {
|
|
83
|
+
tooltip: {
|
|
84
|
+
trigger: 'item',
|
|
85
|
+
},
|
|
86
|
+
series: [
|
|
87
|
+
{
|
|
88
|
+
type: 'pie',
|
|
89
|
+
radius: ['50%', '70%'],
|
|
90
|
+
data: [
|
|
91
|
+
{
|
|
92
|
+
value: 150,
|
|
93
|
+
name: '正常制动',
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
value: 25,
|
|
97
|
+
name: '预警制动',
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
value: 10,
|
|
101
|
+
name: '故障制动',
|
|
102
|
+
},
|
|
103
|
+
],
|
|
104
|
+
color: ['#60AE46', '#FF9900', '#D94746'],
|
|
105
|
+
},
|
|
106
|
+
],
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
render() {
|
|
111
|
+
return (
|
|
112
|
+
<Page className="h-screen">
|
|
113
|
+
<FullScreenContainer
|
|
114
|
+
content={
|
|
115
|
+
<View className="h-full flex flex-col">
|
|
116
|
+
<View
|
|
117
|
+
key="header"
|
|
118
|
+
style={{
|
|
119
|
+
height: '100px',
|
|
120
|
+
backgroundImage:
|
|
121
|
+
'url(https://cdn.appthen.com/Fu5bWQQXD0SVPRCq31hi3903u5xD)',
|
|
122
|
+
backgroundSize: 'cover',
|
|
123
|
+
backgroundPosition: 'center',
|
|
124
|
+
display: 'flex',
|
|
125
|
+
flexDirection: 'column',
|
|
126
|
+
}}
|
|
127
|
+
>
|
|
128
|
+
<View className="flex-1 flex flex-row">
|
|
129
|
+
<View __hidePh={true} className="flex-1" />
|
|
130
|
+
<View className="flex-1 flex flex-col justify-center items-center">
|
|
131
|
+
<Text className="text-[44px] text-[#81d3fc] font-extrabold mt-[-10px]">
|
|
132
|
+
蓝色科技风数据可视化大屏
|
|
133
|
+
</Text>
|
|
134
|
+
</View>
|
|
135
|
+
<View __hidePh={true} className="flex-1" />
|
|
136
|
+
</View>
|
|
137
|
+
</View>
|
|
138
|
+
<View key="main" className="flex-1 flex flex-row mt-[-24px]">
|
|
139
|
+
<View className="flex-1 pl-[20px] pr-[10px] flex flex-col">
|
|
140
|
+
<BlueBrightGreenBorder
|
|
141
|
+
content={
|
|
142
|
+
<View className="p-[16px] flex flex-col h-full">
|
|
143
|
+
<Text className="text-lg font-bold text-[#ffffff] mb-[16px]">
|
|
144
|
+
标题
|
|
145
|
+
</Text>
|
|
146
|
+
<View className="mt-[16px] grid grid-cols-1 gap-4" />
|
|
147
|
+
</View>
|
|
148
|
+
}
|
|
149
|
+
className="flex flex-col h-[537px]"
|
|
150
|
+
/>
|
|
151
|
+
<BlueBrightGreenBorder
|
|
152
|
+
content={
|
|
153
|
+
<View className="p-[16px] flex flex-col h-full">
|
|
154
|
+
<Text className="text-lg font-bold text-[#ffffff] mb-[16px]">
|
|
155
|
+
标题
|
|
156
|
+
</Text>
|
|
157
|
+
<View className="mt-[16px] grid grid-cols-1 gap-4" />
|
|
158
|
+
</View>
|
|
159
|
+
}
|
|
160
|
+
className="flex flex-col flex-1"
|
|
161
|
+
/>
|
|
162
|
+
</View>
|
|
163
|
+
<View className="flex-1 flex flex-col pt-[66px] pl-[10px] pr-[10px]">
|
|
164
|
+
<BlueBrightGreenBorder
|
|
165
|
+
content={
|
|
166
|
+
<View className="p-[16px] flex flex-col h-full">
|
|
167
|
+
<Text className="text-lg font-bold text-[#ffffff] mb-[16px]">
|
|
168
|
+
标题
|
|
169
|
+
</Text>
|
|
170
|
+
<View className="mt-[16px] grid grid-cols-1 gap-4" />
|
|
171
|
+
</View>
|
|
172
|
+
}
|
|
173
|
+
className="flex flex-col h-[537px] flex-1"
|
|
174
|
+
/>
|
|
175
|
+
<BlueBrightGreenBorder
|
|
176
|
+
content={
|
|
177
|
+
<View className="p-[16px] flex flex-col h-full">
|
|
178
|
+
<Text className="text-lg font-bold text-[#ffffff] mb-[16px]">
|
|
179
|
+
标题
|
|
180
|
+
</Text>
|
|
181
|
+
</View>
|
|
182
|
+
}
|
|
183
|
+
className="h-[500px] flex flex-col"
|
|
184
|
+
/>
|
|
185
|
+
</View>
|
|
186
|
+
<View className="flex-1 pr-[20px] pl-[10px] flex flex-col">
|
|
187
|
+
<BlueBrightGreenBorder
|
|
188
|
+
content={
|
|
189
|
+
<View className="p-[16px] flex flex-col h-full">
|
|
190
|
+
<Text className="text-lg font-bold text-[#ffffff] mb-[16px]">
|
|
191
|
+
标题
|
|
192
|
+
</Text>
|
|
193
|
+
</View>
|
|
194
|
+
}
|
|
195
|
+
className="h-[534px] flex flex-col"
|
|
196
|
+
/>
|
|
197
|
+
<BlueBrightGreenBorder
|
|
198
|
+
content={
|
|
199
|
+
<View className="p-[16px] flex flex-col h-full">
|
|
200
|
+
<Text className="text-lg font-bold text-[#ffffff] mb-[16px]">
|
|
201
|
+
标题
|
|
202
|
+
</Text>
|
|
203
|
+
</View>
|
|
204
|
+
}
|
|
205
|
+
className="flex flex-col flex-1"
|
|
206
|
+
/>
|
|
207
|
+
</View>
|
|
208
|
+
</View>
|
|
209
|
+
<View key="footer" className="bg-[#1a1b2f] p-[16px]">
|
|
210
|
+
<Text className="text-[#ffffff]">
|
|
211
|
+
系统状态: 在线 | 最后更新:{new Date().toLocaleString()}
|
|
212
|
+
</Text>
|
|
213
|
+
</View>
|
|
214
|
+
</View>
|
|
215
|
+
}
|
|
216
|
+
baseWidth={2560}
|
|
217
|
+
baseHeight={1440}
|
|
218
|
+
className="h-screen bg-[#0f1129] flex flex-col"
|
|
219
|
+
/>
|
|
220
|
+
</Page>
|
|
221
|
+
);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
export default Document;
|