Commit e11821c18b8a96438c126f1ecda4e6eb5d444d7f

Authored by sanmu
1 parent 97d46e74

up

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
@@ -3,3 +3,7 @@ @@ -3,3 +3,7 @@
3 @tailwind base; 3 @tailwind base;
4 @tailwind components; 4 @tailwind components;
5 @tailwind utilities; 5 @tailwind utilities;
  6 +
  7 +* {
  8 + word-break: break-all;
  9 +}
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(() =&gt; { @@ -141,9 +135,7 @@ const funcCategoryList = computed(() =&gt; {
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(() =&gt; { @@ -156,7 +148,7 @@ const funcCategoryList = computed(() =&gt; {
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 &#39;vue&#39; @@ -71,7 +73,7 @@ import { computed, ref } from &#39;vue&#39;
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 &#39;@/type&#39; @@ -6,7 +6,7 @@ import type { Product, ProductImage, ProductListQuery } from &#39;@/type&#39;
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(&#39;productList&#39;, () =&gt; { @@ -44,15 +44,22 @@ export const useProductListStore = defineStore(&#39;productList&#39;, () =&gt; {
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
@@ -2,6 +2,7 @@ export interface Category { @@ -2,6 +2,7 @@ export interface Category {
2 name: string 2 name: string
3 imageUrl: string 3 imageUrl: string
4 id: string 4 id: string
  5 + href?: string
5 } 6 }
6 7
7 export interface CategoryRootType { 8 export interface CategoryRootType {
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 &#39;@/components/MainTitle.vue&#39; @@ -140,4 +177,16 @@ import MainTitle from &#39;@/components/MainTitle.vue&#39;
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&amp;D
  7 + capabilities with over 10 years of experience. Resolving 100+ customized projects, serving 50+
  8 + clients. Services include material evaluation, R&amp;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&amp;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&amp;D capabilities with over 10 years of experience. Resolving 100+ customized projects, serving 50+ clients. Services include material evaluation, R&amp;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&amp;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 () =&gt; { @@ -85,6 +87,10 @@ watchEffect(async () =&gt; {
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(() =&gt; @@ -97,3 +103,14 @@ const length = computed(() =&gt;
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>