Commit e11821c18b8a96438c126f1ecda4e6eb5d444d7f
1 parent
97d46e74
up
Showing
30 changed files
with
603 additions
and
371 deletions
dist/index.html
@@ -5,8 +5,8 @@ | @@ -5,8 +5,8 @@ | ||
5 | <link rel="icon" href="/favicon.ico"> | 5 | <link rel="icon" href="/favicon.ico"> |
6 | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | 6 | <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
7 | <title>Vite App</title> | 7 | <title>Vite App</title> |
8 | - <script type="module" crossorigin src="/assets/index-2c017680.js"></script> | ||
9 | - <link rel="stylesheet" href="/assets/index-e124e07b.css"> | 8 | + <script type="module" crossorigin src="/assets/index-d9b7ab4f.js"></script> |
9 | + <link rel="stylesheet" href="/assets/index-63d456ee.css"> | ||
10 | </head> | 10 | </head> |
11 | <body> | 11 | <body> |
12 | <div id="app"></div> | 12 | <div id="app"></div> |
public/about/1.jpg
0 → 100644
61.7 KB
public/about/2.png
0 → 100644
13 KB
public/about/3.png
0 → 100644
13.6 KB
public/about/4.png
0 → 100644
10.9 KB
public/about/5.png
0 → 100644
391 KB
public/about/6.png
0 → 100644
444 KB
public/about/7.png
0 → 100644
506 KB
public/home/10 Material testing.svg
1 | <?xml version="1.0" standalone="no"?> | 1 | <?xml version="1.0" standalone="no"?> |
2 | <!DOCTYPE svg PUBLIC "-//W3C//DTDSVG1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> | 2 | <!DOCTYPE svg PUBLIC "-//W3C//DTDSVG1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> |
3 | -<svg t="1687246905469" class="icon" viewBox="-100 -100 1350 1200" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5024" xmlns:xlink="http://www.w3.org/1999/xlink" width="231.0546875" height="230"> | 3 | +<svg t="1687246905469" class="icon" viewBox="-200 100 1550 1000" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5024" xmlns:xlink="http://www.w3.org/1999/xlink" width="190" height="230"> |
4 | <path d="M573.286004 173.620761l-1.474964 300.192671-242.744074-143.371499V100.322551h-49.998779v233.644296l-277.343229 157.496154L0 844.479383l303.94258 179.520617 305.892531-173.695759 1.474964-300.192671 242.744074 143.396499v231.794341h49.998779v-235.319255l277.343229-157.496155 1.724958-353.041381L879.178536-0.074998z m-13.299676 647.484192l-255.518761 144.996461-254.318791-150.221333 1.424965-295.31779 255.518762-144.99646 254.318791 150.246332z m571.561046-317.692243l-255.518761 144.99646-254.318791-150.246332 1.424965-295.367789 255.518761-144.99646L1132.97234 208.044921z" p-id="5025" fill="#1296db"></path> | 4 | <path d="M573.286004 173.620761l-1.474964 300.192671-242.744074-143.371499V100.322551h-49.998779v233.644296l-277.343229 157.496154L0 844.479383l303.94258 179.520617 305.892531-173.695759 1.474964-300.192671 242.744074 143.396499v231.794341h49.998779v-235.319255l277.343229-157.496155 1.724958-353.041381L879.178536-0.074998z m-13.299676 647.484192l-255.518761 144.996461-254.318791-150.221333 1.424965-295.31779 255.518762-144.99646 254.318791 150.246332z m571.561046-317.692243l-255.518761 144.99646-254.318791-150.246332 1.424965-295.367789 255.518761-144.99646L1132.97234 208.044921z" p-id="5025" fill="#1296db"></path> |
5 | <path d="M479.063304 575.310954h49.998779v199.995118h-49.998779z" p-id="5026" fill="#1296db"></path> | 5 | <path d="M479.063304 575.310954h49.998779v199.995118h-49.998779z" p-id="5026" fill="#1296db"></path> |
6 | <path d="M109.37233 538.936842l167.845902-95.597666 24.749396 43.44894-167.845902 95.622665z" p-id="5027" fill="#1296db"></path> | 6 | <path d="M109.37233 538.936842l167.845902-95.597666 24.749396 43.44894-167.845902 95.622665z" p-id="5027" fill="#1296db"></path> |
public/home/11 Calibration.svg
1 | <?xml version="1.0" standalone="no"?> | 1 | <?xml version="1.0" standalone="no"?> |
2 | <!DOCTYPE svg PUBLIC "-//W3C//DTDSVG1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> | 2 | <!DOCTYPE svg PUBLIC "-//W3C//DTDSVG1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> |
3 | -<svg t="1687246980615" class="icon" viewBox="0 -100 900 1200" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6119" xmlns:xlink="http://www.w3.org/1999/xlink" width="90" height="90"> | 3 | +<svg t="1687246980615" class="icon" viewBox="-200 -300 1300 1300" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6119" xmlns:xlink="http://www.w3.org/1999/xlink" width="240" height="190"> |
4 | <path d="M801.274 157.172c0-21.7-17.937-39.291-40.065-39.291L661.052 117.881l0 39.291c0 21.702-17.937 39.294-40.065 39.294L280.446 196.466c-22.125 0-40.062-17.591-40.062-39.294l0-39.291L120.192 117.881c-22.125 0-40.065 17.591-40.065 39.291l0 746.571c0 21.702 17.939 39.296 40.065 39.296L440.7 943.039l80.129 78.585L80.128 1021.624C35.874 1021.623 0 986.441 0 943.039L0 117.881c0-43.402 35.874-78.59 80.128-78.59l160.256 0c0-21.7 17.937-39.291 40.062-39.291l340.541 0c22.128 0 40.065 17.591 40.065 39.291l140.223 0c44.253 0 80.127 35.188 80.127 78.59l0 360.582-80.127 81.611L801.275 157.172zM620.987 432.227 260.415 432.227c-11.065 0-20.031-8.798-20.031-19.649l0-19.644c0-10.854 8.966-19.647 20.031-19.647l360.572 0c11.063 0 20.034 8.793 20.034 19.647l0 19.644C641.021 423.429 632.05 432.227 620.987 432.227zM641.021 628.692c0 10.849-8.971 19.644-20.034 19.644L260.415 648.336c-11.065 0-20.031-8.796-20.031-19.644l0-19.649c0-10.849 8.966-19.644 20.031-19.644l360.572 0c11.063 0 20.034 8.796 20.034 19.644L641.021 628.692zM466.413 750.879 614.66 877.587l406.964-406.069-401.418 550.105L413.515 802.704 466.413 750.879z" fill="#1296db" p-id="6120"></path> | 4 | <path d="M801.274 157.172c0-21.7-17.937-39.291-40.065-39.291L661.052 117.881l0 39.291c0 21.702-17.937 39.294-40.065 39.294L280.446 196.466c-22.125 0-40.062-17.591-40.062-39.294l0-39.291L120.192 117.881c-22.125 0-40.065 17.591-40.065 39.291l0 746.571c0 21.702 17.939 39.296 40.065 39.296L440.7 943.039l80.129 78.585L80.128 1021.624C35.874 1021.623 0 986.441 0 943.039L0 117.881c0-43.402 35.874-78.59 80.128-78.59l160.256 0c0-21.7 17.937-39.291 40.062-39.291l340.541 0c22.128 0 40.065 17.591 40.065 39.291l140.223 0c44.253 0 80.127 35.188 80.127 78.59l0 360.582-80.127 81.611L801.275 157.172zM620.987 432.227 260.415 432.227c-11.065 0-20.031-8.798-20.031-19.649l0-19.644c0-10.854 8.966-19.647 20.031-19.647l360.572 0c11.063 0 20.034 8.793 20.034 19.647l0 19.644C641.021 423.429 632.05 432.227 620.987 432.227zM641.021 628.692c0 10.849-8.971 19.644-20.034 19.644L260.415 648.336c-11.065 0-20.031-8.796-20.031-19.644l0-19.649c0-10.849 8.966-19.644 20.031-19.644l360.572 0c11.063 0 20.034 8.796 20.034 19.644L641.021 628.692zM466.413 750.879 614.66 877.587l406.964-406.069-401.418 550.105L413.515 802.704 466.413 750.879z" fill="#1296db" p-id="6120"></path> |
5 | </svg> | 5 | </svg> |
public/logo.jpg
0 → 100644
38.2 KB
public/testing_case/1.png renamed to public/test/1.png
365 KB
public/testing_case/2.png renamed to public/test/2.png
144 KB
public/testing_case/Mapping.png renamed to public/test/3.png
374 KB
public/testing_case/SEM.png renamed to public/test/4.png
245 KB
src/assets/main.css
src/components/CategoryList.vue
@@ -20,9 +20,9 @@ | @@ -20,9 +20,9 @@ | ||
20 | </span> | 20 | </span> |
21 | </v-col> | 21 | </v-col> |
22 | </v-row> | 22 | </v-row> |
23 | - <v-row class="pa-4 ma-0 bg-grey-lighten-4 deviceType"> | 23 | + <v-row class="pa-4 ma-0 bg-grey-lighten-4"> |
24 | <div | 24 | <div |
25 | - class="tw-pr-0 tw-font-bold tw-w-[130px] tw-h-[36px] tw-leading-[64px] text-grey-darken-3" | 25 | + class="tw-pr-0 tw-font-bold tw-w-[130px] tw-h-[36px] tw-leading-[36px] text-grey-darken-3" |
26 | > | 26 | > |
27 | DEVICE TYPE: | 27 | DEVICE TYPE: |
28 | </div> | 28 | </div> |
@@ -41,7 +41,7 @@ | @@ -41,7 +41,7 @@ | ||
41 | </span> | 41 | </span> |
42 | </v-col> | 42 | </v-col> |
43 | </v-row> | 43 | </v-row> |
44 | - <v-row v-if="funcCategoryList.length" class="pa-4 ma-0 bg-grey-lighten-4"> | 44 | + <v-row v-if="funcCategoryList.length" class="pa-4 ma-0 bg-grey-lighten-4 material"> |
45 | <div | 45 | <div |
46 | class="tw-pr-0 tw-font-bold tw-w-[210px] tw-h-[36px] tw-leading-[36px] text-grey-darken-3" | 46 | class="tw-pr-0 tw-font-bold tw-w-[210px] tw-h-[36px] tw-leading-[36px] text-grey-darken-3" |
47 | > | 47 | > |
@@ -76,12 +76,6 @@ const categoryStore = useCategoryStore() | @@ -76,12 +76,6 @@ const categoryStore = useCategoryStore() | ||
76 | const handleCategoryClick = (item: CategoryRootType) => { | 76 | const handleCategoryClick = (item: CategoryRootType) => { |
77 | categoryStore.updateCategory(item.categoryDisplayName) | 77 | categoryStore.updateCategory(item.categoryDisplayName) |
78 | categoryStore.updateSubCategory(item.list[0].id) | 78 | categoryStore.updateSubCategory(item.list[0].id) |
79 | - | ||
80 | - console.log( | ||
81 | - '%c [ ]-76', | ||
82 | - 'font-size:13px; background:pink; color:#bf2c9f;', | ||
83 | - categoryStore.selectedCategory | ||
84 | - ) | ||
85 | } | 79 | } |
86 | 80 | ||
87 | const handleSubCategoryClick = (value: string) => { | 81 | const handleSubCategoryClick = (value: string) => { |
@@ -141,9 +135,7 @@ const funcCategoryList = computed(() => { | @@ -141,9 +135,7 @@ const funcCategoryList = computed(() => { | ||
141 | &:hover, | 135 | &:hover, |
142 | &.active { | 136 | &.active { |
143 | background: #1e88e5; | 137 | background: #1e88e5; |
144 | - border-top-left-radius: 4px; | ||
145 | - border-top-right-radius: 4px; | ||
146 | - height: 90%; | 138 | + border-radius: 4px; |
147 | line-height: 50px; | 139 | line-height: 50px; |
148 | color: #fff; | 140 | color: #fff; |
149 | } | 141 | } |
@@ -156,7 +148,7 @@ const funcCategoryList = computed(() => { | @@ -156,7 +148,7 @@ const funcCategoryList = computed(() => { | ||
156 | margin-bottom: 4px; | 148 | margin-bottom: 4px; |
157 | } | 149 | } |
158 | 150 | ||
159 | -.deviceType { | ||
160 | - border-bottom: 1px dashed rgb(178, 178, 178); | 151 | +.material { |
152 | + border-top: 1px dashed rgb(178, 178, 178); | ||
161 | } | 153 | } |
162 | </style> | 154 | </style> |
src/components/ContentDescription.vue
1 | <template> | 1 | <template> |
2 | - <div :class="'text-subtitle-1 tw-text-justify ' + className">{{ content }}</div> | 2 | + <div :class="'text-subtitle-1 tw-text-justify font-weight-medium ' + className"> |
3 | + {{ content }} | ||
4 | + </div> | ||
3 | </template> | 5 | </template> |
4 | 6 | ||
5 | <script setup lang="ts"> | 7 | <script setup lang="ts"> |
src/components/Header.vue
1 | <template> | 1 | <template> |
2 | <v-container> | 2 | <v-container> |
3 | <div class="tw-m-auto"> | 3 | <div class="tw-m-auto"> |
4 | - <div class="tw-mr-[32px] tw-float-left tw-h-[64px] tw-mt-[-4px]"> | ||
5 | - <img src="@/assets/logo.png" /> | 4 | + <div class="tw-mr-[8px] tw-float-left tw-h-[64px] tw-mt-[-4px] tw-w-[100px]"> |
5 | + <router-link to="/"><v-img src="/logo.jpg" /></router-link> | ||
6 | </div> | 6 | </div> |
7 | <div class="tw-m-auto"> | 7 | <div class="tw-m-auto"> |
8 | <v-text-field | 8 | <v-text-field |
9 | density="comfortable" | 9 | density="comfortable" |
10 | - label="请输入搜索内容" | 10 | + label="Search keyword" |
11 | hide-details="auto" | 11 | hide-details="auto" |
12 | variant="solo" | 12 | variant="solo" |
13 | append-inner-icon="mdi-magnify" | 13 | append-inner-icon="mdi-magnify" |
14 | + @click:appendInner="handleClick" | ||
15 | + v-model="input" | ||
14 | ></v-text-field> | 16 | ></v-text-field> |
15 | </div> | 17 | </div> |
16 | </div> | 18 | </div> |
@@ -21,7 +23,8 @@ | @@ -21,7 +23,8 @@ | ||
21 | v-model="tab" | 23 | v-model="tab" |
22 | bg-color="blue-darken-1" | 24 | bg-color="blue-darken-1" |
23 | slider-color="grey-lighten-3" | 25 | slider-color="grey-lighten-3" |
24 | - tab-slider-size="4px" | 26 | + tab-slider-size="6px" |
27 | + selected-class="active" | ||
25 | > | 28 | > |
26 | <v-tab :value="1" to="/"><span class="text-grey-lighten-3 tw-font-bold">Home</span> </v-tab> | 29 | <v-tab :value="1" to="/"><span class="text-grey-lighten-3 tw-font-bold">Home</span> </v-tab> |
27 | <v-tab :value="2" to="/products" | 30 | <v-tab :value="2" to="/products" |
@@ -39,7 +42,16 @@ | @@ -39,7 +42,16 @@ | ||
39 | </template> | 42 | </template> |
40 | 43 | ||
41 | <script setup lang="ts"> | 44 | <script setup lang="ts"> |
42 | -import { ref, onMounted } from 'vue' | 45 | +import { ref } from 'vue' |
46 | +import { useProductListStore } from '@/stores/product_list' | ||
47 | + | ||
48 | +const productStore = useProductListStore() | ||
49 | + | ||
50 | +const input = ref() | ||
51 | + | ||
52 | +const handleClick = () => { | ||
53 | + productStore.updateKeyword(input.value) | ||
54 | +} | ||
43 | 55 | ||
44 | const tab = ref(1) | 56 | const tab = ref(1) |
45 | </script> | 57 | </script> |
@@ -48,4 +60,10 @@ const tab = ref(1) | @@ -48,4 +60,10 @@ const tab = ref(1) | ||
48 | .tabs { | 60 | .tabs { |
49 | background-color: #1f88e5; | 61 | background-color: #1f88e5; |
50 | } | 62 | } |
63 | + | ||
64 | +.active :deep { | ||
65 | + .v-tab__slider { | ||
66 | + bottom: 3px; | ||
67 | + } | ||
68 | +} | ||
51 | </style> | 69 | </style> |
src/components/MainTitleList.vue
@@ -17,7 +17,7 @@ | @@ -17,7 +17,7 @@ | ||
17 | <v-col v-for="(item, index) in list" :key="index" cols="12" :lg="lgCol" md="4" sm="6"> | 17 | <v-col v-for="(item, index) in list" :key="index" cols="12" :lg="lgCol" md="4" sm="6"> |
18 | <v-hover v-slot="{ isHovering, props }" open-delay="200" :disabled="disabled"> | 18 | <v-hover v-slot="{ isHovering, props }" open-delay="200" :disabled="disabled"> |
19 | <v-card | 19 | <v-card |
20 | - color="light-blue-darken-2" | 20 | + color="blue-darken-1" |
21 | variant="outlined" | 21 | variant="outlined" |
22 | :elevation="isHovering ? 16 : 2" | 22 | :elevation="isHovering ? 16 : 2" |
23 | :class="{ 'on-hover': isHovering }" | 23 | :class="{ 'on-hover': isHovering }" |
@@ -25,10 +25,11 @@ | @@ -25,10 +25,11 @@ | ||
25 | height="295" | 25 | height="295" |
26 | width="260" | 26 | width="260" |
27 | v-bind="props" | 27 | v-bind="props" |
28 | + :href="item.href ? item.href : undefined" | ||
28 | > | 29 | > |
29 | <v-img :src="item.imageUrl" /> | 30 | <v-img :src="item.imageUrl" /> |
30 | <div | 31 | <div |
31 | - class="text-center bg-light-blue-darken-2 tw-absolute tw-bottom-0 tw-text-center tw-w-full tw-h-9 tw-leading-9" | 32 | + class="text-center bg-blue-darken-1 tw-absolute tw-bottom-0 tw-text-center tw-w-full tw-h-9 tw-leading-9" |
32 | > | 33 | > |
33 | {{ item.name }} | 34 | {{ item.name }} |
34 | </div> | 35 | </div> |
@@ -42,17 +43,18 @@ | @@ -42,17 +43,18 @@ | ||
42 | <v-col v-for="(item, index) in list" :key="index"> | 43 | <v-col v-for="(item, index) in list" :key="index"> |
43 | <v-hover v-slot="{ isHovering, props }" open-delay="200" :disabled="disabled"> | 44 | <v-hover v-slot="{ isHovering, props }" open-delay="200" :disabled="disabled"> |
44 | <v-card | 45 | <v-card |
45 | - color="light-blue-darken-2" | 46 | + color="blue-darken-1" |
46 | variant="outlined" | 47 | variant="outlined" |
47 | :elevation="isHovering ? 16 : 2" | 48 | :elevation="isHovering ? 16 : 2" |
48 | :class="{ 'on-hover': isHovering }" | 49 | :class="{ 'on-hover': isHovering }" |
49 | class="pt-5 mx-auto" | 50 | class="pt-5 mx-auto" |
50 | height="350" | 51 | height="350" |
51 | v-bind="props" | 52 | v-bind="props" |
53 | + :href="item.href ? item.href : undefined" | ||
52 | > | 54 | > |
53 | <v-img :src="item.imageUrl" width="250" class="text-center ma-auto" /> | 55 | <v-img :src="item.imageUrl" width="250" class="text-center ma-auto" /> |
54 | <div | 56 | <div |
55 | - class="text-center bg-light-blue-darken-2 tw-absolute tw-bottom-0 tw-text-center tw-w-full tw-h-9 tw-leading-9" | 57 | + class="text-center bg-blue-darken-1 tw-absolute tw-bottom-0 tw-text-center tw-w-full tw-h-9 tw-leading-9" |
56 | > | 58 | > |
57 | {{ item.name }} | 59 | {{ item.name }} |
58 | </div> | 60 | </div> |
@@ -71,7 +73,7 @@ import { computed, ref } from 'vue' | @@ -71,7 +73,7 @@ import { computed, ref } from 'vue' | ||
71 | const props = defineProps<{ | 73 | const props = defineProps<{ |
72 | title: string | 74 | title: string |
73 | desc?: string | 75 | desc?: string |
74 | - list: Category[] | { name: string; imageUrl?: string }[] | 76 | + list: Category[] | { name: string; imageUrl?: string; href: string }[] |
75 | cardNum?: number | 77 | cardNum?: number |
76 | href?: string | 78 | href?: string |
77 | disabled?: boolean | 79 | disabled?: boolean |
src/stores/product_list.ts
@@ -6,7 +6,7 @@ import type { Product, ProductImage, ProductListQuery } from '@/type' | @@ -6,7 +6,7 @@ import type { Product, ProductImage, ProductListQuery } from '@/type' | ||
6 | export const useProductListStore = defineStore('productList', () => { | 6 | export const useProductListStore = defineStore('productList', () => { |
7 | const list = ref<Product[]>([]) | 7 | const list = ref<Product[]>([]) |
8 | const productCategoryId = ref('') // 选中的类别 | 8 | const productCategoryId = ref('') // 选中的类别 |
9 | - const keywork = ref(null) | 9 | + const keyword = ref() |
10 | const pageNo = ref(1) | 10 | const pageNo = ref(1) |
11 | const pageSize = ref(20) | 11 | const pageSize = ref(20) |
12 | const total = ref(0) | 12 | const total = ref(0) |
@@ -44,15 +44,22 @@ export const useProductListStore = defineStore('productList', () => { | @@ -44,15 +44,22 @@ export const useProductListStore = defineStore('productList', () => { | ||
44 | params.value = value | 44 | params.value = value |
45 | } | 45 | } |
46 | 46 | ||
47 | + const updateKeyword = (value: string) => { | ||
48 | + console.log('%c [ value ]-48', 'font-size:13px; background:pink; color:#bf2c9f;', value) | ||
49 | + keyword.value = value | ||
50 | + } | ||
51 | + | ||
47 | return { | 52 | return { |
48 | pageNo, | 53 | pageNo, |
49 | pageSize, | 54 | pageSize, |
50 | total, | 55 | total, |
51 | list, | 56 | list, |
57 | + keyword, | ||
52 | params, | 58 | params, |
53 | getList, | 59 | getList, |
54 | updateCategory, | 60 | updateCategory, |
55 | updatePageNo, | 61 | updatePageNo, |
56 | - updateParams | 62 | + updateParams, |
63 | + updateKeyword | ||
57 | } | 64 | } |
58 | }) | 65 | }) |
src/type.d.ts
src/views/About.vue
1 | <template> | 1 | <template> |
2 | - <v-img src="/customization_hardware/banner.png" class="tw-mb-[64px]"></v-img> | 2 | + <v-img src="/banner/banner1.png" class="tw-mb-[64px]"></v-img> |
3 | <v-container> | 3 | <v-container> |
4 | <MainTitle title="Company Profile" /> | 4 | <MainTitle title="Company Profile" /> |
5 | - <v-row> | ||
6 | - <v-col> | ||
7 | - <v-img src=""></v-img> | 5 | + <v-row class="pb-16"> |
6 | + <v-col cols="5"> | ||
7 | + <v-img src="/about/1.jpg"></v-img> | ||
8 | </v-col> | 8 | </v-col> |
9 | - <v-col> | ||
10 | - <p>1. 2015.2.11 was established in Songshan Lake High-tech Zone;</p> | ||
11 | - <p>2. Registered capital of 1000W;</p> | ||
12 | - <p>3. Main business of new energy technology development</p> | ||
13 | - <p>4. (Customized/ equipment / testing / materials / new product development, etc.);</p> | ||
14 | - <p>5. In 2017, it was approved as a national high-tech enterprise;</p> | ||
15 | - <p>6. 120+ invention patents; 100 + authorized;</p> | 9 | + <v-col class="tw-leading-8"> |
10 | + <p><b>1. </b>2015.2.11 was established in Songshan Lake High-tech Zone;</p> | ||
11 | + <p><b>2.</b> Registered capital of 1000W;</p> | ||
12 | + <p><b>3.</b> Main business of new energy technology development</p> | ||
16 | <p> | 13 | <p> |
17 | - 7. The plant area is 6,000 m 2, with 70 employees (the core team is from Ningde ATL/ | ||
18 | - Foxconn). | 14 | + <b>4.</b> |
15 | + (Customized/ equipment / testing / materials / new product development, etc.); | ||
16 | + </p> | ||
17 | + <p><b>5.</b> In 2017, it was approved as a national high-tech enterprise;</p> | ||
18 | + <p><b>6.</b> 120+ invention patents; 100 + authorized;</p> | ||
19 | + <p> | ||
20 | + <b>7.</b> The plant area is 6,000 m 2, with 70 employees (the core team is from Ningde | ||
21 | + ATL/ Foxconn). | ||
19 | </p> | 22 | </p> |
20 | </v-col> | 23 | </v-col> |
21 | </v-row> | 24 | </v-row> |
@@ -26,113 +29,147 @@ | @@ -26,113 +29,147 @@ | ||
26 | <v-sheet border="width-1px color-blue-darken-1"> | 29 | <v-sheet border="width-1px color-blue-darken-1"> |
27 | <v-row> | 30 | <v-row> |
28 | <v-col> | 31 | <v-col> |
29 | - <v-card height="150"> | ||
30 | - <v-card-title>Vision</v-card-title> | 32 | + <div |
33 | + class="tw-my-[32px] tw-border-0 tw-border-solid tw-border-r-[1px] tw-border-e-blue-300" | ||
34 | + > | ||
35 | + <v-card-title class="mb-4 text-center text-h4">Vision</v-card-title> | ||
31 | <v-card-text> | 36 | <v-card-text> |
32 | the world's top one-stop serviceprovider in the field of new energy research | 37 | the world's top one-stop serviceprovider in the field of new energy research |
33 | </v-card-text> | 38 | </v-card-text> |
34 | - </v-card> | 39 | + </div> |
35 | </v-col> | 40 | </v-col> |
36 | <v-col> | 41 | <v-col> |
37 | - <v-card height="150"> | ||
38 | - <v-card-title>Vision</v-card-title> | ||
39 | - <v-card-text> | ||
40 | - the world's top one-stop serviceprovider in the field of new energy research | ||
41 | - </v-card-text> | ||
42 | - </v-card> | 42 | + <div |
43 | + class="tw-my-[32px] tw-border-0 tw-border-solid tw-border-r-[1px] tw-border-e-blue-300" | ||
44 | + > | ||
45 | + <v-card-title class="mb-4 text-center text-h4">Mission </v-card-title> | ||
46 | + <v-card-text>Build a "industry-university-research" high-speed channel </v-card-text> | ||
47 | + </div> | ||
43 | </v-col> | 48 | </v-col> |
44 | <v-col> | 49 | <v-col> |
45 | - <v-card height="150"> | ||
46 | - <v-card-title>Values</v-card-title> | ||
47 | - <v-card-text>Build a "industry-university-research" high-speed channel</v-card-text> | ||
48 | - </v-card> | 50 | + <div class="tw-my-[32px]"> |
51 | + <v-card-title class="mb-4 text-center text-h4">Values</v-card-title> | ||
52 | + <v-card-text>Burn yourself and contribute to the society Scientific</v-card-text> | ||
53 | + </div> | ||
49 | </v-col> | 54 | </v-col> |
50 | </v-row> | 55 | </v-row> |
51 | </v-sheet> | 56 | </v-sheet> |
52 | </v-container> | 57 | </v-container> |
53 | </v-sheet> | 58 | </v-sheet> |
54 | - <v-container> | ||
55 | - <MainTitle title="Milestone" class="tw-mt-[64px]" /> | ||
56 | - <v-timeline direction="horizontal"> | ||
57 | - <v-timeline-item dot-color="blue-lighten-1"> | ||
58 | - <template v-slot:opposite> <strong>2015</strong> </template> | ||
59 | - <div> | ||
60 | - <p>Canrd established</p> | ||
61 | - </div> | ||
62 | - </v-timeline-item> | 59 | + <v-sheet class="tw-py-[64px]"> |
60 | + <v-container> | ||
61 | + <MainTitle title="Milestone" /> | ||
62 | + <v-timeline direction="horizontal"> | ||
63 | + <v-timeline-item dot-color="indigo-lighten-1" size="16"> | ||
64 | + <template v-slot:opposite> | ||
65 | + <strong class="text-blue-darken-1 tw-text-[22px]">2015</strong></template | ||
66 | + > | ||
67 | + <p class="tw-text-[14px]"> | ||
68 | + <strong | ||
69 | + >Canrd <br /> | ||
70 | + established</strong | ||
71 | + > | ||
72 | + </p> | ||
73 | + </v-timeline-item> | ||
74 | + <v-timeline-item dot-color="blue-darken-1"> | ||
75 | + <template v-slot:opposite> | ||
76 | + <strong class="text-blue-darken-1 tw-text-[22px]">2017</strong></template | ||
77 | + > | ||
78 | + <div> | ||
79 | + <p> | ||
80 | + <strong class="tw-text-[14px]" | ||
81 | + >National high-tech <br /> | ||
82 | + enterprise</strong | ||
83 | + > | ||
84 | + </p> | ||
85 | + </div> | ||
86 | + </v-timeline-item> | ||
63 | 87 | ||
64 | - <v-timeline-item dot-color="deep-purple-accent-1"> | ||
65 | - <template v-slot:opposite> <strong>2017</strong> </template> | ||
66 | - <div> | ||
67 | - <p>National high-tech enterprise</p> | ||
68 | - </div> | ||
69 | - </v-timeline-item> | 88 | + <v-timeline-item dot-color="indigo-lighten-1" size="16"> |
89 | + <template v-slot:opposite> | ||
90 | + <strong class="text-blue-darken-1 tw-text-[22px]">2018</strong> | ||
91 | + </template> | ||
92 | + <div> | ||
93 | + <p class="tw-text-[14px]"><strong>Customers</strong></p> | ||
94 | + <p class="tw-text-[14px]"><strong>exceed 2000+</strong></p> | ||
95 | + </div> | ||
96 | + </v-timeline-item> | ||
97 | + <v-timeline-item dot-color="blue-darken-1"> | ||
98 | + <template v-slot:opposite> | ||
99 | + <strong class="text-blue-darken-1 tw-text-[22px]">2020</strong> | ||
100 | + </template> | ||
70 | 101 | ||
71 | - <v-timeline-item dot-color="blue-lighten-1"> | ||
72 | - <template v-slot:opposite> <strong>2018</strong> </template> | ||
73 | - <div> | ||
74 | - <p>Customers exceed 2000+</p> | ||
75 | - </div> | ||
76 | - </v-timeline-item> | ||
77 | - <v-timeline-item dot-color="deep-purple-accent-1"> | ||
78 | - <template v-slot:opposite> <strong>2020</strong> </template> | ||
79 | - <div> | ||
80 | - <p>Customized division</p> | ||
81 | - <p>Testing division(Xia Men)</p> | ||
82 | - </div> | ||
83 | - </v-timeline-item> | ||
84 | - <v-timeline-item dot-color="blue-lighten-1"> | ||
85 | - <template v-slot:opposite><strong>2021</strong> </template> | ||
86 | - <div> | ||
87 | - <p>Equipment division</p> | ||
88 | - </div> | ||
89 | - </v-timeline-item> | ||
90 | - <v-timeline-item dot-color="deep-purple-accent-1"> | ||
91 | - <template v-slot:opposite> <strong>2022</strong> </template> | ||
92 | - <div> | ||
93 | - <p>R&D center(Houjie)</p> | ||
94 | - <p>Pack division</p> | ||
95 | - </div> | ||
96 | - </v-timeline-item> | ||
97 | - </v-timeline> | ||
98 | - <div class="tw-mt-[48px]"></div> | ||
99 | - <v-row> | ||
100 | - <v-col> | ||
101 | - <v-card height="100"> | ||
102 | - <v-card-title>Team</v-card-title> | ||
103 | - <v-card-text | ||
104 | - >Core team members are all from ATL/Foxconn 12+working experience | ||
105 | - </v-card-text> | ||
106 | - </v-card> | ||
107 | - </v-col> | ||
108 | - <v-col> | ||
109 | - <v-card height="100"> | ||
110 | - <v-card-title>Patents</v-card-title> | ||
111 | - <v-card-text> | ||
112 | - More than 120 invention patents, covering materials, design, process, equipment and so | ||
113 | - on | ||
114 | - </v-card-text> | ||
115 | - </v-card> | ||
116 | - </v-col> | ||
117 | - <v-col> | ||
118 | - <v-card height="100"> | ||
119 | - <v-card-title>Hardware</v-card-title> | ||
120 | - <v-card-text>Independent battery pilot line and equipment production line</v-card-text> | ||
121 | - </v-card> | ||
122 | - </v-col> | ||
123 | - </v-row> | ||
124 | - <v-row></v-row> | ||
125 | - <ContentDescription | ||
126 | - className="tw-mb-[16px] tw-mt-[48px]" | ||
127 | - content="The combination of hardware and software creates strong research and development capabilities." | ||
128 | - /> | ||
129 | - <ContentDescription | ||
130 | - className="tw-mb-[16px]" | ||
131 | - content="The invention patents cover new materials such as silicon carbon, graphene, lithium sulfur, | ||
132 | - sodium electricity and lithium metal, as well as gel process, pre-lithium process and flexible | ||
133 | - battery design." | ||
134 | - /> | ||
135 | - </v-container> | 102 | + <div class="tw-text-[14px]"> |
103 | + <p><strong>Customized division</strong></p> | ||
104 | + <p><strong>Testing division(Xia Men)</strong></p> | ||
105 | + </div> | ||
106 | + </v-timeline-item> | ||
107 | + <v-timeline-item dot-color="indigo-lighten-1" size="indig16"> | ||
108 | + <template v-slot:opposite> | ||
109 | + <strong class="text-blue-darken-1 tw-text-[22px]">2021</strong> | ||
110 | + </template> | ||
111 | + <div class="tw-text-[14px]"> | ||
112 | + <p><strong>Equipment division</strong></p> | ||
113 | + </div> | ||
114 | + </v-timeline-item> | ||
115 | + <v-timeline-item dot-color="blue-darken-1"> | ||
116 | + <template v-slot:opposite> | ||
117 | + <strong class="text-blue-darken-1 tw-text-[22px]">2022</strong></template | ||
118 | + > | ||
119 | + | ||
120 | + <div class="tw-text-[14px]"> | ||
121 | + <p><strong>R&D center(Houjie)</strong></p> | ||
122 | + <p><strong>>Pack division</strong></p> | ||
123 | + </div> | ||
124 | + </v-timeline-item> | ||
125 | + </v-timeline> | ||
126 | + </v-container> | ||
127 | + </v-sheet> | ||
128 | + <v-sheet class="bg-grey-lighten-5 tw-pt-[64px] tw-pb-[128px]"> | ||
129 | + <v-container> | ||
130 | + <MainTitle title="R&D Ability" /> | ||
131 | + <div class="text-body-1 font-weight-medium tw-mb-[24px] tw-max-w-[600px] tw-m-auto"> | ||
132 | + The combination of hardware and software creates strong research and development | ||
133 | + capabilities. | ||
134 | + </div> | ||
135 | + <div class="text-body-1 font-weight-medium tw-mb-[64px] tw-max-w-[600px] tw-m-auto"> | ||
136 | + The invention patents cover new materials such as silicon carbon, graphene, lithium sulfur, | ||
137 | + sodium electricity and lithium metal, as well as gel process, pre-lithium process and | ||
138 | + flexible battery design." | ||
139 | + </div> | ||
140 | + | ||
141 | + <v-row> | ||
142 | + <v-col> | ||
143 | + <v-card variant="outlined" color="blue-darken-1"> | ||
144 | + <v-img src="/about/5.png"></v-img> | ||
145 | + <v-card-title class="text-grey-darken-4">Team</v-card-title> | ||
146 | + <v-card-text class="text-grey-darken-4" | ||
147 | + >Core team members are all from ATL/Foxconn 12+working experience | ||
148 | + </v-card-text> | ||
149 | + </v-card> | ||
150 | + </v-col> | ||
151 | + <v-col> | ||
152 | + <v-card variant="outlined" color="blue-darken-1"> | ||
153 | + <v-img src="/about/6.png"></v-img> | ||
154 | + <v-card-title class="text-grey-darken-4">Patents</v-card-title> | ||
155 | + <v-card-text class="text-grey-darken-4"> | ||
156 | + More than 120 invention patents, covering materials, design, process, equipment and so | ||
157 | + on | ||
158 | + </v-card-text> | ||
159 | + </v-card> | ||
160 | + </v-col> | ||
161 | + <v-col> | ||
162 | + <v-card variant="outlined" color="blue-darken-1"> | ||
163 | + <v-img src="/about/7.png"></v-img> | ||
164 | + <v-card-title class="text-grey-darken-4">Hardware</v-card-title> | ||
165 | + <v-card-text class="text-grey-darken-4" | ||
166 | + ><row>Independent battery pilot line and equipment production line</row></v-card-text | ||
167 | + > | ||
168 | + </v-card> | ||
169 | + </v-col> | ||
170 | + </v-row> | ||
171 | + </v-container> | ||
172 | + </v-sheet> | ||
136 | </template> | 173 | </template> |
137 | 174 | ||
138 | <script setup lang="ts"> | 175 | <script setup lang="ts"> |
@@ -140,4 +177,16 @@ import MainTitle from '@/components/MainTitle.vue' | @@ -140,4 +177,16 @@ import MainTitle from '@/components/MainTitle.vue' | ||
140 | import ContentDescription from '@/components/ContentDescription.vue' | 177 | import ContentDescription from '@/components/ContentDescription.vue' |
141 | </script> | 178 | </script> |
142 | 179 | ||
143 | -<style lang="less" scoped></style> | 180 | +<style lang="scss" scoped> |
181 | +b { | ||
182 | + display: inline; | ||
183 | + font-size: 20px; | ||
184 | + color: #1e88e5; | ||
185 | + font-style: italic; | ||
186 | +} | ||
187 | + | ||
188 | +p { | ||
189 | + cursor: default; | ||
190 | + font-weight: bold; | ||
191 | +} | ||
192 | +</style> |
src/views/Customize.vue
1 | <template> | 1 | <template> |
2 | - <v-img src="/customization_hardware/banner.png"></v-img> | ||
3 | - <v-container> | 2 | + <v-img src="/banner/banner1.png"></v-img> |
3 | + <div class="font-weight-medium text-white tw-bg-[url('/banner/top2.png')] tw-p-[64px]"> | ||
4 | + Leading hardware support for customized battery solutions. Independent prototyping line covers | ||
5 | + the entire process. Equipped with a soft-pack development line and a -50°C drying room to meet | ||
6 | + various needs. Two lithium metal pouch cell preparation options provided. Strong R&D | ||
7 | + capabilities with over 10 years of experience. Resolving 100+ customized projects, serving 50+ | ||
8 | + clients. Services include material evaluation, R&D contract manufacturing, new system | ||
9 | + development, and finished/semi-finished products. Breakthroughs in high-temperature, | ||
10 | + low-temperature, and fast-charging fields. Production and sales of high-quality lithium-ion | ||
11 | + batteries. Choose us to meet your R&D and production needs. | ||
12 | + </div> | ||
13 | + <div class="tw-p-[64px]"> | ||
14 | + <MainTitle title="Customization Hardware" className="tw-mb-[24px]" /> | ||
15 | + <v-divider class="tw-mb-[64px]"></v-divider> | ||
4 | <ContentDescription | 16 | <ContentDescription |
5 | - content="Leading hardware support for customized battery solutions. Independent prototyping line covers the entire process. Equipped with a soft-pack development line and a -50°C drying room to meet various needs. Two lithium metal pouch cell preparation options provided. Strong R&D capabilities with over 10 years of experience. Resolving 100+ customized projects, serving 50+ clients. Services include material evaluation, R&D contract manufacturing, new system development, and finished/semi-finished products. Breakthroughs in high-temperature, low-temperature, and fast-charging fields. Production and sales of high-quality lithium-ion batteries. Choose us to meet your R&D and production needs." | ||
6 | - /> | ||
7 | - <MainTitle title="Customization Hardware" /> | ||
8 | - <ContentDescription | ||
9 | - class="tw-mb-[8px]" | 17 | + className="tw-mb-[64px] tw-max-w-[600px] tw-m-auto font-weight-medium" |
10 | content="Coin cell preparation line with different machine such as mixing, coating, calendaring, | 18 | content="Coin cell preparation line with different machine such as mixing, coating, calendaring, |
11 | cutting, assembly and testing." | 19 | cutting, assembly and testing." |
12 | /> | 20 | /> |
13 | <v-row> | 21 | <v-row> |
14 | - <v-col> | 22 | + <v-col cols="5"> |
15 | <v-img src="/customization_hardware/1.png"></v-img> | 23 | <v-img src="/customization_hardware/1.png"></v-img> |
16 | </v-col> | 24 | </v-col> |
17 | - <v-col> | 25 | + <v-col class="2"></v-col> |
26 | + <v-col cols="5"> | ||
18 | <v-img src="/customization_hardware/2.png"></v-img> | 27 | <v-img src="/customization_hardware/2.png"></v-img> |
19 | </v-col> | 28 | </v-col> |
20 | </v-row> | 29 | </v-row> |
21 | - <v-divider class="tw-mt-[24px] tw-mb-[24px]"></v-divider> | ||
22 | - <div>1、Pouch cell pilot line with different humidity control requirement</div> | ||
23 | - <div>2、Dry room for other process</div> | ||
24 | - <div>3、Dry room for mixing and coating with -30℃ humidity</div> | ||
25 | - <div>4、(before electrolyte injection)with -40℃ humidity</div> | ||
26 | - <v-slide-group class="pa-4" selected-class="bg-success" show-arrows> | 30 | + <v-divider class="tw-my-[64px]"></v-divider> |
31 | + <div class="tw-max-w-[600px] tw-m-auto font-weight-medium tw-mb-[32px]"> | ||
32 | + <div>1、Pouch cell pilot line with different humidity control requirement</div> | ||
33 | + <div>2、Dry room for other process</div> | ||
34 | + <div>3、Dry room for mixing and coating with -30℃ humidity</div> | ||
35 | + <div>4、(before electrolyte injection)with -40℃ humidity</div> | ||
36 | + </div> | ||
37 | + <!-- <v-slide-group class="pa-4" selected-class="bg-success" show-arrows> | ||
27 | <v-slide-group-item v-for="slide in slides" :key="slide"> | 38 | <v-slide-group-item v-for="slide in slides" :key="slide"> |
28 | <v-card :class="['ma-2']" width="360"> | 39 | <v-card :class="['ma-2']" width="360"> |
29 | <v-img :src="slide"></v-img> | 40 | <v-img :src="slide"></v-img> |
30 | </v-card> | 41 | </v-card> |
31 | </v-slide-group-item> | 42 | </v-slide-group-item> |
32 | - </v-slide-group> | ||
33 | - <v-divider class="tw-mt-[24px] tw-mb-[24px]"></v-divider> | 43 | + </v-slide-group> --> |
44 | + <v-row> | ||
45 | + <v-col v-for="slide in slides" :key="slide"><v-img :src="slide"></v-img></v-col> | ||
46 | + </v-row> | ||
34 | 47 | ||
35 | - <div class="tw-mb-[24px]"> | 48 | + <v-divider class="tw-my-[64px]"></v-divider> |
49 | + <div class="tw-max-w-[600px] tw-m-auto font-weight-medium tw-mb-[32px]"> | ||
36 | <div>1、There are different capacity for mixing(5L,10L and 30L)</div> | 50 | <div>1、There are different capacity for mixing(5L,10L and 30L)</div> |
37 | <div>2、Dry room for high Ni cathode pouch cell preparation(-30℃ humidity)</div> | 51 | <div>2、Dry room for high Ni cathode pouch cell preparation(-30℃ humidity)</div> |
38 | <div> | 52 | <div> |
@@ -45,18 +59,89 @@ | @@ -45,18 +59,89 @@ | ||
45 | <v-col><v-img src="/customization_hardware/10.png"></v-img></v-col> | 59 | <v-col><v-img src="/customization_hardware/10.png"></v-img></v-col> |
46 | <v-col><v-img src="/customization_hardware/11.png"></v-img></v-col> | 60 | <v-col><v-img src="/customization_hardware/11.png"></v-img></v-col> |
47 | </v-row> | 61 | </v-row> |
48 | - <v-divider class="tw-mt-[24px] tw-mb-[24px]"></v-divider> | 62 | + </div> |
63 | + | ||
64 | + <div class="bg-grey-lighten-5 tw-p-[64px]"> | ||
65 | + <MainTitle title="Succeed Case" className="tw-mb-[64px]" /> | ||
66 | + <div class="tw-relative tw-mb-[64px]"> | ||
67 | + <div | ||
68 | + class="tw-w-[200px] tw-text-center bg-blue-darken-1 tw-rounded-[4px] tw-m-auto tw-text-[20px] tw-font-medium tw-relative tw-z-10" | ||
69 | + > | ||
70 | + customized types | ||
71 | + </div> | ||
72 | + <v-divider class="tw-absolute tw-top-[16px] tw-w-full"></v-divider> | ||
73 | + </div> | ||
74 | + | ||
75 | + <v-row class="mb-16"> | ||
76 | + <v-col v-for="slide in slideCases" :key="slide"><v-img :src="slide"></v-img></v-col> | ||
77 | + </v-row> | ||
49 | 78 | ||
50 | - <div class="text-blue-darken-2 text-h3 tw-text-center tw-mb-8">Succeed Case</div> | ||
51 | - <div class="tw-text-center">customized types</div> | ||
52 | - <v-slide-group class="pa-4" selected-class="bg-success" show-arrows> | 79 | + <!-- <v-slide-group class="pa-4" selected-class="bg-success" show-arrows> |
53 | <v-slide-group-item v-for="slide in slideCases" :key="slide"> | 80 | <v-slide-group-item v-for="slide in slideCases" :key="slide"> |
54 | <v-card :class="['ma-2']" width="360"> | 81 | <v-card :class="['ma-2']" width="360"> |
55 | <v-img :src="slide"></v-img> | 82 | <v-img :src="slide"></v-img> |
56 | </v-card> | 83 | </v-card> |
57 | </v-slide-group-item> | 84 | </v-slide-group-item> |
58 | - </v-slide-group> | ||
59 | - </v-container> | 85 | + </v-slide-group> --> |
86 | + | ||
87 | + <div class="tw-relative tw-mb-[64px]"> | ||
88 | + <div | ||
89 | + class="tw-w-[210px] tw-text-center bg-blue-darken-1 tw-rounded-[4px] tw-m-auto tw-text-[20px] tw-font-medium tw-relative tw-z-10" | ||
90 | + > | ||
91 | + Material evaluation | ||
92 | + </div> | ||
93 | + <v-divider class="tw-absolute tw-top-[16px] tw-w-full"></v-divider> | ||
94 | + </div> | ||
95 | + <ContentDescription | ||
96 | + className="tw-mb-[64px] tw-max-w-[600px] tw-m-auto font-weight-medium" | ||
97 | + content="Comprehensive lithium battery material evaluation, covering key materials such as cathode, anode, electrolyte, separator, and conductive additives. Accurate testing to ensure high-performance batteries. Choose us to embark on the path of material innovation!." | ||
98 | + /> | ||
99 | + <v-table density="compact" class="tw-mb-[64px]"> | ||
100 | + <thead> | ||
101 | + <tr class="bg-blue-lighten-1"> | ||
102 | + <th class="text-left text-white">Cathode</th> | ||
103 | + <th class="text-left text-white">Anode</th> | ||
104 | + <th class="text-left text-white">Electrolyte</th> | ||
105 | + <th class="text-left text-white">Separator</th> | ||
106 | + <th class="text-left text-white">Conductive carbon</th> | ||
107 | + </tr> | ||
108 | + </thead> | ||
109 | + <tbody> | ||
110 | + <tr class="bg-light-blue-lighten-5"> | ||
111 | + <td>1</td> | ||
112 | + <td>2</td> | ||
113 | + <td>1</td> | ||
114 | + <td>2</td> | ||
115 | + <td>1</td> | ||
116 | + </tr> | ||
117 | + <tr class="bg-light-blue-lighten-5"> | ||
118 | + <td>1</td> | ||
119 | + <td>2</td> | ||
120 | + <td>2</td> | ||
121 | + <td>2</td> | ||
122 | + <td>2</td> | ||
123 | + </tr> | ||
124 | + </tbody> | ||
125 | + </v-table> | ||
126 | + | ||
127 | + <div class="tw-relative tw-mb-[64px]"> | ||
128 | + <div | ||
129 | + class="tw-w-[220px] tw-text-center bg-blue-darken-1 tw-rounded-[4px] tw-m-auto tw-text-[20px] tw-font-medium tw-relative tw-z-10" | ||
130 | + > | ||
131 | + System development | ||
132 | + </div> | ||
133 | + <v-divider class="tw-absolute tw-top-[16px] tw-w-full"></v-divider> | ||
134 | + </div> | ||
135 | + | ||
136 | + <ContentDescription | ||
137 | + className="tw-mb-[64px] tw-max-w-[600px] tw-m-auto font-weight-medium" | ||
138 | + content="High temperature: mine safety helmet Low temperature: outdoor extreme cold applicationFast charging system development: fast charging power bank Water system battery development: new system development." | ||
139 | + /> | ||
140 | + | ||
141 | + <v-row class="mb-16"> | ||
142 | + <v-col v-for="slide in slideCases" :key="slide"><v-img :src="slide"></v-img></v-col> | ||
143 | + </v-row> | ||
144 | + </div> | ||
60 | </template> | 145 | </template> |
61 | 146 | ||
62 | <script setup lang="ts"> | 147 | <script setup lang="ts"> |
@@ -83,11 +168,13 @@ const slides = [ | @@ -83,11 +168,13 @@ const slides = [ | ||
83 | 168 | ||
84 | const slideCases = [ | 169 | const slideCases = [ |
85 | '/customization_case/1.png', | 170 | '/customization_case/1.png', |
86 | - '/customization_case/2.png' | ||
87 | - // '/customization_case/3.png', | ||
88 | - // '/customization_case/4.png', | 171 | + '/customization_case/2.png', |
172 | + '/customization_case/3.png', | ||
173 | + '/customization_case/4.png' | ||
89 | // '/customization_case/5.png' | 174 | // '/customization_case/5.png' |
90 | ] | 175 | ] |
176 | + | ||
177 | +const systems = ['/customization_case'] | ||
91 | </script> | 178 | </script> |
92 | 179 | ||
93 | <style lang="less" scoped></style> | 180 | <style lang="less" scoped></style> |
src/views/Equipment.vue
1 | <template> | 1 | <template> |
2 | - <v-img src="/customization_hardware/banner.png"></v-img> | ||
3 | - <v-container> | ||
4 | - <ContentDescription | ||
5 | - content="Equipment Business: With our self-built high-precision machining center, we possess robust | ||
6 | - design and manufacturing capabilities. We offer comprehensive equipment supply, production | ||
7 | - line planning, and construction services, including battery assembly lines, pouch cell testing | ||
8 | - lines, and more. Our aim is to provide complete equipment solutions that cater to the diverse | ||
9 | - needs of our clients. Expect top-quality equipment and professional services that will help | ||
10 | - you stand out in a fiercely competitive market!" | ||
11 | - /> | ||
12 | - <div class="tw-mb-[96px]"> | ||
13 | - <MainTitleList title="Equipment hardware" :list="equipments" /> | ||
14 | - </div> | ||
15 | - <MainTitle title="Succeed Case" /> | ||
16 | - <v-divider></v-divider> | ||
17 | - <div class="pb-6 tw-m-[18px] tw-mb-[32px]"> | ||
18 | - <div class="text-h4 tw-text-center text-light-blue-darken-2">Coin cell</div> | ||
19 | - <v-row> | ||
20 | - <v-col cols="6"> | ||
21 | - <v-img class="text-white align-end" src="/succeed_case/coin cell.png" cover /> | ||
22 | - </v-col> | ||
23 | - <v-col cols="6"> | ||
24 | - <div class="text-body-1 tw-text-justify tw-h-full tw-items-center tw-flex"> | ||
25 | - Our coin cell production line comprises a well-established process that includes | ||
26 | - material baking, vacuum mixing, slurry filtration, electrode coating, electrode drying, | ||
27 | - electrode rolling, punching, environmental control, cell assembly, cell sealing, and | ||
28 | - formation testing. Through precise operations and advanced technology, we ensure uniform | ||
29 | - coating of positive and negative electrode materials, precise dimensions, and optimal | ||
30 | - performance. Our production line strictly adheres to quality standards, guaranteeing | ||
31 | - reliable manufacturing of pouch cells. From material preparation to final testing, our | ||
32 | - professional production line ensures outstanding performance and reliable safety, | ||
33 | - meeting the diverse needs of our customers. | ||
34 | - </div> | ||
35 | - </v-col> | ||
36 | - </v-row> | ||
37 | - </div> | ||
38 | - <v-divider></v-divider> | 2 | + <v-img src="/banner/banner1.png"></v-img> |
3 | + <div class="font-weight-medium text-white tw-bg-[url('/banner/top2.png')] tw-p-[64px]"> | ||
4 | + Equipment Business: With our self-built high-precision machining center, we possess robust | ||
5 | + design and manufacturing capabilities. We offer comprehensive equipment supply, production line | ||
6 | + planning, and construction services, including battery assembly lines, pouch cell testing lines, | ||
7 | + and more. Our aim is to provide complete equipment solutions that cater to the diverse needs of | ||
8 | + our clients. Expect top-quality equipment and professional services that will help you stand out | ||
9 | + in a fiercely competitive market! | ||
10 | + </div> | ||
11 | + <div class="tw-p-[64px]"> | ||
12 | + <MainTitle title="Succeed Case" className="tw-mb-[64px]" /> | ||
39 | 13 | ||
40 | - <div class="pb-6 tw-m-[18px] tw-mb-[32px]"> | ||
41 | - <div class="text-h4 tw-text-center text-light-blue-darken-2">Pouch cell pilot line</div> | 14 | + <div class="tw-relative tw-mb-[64px]"> |
15 | + <div | ||
16 | + class="tw-w-[140px] tw-text-center bg-blue-darken-1 tw-rounded-[4px] tw-m-auto tw-text-[20px] tw-font-medium tw-relative tw-z-10" | ||
17 | + > | ||
18 | + Coin cell | ||
19 | + </div> | ||
20 | + <v-divider class="tw-absolute tw-top-[16px] tw-w-full"></v-divider> | ||
21 | + </div> | ||
22 | + <v-row class="mb-16"> | ||
23 | + <v-col cols="6"> | ||
24 | + <v-img class="text-white align-end" src="/succeed_case/coin cell.png" cover /> | ||
25 | + </v-col> | ||
26 | + <v-col cols="6"> | ||
27 | + <div | ||
28 | + class="font-weight-medium text-body-1 tw-text-justify tw-h-full tw-items-center tw-flex" | ||
29 | + > | ||
30 | + Our coin cell production line comprises a well-established process that includes material | ||
31 | + baking, vacuum mixing, slurry filtration, electrode coating, electrode drying, electrode | ||
32 | + rolling, punching, environmental control, cell assembly, cell sealing, and formation | ||
33 | + testing. Through precise operations and advanced technology, we ensure uniform coating of | ||
34 | + positive and negative electrode materials, precise dimensions, and optimal performance. | ||
35 | + Our production line strictly adheres to quality standards, guaranteeing reliable | ||
36 | + manufacturing of pouch cells. From material preparation to final testing, our professional | ||
37 | + production line ensures outstanding performance and reliable safety, meeting the diverse | ||
38 | + needs of our customers. | ||
39 | + </div> | ||
40 | + </v-col> | ||
41 | + </v-row> | ||
42 | 42 | ||
43 | - <v-row> | ||
44 | - <v-col cols="6"> | ||
45 | - <div class="text-body-1 tw-text-justify tw-h-full tw-items-center tw-flex"> | ||
46 | - Our pouch cell pilot line is a highly specialized production line that encompasses key | ||
47 | - processes such as vacuum mixing, electrode coating, electrode rolling, electrode | ||
48 | - cutting, electrode stacking, electrode welding, film forming, top-side sealing, | ||
49 | - electrolyte filling, vacuum resting, vacuum sealing, hot pressing formation, vacuum | ||
50 | - final sealing, and pouch cell assembly. Through meticulous operations and advanced | ||
51 | - technology, we ensure the consistency and reliability of the positive and negative | ||
52 | - electrodes. Each step is carefully controlled to guarantee the stability, reliability, | ||
53 | - and high performance of the cells. Our pouch cell pilot line meets industry standards | ||
54 | - and caters to the professional needs of our customers. Whether for research samples or | ||
55 | - small-scale production, we provide high-quality and highly reliable pouch cell products. | ||
56 | - </div> | ||
57 | - </v-col> | ||
58 | - <v-col cols="6"> | ||
59 | - <v-img class="text-white align-end" src="/succeed_case/coin cell.png" cover /> | ||
60 | - </v-col> | ||
61 | - </v-row> | 43 | + <div class="tw-relative tw-mb-[64px]"> |
44 | + <div | ||
45 | + class="tw-w-[210px] tw-text-center bg-blue-darken-1 tw-rounded-[4px] tw-m-auto tw-text-[20px] tw-font-medium tw-relative tw-z-10" | ||
46 | + > | ||
47 | + Pouch cell pilot line | ||
48 | + </div> | ||
49 | + <v-divider class="tw-absolute tw-top-[16px] tw-w-full"></v-divider> | ||
62 | </div> | 50 | </div> |
63 | - <v-divider></v-divider> | 51 | + <v-row class="mb-16"> |
52 | + <v-col cols="6"> | ||
53 | + <div | ||
54 | + class="font-weight-medium text-body-1 tw-text-justify tw-h-full tw-items-center tw-flex" | ||
55 | + > | ||
56 | + Our pouch cell pilot line is a highly specialized production line that encompasses key | ||
57 | + processes such as vacuum mixing, electrode coating, electrode rolling, electrode cutting, | ||
58 | + electrode stacking, electrode welding, film forming, top-side sealing, electrolyte | ||
59 | + filling, vacuum resting, vacuum sealing, hot pressing formation, vacuum final sealing, and | ||
60 | + pouch cell assembly. Through meticulous operations and advanced technology, we ensure the | ||
61 | + consistency and reliability of the positive and negative electrodes. Each step is | ||
62 | + carefully controlled to guarantee the stability, reliability, and high performance of the | ||
63 | + cells. Our pouch cell pilot line meets industry standards and caters to the professional | ||
64 | + needs of our customers. Whether for research samples or small-scale production, we provide | ||
65 | + high-quality and highly reliable pouch cell products. | ||
66 | + </div> | ||
67 | + </v-col> | ||
68 | + <v-col cols="6"> | ||
69 | + <v-img class="text-white align-end" src="/succeed_case/coin cell.png" cover /> | ||
70 | + </v-col> | ||
71 | + </v-row> | ||
64 | 72 | ||
65 | - <div class="pb-6 tw-m-[18px] tw-mb-[32px]"> | ||
66 | - <div class="text-h4 tw-text-center text-light-blue-darken-2 tw-mb-[32px]"> | 73 | + <div class="tw-relative tw-mb-[64px]"> |
74 | + <div | ||
75 | + class="tw-w-[300px] tw-text-center bg-blue-darken-1 tw-rounded-[4px] tw-m-auto tw-text-[20px] tw-font-medium tw-relative tw-z-10" | ||
76 | + > | ||
67 | Pouch cell pilot line (200m2) | 77 | Pouch cell pilot line (200m2) |
68 | </div> | 78 | </div> |
69 | - <v-row class="mb-3"> | ||
70 | - <v-col cols="6"> | ||
71 | - <v-img | ||
72 | - class="text-white align-end" | ||
73 | - src="/succeed_case/Pouch cell pilot line (200m2).png" | ||
74 | - cover | ||
75 | - /> | ||
76 | - </v-col> | ||
77 | - <v-col cols="6"> | ||
78 | - <div class="text-body-1 tw-text-justify tw-h-full tw-items-center tw-flex"> | ||
79 | - Our pouch cell pilot line layout has been meticulously designed, as shown in the | ||
80 | - accompanying diagram, to optimize space utilization, streamline workflow, and control | ||
81 | - temperature and humidity. This layout ensures high production efficiency, convenient | ||
82 | - operation, and precise experimental control. The equipment placement is strategically | ||
83 | - arranged, allowing easy access for operators while prioritizing safety considerations. | ||
84 | - </div> | ||
85 | - </v-col> | ||
86 | - </v-row> | ||
87 | - | ||
88 | - <v-row> | ||
89 | - <v-slide-group selected-class="bg-primary" show-arrows> | ||
90 | - <v-slide-group-item v-for="img in successCases" :key="img"> | ||
91 | - <v-card color="grey-lighten-1" :class="['ma-4']" width="260"> | ||
92 | - <v-img :src="img"></v-img> | ||
93 | - </v-card> | ||
94 | - </v-slide-group-item> | ||
95 | - </v-slide-group> | ||
96 | - </v-row> | 79 | + <v-divider class="tw-absolute tw-top-[16px] tw-w-full"></v-divider> |
97 | </div> | 80 | </div> |
81 | + <div class="text-h4 tw-text-center text-light-blue-darken-2 tw-mb-[32px]"></div> | ||
82 | + <v-row class="mb-16"> | ||
83 | + <v-col cols="6"> | ||
84 | + <v-img | ||
85 | + class="text-white align-end" | ||
86 | + src="/succeed_case/Pouch cell pilot line (200m2).png" | ||
87 | + cover | ||
88 | + /> | ||
89 | + </v-col> | ||
90 | + <v-col cols="6"> | ||
91 | + <div | ||
92 | + class="font-weight-medium text-body-1 tw-text-justify tw-h-full tw-items-center tw-flex" | ||
93 | + > | ||
94 | + Our pouch cell pilot line layout has been meticulously designed, as shown in the | ||
95 | + accompanying diagram, to optimize space utilization, streamline workflow, and control | ||
96 | + temperature and humidity. This layout ensures high production efficiency, convenient | ||
97 | + operation, and precise experimental control. The equipment placement is strategically | ||
98 | + arranged, allowing easy access for operators while prioritizing safety considerations. | ||
99 | + </div> | ||
100 | + </v-col> | ||
101 | + </v-row> | ||
102 | + | ||
103 | + <v-row class="mb-16"> | ||
104 | + <v-slide-group selected-class="bg-primary" show-arrows> | ||
105 | + <v-slide-group-item v-for="img in successCases" :key="img"> | ||
106 | + <v-card color="grey-lighten-1" :class="['ma-4']" width="260"> | ||
107 | + <v-img :src="img"></v-img> | ||
108 | + </v-card> | ||
109 | + </v-slide-group-item> | ||
110 | + </v-slide-group> | ||
111 | + </v-row> | ||
98 | <!-- <MainTitleList title="Customized fixture" :list="fixtures" /> --> | 112 | <!-- <MainTitleList title="Customized fixture" :list="fixtures" /> --> |
99 | - </v-container> | 113 | + </div> |
100 | </template> | 114 | </template> |
101 | 115 | ||
102 | <script setup lang="ts"> | 116 | <script setup lang="ts"> |
src/views/Home.vue
@@ -16,41 +16,37 @@ | @@ -16,41 +16,37 @@ | ||
16 | /> | 16 | /> |
17 | </div> --> | 17 | </div> --> |
18 | <!-- 能源材料 --> | 18 | <!-- 能源材料 --> |
19 | - <div class="tw-p-[64px]"> | 19 | + <div class="tw-p-[64px] tw-px-[128px]"> |
20 | <MainTitleList | 20 | <MainTitleList |
21 | :title="t('材料试剂')" | 21 | :title="t('材料试剂')" |
22 | :list="materials" | 22 | :list="materials" |
23 | - :disabled="true" | ||
24 | :responsive="true" | 23 | :responsive="true" |
25 | desc="Leading global provider of energy storage research materials and providing other professional/universal experimental materials. " | 24 | desc="Leading global provider of energy storage research materials and providing other professional/universal experimental materials. " |
26 | /> | 25 | /> |
27 | </div> | 26 | </div> |
28 | 27 | ||
29 | <!-- 设备 --> | 28 | <!-- 设备 --> |
30 | - <div class="bg-grey-lighten-5 tw-p-[64px]"> | 29 | + <div class="bg-grey-lighten-5 tw-p-[64px] tw-px-[128px]"> |
31 | <MainTitleList | 30 | <MainTitleList |
32 | title="Lab Device" | 31 | title="Lab Device" |
33 | - :list="lab.list" | ||
34 | - disabled | 32 | + :list="lab.list.map((item) => ({ ...item, href: '/products' }))" |
35 | desc="Self-built High-precision Machining Center with Powerful Design and Manufacturing Capabilities. " | 33 | desc="Self-built High-precision Machining Center with Powerful Design and Manufacturing Capabilities. " |
36 | href="/equipment" | 34 | href="/equipment" |
37 | /> | 35 | /> |
38 | </div> | 36 | </div> |
39 | 37 | ||
40 | <!-- Customized Battery --> | 38 | <!-- Customized Battery --> |
41 | - <div class="tw-p-[64px]"> | 39 | + <div class="tw-p-[64px] tw-px-[128px]"> |
42 | <MainTitleList | 40 | <MainTitleList |
43 | :title="t('Customized Battery')" | 41 | :title="t('Customized Battery')" |
44 | :list="batteries" | 42 | :list="batteries" |
45 | - disabled | ||
46 | href="/customize" | 43 | href="/customize" |
47 | desc="200mAh~10Ah, Winding/Stacking, Unfilled/Filled Electrolyte Cells, Three-Electrode, and More. " | 44 | desc="200mAh~10Ah, Winding/Stacking, Unfilled/Filled Electrolyte Cells, Three-Electrode, and More. " |
48 | /> | 45 | /> |
49 | </div> | 46 | </div> |
50 | <!-- Testing --> | 47 | <!-- Testing --> |
51 | - <div class="bg-grey-lighten-5 tw-p-[64px]"> | 48 | + <div class="bg-grey-lighten-5 tw-p-[64px] tw-px-[128px]"> |
52 | <MainTitleList | 49 | <MainTitleList |
53 | - disabled | ||
54 | :title="t('Testing')" | 50 | :title="t('Testing')" |
55 | :list="tests" | 51 | :list="tests" |
56 | href="/test" | 52 | href="/test" |
@@ -58,12 +54,11 @@ | @@ -58,12 +54,11 @@ | ||
58 | /> | 54 | /> |
59 | </div> | 55 | </div> |
60 | <!-- Pack --> | 56 | <!-- Pack --> |
61 | - <div class="tw-p-[64px]"> | 57 | + <div class="tw-p-[64px] tw-px-[128px] tw-pb-[128px]"> |
62 | <MainTitleList | 58 | <MainTitleList |
63 | :responsive="true" | 59 | :responsive="true" |
64 | :title="t('Pack')" | 60 | :title="t('Pack')" |
65 | href="/pack" | 61 | href="/pack" |
66 | - disabled | ||
67 | :list="packs" | 62 | :list="packs" |
68 | desc="Focusing on energy materials/new energy storage systems/modules and other fields, mastering advanced technologies to provide high-quality services. " | 63 | desc="Focusing on energy materials/new energy storage systems/modules and other fields, mastering advanced technologies to provide high-quality services. " |
69 | /> | 64 | /> |
@@ -90,25 +85,41 @@ const lab = computed( | @@ -90,25 +85,41 @@ const lab = computed( | ||
90 | 85 | ||
91 | const strengths = [{ name: t('优势1') }, { name: t('优势2') }, { name: t('优势3') }] | 86 | const strengths = [{ name: t('优势1') }, { name: t('优势2') }, { name: t('优势3') }] |
92 | const materials = [ | 87 | const materials = [ |
93 | - { name: 'Energy materials', imageUrl: '/home/1.jpg' }, | ||
94 | - { name: 'Universal consumables', imageUrl: '/home/2-Universal-consumables.png' }, | ||
95 | - { name: 'Low dimensional materials', imageUrl: '/home/3-Low-dimensional-materials.png' } | 88 | + { name: 'Energy materials', imageUrl: '/home/1.jpg', href: '/products' }, |
89 | + { | ||
90 | + name: 'Universal consumables', | ||
91 | + imageUrl: '/home/2-Universal-consumables.png', | ||
92 | + href: '/products' | ||
93 | + }, | ||
94 | + { | ||
95 | + name: 'Low dimensional materials', | ||
96 | + imageUrl: '/home/3-Low-dimensional-materials.png', | ||
97 | + href: '/products' | ||
98 | + } | ||
96 | ] | 99 | ] |
97 | const tests = [ | 100 | const tests = [ |
98 | - { name: 'Electrochemical performance', imageUrl: '/home/8_Electrochemical_performance.svg' }, | ||
99 | - { name: 'Reliability testing', imageUrl: '/home/9 Reliability testing.svg' }, | ||
100 | - { name: 'Material testing', imageUrl: '/home/10 Material testing.svg' }, | ||
101 | - { name: 'Calibration', imageUrl: '/home/11 Calibration.svg' } | 101 | + { |
102 | + name: 'Electrochemical performance', | ||
103 | + imageUrl: '/home/8_Electrochemical_performance.svg', | ||
104 | + href: '/test' | ||
105 | + }, | ||
106 | + { name: 'Reliability testing', imageUrl: '/home/9 Reliability testing.svg', href: '/test' }, | ||
107 | + { name: 'Material testing', imageUrl: '/home/10 Material testing.svg', href: '/test' }, | ||
108 | + { name: 'Calibration', imageUrl: '/home/11 Calibration.svg', href: '/test' } | ||
102 | ] | 109 | ] |
103 | const batteries = [ | 110 | const batteries = [ |
104 | - { name: 'Material evaluation', imageUrl: '/home/4-Material-evaluation.png' }, | ||
105 | - { name: 'R&D foundry', imageUrl: '/home/5-R&D-foundry.png' }, | ||
106 | - { name: 'Chemical system', imageUrl: '/home/6-Chemical-system.png' }, | ||
107 | - { name: 'Semi product customization', imageUrl: '/home/7-Semi-product-customization.png' } | 111 | + { name: 'Material evaluation', imageUrl: '/home/4-Material-evaluation.png', href: '/customize' }, |
112 | + { name: 'R&D foundry', imageUrl: '/home/5-R&D-foundry.png', href: '/customize' }, | ||
113 | + { name: 'Chemical system', imageUrl: '/home/6-Chemical-system.png', href: '/customize' }, | ||
114 | + { | ||
115 | + name: 'Semi product customization', | ||
116 | + imageUrl: '/home/7-Semi-product-customization.png', | ||
117 | + href: '/customize' | ||
118 | + } | ||
108 | ] | 119 | ] |
109 | const packs = [ | 120 | const packs = [ |
110 | - { name: 'Power bank', imageUrl: '/home/12-power-bank.png' }, | ||
111 | - { name: 'Energy storage', imageUrl: '/home/13-Energy-storage.png' } | 121 | + { name: 'Power bank', imageUrl: '/home/12-power-bank.png', href: '/pack' }, |
122 | + { name: 'Energy storage', imageUrl: '/home/13-Energy-storage.png', href: '/pack' } | ||
112 | // { name: 'low-dimensional materials', imageUrl: '/home/3-Low-dimensional-materials.png' } | 123 | // { name: 'low-dimensional materials', imageUrl: '/home/3-Low-dimensional-materials.png' } |
113 | ] | 124 | ] |
114 | </script> | 125 | </script> |
src/views/Pack.vue
1 | <template> | 1 | <template> |
2 | - <v-img src="/customization_hardware/banner.png"></v-img> | ||
3 | - <v-container> | ||
4 | - <ContentDescription | ||
5 | - content="We are proud to introduce our PACK product to you. As a leader in the market application of | ||
6 | - scientific research projects, we focus on transforming scientific achievements into practical | ||
7 | - market applications. We provide a variety of cases to meet different project requirements, | ||
8 | - such as fast-charging mobile power supplies, smart flashlights, low-speed vehicles, and | ||
9 | - small-scale energy storage. We are committed to successfully applying the results of | ||
10 | - scientific research projects to the market and providing innovative solutions for our | ||
11 | - customers." | ||
12 | - /> | 2 | + <v-img src="/banner/banner1.png"></v-img> |
3 | + <div class="font-weight-medium text-white tw-bg-[url('/banner/top2.png')] tw-p-[64px]"> | ||
4 | + We are proud to introduce our PACK product to you. As a leader in the market application of | ||
5 | + scientific research projects, we focus on transforming scientific achievements into practical | ||
6 | + market applications. We provide a variety of cases to meet different project requirements, such | ||
7 | + as fast-charging mobile power supplies, smart flashlights, low-speed vehicles, and small-scale | ||
8 | + energy storage. We are committed to successfully applying the results of scientific research | ||
9 | + projects to the market and providing innovative solutions for our customers." | ||
10 | + </div> | ||
11 | + <div class="tw-pt-[64px] tw-px-[128px] tw-pb-[128px]"> | ||
13 | <MainTitle title="Customization Hardware" className="tw-mb-[16px]" /> | 12 | <MainTitle title="Customization Hardware" className="tw-mb-[16px]" /> |
14 | <v-slide-group class="pa-4 tw-w-[110%] tw-ml-[-5%] tw-mb-[32px]" center-active show-arrows> | 13 | <v-slide-group class="pa-4 tw-w-[110%] tw-ml-[-5%] tw-mb-[32px]" center-active show-arrows> |
15 | <v-slide-group-item v-for="n in hardwares" :key="n"> | 14 | <v-slide-group-item v-for="n in hardwares" :key="n"> |
@@ -25,16 +24,18 @@ | @@ -25,16 +24,18 @@ | ||
25 | <v-img src="/pack_case/8.png"></v-img> | 24 | <v-img src="/pack_case/8.png"></v-img> |
26 | </v-col> | 25 | </v-col> |
27 | <v-col> | 26 | <v-col> |
28 | - <div class="text-subtitle-1 tw-text-justify tw-items-center tw-flex tw-h-full"> | 27 | + <div |
28 | + class="text-subtitle-1 tw-text-justify tw-items-center tw-flex tw-h-full font-weight-medium" | ||
29 | + > | ||
29 | Canrd helps our customer to accomplish the requirement from PET current collector to power | 30 | Canrd helps our customer to accomplish the requirement from PET current collector to power |
30 | bank; | 31 | bank; |
31 | </div> | 32 | </div> |
32 | </v-col> | 33 | </v-col> |
33 | </v-row> | 34 | </v-row> |
34 | - <v-divider class="mb-8"></v-divider> | 35 | + <v-divider class="my-16"></v-divider> |
35 | <v-row> | 36 | <v-row> |
36 | <v-col> | 37 | <v-col> |
37 | - <div class="text-body-1 tw-h-full tw-text-justify"> | 38 | + <div class="text-body-1 tw-h-full tw-text-justify font-weight-medium"> |
38 | <p class="mb-3"> | 39 | <p class="mb-3"> |
39 | 1. Canrd helps our customer to accomplish the requirement from sodium cathode to | 40 | 1. Canrd helps our customer to accomplish the requirement from sodium cathode to |
40 | standard car; | 41 | standard car; |
@@ -49,7 +50,7 @@ | @@ -49,7 +50,7 @@ | ||
49 | <v-img src="/pack_case/8.png"></v-img> | 50 | <v-img src="/pack_case/8.png"></v-img> |
50 | </v-col> | 51 | </v-col> |
51 | </v-row> | 52 | </v-row> |
52 | - </v-container> | 53 | + </div> |
53 | </template> | 54 | </template> |
54 | 55 | ||
55 | <script setup lang="ts"> | 56 | <script setup lang="ts"> |
src/views/ProductDetail.vue
1 | <template> | 1 | <template> |
2 | <!-- <v-breadcrumbs class="pt-0" :items="['首页', '产品中心', '详情']"></v-breadcrumbs> --> | 2 | <!-- <v-breadcrumbs class="pt-0" :items="['首页', '产品中心', '详情']"></v-breadcrumbs> --> |
3 | <v-container> | 3 | <v-container> |
4 | - <v-row class="ma-0"> | 4 | + <v-row class="mb-16 ma-0"> |
5 | <v-col cols="5" | 5 | <v-col cols="5" |
6 | ><v-carousel class="tw-float-left" height="550" v-model="slide"> | 6 | ><v-carousel class="tw-float-left" height="550" v-model="slide"> |
7 | <v-carousel-item | 7 | <v-carousel-item |
@@ -13,8 +13,8 @@ | @@ -13,8 +13,8 @@ | ||
13 | </v-carousel-item> | 13 | </v-carousel-item> |
14 | </v-carousel> | 14 | </v-carousel> |
15 | </v-col> | 15 | </v-col> |
16 | - <v-col> | ||
17 | - <v-card-title class="mb-10 text-h4"> {{ info.name }} </v-card-title> | 16 | + <v-col cols="7"> |
17 | + <div class="mb-10 text-h4 font-weight-medium">{{ info.name }}</div> | ||
18 | <div class="tw-flex tw-flex-wrap"> | 18 | <div class="tw-flex tw-flex-wrap"> |
19 | <div class="tw-w-1/2"> | 19 | <div class="tw-w-1/2"> |
20 | <span class="tw-leading-[10px] tw-m-[16px]">Brand:{{ info.brandName }}</span> | 20 | <span class="tw-leading-[10px] tw-m-[16px]">Brand:{{ info.brandName }}</span> |
@@ -42,28 +42,35 @@ | @@ -42,28 +42,35 @@ | ||
42 | > | 42 | > |
43 | </div> | 43 | </div> |
44 | </div> | 44 | </div> |
45 | - <v-col> | ||
46 | - <v-table density="compact" class="table1 tw-mt-[32px]"> | ||
47 | - <thead> | ||
48 | - <tr> | ||
49 | - <th class="text-left">name</th> | ||
50 | - <th class="text-left">weight</th> | ||
51 | - <th class="text-left">price</th> | ||
52 | - </tr> | ||
53 | - </thead> | ||
54 | - <tbody> | ||
55 | - <tr class="tr" v-for="item in info.ticketTypes || []" :key="item.rank"> | ||
56 | - <td class="td">{{ item.rank }}</td> | ||
57 | - <td class="td">{{ item.typeName }}</td> | ||
58 | - <td class="td">{{ item.price }}</td> | ||
59 | - </tr> | ||
60 | - </tbody> | ||
61 | - </v-table> | ||
62 | - </v-col> | 45 | + <v-table density="compact" class="table1 tw-mt-[32px]" v-if="info.ticketTypes?.length"> |
46 | + <thead> | ||
47 | + <tr class="bg-grey-lighten-3"> | ||
48 | + <th class="text-left">Product Name / Code</th> | ||
49 | + <th class="text-left">Specification and model</th> | ||
50 | + <th class="text-left">Price</th> | ||
51 | + </tr> | ||
52 | + </thead> | ||
53 | + <tbody> | ||
54 | + <tr class="tr" v-for="item in info.ticketTypes || []" :key="item.rank"> | ||
55 | + <td class="td">{{ item.rank }}</td> | ||
56 | + <td class="td">{{ item.typeName }}</td> | ||
57 | + <!-- <td class="td">{{ item.price }}</td> --> | ||
58 | + <td class="td"> | ||
59 | + <v-btn size="small" color="blue-darken-1"> Quotation Inquiry</v-btn> | ||
60 | + </td> | ||
61 | + </tr> | ||
62 | + </tbody> | ||
63 | + </v-table> | ||
63 | </v-col> | 64 | </v-col> |
64 | </v-row> | 65 | </v-row> |
65 | - <div> | ||
66 | - <v-tabs v-model="tab" color="blue-lighten-1" align-tabs="start"> | 66 | + <div class="tw-pb-[64px]"> |
67 | + <v-tabs | ||
68 | + v-model="tab" | ||
69 | + color="white" | ||
70 | + bg-color="#eeeeee" | ||
71 | + slider-color="blue-lighten-1" | ||
72 | + selected-class="active" | ||
73 | + > | ||
67 | <v-tab :value="1">商品介绍</v-tab> | 74 | <v-tab :value="1">商品介绍</v-tab> |
68 | <v-tab :value="2">规格参数</v-tab> | 75 | <v-tab :value="2">规格参数</v-tab> |
69 | <!-- <v-tab :value="3">商品百科</v-tab> --> | 76 | <!-- <v-tab :value="3">商品百科</v-tab> --> |
@@ -118,11 +125,15 @@ const slide = ref(0) | @@ -118,11 +125,15 @@ const slide = ref(0) | ||
118 | </script> | 125 | </script> |
119 | 126 | ||
120 | <style lang="scss" scoped> | 127 | <style lang="scss" scoped> |
128 | +.active { | ||
129 | + background-color: #1086e8; | ||
130 | +} | ||
121 | .td, | 131 | .td, |
122 | th { | 132 | th { |
123 | border: 1px solid #dcdcdc; | 133 | border: 1px solid #dcdcdc; |
124 | border-right: 0px; | 134 | border-right: 0px; |
125 | border-bottom: 0px !important; | 135 | border-bottom: 0px !important; |
136 | + height: 50px !important; | ||
126 | 137 | ||
127 | &:last-child { | 138 | &:last-child { |
128 | border: 1px solid #dcdcdc; | 139 | border: 1px solid #dcdcdc; |
src/views/ProductList.vue
1 | <template> | 1 | <template> |
2 | - <div class="tw-m-auto"> | 2 | + <div class="tw-m-auto tw-pb-[64px]"> |
3 | <CategoryList /> | 3 | <CategoryList /> |
4 | <v-container class=""> | 4 | <v-container class=""> |
5 | <div class="tw-text-center" v-if="loading"> | 5 | <div class="tw-text-center" v-if="loading"> |
@@ -23,7 +23,7 @@ | @@ -23,7 +23,7 @@ | ||
23 | v-bind="props" | 23 | v-bind="props" |
24 | :to="`/products/detail/${item.id}`" | 24 | :to="`/products/detail/${item.id}`" |
25 | > | 25 | > |
26 | - <v-img :src="item.imgList[0].url"> | 26 | + <v-img :src="item.imgList[0].url" height="280"> |
27 | <!-- <v-expand-transition> | 27 | <!-- <v-expand-transition> |
28 | <div | 28 | <div |
29 | v-if="isHovering" | 29 | v-if="isHovering" |
@@ -34,7 +34,9 @@ | @@ -34,7 +34,9 @@ | ||
34 | </div> | 34 | </div> |
35 | </v-expand-transition> --> | 35 | </v-expand-transition> --> |
36 | </v-img> | 36 | </v-img> |
37 | - <v-card-text class="tw-text-left">{{ item.name }}</v-card-text> | 37 | + <v-card-text class="tw-text-left font-weight-medium title">{{ |
38 | + item.name | ||
39 | + }}</v-card-text> | ||
38 | </v-card> | 40 | </v-card> |
39 | </v-hover> | 41 | </v-hover> |
40 | </v-col> | 42 | </v-col> |
@@ -66,7 +68,7 @@ | @@ -66,7 +68,7 @@ | ||
66 | import { useProductListStore } from '@/stores/product_list' | 68 | import { useProductListStore } from '@/stores/product_list' |
67 | import { useCategoryStore } from '@/stores/category' | 69 | import { useCategoryStore } from '@/stores/category' |
68 | import CategoryList from '@/components/CategoryList.vue' | 70 | import CategoryList from '@/components/CategoryList.vue' |
69 | -import { onMounted, watchEffect, computed, ref } from 'vue' | 71 | +import { watchEffect, computed, ref } from 'vue' |
70 | import { isEqual } from 'lodash' | 72 | import { isEqual } from 'lodash' |
71 | 73 | ||
72 | const productStore = useProductListStore() | 74 | const productStore = useProductListStore() |
@@ -85,6 +87,10 @@ watchEffect(async () => { | @@ -85,6 +87,10 @@ watchEffect(async () => { | ||
85 | params.productFunctionId = categoryStore.selectedFuncCategory | 87 | params.productFunctionId = categoryStore.selectedFuncCategory |
86 | } | 88 | } |
87 | 89 | ||
90 | + if (productStore.keyword) { | ||
91 | + params.keyword = productStore.keyword | ||
92 | + } | ||
93 | + | ||
88 | if (categoryStore.selectedSubCategory && !isEqual(productStore.params, params)) { | 94 | if (categoryStore.selectedSubCategory && !isEqual(productStore.params, params)) { |
89 | loading.value = true | 95 | loading.value = true |
90 | productStore.updateParams(params) | 96 | productStore.updateParams(params) |
@@ -97,3 +103,14 @@ const length = computed(() => | @@ -97,3 +103,14 @@ const length = computed(() => | ||
97 | productStore.total ? Math.ceil(productStore.total / productStore.pageSize) : 0 | 103 | productStore.total ? Math.ceil(productStore.total / productStore.pageSize) : 0 |
98 | ) | 104 | ) |
99 | </script> | 105 | </script> |
106 | + | ||
107 | +<style scoped> | ||
108 | +.title { | ||
109 | + height: 60px; | ||
110 | + overflow: hidden; | ||
111 | + text-overflow: ellipsis; | ||
112 | + display: -webkit-box; | ||
113 | + -webkit-line-clamp: 2; | ||
114 | + -webkit-box-orient: vertical; | ||
115 | +} | ||
116 | +</style> |
src/views/Test.vue
1 | <template> | 1 | <template> |
2 | - <v-img src="/customization_hardware/banner.png"></v-img> | ||
3 | - <v-container> | ||
4 | - <ContentDescription | ||
5 | - content="We have an independent battery testing center that provides comprehensive testing services for you! Whether it's ambient temperature, high-temperature cycling, rate testing, high and low-temperature testing, high-temperature storage testing, or EIS/CV testing, we can meet your needs. Our reverse analysis experimental plan covers various dimensions, including non-destructive testing, disassembly analysis, size, capacity, internal resistance, EIS, rate, high and low-temperature analysis. Through techniques such as capacity testing, SEM, EDS, Mapping, CP, TG, GC-MS, ICP, we conduct in-depth reverse analysis, including elemental analysis and morphology analysis. Finally, we prepare detailed reverse analysis reports, combining market conditions to provide you with research and development directions. Choose us for reliable testing and limitless innovation!" | ||
6 | - /> | 2 | + <v-img src="/banner/banner1.png"></v-img> |
3 | + <div | ||
4 | + class="font-weight-medium text-white tw-bg-[url('/banner/top2.png')] tw-p-[64px] tw-mb-[64px]" | ||
5 | + > | ||
6 | + We have an independent battery testing center that provides comprehensive testing services for | ||
7 | + you! Whether it's ambient temperature, high-temperature cycling, rate testing, high and | ||
8 | + low-temperature testing, high-temperature storage testing, or EIS/CV testing, we can meet your | ||
9 | + needs. Our reverse analysis experimental plan covers various dimensions, including | ||
10 | + non-destructive testing, disassembly analysis, size, capacity, internal resistance, EIS, rate, | ||
11 | + high and low-temperature analysis. Through techniques such as capacity testing, SEM, EDS, | ||
12 | + Mapping, CP, TG, GC-MS, ICP, we conduct in-depth reverse analysis, including elemental analysis | ||
13 | + and morphology analysis. Finally, we prepare detailed reverse analysis reports, combining market | ||
14 | + conditions to provide you with research and development directions. Choose us for reliable | ||
15 | + testing and limitless innovation! | ||
16 | + </div> | ||
17 | + <div class="tw-px-[64px] tw-pb-[78px]"> | ||
7 | <MainTitle title="Customization Hardware" /> | 18 | <MainTitle title="Customization Hardware" /> |
8 | - <ContentDescription | ||
9 | - className="tw-mb-[16px]" | ||
10 | - content="Coin cell preparation line with differentmachine such as mixing, coating, calendaring, | ||
11 | - cutting, assembly and testing." | ||
12 | - /> | ||
13 | <v-row> | 19 | <v-row> |
14 | - <v-col> | ||
15 | - <v-img src="/customization_hardware/1.png"></v-img> | ||
16 | - </v-col> | ||
17 | - <v-col> | ||
18 | - <v-img src="/customization_hardware/2.png"></v-img> | ||
19 | - </v-col> | 20 | + <v-col v-for="slide in slides" :key="slide"><v-img :src="slide"></v-img></v-col> |
20 | </v-row> | 21 | </v-row> |
21 | - <v-divider class="tw-mt-[24px] tw-mb-[24px]"></v-divider> | ||
22 | - <div class="text-subtitle-1 tw-text-justify"> | ||
23 | - 1、Pouch cell pilot line with different humidity control requirement | ||
24 | - </div> | ||
25 | - <div class="text-subtitle-1 tw-text-justify">2、Dry room for other process</div> | ||
26 | - <div class="text-subtitle-1 tw-text-justify"> | ||
27 | - 3、Dry room for mixing and coating with -30℃ humidity | ||
28 | - </div> | ||
29 | - <div class="text-subtitle-1 tw-text-justify"> | ||
30 | - 4、(before electrolyte injection)with -40℃ humidity | ||
31 | - </div> | ||
32 | - <v-slide-group class="pa-4" selected-class="bg-success" show-arrows> | 22 | + </div> |
23 | + <!-- <v-slide-group class="pa-4" selected-class="bg-success" show-arrows> | ||
33 | <v-slide-group-item v-for="slide in slides" :key="slide"> | 24 | <v-slide-group-item v-for="slide in slides" :key="slide"> |
34 | <v-card :class="['ma-2']" width="360"> | 25 | <v-card :class="['ma-2']" width="360"> |
35 | <v-img :src="slide"></v-img> | 26 | <v-img :src="slide"></v-img> |
36 | </v-card> | 27 | </v-card> |
37 | </v-slide-group-item> | 28 | </v-slide-group-item> |
38 | - </v-slide-group> | ||
39 | - <v-divider class="tw-mt-[24px] tw-mb-[24px]"></v-divider> | ||
40 | - | ||
41 | - <div class="tw-mb-[24px]"> | ||
42 | - <div class="text-subtitle-1 tw-text-justify"> | ||
43 | - 1、There are different capacity for mixing(5L,10L and 30L) | ||
44 | - </div> | ||
45 | - <div class="text-subtitle-1 tw-text-justify"> | ||
46 | - 2、Dry room for high Ni cathode pouch cell preparation(-30℃ humidity) | ||
47 | - </div> | ||
48 | - <div class="text-subtitle-1 tw-text-justify"> | ||
49 | - 3、Different solution to prepare lithium metal pouch cell(glove box with 0.1ppm condition or | ||
50 | - -50℃ dry room) | 29 | + </v-slide-group> --> |
30 | + <div class="tw-p-[64px] bg-grey-lighten-5"> | ||
31 | + <MainTitle title="Succeed Case" className="tw-mb-[64px]" /> | ||
32 | + <div class="tw-relative tw-mb-[64px]"> | ||
33 | + <div | ||
34 | + class="tw-w-[200px] tw-text-center bg-blue-darken-1 tw-rounded-[4px] tw-m-auto tw-text-[20px] tw-font-medium tw-relative tw-z-10" | ||
35 | + > | ||
36 | + Reverse analysis | ||
51 | </div> | 37 | </div> |
38 | + <v-divider class="tw-absolute tw-top-[16px] tw-w-full"></v-divider> | ||
52 | </div> | 39 | </div> |
53 | - <v-row> | ||
54 | - <v-col><v-img src="/customization_hardware/9.png"></v-img></v-col> | ||
55 | - <v-col><v-img src="/customization_hardware/10.png"></v-img></v-col> | ||
56 | - <v-col><v-img src="/customization_hardware/11.png"></v-img></v-col> | 40 | + <ContentDescription |
41 | + className="tw-mb-[64px] tw-max-w-[600px] tw-m-auto" | ||
42 | + content="Reverse analysis: assist customers to analyze the polymer / organic components in mainstream power batteries" | ||
43 | + /> | ||
44 | + <v-row class="mb-12"> | ||
45 | + <v-col v-for="slide in slides" :key="slide"><v-img :src="slide"></v-img></v-col> | ||
57 | </v-row> | 46 | </v-row> |
58 | - <MainTitle title="Succeed Case" className="tw-mb-[32px] tw-mt-[64px]" /> | ||
59 | - <ContentDescription className="tw-mb-[16px]" content="Customized types." /> | ||
60 | - <v-slide-group class="pa-0" selected-class="bg-success" show-arrows> | 47 | + <div class="font-weight-medium tw-max-w-[600px] tw-m-auto"> |
48 | + <p> | ||
49 | + 1. Experiment scheme: first conduct nondestructive testing (size / capacity / internal | ||
50 | + resistance / EIS / ratio / high and low temperature, etc.), and finally conduct disassembly | ||
51 | + analysis | ||
52 | + </p> | ||
53 | + <p> | ||
54 | + 2. Implement reverse analysis: gram capacity / SEM / ED S/Mapping / CP / TG / GC-MS / ICP | ||
55 | + and other means | ||
56 | + </p> | ||
57 | + <p> | ||
58 | + 3. Write the reverse analysis report: give the customer research and development direction | ||
59 | + according to the market situation | ||
60 | + </p> | ||
61 | + </div> | ||
62 | + | ||
63 | + <div class="tw-relative tw-my-[64px]"> | ||
64 | + <div | ||
65 | + class="tw-w-[240px] tw-text-center bg-blue-darken-1 tw-rounded-[4px] tw-m-auto tw-text-[20px] tw-font-medium tw-relative tw-z-10" | ||
66 | + > | ||
67 | + Reverse analysis result | ||
68 | + </div> | ||
69 | + <v-divider class="tw-absolute tw-top-[16px] tw-w-full"></v-divider> | ||
70 | + </div> | ||
71 | + | ||
72 | + <v-img height="300" :src="results[0]" class="tw-mb-[64px]"></v-img> | ||
73 | + <v-img height="340" class="tw-mb-[32px]" :src="results[1]"></v-img> | ||
74 | + </div> | ||
75 | + <!-- <v-slide-group class="pa-0" selected-class="bg-success" show-arrows> | ||
61 | <v-slide-group-item v-for="slide in slideCases" :key="slide"> | 76 | <v-slide-group-item v-for="slide in slideCases" :key="slide"> |
62 | <v-card :class="['ma-2']" width="360"> | 77 | <v-card :class="['ma-2']" width="360"> |
63 | <v-img :src="slide"></v-img> | 78 | <v-img :src="slide"></v-img> |
64 | </v-card> | 79 | </v-card> |
65 | </v-slide-group-item> | 80 | </v-slide-group-item> |
66 | - </v-slide-group> | ||
67 | - </v-container> | 81 | + </v-slide-group> --> |
68 | </template> | 82 | </template> |
69 | 83 | ||
70 | <script setup lang="ts"> | 84 | <script setup lang="ts"> |
@@ -96,6 +110,8 @@ const slideCases = [ | @@ -96,6 +110,8 @@ const slideCases = [ | ||
96 | // '/customization_case/4.png', | 110 | // '/customization_case/4.png', |
97 | // '/customization_case/5.png' | 111 | // '/customization_case/5.png' |
98 | ] | 112 | ] |
113 | + | ||
114 | +const results = ['/test/1.png', '/test/2.png'] | ||
99 | </script> | 115 | </script> |
100 | 116 | ||
101 | <style lang="less" scoped></style> | 117 | <style lang="less" scoped></style> |