Compare commits

...

12 Commits

Author SHA1 Message Date
李志鹏
9f079107f7 router 2026-05-19 17:03:28 +08:00
李志鹏
cfcb1bef21 Merge branch 'main' of http://18.167.251.121:10003/aidlab/Code-Create 2026-05-19 15:55:52 +08:00
李志鹏
50ab3853f0 媒体报道&联系我们 2026-05-19 15:55:49 +08:00
X1627315083@163.com
4c515e1123 fix 2026-05-19 14:49:12 +08:00
X1627315083@163.com
7e8fdf315b all-events页面 2026-05-19 14:48:36 +08:00
李志鹏
db73c58525 Merge branch 'main' of http://18.167.251.121:10003/aidlab/Code-Create 2026-05-19 10:36:49 +08:00
李志鹏
9eeb29da31 111 2026-05-19 10:36:47 +08:00
X1627315083@163.com
55cc4cb40f fix 2026-05-19 10:36:33 +08:00
李志鹏
bcaeda6217 Merge branch 'main' of http://18.167.251.121:10003/aidlab/Code-Create 2026-05-19 10:05:57 +08:00
李志鹏
c72dd4a455 111 2026-05-19 10:05:55 +08:00
X1627315083@163.com
f75495564a Merge branch 'main' of http://18.167.251.121:10003/aidlab/Code-Create 2026-05-19 09:57:53 +08:00
X1627315083@163.com
0bc1bd79ed fix 2026-05-19 09:57:24 +08:00
35 changed files with 2034 additions and 196 deletions

1
.gitignore vendored
View File

@@ -22,3 +22,4 @@ dist-ssr
*.njsproj
*.sln
*.sw?
*.vite-ssg-temp

View File

@@ -5,7 +5,7 @@
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>test-ssg</title>
<link rel="stylesheet" href="https://at.alicdn.com/t/c/font_4403230_70xz405a1wg.css" />
<link rel="stylesheet" href="https://at.alicdn.com/t/c/font_4403230_hjri04euw1w.css" />
</head>
<body>
<div id="app"></div>

View File

@@ -13,6 +13,7 @@ p {
}
* {
box-sizing: border-box;
font-family: Poppins;
}
h1,
h2,
@@ -24,7 +25,6 @@ h6,
font-family: Poppins, sans-serif;
font-weight: 600;
letter-spacing: 2px;
text-transform: capitalize;
}
@keyframes loading {
0% {
@@ -138,7 +138,7 @@ button[custom="red"] {
}
button[custom]:hover,
button[custom="red"]:hover {
background-color: #99494c;
background-color: var(--hover-backcolor, #99494c);
}
button[custom] > .iconfont,
button[custom="red"] > .iconfont {
@@ -153,22 +153,34 @@ button[custom="red"] > .label {
position: relative;
cursor: pointer;
}
.hover-bottom-animation.center {
--right: auto;
--left: 50%;
--transform: translateX(-50%);
}
.hover-bottom-animation::before {
content: '';
position: absolute;
height: 2px;
width: 0;
right: 0;
left: auto;
right: var(--right, 0);
left: var(--left, auto);
bottom: 0;
transform: var(--transform);
transition: width 0.2s ease-in-out;
-webkit-transition: width 0.2s ease-in-out;
background-color: #fff;
background-color: var(--background-color, #fff);
}
.hover-bottom-animation:hover::before {
.hover-bottom-animation:not(.center):hover::before {
width: 100%;
left: 0;
right: auto;
--left: 0;
--right: auto;
}
.hover-bottom-animation.center:hover::before {
width: 100%;
--right: auto;
--left: 50%;
--transform: translateX(-50%);
}
.hover-bottom-animation.active:before,
.hover-bottom-animation.router-link-exact-active:before {

View File

@@ -14,6 +14,7 @@ p {
* {
box-sizing: border-box;
font-family: Poppins;
}
h1,
@@ -26,7 +27,7 @@ h6,
font-family: Poppins, sans-serif;
font-weight: 600;
letter-spacing: 2px;
text-transform: capitalize;
// text-transform: capitalize;
}
@keyframes loading {
@@ -161,7 +162,7 @@ button[custom="red"] {
font-size: 12px;
&:hover {
background-color: #99494c;
background-color: var(--hover-backcolor, #99494c);
}
display: flex;
@@ -184,23 +185,37 @@ button[custom="red"] {
position: relative;
cursor: pointer;
&.center {
--right: auto;
--left: 50%;
--transform: translateX(-50%);
}
&::before {
content: '';
position: absolute;
height: 2px;
width: 0;
right: 0;
left: auto;
right: var(--right, 0);
left: var(--left, auto);
bottom: 0;
transform: var(--transform);
transition: width 0.2s ease-in-out;
-webkit-transition: width 0.2s ease-in-out;
background-color: #fff;
background-color: var(--background-color, #fff);
}
&:hover::before {
&:not(.center):hover::before {
width: 100%;
left: 0;
right: auto;
--left: 0;
--right: auto;
}
&.center:hover::before {
width: 100%;
--right: auto;
--left: 50%;
--transform: translateX(-50%);
}
&.active:before,

View File

@@ -0,0 +1,5 @@
/* 字体定义 */
@font-face {
font-family: 'Poppins';
src: url('./poppins.woff2') format('woff2');
}

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

View File

@@ -4,7 +4,7 @@
<div class="center-nav">
<div class="nav-item" v-for="item in navList" :key="item.name">
<down-menu :title="$t(item.name)" v-if="item.children">
<router-link :to="child.path" v-for="child in item.children" :key="child.name">
<router-link :to="child.path" v-for="(child) in item.children" :key="child.name">
{{ $t(child.name) }}
</router-link>
</down-menu>
@@ -65,7 +65,7 @@
}
])
const navList = ref([
const navList:any = ref([
{
name: 'MainHeader.Home',
path: '/'

View File

@@ -8,6 +8,15 @@
* 参数
* GetRoot: 获取根元素函数-优先级GetRoot > parent > document
* activeClass: 激活类名-默认值active
* duration: 动画时间-默认值0.5s
* delay: 延迟时间-默认值0s
* easing: 缓动函数-默认值ease-out
* transformDuration: 变换时间-默认值 duration
* transformDelay: 变换延迟时间-默认值 delay
* transformEasing: 变换缓动函数-默认值 easing
* opacityDuration: 透明度时间-默认值 duration
* opacityDelay: 透明度延迟时间-默认值 delay
* opacityEasing: 透明度缓动函数-默认值 easing
*
* 子元素动画
* <div translate-x-s="-100" translate-x="100"></div>
@@ -40,6 +49,16 @@ const T = {
rotateZ: 'rotate-z',
opacity_s: 'opacity-s',
opacity: 'opacity',
// 动画属性配置
duration: 'duration',
delay: 'delay',
easing: 'easing',
transformDuration: 'transform-duration',
transformDelay: 'transform-delay',
transformEasing: 'transform-easing',
opacityDuration: 'opacity-duration',
opacityDelay: 'opacity-delay',
opacityEasing: 'opacity-easing',
}
const types = Object.values(T)
const typesStr = types.map(v => `[${v}]`).join(',')
@@ -55,8 +74,22 @@ export default {
const { value, modifiers } = binding
const {
GetRoot,// 获取根元素函数
activeClass = 'active'// 激活类名
activeClass = 'active',// 激活类名
duration = '0.5s',// 动画时间
delay = '0s',// 延迟时间
easing = 'ease-out',// 缓动函数
} = value || {}
const transition = {
duration,
delay,
easing,
transformDuration: value?.transformDuration || value?.[T.transformDuration],
transformDelay: value?.transformDelay || value?.[T.transformDelay],
transformEasing: value?.transformEasing || value?.[T.transformEasing],
opacityDuration: value?.opacityDuration || value?.[T.opacityDuration],
opacityDelay: value?.opacityDelay || value?.[T.opacityDelay],
opacityEasing: value?.opacityEasing || value?.[T.opacityEasing],
}
const {
scroll = false,// 是否监听滚动事件
once = false,// 是否只执行一次
@@ -64,22 +97,28 @@ export default {
} = modifiers
const root = GetRoot ? GetRoot() : parent ? el.parentElement : document;
if (el === root) return;
add(el, root)
els.set(el, {
const config = {
root,// 根元素
scroll,
once,
activeClass,
isActive: false,
})
transition,
}
els.set(el, config)
add(el, root, config)
},
beforeUnmount(el, binding) {
remove(el)
els.delete(el)
}
};
function add(el, root = document) {
function add(el, root = document, config) {
if (config.scroll) {
requestAnimationFrame(() => handleScroll({ target: root }))
} else {
getChildren(el).forEach((child) => setDocumentStyles(el, child, 0))
}
resize.observe(el)
if (roots.has(root)) {
let obj = roots.get(root)
@@ -97,6 +136,9 @@ function add(el, root = document) {
if (obj.once && obj.isActive) return;// 只执行一次,且已可见,不执行
obj.isActive = entry.isIntersecting;
target.classList.toggle(obj.activeClass, obj.isActive)
getChildren(target).forEach((el) => {
setDocumentStyles(target, el, obj.isActive ? 1 : 0)
})
})
}, { root })
observer.observe(el)
@@ -128,8 +170,7 @@ async function handleScroll({ target: root }) {
const item = els.get(el)
if (!item) return
if (!item.scroll) return
const children = Array.from(el.querySelectorAll(typesStr))
if (Object.values(T).some(v => hasAttr(el, v))) children.push(el)
const children = getChildren(el)
if (children.length === 0) return
const rootEl = isDocumentRoot(root)
const offsetHeight = root === document ? window.innerHeight : rootEl.offsetHeight
@@ -139,27 +180,53 @@ async function handleScroll({ target: root }) {
const maxHeight = offsetHeight + el.offsetHeight
const p = Math.min(1, Math.max(0, elTop_bottom / maxHeight))
children.forEach((item) => {
item.style.transition = 'transform 0.5s ease-out'
const tX = getCurrentValue(item, T.translateX_s, T.translateX, p)
const tY = getCurrentValue(item, T.translateY_s, T.translateY, p)
const sx = getCurrentValue(item, T.scaleX_s, T.scaleX, p, T.scale_s, T.scale, 1)
const sy = getCurrentValue(item, T.scaleY_s, T.scaleY, p, T.scale_s, T.scale, 1)
const r = getCurrentValue(item, T.rotate_s, T.rotate, p)
const rx = getCurrentValue(item, T.rotateX_s, T.rotateX, p)
const ry = getCurrentValue(item, T.rotateY_s, T.rotateY, p)
const rz = getCurrentValue(item, T.rotateZ_s, T.rotateZ, p)
const transform = `translate(${tX}px, ${tY}px) scale(${sx}, ${sy}) rotate(${r}deg) rotateX(${rx}deg) rotateY(${ry}deg) rotateZ(${rz}deg)`
item.style.transform = transform
if (hasAttr(item, [T.opacity_s, T.opacity])) {
item.style.opacity = getCurrentValue(item, T.opacity_s, T.opacity, p, T.opacity_s, T.opacity, 1)
setDocumentStyles(el, item, p)
})
})
}
function getChildren(el, oneself = true) {
const children = Array.from(el.querySelectorAll(typesStr))
if (oneself && Object.values(T).some(v => hasAttr(el, v))) children.push(el)
return children
}
function setDocumentStyles(parent, el, p = 0) {
const item = els.get(parent)
if (!item) return
const t = getAttrs(el, item.transition)
const tDuration = t.duration || t.transformDuration
const tDelay = t.delay || t.transformDelay
const tEasing = t.easing || t.transformEasing
const oDuration = t.duration || t.opacityDuration
const oDelay = t.delay || t.opacityDelay
const oEasing = t.easing || t.opacityEasing
const transitionArr = [
`transform ${tDuration} ${tDelay} ${tEasing}`,
`opacity ${oDuration} ${oDelay} ${oEasing}`,
]
el.style.transition = transitionArr.join(', ')
const tX = getCurrentValue(el, T.translateX_s, T.translateX, p)
const tY = getCurrentValue(el, T.translateY_s, T.translateY, p)
const sx = getCurrentValue(el, T.scaleX_s, T.scaleX, p, T.scale_s, T.scale, 1)
const sy = getCurrentValue(el, T.scaleY_s, T.scaleY, p, T.scale_s, T.scale, 1)
const r = getCurrentValue(el, T.rotate_s, T.rotate, p)
const rx = getCurrentValue(el, T.rotateX_s, T.rotateX, p)
const ry = getCurrentValue(el, T.rotateY_s, T.rotateY, p)
const rz = getCurrentValue(el, T.rotateZ_s, T.rotateZ, p)
const transform = `translate(${tX}px, ${tY}px) scale(${sx}, ${sy}) rotate(${r}deg) rotateX(${rx}deg) rotateY(${ry}deg) rotateZ(${rz}deg)`
el.style.transform = transform
if (hasAttr(el, [T.opacity_s, T.opacity])) {
el.style.opacity = getCurrentValue(el, T.opacity_s, T.opacity, p, T.opacity_s, T.opacity, 1)
}
}
function getAttrs(el, attrs = {}) {
const arrs = Object.keys(attrs)
const obj = {}
arrs.forEach((item) => {
obj[item] = el.getAttribute(T[item]) || attrs[item]
})
})
return obj
}
function getCurrentValue(el, start, end, progress, bStart, bEnd, defaultValue = 0) {
// const startNum = Number(el.getAttribute(start) || el.getAttribute(bStart)) || defaultValue
// const endNum = Number(el.getAttribute(end) || el.getAttribute(bEnd)) || defaultValue
const startNum = hasAttr(el, start) ? Number(el.getAttribute(start)) : hasAttr(el, bStart) ? Number(el.getAttribute(bStart)) : defaultValue
const endNum = hasAttr(el, end) ? Number(el.getAttribute(end)) : hasAttr(el, bEnd) ? Number(el.getAttribute(bEnd)) : defaultValue
return startNum + (endNum - startNum) * progress

View File

@@ -1,14 +1,14 @@
import { gsap, } from 'gsap'
import { ScrollTrigger } from 'gsap/ScrollTrigger'
export default {
name: 'tween-Y',
name: 'tween',
mounted(el: HTMLElement, binding: any) {
const params = binding.value
// if(!binding.value.isGsap)return
let dom = document.querySelector('body')
gsap.registerPlugin(ScrollTrigger);
let tl1 = gsap.timeline();
tl1.from(el,1, {y:params || '30px',opacity:0},)
tl1.from(el,1, params,)
ScrollTrigger.create({
trigger: el, // 触发器元素
start: "top 90%", // 滚动触发器的起始滚动位置

View File

@@ -1,8 +1,8 @@
import { createI18n } from 'vue-i18n'
import enLocale from './en.ts'
import zhCnLocale from './zh-cn.ts'
import zhTwLocale from './zh-tw.ts'
import enLocale from './en'
import zhCnLocale from './zh-cn'
import zhTwLocale from './zh-tw'
export const LangType = {
en: "en", // 英文

View File

@@ -1,127 +0,0 @@
<template>
<main class="placeholder-page">
<p class="placeholder-kicker">
Static route
</p>
<h1>Contact</h1>
<p>
This placeholder verifies that the contact page is rendered as a static
route by Vite SSG.
</p>
<a href="/">Back home</a>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
<div>10</div>
<div>11</div>
<div>12</div>
<div>13</div>
<div>14</div>
<div>15</div>
<div>16</div>
<div>17</div>
<div>18</div>
<div>19</div>
<div>20</div>
<div>21</div>
<div>22</div>
<div>23</div>
<div>24</div>
<div>25</div>
<div>26</div>
<div>27</div>
<div>28</div>
<div>29</div>
<div>30</div>
<div>31</div>
<div>32</div>
<div>33</div>
<div>34</div>
<div>35</div>
<div>36</div>
<div>37</div>
<div>38</div>
<div>39</div>
<div>40</div>
<div>41</div>
<div>42</div>
<div>43</div>
<div>44</div>
<div>45</div>
<div>46</div>
<div>47</div>
<div>48</div>
<div>49</div>
<div>50</div>
<div>51</div>
<div>52</div>
<div>53</div>
<div>54</div>
<div>55</div>
<div>56</div>
<div>57</div>
<div>58</div>
<div>59</div>
<div>60</div>
<div>61</div>
<div>62</div>
<div>63</div>
<div>64</div>
<div>65</div>
<div>66</div>
<div>67</div>
<div>68</div>
<div>69</div>
<div>70</div>
<div>71</div>
<div>72</div>
<div>73</div>
<div>74</div>
<div>75</div>
<div>76</div>
<div>77</div>
<div>78</div>
<div>79</div>
<div>80</div>
<div>81</div>
<div>82</div>
<div>83</div>
<div>84</div>
<div>85</div>
<div>86</div>
<div>87</div>
<div>88</div>
<div>89</div>
<div>90</div>
<div>91</div>
<div>92</div>
<div>93</div>
<div>94</div>
<div>95</div>
<div>96</div>
<div>97</div>
<div>98</div>
<div>99</div>
<div>100</div>
</main>
</template>
<script setup lang="ts">
import { useHead } from '@unhead/vue'
useHead({
title: 'Contact | test-ssg',
meta: [
{
name: 'description',
content: 'Contact page placeholder for the Vite SSG test site.',
},
],
})
</script>

View File

@@ -20,8 +20,8 @@ const {} = toRefs(data);
<template>
<section class="strategic-partners">
<div class="content">
<h2 v-tween-Y="'30px'">Strategic Partners</h2>
<div class="img-box" v-tween-Y="'30px'">
<h2 v-tween="{'y':'30px','opacity':0}">Strategic Partners</h2>
<div class="img-box" v-tween="{'y':'30px','opacity':0}">
<a href="https://www.aidlab.hk/">
<img src="https://code-create.com.hk/wp-content/uploads/2022/11/about_partners_01.png" alt="">
</a>

View File

@@ -14,7 +14,8 @@ defineExpose({})
.title-section{
width: 100%;
> .content{
max-width: 1400;
max-width: 1400px;
margin: 0 auto;
> .text{
padding: 200px 300px;
> h1{

View File

@@ -0,0 +1,147 @@
<template>
<div class="contact-us">
<img class="bg" src="@/assets/images/contact-us/bg.jpg" alt="" />
<section class="header">
<h1 v-custom-animation.once duration="1s" translate-y-s="-100" opacity-s="0">
CONTACT US
</h1>
</section>
<section class="contact">
<span class="iconfont icon-dingwei"></span>
<h3 class="title">Contact</h3>
<a class="email" href="mailto:info@code-create.com.hk">info@code-create.com.hk</a>
</section>
<section class="contact-input">
<div class="box">
<h3 class="title">Get In Touch</h3>
<div class="tip">Stay up to date with our e-newsletter</div>
<input
v-model="email"
@keydown.enter.prevent="submit"
type="email"
placeholder="Email Address"
/>
<div v-show="error" class="error">{{ error }}</div>
<button custom @click="submit">SUBMIT</button>
</div>
</section>
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue'
const email = ref('')
const error = ref('')
const submit = () => {
if (!validateEmail(email.value)) return
console.log(email.value)
}
// 验证邮箱
const validateEmail = (email: string) => {
if (email === '') {
error.value = 'Please fill out this field.'
return false
} else if (!/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(email)) {
error.value = 'Please enter a valid email address.'
return false
}
error.value = ''
return true
}
</script>
<style scoped lang="less">
.contact-us {
> * {
position: relative;
z-index: 1;
}
> .bg {
height: 514px;
width: 100%;
object-fit: cover;
position: fixed;
top: 0;
z-index: 0;
}
> .header {
height: 514px;
display: flex;
align-items: center;
justify-content: center;
> h1 {
font-size: 64px;
font-weight: 600;
letter-spacing: 2px;
color: #fff;
margin-bottom: 50px;
}
}
> .contact {
background-color: #fff;
display: flex;
flex-direction: column;
align-items: center;
padding: 40px;
> .iconfont {
font-size: 50px;
color: #4f4f4f;
margin-bottom: 20px;
}
> .title {
font-weight: 600;
line-height: 36px;
color: #464f3b;
font-size: 24px;
margin-bottom: 15px;
}
> .email {
font-size: 14px;
color: #222;
text-decoration: none;
}
}
> .contact-input {
padding: 100px;
background-color: #faf8f8;
> .box {
max-width: 860px;
width: 100%;
padding: 80px;
margin: 0 auto;
background-color: #fff;
box-shadow: 0px 0px 40px 0px rgba(0, 0, 0, 0.2);
border-radius: 40px;
> .title {
font-size: 40px;
color: #222;
margin-bottom: 10px;
}
> .tip {
color: #4d4d4d;
margin-bottom: 20px;
}
> input {
width: 100%;
border-radius: 40px;
height: 40px;
padding: 0 20px;
border: 1px solid #e1e1e1;
outline: none;
color: #222;
}
> .error {
font-size: 14px;
color: #dc3232;
}
> button {
margin-top: 10px;
width: 100%;
border-radius: 50px;
height: 50px;
font-weight: bold;
--hover-backcolor: #000;
}
}
}
}
</style>

View File

@@ -0,0 +1,149 @@
<script setup lang="ts">
import { ref } from "vue";
const eventList = ref([
{
url:'https://code-create.com.hk/wp-content/uploads/2026/05/45e19bf9012eac5071ace52896e4f53f-600x331.png',
title:'Elevate Operation Efficiency',
},
{
url:'https://code-create.com.hk/wp-content/uploads/2026/04/award_qrcode_en-600x750.gif',
title:'Elevate Operation Efficiency',
},
])
defineExpose({})
</script>
<template>
<section class="mission">
<div class="content">
<h2>ALL EVENTS</h2>
<div class="all-events">
<div v-for="item in eventList" :key="item.url" class="img-item">
<div class="img-box">
<img :src="item.url" alt="">
<div class="line">
<div class="day">11</div>
<div class="month">May</div>
</div>
</div>
<h3>{{item.title}}</h3>
<div class="info">
<p>
2026-05-11 10:00 - 12:00
</p>
</div>
<a href="#" class="read-more" target="_blank">
Read More
<span class="iconfont icon-direction-right"></span>
</a>
</div>
</div>
</div>
</section>
</template>
<style lang="less" scoped>
.mission{
width: 100%;
background-color: #f9f9f9;
> .content{
margin: 0 auto;
padding: 40px 0px 40px 0px;
max-width: 1120px;
> h2{
text-align: center;
margin-bottom: 50px;
font-size: 40px;
color: #222222;
font-family: "Poppins", Sans-serif;
}
> .all-events{
display: grid;
grid-template-columns: repeat(3, minmax(100px, 1fr));
grid-gap: 20px 30px;
> .img-item{
&:hover{
> .img-box{
> img{
transform: scale(1.1);
}
}
}
> .img-box{
border-radius: 20px;
overflow: hidden;
max-width: 100%;
width: 100%;
position: relative;
margin-bottom: 20px;
> img{
transition: all .3s;
width: 100%;
height: 100%;
object-fit: cover;
}
> .line{
position: absolute;
width: 54px;
height: 54px;
left: 15px;
top: 15px;
border-radius: 50%;
background-color: #fff;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
> .day{
font-family: "Poppins", Sans-serif;
font-size: 20px;
font-weight: 600;
line-height: 1;
}
> .month{
font-size: 12px;
line-height: 1;
}
}
}
> h3{
font-size: 20px;
font-weight: 600;
line-height: 1;
margin-bottom: 10px;
}
> .info{
font-size: 16px;
font-weight: 400;
line-height: 1;
color: #555;
margin-bottom: 15px;
}
.read-more{
color: #9A2125;
box-shadow: none;
font-size: 14px;
text-decoration: none;
position: relative;
&:hover{
&::after{
width: 100%;
}
}
&::after{
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 0;
height: 1px;
background-color: #9A2125;
transition: all .3s;
}
> span{
margin-left: 10px;
}
}
}
}
}
}
</style>

View File

@@ -0,0 +1,24 @@
<script setup lang="ts">
import Swiper from './swiper.vue'
import AllEvents from './all-events.vue'
defineExpose({})
</script>
<template>
<div class="events">
<div class="placeholder"></div>
<Swiper />
<AllEvents />
</div>
</template>
<style lang="less" scoped>
.events{
.placeholder{
height: var(--main-header-height, 100px);
width: 100%;
position: sticky;
top: 0;
background-color: #000;
}
}
</style>

175
src/pages/events/swiper.vue Normal file
View File

@@ -0,0 +1,175 @@
<script setup lang="ts">
import { ref, onMounted, onUnmounted, reactive, toRefs } from "vue";
import { Carousel as KagolCarousel } from '@kagol/vue-carousel'
import '@kagol/vue-carousel/dist/style.css'
//const props = defineProps({
//})
//const emit = defineEmits([
//])
let list = ref([
{
url:'https://code-create.com.hk/wp-content/uploads/2026/04/award_qrcode_en-819x1024.gif'
},
{
url:'https://code-create.com.hk/wp-content/uploads/2026/03/Code-Create-Limited-1536x1029.jpg'
},
{
url:'https://code-create.com.hk/wp-content/uploads/2026/04/award_qrcode_en-819x1024.gif'
},
{
url:'https://code-create.com.hk/wp-content/uploads/2026/03/Code-Create-Limited-1536x1029.jpg'
},
])
const activePage = ref(0)
onMounted(()=>{
})
onUnmounted(()=>{
})
defineExpose({})
</script>
<template>
<section class="events-swiper">
<div class="content">
<KagolCarousel
:autoplay="false"
:interval="1000"
class="events-carousel"
>
<div class="carousel-item" v-for="(item,index) in list" :key="index">
<div class="img-box">
<img :src="item.url" alt="">
</div>
<div class="text-box">
<h4 class="title">
Honored to be selected as Alibaba JUMPSTARTER 2026 Top 30 Startup | Code-Create
</h4>
<div class="info">
Honored to be selected as a Alibaba JUMPSTARTER 2026 Top 30 Startup |...
</div>
<a href="#" class="read-more" target="_blank">
Read More
<span class="iconfont icon-direction-right"></span>
</a>
</div>
</div>
<template #pagination="{ prevPage, nextPage }">
<div class="prev-page" @click="prevPage">
<span class="iconfont icon-direction-left"></span>
</div>
<div class="next-page" @click="nextPage">
<span class="iconfont icon-direction-right"></span>
</div>
</template>
<template #indicator></template>
</KagolCarousel>
</div>
</section>
</template>
<style lang="less" scoped>
.events-swiper{
width: 100%;
background-color: #f9f9f9;
> .content{
padding: 40px 0px 40px 0px;
margin: 0 auto;
max-width: 1120px;
position: relative;
> .events-carousel{
.carousel-item{
overflow: hidden;
cursor: pointer;
&:hover{
img{
transform: scale(1.1);
}
}
.img-box{
border-radius: 20px;
height: 600px;
width: 100%;
overflow: hidden;
img{
width: 100%;
height: 100%;
object-fit: cover;
background-color: #FFF;
transition: all .3s;
}
}
> .text-box{
margin-top: -40px;
padding: 25px;
width: 560px;
background-color: #fff;
position: relative;
z-index: 22;
.title{
font-family: Poppins, sans-serif;
font-weight: 600;
letter-spacing: 2px;
color: #222222;
text-transform: capitalize;
font-size: 20px;
margin-bottom: 9px;
}
.info{
color: #555;
font-size: 16px;
margin-bottom: 15px;
}
.read-more{
color: #9A2125;
box-shadow: none;
font-size: 14px;
text-decoration: none;
position: relative;
&:hover{
}
&::after{
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 2px;
background-color: #9A2125;
transition: all .3s;
}
> span{
margin-left: 10px;
}
}
}
}
}
.prev-page, .next-page{
width: 96px;
height: 96px;
margin: 0 10px;
border: 1px solid #e1e1e1;
background-color: #fff;
border-radius: 50%;
transition: all .3s;
display: flex;
align-items: center;
justify-content: center;
position: absolute;
bottom: 0;
> span{
font-size: 38px;
}
&:hover{
border: 1px solid #000;
}
}
.prev-page{
right: 112px;
}
.next-page{
right: 0;
}
}
}
</style>

View File

@@ -57,8 +57,8 @@
:src="homeAiLogo"
alt="Code Create"
loading="lazy"
translate-y-s="80"
translate-y="0"
translate-y-s="-20"
translate-y="20"
/>
<h1
id="ecosystem-title"

176
src/pages/media/index.vue Normal file
View File

@@ -0,0 +1,176 @@
<template>
<div class="media">
<img class="bg" src="@/assets/images/media/bg.jpg" alt="" />
<section class="header">
<h1 v-custom-animation.once duration="1s" translate-y-s="-100" opacity-s="0">Media</h1>
</section>
<section class="content">
<div class="box">
<div class="nav">
<span
class="hover-bottom-animation center"
v-for="v in navList"
:key="v.value"
:class="{ active: v.value === nav }"
@click="nav = v.value"
>{{ v.label }}</span
>
</div>
<div class="list">
<div class="item" v-for="v in list" :key="nav + v.text">
<span class="date">{{ FormatDate(v.date, 'SM D, YYYY') }}</span>
<span class="text">{{ v.text }}</span>
</div>
</div>
</div>
</section>
</div>
</template>
<script setup lang="ts">
import { computed, ref } from 'vue'
import listEn from './list-en.js'
import listZhCn from './list-zh-cn.js'
import listZhTw from './list-zh-tw.js'
import { LangType } from '../../lang'
import { useI18n } from 'vue-i18n'
const { locale } = useI18n()
const allList = computed(() => {
if (locale.value === LangType.zhCn) {
return listZhCn
}
if (locale.value === LangType.zhTw) {
return listZhTw
}
return listEn
})
const list = computed(() => {
return allList.value.filter((v) =>
nav.value === 0 ? true : new Date(v.date).getFullYear() === nav.value
)
})
const nav = ref(0)
const navList = computed(() => {
const arr = [
{
label: 'All',
value: 0
}
]
allList.value.forEach((v) => {
const year = new Date(v.date).getFullYear()
if (!arr.find((item) => item.value === year)) {
arr.push({
label: String(year),
value: year
})
}
})
return arr
})
const FormatDate = (value = new Date(), format: string = 'YYYY-MM-DD HH:mm:ss') => {
const d = new Date(value)
if (!d || isNaN(d.getTime())) return 'Invalid Date'
const pad = (n) => String(n).padStart(2, '0')
const months = [
'Jan',
'Feb',
'Mar',
'Apr',
'May',
'Jun',
'Jul',
'Aug',
'Sep',
'Oct',
'Nov',
'Dec'
]
const tokens = {
YYYY: d.getFullYear(),
YY: String(d.getFullYear()).slice(-2),
MM: pad(d.getMonth() + 1),
M: d.getMonth() + 1,
SM: months[d.getMonth()],
DD: pad(d.getDate()),
D: d.getDate(),
HH: pad(d.getHours()),
H: d.getHours(),
hh: pad(d.getHours() % 12 || 12),
h: d.getHours() % 12 || 12,
mm: pad(d.getMinutes()),
m: d.getMinutes(),
ss: pad(d.getSeconds()),
s: d.getSeconds(),
A: d.getHours() < 12 ? 'AM' : 'PM',
a: d.getHours() < 12 ? 'am' : 'pm'
}
const reg = new RegExp(Object.keys(tokens).join('|'), 'g')
return format.replace(reg, (match) => tokens[match])
}
</script>
<style scoped lang="less">
.media {
> * {
position: relative;
z-index: 1;
}
> .bg {
height: 464px;
width: 100%;
object-fit: cover;
position: fixed;
top: 0;
z-index: 0;
}
> .header {
height: 464px;
display: flex;
align-items: center;
justify-content: center;
> h1 {
font-size: 64px;
font-weight: 600;
letter-spacing: 2px;
color: #fff;
}
}
> .content {
width: 100%;
padding: 100px 0;
background-color: #fff;
font-size: 14px;
> .box {
max-width: 1140px;
margin: 0 auto;
> .nav {
display: flex;
align-items: center;
gap: 30px;
> span {
--background-color: #a4004f;
line-height: 34px;
color: #333;
}
}
> .list {
padding: 14px;
> div {
animation: opacity-in 0.3s ease-in-out;
margin-top: 14px;
margin-bottom: 10px;
display: flex;
> .date {
min-width: 130px;
margin-right: 10px;
color: #999;
}
> .text {
color: #222;
}
}
}
}
}
}
</style>

326
src/pages/media/list-en.js Normal file
View File

@@ -0,0 +1,326 @@
export default [
{
"date": 1745942400000,
"text": "Congratulations to Code-Create for being named one of Hong Kongs Hottest Startups of 2025"
},
{
"date": 1745078400000,
"text": "AI-Powered Design Curriculum: Pioneering Creativity in Fashion Education"
},
{
"date": 1744732800000,
"text": "Code-Create x BIFU: Breakthrough in the AI Era"
},
{
"date": 1744214400000,
"text": "South Korean brand BESFXXK leveraged AiDA to create its 2025 FW ready-to-wear collection."
},
{
"date": 1744041600000,
"text": "AiDA: Accelerating Fashion Design Efficiency by Over 60%"
},
{
"date": 1743436800000,
"text": "Ms. Kim Wong Breaks Down How AI Is Reshaping Sustainable Fashion"
},
{
"date": 1743350400000,
"text": "The AiDA Workshop was successfully held in Shenzhen"
},
{
"date": 1741708800000,
"text": "AiDA x SFT Fashion AI Award Successfully Finished"
},
{
"date": 1741276800000,
"text": "Feminine Power: Ms. Kim Wong's Journey in Fashion and AI"
},
{
"date": 1739980800000,
"text": "Achieving Excellence in Design within an Hour!"
},
{
"date": 1739894400000,
"text": "Brainstorm with AI"
},
{
"date": 1735574400000,
"text": "New Year 2025Let's kick off the year with a burst of inspiration and design"
},
{
"date": 1735488000000,
"text": "Announcing the Finalists for AiDA Fashion AI Award"
},
{
"date": 1733500800000,
"text": "Code-Create's CEO Kim Wong Honored with Best Paper Award at 2024 International Fashion Conference"
},
{
"date": 1733500800000,
"text": "【2024 FABI KOREA Conference】Revolutionizing Fashion Design with AiDA"
},
{
"date": 1732723200000,
"text": "Hanyang University Meets AiDA: A Fusion of Creativity and Technology"
},
{
"date": 1731513600000,
"text": "AiDA Workshop"
},
{
"date": 1731513600000,
"text": "AiDA X SFT AI Fashion Award 2024"
},
{
"date": 1725379200000,
"text": "Hong Kongs fashion tech start-up raises funds, eyes mainland, South Korea growth markets"
},
{
"date": 1721750400000,
"text": "AiDA@Victoria and Albert Museum, London: Fusing Cultural Heritage with Fashion's Future"
},
{
"date": 1714752000000,
"text": "Code-Create's AiDA Wins Prestigious iF DESIGN AWARD 2024 for Revolutionary Fashion AI Solution!"
},
{
"date": 1702569600000,
"text": "Revolutionizing the Runway: An Interview with the Minds Behind AiDA and Code-Create"
},
{
"date": 1702224000000,
"text": "AiDA in \"The State of Fashion 2024\" by The Business of Fashion & McKinsey & Company"
},
{
"date": 1674057600000,
"text": "What Does The AI Design Hype Mean For Fashion?"
},
{
"date": 1673193600000,
"text": "Artificial intelligence meets fashion: How AiDA is disrupting design"
},
{
"date": 1671638400000,
"text": "Artificial Intelligence Times 인공지능으로 패션 패러다임 바꾼다!... 홍콩 '코드 크리에이트', 세계 첫 패션 AI 플랫폼 선보여"
},
{
"date": 1671638400000,
"text": "Chill Blog Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "AsiaOne Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Hinet Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "HiNet生活志 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "iFeng (凤凰网大风号) Code-Create 推出全球首个以设计师原创灵感主导的时尚AI平台AiDA"
},
{
"date": 1671552000000,
"text": "Intellasia.Net Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "IT News Africa Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "IT News Online Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "MeNews Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "Newswire 코드-크리에이트, 오리지널 디자인용 패션 AI 플랫폼 선봬"
},
{
"date": 1671552000000,
"text": "SBS 코드-크리에이트, 오리지널 디자인용 패션 AI 플랫폼 선봬"
},
{
"date": 1671552000000,
"text": "Sohu (搜狐) Code-Create 推出全球首个以设计师原创灵感主导的时尚AI平台AiDA"
},
{
"date": 1671552000000,
"text": "Taiwan News Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Tencent (腾讯企鹅号) Code-Create 推出全球首个以设计师原创灵感主导的时尚AI平台AiDA 由AiDLab研发带来无限设计方案"
},
{
"date": 1671552000000,
"text": "The Hans India Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "United Daily News Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "Vietnam Insider Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Yahoo Finance Australia Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Yahoo Finance Hong Kong Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Yahoo Finance New Zealand Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Yahoo Finance Singapore Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Yahoo News Indonesia Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Yahoo News Malaysia Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Yahoo News Philippines Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Yahoo News Taiwan Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "匯港資訊 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "南洋視界 Code-Create 推出全球首个以设计师原创灵感主导的时尚AI平台AiDA 由AiDLab研发带来无限设计方案"
},
{
"date": 1671552000000,
"text": "南洋視界 Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "台灣經濟日報 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "台灣英文新聞 Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "商業焦點 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "奧丁丁新聞 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "媒體拓展 Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "愛威信3C科技生活 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "新加坡 Asiaone 新聞網 Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "新浪 Code-Create 推出全球首个以设计师原创灵感主导的时尚AI平台AiDA"
},
{
"date": 1671552000000,
"text": "新浪香港 Code-Create 推出全球首个以设计师原创灵感主导的时尚AI平台AiDA 由AiDLab研发带来无限设计方案"
},
{
"date": 1671552000000,
"text": "新浪香港 Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "新頭條 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "經濟通 Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "經濟通 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA, 由AiDLab研發,帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "華富財經 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "觀傳媒 全球首個AI時裝設計助理系統「AiDA」面市"
},
{
"date": 1671552000000,
"text": "財經智珠網 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "香港矽谷 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "馬來郵報 Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671465600000,
"text": "Finance 730 AiDLab 主辦的「FASHION X AI 時裝匯演」昨在 M+ 舉行"
},
{
"date": 1671465600000,
"text": "Infocast AiDLab主辦的「FASHIONXAI時裝匯演」昨在M+舉行"
},
{
"date": 1671465600000,
"text": "Quamnet AiDLab主辦的「FASHIONXAI時裝匯演」昨在M+舉行"
},
{
"date": 1671465600000,
"text": "紫荊App(科创) “時尚 x 人工智能: 2022-2023” 國際匯展在M+掀起時裝業革命"
},
{
"date": 1671465600000,
"text": "紫荊雜誌 “時尚 x 人工智能: 2022-2023” 國際匯展在M+掀起時裝業革命"
},
{
"date": 1671379200000,
"text": "Vogue Hong Kong 專訪 Anteprima 創意總監 Izumi Ogino 與 AiDLab 總監,如何透過 AI 技術打造特色服裝"
},
{
"date": 1670515200000,
"text": "香港電台 AiDLab黃偉強講人工智能時裝設計"
},
{
"date": 1669910400000,
"text": "香港電台 【財經新思維】時裝設計與科技嘅結合,會帶來咩嘢效果?"
},
{
"date": 1669564800000,
"text": "明周Inner AI技術能取替真人嗎AI時裝設計系統AiDA 與Anteprima聯乘"
}
]

View File

@@ -0,0 +1,330 @@
export default [
{
"date": 1745942400000,
"text": "恭喜 Code-Create 荣登香港2025年最热门初创企业榜单"
},
{
"date": 1745078400000,
"text": "AI设计课程在时尚教育领域开创性地激发创造力"
},
{
"date": 1744732800000,
"text": "Code-Create x BIFUAI时代下设计师如何破局"
},
{
"date": 1744214400000,
"text": "来自韩国品牌BESFXXK利用AiDA制作的2025FW系列成衣"
},
{
"date": 1744041600000,
"text": "AiDA让时尚设计效率提升超60%"
},
{
"date": 1743436800000,
"text": "走进港理课堂解码AI如何重塑可持续时尚"
},
{
"date": 1743350400000,
"text": "內地首場AiDA 深圳 Workshop 成功舉辦"
},
{
"date": 1741708800000,
"text": "AiDA x SFT 时尚AI大赛圆满落幕"
},
{
"date": 1741276800000,
"text": "不被定义的女性力量——Kim女士的时尚与AI之旅"
},
{
"date": 1739980800000,
"text": "一小时内的卓越设计实现"
},
{
"date": 1739894400000,
"text": "与AI来一场头脑风暴"
},
{
"date": 1736092800000,
"text": "梦想不分年龄Code-Create 首席执行官 Kim Wong 在 Henrietta 中学的鼓舞人心演讲"
},
{
"date": 1735574400000,
"text": "搭上2025的列车打开新设计的大门"
},
{
"date": 1735488000000,
"text": "AiDA AI时尚比赛入围选手公布"
},
{
"date": 1733500800000,
"text": "Code-Create首席执行官王剑虹Kim Wong荣获2024年国际时尚大会最佳论文奖"
},
{
"date": 1733500800000,
"text": "【2024 FABI KOREA】AiDA引领时尚设计变革"
},
{
"date": 1732723200000,
"text": "韩国汉阳大师生的AiDA体验日——与未来设计对话"
},
{
"date": 1731513600000,
"text": "AiDA 工作坊"
},
{
"date": 1731513600000,
"text": "AiDA X SFT AI Fashion Award 2024"
},
{
"date": 1725379200000,
"text": "Hong Kongs fashion tech start-up raises funds, eyes mainland, South Korea growth markets"
},
{
"date": 1721750400000,
"text": "AiDA@Victoria and Albert Museum, London: Fusing Cultural Heritage with Fashion's Future"
},
{
"date": 1714752000000,
"text": "Code-Create's AiDA Wins Prestigious iF DESIGN AWARD 2024 for Revolutionary Fashion AI Solution!"
},
{
"date": 1702569600000,
"text": "Revolutionizing the Runway: An Interview with the Minds Behind AiDA and Code-Create"
},
{
"date": 1702224000000,
"text": "AiDA in \"The State of Fashion 2024\" by The Business of Fashion & McKinsey & Company"
},
{
"date": 1674057600000,
"text": "What Does The AI Design Hype Mean For Fashion?"
},
{
"date": 1673193600000,
"text": "Artificial intelligence meets fashion: How AiDA is disrupting design"
},
{
"date": 1671638400000,
"text": "Artificial Intelligence Times 인공지능으로 패션 패러다임 바꾼다!... 홍콩 '코드 크리에이트', 세계 첫 패션 AI 플랫폼 선보여"
},
{
"date": 1671638400000,
"text": "Chill Blog Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "AsiaOne Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Hinet Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "HiNet生活志 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "iFeng (凤凰网大风号) Code-Create 推出全球首个以设计师原创灵感主导的时尚AI平台AiDA"
},
{
"date": 1671552000000,
"text": "Intellasia.Net Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "IT News Africa Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "IT News Online Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "MeNews Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "Newswire 코드-크리에이트, 오리지널 디자인용 패션 AI 플랫폼 선봬"
},
{
"date": 1671552000000,
"text": "SBS 코드-크리에이트, 오리지널 디자인용 패션 AI 플랫폼 선봬"
},
{
"date": 1671552000000,
"text": "Sohu (搜狐) Code-Create 推出全球首个以设计师原创灵感主导的时尚AI平台AiDA"
},
{
"date": 1671552000000,
"text": "Taiwan News Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Tencent (腾讯企鹅号) Code-Create 推出全球首个以设计师原创灵感主导的时尚AI平台AiDA 由AiDLab研发带来无限设计方案"
},
{
"date": 1671552000000,
"text": "The Hans India Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "United Daily News Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "Vietnam Insider Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Yahoo Finance Australia Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Yahoo Finance Hong Kong Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Yahoo Finance New Zealand Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Yahoo Finance Singapore Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Yahoo News Indonesia Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Yahoo News Malaysia Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Yahoo News Philippines Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Yahoo News Taiwan Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "匯港資訊 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "南洋視界 Code-Create 推出全球首个以设计师原创灵感主导的时尚AI平台AiDA 由AiDLab研发带来无限设计方案"
},
{
"date": 1671552000000,
"text": "南洋視界 Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "台灣經濟日報 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "台灣英文新聞 Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "商業焦點 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "奧丁丁新聞 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "媒體拓展 Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "愛威信3C科技生活 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "新加坡 Asiaone 新聞網 Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "新浪 Code-Create 推出全球首个以设计师原创灵感主导的时尚AI平台AiDA"
},
{
"date": 1671552000000,
"text": "新浪香港 Code-Create 推出全球首个以设计师原创灵感主导的时尚AI平台AiDA 由AiDLab研发带来无限设计方案"
},
{
"date": 1671552000000,
"text": "新浪香港 Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "新頭條 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "經濟通 Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "經濟通 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA, 由AiDLab研發,帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "華富財經 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "觀傳媒 全球首個AI時裝設計助理系統「AiDA」面市"
},
{
"date": 1671552000000,
"text": "財經智珠網 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "香港矽谷 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "馬來郵報 Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671465600000,
"text": "Finance 730 AiDLab 主辦的「FASHION X AI 時裝匯演」昨在 M+ 舉行"
},
{
"date": 1671465600000,
"text": "Infocast AiDLab主辦的「FASHIONXAI時裝匯演」昨在M+舉行"
},
{
"date": 1671465600000,
"text": "Quamnet AiDLab主辦的「FASHIONXAI時裝匯演」昨在M+舉行"
},
{
"date": 1671465600000,
"text": "紫荊App(科创) “時尚 x 人工智能: 2022-2023” 國際匯展在M+掀起時裝業革命"
},
{
"date": 1671465600000,
"text": "紫荊雜誌 “時尚 x 人工智能: 2022-2023” 國際匯展在M+掀起時裝業革命"
},
{
"date": 1671379200000,
"text": "Vogue Hong Kong 專訪 Anteprima 創意總監 Izumi Ogino 與 AiDLab 總監,如何透過 AI 技術打造特色服裝"
},
{
"date": 1670515200000,
"text": "香港電台 AiDLab黃偉強講人工智能時裝設計"
},
{
"date": 1669910400000,
"text": "香港電台 【財經新思維】時裝設計與科技嘅結合,會帶來咩嘢效果?"
},
{
"date": 1669564800000,
"text": "明周Inner AI技術能取替真人嗎AI時裝設計系統AiDA 與Anteprima聯乘"
}
]

View File

@@ -0,0 +1,334 @@
export default [
{
"date": 1745942400000,
"text": "恭喜 Code-Create 榮登香港2025年最熱門初創企業榜單"
},
{
"date": 1745078400000,
"text": "AI設計課程在時尚教育領域開創性地激發創造力"
},
{
"date": 1744732800000,
"text": "Code-Create x BIFUAI時代下設計師如何破局"
},
{
"date": 1744214400000,
"text": "來自韓國品牌BESFXXK利用AiDA製作的2025FW系列成衣"
},
{
"date": 1744041600000,
"text": "AiDA讓時尚設計效率提升超60%"
},
{
"date": 1743436800000,
"text": "走進港理課堂解碼AI如何重塑可持續時尚"
},
{
"date": 1743350400000,
"text": "內地首場AiDA 深圳 Workshop 成功舉辦"
},
{
"date": 1741708800000,
"text": "AiDA x SFT 時尚AI大賽圓滿落幕"
},
{
"date": 1741276800000,
"text": "不被定義的女性力量——Kim女士的時尚與AI之旅"
},
{
"date": 1739980800000,
"text": "一小時內的卓越設計實現"
},
{
"date": 1739894400000,
"text": "與AI來一場頭腦風暴"
},
{
"date": 1736092800000,
"text": "夢想不分年齡Code-Create 首席執行官 Kim Wong 在 Henrietta 中學的鼓舞人心演講"
},
{
"date": 1735488000000,
"text": "AiDA AI時尚比賽入圍選手公布"
},
{
"date": 1735574400000,
"text": "搭上2025的列車打開新設計的大門"
},
{
"date": 1735488000000,
"text": "AiDA AI時尚比賽入圍選手公布"
},
{
"date": 1733500800000,
"text": "Code-Create首席執行官王劍虹Kim Wong榮獲2024年國際時尚大會最佳論文獎"
},
{
"date": 1733500800000,
"text": "【2024 FABI KOREA】AiDA引領時尚設計變革"
},
{
"date": 1732723200000,
"text": "韓國漢陽大師生的AiDA體驗日——與未來設計對話"
},
{
"date": 1731513600000,
"text": "AiDA 工作坊"
},
{
"date": 1731513600000,
"text": "AiDA X SFT AI時尚設計比賽2024"
},
{
"date": 1725379200000,
"text": "政府資助初創公司獲本地創投基金入股逾200萬美元 拓展AI結合時裝設計"
},
{
"date": 1721750400000,
"text": "AiDA亮相倫敦維多利亞與艾伯特博物館融合文化傳承與時尚未來"
},
{
"date": 1714752000000,
"text": "AiDA贏得了2024年iF設計獎這是一款革命性的時尚AI解決方案"
},
{
"date": 1702569600000,
"text": "變革T台AiDA與Code-Create背後的創意人專訪"
},
{
"date": 1702224000000,
"text": "AiDA榮登由Business of Fashion & McKinsey & Company發佈的\"The State of Fashion 2024\"報告"
},
{
"date": 1674057600000,
"text": "What Does The AI Design Hype Mean For Fashion?"
},
{
"date": 1673193600000,
"text": "Artificial intelligence meets fashion: How AiDA is disrupting design"
},
{
"date": 1671638400000,
"text": "Artificial Intelligence Times 인공지능으로 패션 패러다임 바꾼다!... 홍콩 '코드 크리에이트', 세계 첫 패션 AI 플랫폼 선보여"
},
{
"date": 1671638400000,
"text": "Chill Blog Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "AsiaOne Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Hinet Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "HiNet生活志 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "iFeng (凤凰网大风号) Code-Create 推出全球首个以设计师原创灵感主导的时尚AI平台AiDA"
},
{
"date": 1671552000000,
"text": "Intellasia.Net Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "IT News Africa Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "IT News Online Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "MeNews Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "Newswire 코드-크리에이트, 오리지널 디자인용 패션 AI 플랫폼 선봬"
},
{
"date": 1671552000000,
"text": "SBS 코드-크리에이트, 오리지널 디자인용 패션 AI 플랫폼 선봬"
},
{
"date": 1671552000000,
"text": "Sohu (搜狐) Code-Create 推出全球首个以设计师原创灵感主导的时尚AI平台AiDA"
},
{
"date": 1671552000000,
"text": "Taiwan News Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Tencent (腾讯企鹅号) Code-Create 推出全球首个以设计师原创灵感主导的时尚AI平台AiDA 由AiDLab研发带来无限设计方案"
},
{
"date": 1671552000000,
"text": "The Hans India Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "United Daily News Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "Vietnam Insider Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Yahoo Finance Australia Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Yahoo Finance Hong Kong Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Yahoo Finance New Zealand Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Yahoo Finance Singapore Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Yahoo News Indonesia Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Yahoo News Malaysia Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Yahoo News Philippines Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "Yahoo News Taiwan Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "匯港資訊 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "南洋視界 Code-Create 推出全球首个以设计师原创灵感主导的时尚AI平台AiDA 由AiDLab研发带来无限设计方案"
},
{
"date": 1671552000000,
"text": "南洋視界 Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "台灣經濟日報 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "台灣英文新聞 Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "商業焦點 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "奧丁丁新聞 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "媒體拓展 Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "愛威信3C科技生活 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "新加坡 Asiaone 新聞網 Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "新浪 Code-Create 推出全球首个以设计师原创灵感主导的时尚AI平台AiDA"
},
{
"date": 1671552000000,
"text": "新浪香港 Code-Create 推出全球首个以设计师原创灵感主导的时尚AI平台AiDA 由AiDLab研发带来无限设计方案"
},
{
"date": 1671552000000,
"text": "新浪香港 Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "新頭條 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "經濟通 Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671552000000,
"text": "經濟通 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA, 由AiDLab研發,帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "華富財經 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "觀傳媒 全球首個AI時裝設計助理系統「AiDA」面市"
},
{
"date": 1671552000000,
"text": "財經智珠網 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "香港矽谷 Code-Create 推出全球首個以設計師原創靈感主導的時尚AI平台AiDA 由AiDLab研發帶來無限設計方案"
},
{
"date": 1671552000000,
"text": "馬來郵報 Code-Create Introduces AiDA by AiDLab, The Worlds First Fashion AI Platform For Limitless Original Designs Based On Designers Creative Inspirations"
},
{
"date": 1671465600000,
"text": "Finance 730 AiDLab 主辦的「FASHION X AI 時裝匯演」昨在 M+ 舉行"
},
{
"date": 1671465600000,
"text": "Infocast AiDLab主辦的「FASHIONXAI時裝匯演」昨在M+舉行"
},
{
"date": 1671465600000,
"text": "Quamnet AiDLab主辦的「FASHIONXAI時裝匯演」昨在M+舉行"
},
{
"date": 1671465600000,
"text": "紫荊App(科创) “時尚 x 人工智能: 2022-2023” 國際匯展在M+掀起時裝業革命"
},
{
"date": 1671465600000,
"text": "紫荊雜誌 “時尚 x 人工智能: 2022-2023” 國際匯展在M+掀起時裝業革命"
},
{
"date": 1671379200000,
"text": "Vogue Hong Kong 專訪 Anteprima 創意總監 Izumi Ogino 與 AiDLab 總監,如何透過 AI 技術打造特色服裝"
},
{
"date": 1670515200000,
"text": "香港電台 AiDLab黃偉強講人工智能時裝設計"
},
{
"date": 1669910400000,
"text": "香港電台 【財經新思維】時裝設計與科技嘅結合,會帶來咩嘢效果?"
},
{
"date": 1669564800000,
"text": "明周Inner AI技術能取替真人嗎AI時裝設計系統AiDA 與Anteprima聯乘"
}
]

View File

@@ -48,7 +48,7 @@
icon: 'icon-address'
},
{
path: '/my-account/methods',
path: '/my-account/payment-methods',
label: 'Payment methods',
icon: 'icon-duidiaojiaohuanduihuan'
},

View File

@@ -0,0 +1,37 @@
<template>
<div class="address">
<div class="tip">The following addresses will be used on the checkout page by default.</div>
<h2>Billing address</h2>
<div class="header">
<router-link to="/my-account/edit-address">Edit Billing address</router-link>
</div>
</div>
</template>
<script setup lang="ts">
import { computed, ref } from 'vue'
import tipBox from './tip-box.vue'
</script>
<style scoped lang="less">
.address {
width: 100%;
> .tip {
margin-bottom: 20px;
}
> h2 {
text-transform: uppercase;
margin-bottom: 10px;
}
> .header {
text-transform: uppercase;
border-bottom: 1px solid #e1e1e1;
height: 18px;
> a {
color: #222;
font-size: 14px;
text-decoration: none;
float: right;
}
}
}
</style>

View File

@@ -1,11 +1,15 @@
<template>
<div class="orders">No order has been made yet.</div>
<div class="orders">
<tip-box type="warning" title="No order has been made yet." />
</div>
</template>
<script setup lang="ts">
import { computed, ref } from 'vue'
import tipBox from './tip-box.vue'
</script>
<style scoped lang="less">
.orders {
width: 100%;
}
</style>

View File

@@ -0,0 +1,28 @@
<template>
<div class="payment-methods">
<tip-box type="warning" title="No saved methods found." :is-show-link="false" />
<router-link to="#">
<button custom>Add payment method</button>
</router-link>
</div>
</template>
<script setup lang="ts">
import { computed, ref } from 'vue'
import tipBox from './tip-box.vue'
</script>
<style scoped lang="less">
.payment-methods {
width: 100%;
> a {
display: block;
margin-top: 22px;
width: auto;
> button {
width: auto;
padding: 0 30px;
text-transform: uppercase;
}
}
}
</style>

View File

@@ -0,0 +1,15 @@
<template>
<div class="subscriptions">
<tip-box type="success" title="You have no active subscriptions." />
</div>
</template>
<script setup lang="ts">
import { computed, ref } from 'vue'
import tipBox from './tip-box.vue'
</script>
<style scoped lang="less">
.subscriptions {
width: 100%;
}
</style>

View File

@@ -0,0 +1,41 @@
<template>
<div class="tip-box">
<span class="iconfont" :class="[`icon-${type}`]"></span>
<div class="tip">{{ title }}</div>
<router-link v-if="isShowLink" class="link" to="/">Browse products</router-link>
</div>
</template>
<script setup lang="ts">
import { computed, ref } from 'vue'
const props = defineProps({
type: {
default: 'warning',
type: String as () => 'success' | 'warning'
},
title: { default: '', type: String },
isShowLink: { default: true, type: Boolean }
})
</script>
<style scoped lang="less">
.tip-box {
width: 100%;
height: 48px;
background-color: #1565c0;
border-left: 5px solid rgba(0, 0, 0, 0.2);
display: flex;
align-items: center;
padding: 0 20px;
> * {
color: #fff;
font-size: 16px;
}
> .iconfont {
margin-right: 10px;
font-size: 18px;
}
> .tip {
flex: 1;
}
}
</style>

View File

@@ -0,0 +1,20 @@
<script setup lang="ts">
defineExpose({})
</script>
<template>
<div class="user-stores">
<div class="placeholder"></div>
</div>
</template>
<style lang="less" scoped>
.user-stores{
.placeholder{
height: var(--main-header-height, 100px);
width: 100%;
position: sticky;
top: 0;
background-color: #000;
}
}
</style>

View File

@@ -1,6 +1,5 @@
import type { RouteRecordRaw } from 'vue-router'
import AboutView from './pages/about-us/index.vue'
import ContactView from './pages/ContactView.vue'
import HomeView from './pages/home/index.vue'
import ProductsView from './pages/ProductsView.vue'
import { LANGS } from './lang'
@@ -10,6 +9,7 @@ export const routes: RouteRecordRaw[] = [
children: [
{
path: '',
name: 'home',
component: HomeView,
},
{
@@ -22,16 +22,29 @@ export const routes: RouteRecordRaw[] = [
name: 'products',
component: ProductsView
},
{
path: 'media',
name: 'media',
component: () => import('./pages/media/index.vue')
},
{
path: 'contact-us',
name: 'contact',
component: ContactView
name: 'contact-us',
component: () => import('./pages/contact-us/index.vue')
},
{
path: 'aida',
name: 'Aida',
component: () => import('./pages/aida/index.vue')
},
{ path: 'events',
name: 'events',
component: () => import('./pages/events/index.vue')
},
{ path: 'user-stories',
name: 'user-stories',
component: () => import('./pages/user-stories/index.vue')
},
{
path: 'my-account',
name: 'MyAccount',
@@ -39,18 +52,41 @@ export const routes: RouteRecordRaw[] = [
children: [
{
path: '',
name: 'welcome',
component: () => import('./pages/my-account/welcome.vue'),
},
{
path: 'orders',
name: 'orders',
component: () => import('./pages/my-account/orders.vue'),
},
{
path: 'subscriptions',
name: 'subscriptions',
component: () => import('./pages/my-account/subscriptions.vue'),
},
{
path: 'address',
name: 'address',
component: () => import('./pages/my-account/address.vue'),
},
{
path: 'payment-methods',
name: 'payment-methods',
component: () => import('./pages/my-account/payment-methods.vue'),
},
{
path: ':pathMatch(.*)*',
name: 'not-found-welcome',
component: () => import('./pages/my-account/welcome.vue'),
},
]
},
{
path: ':pathMatch(.*)*',
name: 'not-found-home',
component: HomeView,
},
]
}
]

View File

@@ -1,26 +1,28 @@
{
"files": [],
// "files": [],
"include": ["env.d.ts", "src/**/*", "src/**/*.vue", "src/types/**/*.d.ts"],
"compilerOptions": {
"noUnusedLocals": false, // 关闭未使用局部变量检查
"noUnusedParameters": false, // 关闭未使用参数检查
"forceConsistentCasingInFileNames": false, // ⚠️ 禁用大小写检查
"allowJs": true,
"baseUrl": ".",
"types": ["node", "unplugin-vue-define-options/macros-global"],
"types": ["node"],
"paths": {
"@/*": ["./src/*"],
"_c/*": ["./src/components/*"]
},
"rootDirs": ["./src"],
"skipLibCheck": true,
"strict": false,
"noEmit": true,
"noImplicitAny": false,
"noEmitOnError": false
},
}
"references": [
{ "path": "./tsconfig.app.json" },
{
"path": "./tsconfig.node.json"
}
]
// "references": [
// { "path": "./tsconfig.app.json" },
// {
// "path": "./tsconfig.node.json"
// }
// ]
}

1
tsconfig.tsbuildinfo Normal file
View File

@@ -0,0 +1 @@
{"root":["./src/app.vue","./src/main.ts","./src/routes.ts","./src/vite-env.d.ts","./src/components/back-top.vue","./src/components/down-menu.vue","./src/components/main-footer.vue","./src/components/main-header.vue","./src/components/video-model.vue","./src/directives/custom-animation.js","./src/directives/index.ts","./src/directives/myevents.ts","./src/directives/scroll-progress.ts","./src/directives/tween-animation.ts","./src/lang/en.ts","./src/lang/index.ts","./src/lang/zh-cn.ts","./src/lang/zh-tw.ts","./src/pages/aboutview.vue","./src/pages/contactview.vue","./src/pages/productsview.vue","./src/pages/about-us/ecosystem.vue","./src/pages/about-us/index.vue","./src/pages/about-us/mission.vue","./src/pages/about-us/our-team.vue","./src/pages/about-us/strategic-partners.vue","./src/pages/about-us/title.vue","./src/pages/aida/index.vue","./src/pages/events/index.vue","./src/pages/events/swiper.vue","./src/pages/home/index.vue","./src/pages/home/components/carousel.vue","./src/pages/home/components/productfeature.vue","./src/pages/home/components/projectcta.vue","./src/pages/my-account/account-info.vue","./src/pages/my-account/index.vue","./src/pages/my-account/login.vue","./src/pages/my-account/orders.vue","./src/pages/my-account/register.vue","./src/pages/my-account/tip-box.vue","./src/pages/my-account/welcome.vue","./src/stores/global.ts","./src/stores/index.ts","./src/stores/userinfo.ts","./src/types/kagol-vue-carousel.d.ts"],"version":"6.0.3"}

View File

@@ -7,12 +7,31 @@ import { fileURLToPath, URL } from 'node:url'
// https://vite.dev/config/
const config = {
ssg: {
// 静默所有警告
silent: true,
// 或者只忽略特定警告
onWarning: (warning, message) => {
// 忽略 ResizeObserver 和 localStorage 相关警告
if (message.includes('ResizeObserver')) {
return;
}
console.warn(warning);
}
},
// 全局定义模拟对象
define: {
'ResizeObserver': 'typeof ResizeObserver !== "undefined" ? ResizeObserver : class ResizeObserver { observe() {} unobserve() {} disconnect() {} }',
},
base: '/',
plugins: [vue()],
ssr: {
noExternal: ['@kagol/vue-carousel']
},
ssgOptions: {
mock: true,
dirStyle: 'nested',
script: 'defer',
onFinished() {