Compare commits

...

19 Commits

Author SHA1 Message Date
X1627315083@163.com
8ad8030f47 help-centre 2026-05-20 11:43:05 +08:00
李志鹏
8cf3a2177c 语言适配 2026-05-20 11:10:03 +08:00
X1627315083@163.com
ddd61ff22f Merge branch 'main' of http://18.167.251.121:10003/aidlab/Code-Create 2026-05-20 10:57:49 +08:00
X1627315083@163.com
a6ab3d9402 fix 2026-05-20 10:57:47 +08:00
李志鹏
e9a909b1db Merge branch 'main' of http://18.167.251.121:10003/aidlab/Code-Create 2026-05-20 10:55:55 +08:00
李志鹏
9f77810c9e 404和底部页面 2026-05-20 10:55:54 +08:00
X1627315083@163.com
fe205f4920 help-centre 2026-05-20 10:52:33 +08:00
李志鹏
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
49 changed files with 3128 additions and 203 deletions

1
.gitignore vendored
View File

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

View File

@@ -5,7 +5,7 @@
<link rel="icon" type="image/svg+xml" href="/favicon.svg" /> <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>test-ssg</title> <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_5ucv7qhbwg9.css" />
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>

View File

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

View File

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

View File

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

Binary file not shown.

BIN
src/assets/images/404.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

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

View File

@@ -8,6 +8,15 @@
* 参数 * 参数
* GetRoot: 获取根元素函数-优先级GetRoot > parent > document * GetRoot: 获取根元素函数-优先级GetRoot > parent > document
* activeClass: 激活类名-默认值active * 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> * <div translate-x-s="-100" translate-x="100"></div>
@@ -40,6 +49,16 @@ const T = {
rotateZ: 'rotate-z', rotateZ: 'rotate-z',
opacity_s: 'opacity-s', opacity_s: 'opacity-s',
opacity: 'opacity', 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 types = Object.values(T)
const typesStr = types.map(v => `[${v}]`).join(',') const typesStr = types.map(v => `[${v}]`).join(',')
@@ -55,8 +74,22 @@ export default {
const { value, modifiers } = binding const { value, modifiers } = binding
const { const {
GetRoot,// 获取根元素函数 GetRoot,// 获取根元素函数
activeClass = 'active'// 激活类名 activeClass = 'active',// 激活类名
duration = '0.5s',// 动画时间
delay = '0s',// 延迟时间
easing = 'ease-out',// 缓动函数
} = value || {} } = 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 { const {
scroll = false,// 是否监听滚动事件 scroll = false,// 是否监听滚动事件
once = false,// 是否只执行一次 once = false,// 是否只执行一次
@@ -64,22 +97,28 @@ export default {
} = modifiers } = modifiers
const root = GetRoot ? GetRoot() : parent ? el.parentElement : document; const root = GetRoot ? GetRoot() : parent ? el.parentElement : document;
if (el === root) return; if (el === root) return;
add(el, root) const config = {
els.set(el, {
root,// 根元素 root,// 根元素
scroll, scroll,
once, once,
activeClass, activeClass,
isActive: false, isActive: false,
}) transition,
}
els.set(el, config)
add(el, root, config)
}, },
beforeUnmount(el, binding) { beforeUnmount(el, binding) {
remove(el) remove(el)
els.delete(el) els.delete(el)
} }
}; };
function add(el, root = document) { function add(el, root = document, config) {
requestAnimationFrame(() => handleScroll({ target: root })) if (config.scroll) {
requestAnimationFrame(() => handleScroll({ target: root }))
} else {
getChildren(el).forEach((child) => setDocumentStyles(el, child, 0))
}
resize.observe(el) resize.observe(el)
if (roots.has(root)) { if (roots.has(root)) {
let obj = roots.get(root) let obj = roots.get(root)
@@ -97,6 +136,9 @@ function add(el, root = document) {
if (obj.once && obj.isActive) return;// 只执行一次,且已可见,不执行 if (obj.once && obj.isActive) return;// 只执行一次,且已可见,不执行
obj.isActive = entry.isIntersecting; obj.isActive = entry.isIntersecting;
target.classList.toggle(obj.activeClass, obj.isActive) target.classList.toggle(obj.activeClass, obj.isActive)
getChildren(target).forEach((el) => {
setDocumentStyles(target, el, obj.isActive ? 1 : 0)
})
}) })
}, { root }) }, { root })
observer.observe(el) observer.observe(el)
@@ -128,8 +170,7 @@ async function handleScroll({ target: root }) {
const item = els.get(el) const item = els.get(el)
if (!item) return if (!item) return
if (!item.scroll) return if (!item.scroll) return
const children = Array.from(el.querySelectorAll(typesStr)) const children = getChildren(el)
if (Object.values(T).some(v => hasAttr(el, v))) children.push(el)
if (children.length === 0) return if (children.length === 0) return
const rootEl = isDocumentRoot(root) const rootEl = isDocumentRoot(root)
const offsetHeight = root === document ? window.innerHeight : rootEl.offsetHeight const offsetHeight = root === document ? window.innerHeight : rootEl.offsetHeight
@@ -139,27 +180,53 @@ async function handleScroll({ target: root }) {
const maxHeight = offsetHeight + el.offsetHeight const maxHeight = offsetHeight + el.offsetHeight
const p = Math.min(1, Math.max(0, elTop_bottom / maxHeight)) const p = Math.min(1, Math.max(0, elTop_bottom / maxHeight))
children.forEach((item) => { children.forEach((item) => {
item.style.transition = 'transform 0.5s ease-out' setDocumentStyles(el, item, p)
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)
}
}) })
}) })
} }
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) { 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 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 const endNum = hasAttr(el, end) ? Number(el.getAttribute(end)) : hasAttr(el, bEnd) ? Number(el.getAttribute(bEnd)) : defaultValue
return startNum + (endNum - startNum) * progress return startNum + (endNum - startNum) * progress

View File

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

View File

@@ -3,7 +3,7 @@ export default {
Home: 'Home', Home: 'Home',
AboutUs: 'About Us', AboutUs: 'About Us',
OurSolutions: 'Our Solutions', OurSolutions: 'Our Solutions',
AiDA31: 'AiDA 3.1', AiDA: 'AiDA 3.1',
Mixi: 'Mixi', Mixi: 'Mixi',
Communities: 'Communities', Communities: 'Communities',
Events: 'Events', Events: 'Events',
@@ -15,10 +15,19 @@ export default {
LoginOrSignin: 'Log in / Sign in', LoginOrSignin: 'Log in / Sign in',
}, },
MainFooter: { MainFooter: {
Others: 'Others',
Copyright: '©{year} {name} Limited', Copyright: '©{year} {name} Limited',
PrivacyPolicy: 'Privacy Policy', PrivacyPolicy: 'Privacy Policy',
TermsOfUse: 'Terms of Use', TermsOfUse: 'Terms of Use',
Disclaimer: 'Disclaimer', Disclaimer: 'Disclaimer',
SiteMap: 'Site Map', SiteMap: 'Site Map',
} },
PageNotFound: 'Page not found',
PageNotFoundTitle: "That Page Can't Be Found",
PageNotFoundDesc: "It looks like nothing was found at this location.",
Contact: 'Contact',
GetInTouch: 'Get In Touch',
StayUpToDate: "Stay up to date with our e-newsletter",
EmailAddress: 'Email Address',
Submit: 'Submit',
} }

View File

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

View File

@@ -3,7 +3,7 @@ export default {
Home: '首页', Home: '首页',
AboutUs: '关于我们', AboutUs: '关于我们',
OurSolutions: '我们的产品', OurSolutions: '我们的产品',
AiDA31: 'AiDA 3.1', AiDA: 'AiDA 3.1',
Mixi: 'Mixi', Mixi: 'Mixi',
Communities: '社区', Communities: '社区',
Events: '活动', Events: '活动',
@@ -15,10 +15,19 @@ export default {
LoginOrSignin: '登入 / 注册', LoginOrSignin: '登入 / 注册',
}, },
MainFooter: { MainFooter: {
Others: '其他',
Copyright: '©{year} {name} 有限公司', Copyright: '©{year} {name} 有限公司',
PrivacyPolicy: '隐私政策', PrivacyPolicy: '隐私政策',
TermsOfUse: '使用条款', TermsOfUse: '使用条款',
Disclaimer: '免责声明', Disclaimer: '免责声明',
SiteMap: '网站地图', SiteMap: '网站地图',
} },
PageNotFound: '页面不存在',
PageNotFoundTitle: '该页面不存在',
PageNotFoundDesc: '这里似乎没有任何发现。',
Contact: '联络方法',
GetInTouch: '联系我们',
StayUpToDate: '通过我们的电子通讯掌握最新动态',
EmailAddress: '电邮地址',
Submit: '提交',
} }

View File

@@ -3,7 +3,7 @@ export default {
Home: '首頁', Home: '首頁',
AboutUs: '關於我們', AboutUs: '關於我們',
OurSolutions: '我們的產品', OurSolutions: '我們的產品',
AiDA31: 'AiDA 3.1', AiDA: 'AiDA 3.1',
Mixi: 'Mixi', Mixi: 'Mixi',
Communities: '社區', Communities: '社區',
Events: '活動', Events: '活動',
@@ -15,10 +15,19 @@ export default {
LoginOrSignin: '登錄 / 登冊', LoginOrSignin: '登錄 / 登冊',
}, },
MainFooter: { MainFooter: {
Others: '其他',
Copyright: '©{year} {name} 有限公司', Copyright: '©{year} {name} 有限公司',
PrivacyPolicy: '私隱政策', PrivacyPolicy: '私隱政策',
TermsOfUse: '使用條款', TermsOfUse: '使用條款',
Disclaimer: '免責聲明', Disclaimer: '免責聲明',
SiteMap: '網站地圖', SiteMap: '網站地圖',
} },
PageNotFound: '頁面不存在',
PageNotFoundTitle: '該頁面不存在',
PageNotFoundDesc: '這裡似乎沒有任何發現。',
Contact: '聯絡方法',
GetInTouch: '保持聯繫',
StayUpToDate: '通過我們的電子通訊掌握最新動態',
EmailAddress: '電郵地址',
Submit: '提交',
} }

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> <template>
<section class="strategic-partners"> <section class="strategic-partners">
<div class="content"> <div class="content">
<h2 v-tween-Y="'30px'">Strategic Partners</h2> <h2 v-tween="{'y':'30px','opacity':0}">Strategic Partners</h2>
<div class="img-box" v-tween-Y="'30px'"> <div class="img-box" v-tween="{'y':'30px','opacity':0}">
<a href="https://www.aidlab.hk/"> <a href="https://www.aidlab.hk/">
<img src="https://code-create.com.hk/wp-content/uploads/2022/11/about_partners_01.png" alt=""> <img src="https://code-create.com.hk/wp-content/uploads/2022/11/about_partners_01.png" alt="">
</a> </a>

View File

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

View File

@@ -0,0 +1,148 @@
<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">
{{ $t('MainHeader.ContactUs') }}
</h1>
</section>
<section class="contact">
<span class="iconfont icon-dingwei"></span>
<h3 class="title">{{ $t('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">{{ $t('GetInTouch') }}</h3>
<div class="tip">{{ $t('StayUpToDate') }}</div>
<input
v-model="email"
@keydown.enter.prevent="submit"
type="email"
:placeholder="$t('EmailAddress')"
/>
<div v-show="error" class="error">{{ error }}</div>
<button custom @click="submit">{{ $t('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;
text-transform: uppercase;
}
}
> .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

@@ -0,0 +1,132 @@
<script setup lang="ts">
import { ref } from "vue";
// 使用接口定义
const faqList = ref([
{
id: 1,
title: 'What are the minimum, recommended system requirements?',
content: 'As AiDA is a cloud-based system, only stable internet access is required.',
},
{
id: 2,
title: 'Does AiDA run on both a PC & a MAC?',
content: 'Yes, AiDA supports both PC & MAC.',
},
{
id: 3,
title: 'Does AiDA run on an iPad?',
content: 'Yes, AiDA can be run on an iPad.',
},
{
id: 4,
title: 'What File Types it supports?',
content: 'The image file types that can be uploaded into AiDA: jpeg, jpg, png',
},
{
id: 5,
title: 'In what languages is AiDA system available',
content: 'Currently, AiDA is available in English',
},
{
id: 6,
title: 'Can I receive my invoice?',
content: 'The invoice will be sent to your registered mailbox 1 months before (for paid subscription) with the reminder email.',
},
{
id: 7,
title: 'How do I change my password?',
content: 'You could change your password after login to your account in “My Account” page “Account details” part.',
},
])
const openIdList = ref([])
const openInfo = (id) => {
if(openIdList.value.includes(id)){
openIdList.value = openIdList.value.filter(item => item !== id)
}else{
openIdList.value.push(id)
}
}
defineExpose({})
</script>
<template>
<section class="faq">
<div class="content">
<h2>FAQ</h2>
<div class="faq-list">
<div v-for="item in faqList" :key="item.id" class="faq-item">
<h2 @click="openInfo(item.id)">
{{ item.title }}
<span class="iconfont icon-sanjiao_xia" :class="{'active': openIdList.includes(item.id)}"></span>
</h2>
<div class="info" :class="{'active': openIdList.includes(item.id)}">
<p>{{ item.content }}</p>
</div>
</div>
</div>
</div>
</section>
</template>
<style lang="less" scoped>
.faq{
width: 100%;
padding: 60px 0;
background-color: #f9f9f9;
> .content{
max-width: 1140px;
margin: 0 auto;
> h2{
font-family: "Poppins", Sans-serif;
font-size: 40px;
font-weight: 600;
letter-spacing: 1px;
color: #000000;
margin-bottom: 40px;
line-height: 1;
text-align: center;
}
> .faq-list{
> .faq-item{
border-bottom: 1px solid #d5d8dc;
> h2{
padding: 40px 0px 40px 0px;
font-family: "Poppins", Sans-serif;
font-size: 24px;
line-height: 1.5em;
color: #333333;
font-weight: 700;
display: flex;
align-items: flex-start;
justify-content: space-between;
cursor: pointer;
> span{
font-size: 14px;
transition: all .3s;
&.active{
transform: rotate(180deg);
}
}
}
> .info{
height: 0;
overflow: hidden;
transition: all .3s;
&.active{
height: 70px;
}
> p{
padding: 15px;
color: #333333;
font-weight: 400;
font-size: 14px;
line-height: 20px;
margin-bottom: 20px;
}
}
}
}
}
}
</style>

View File

@@ -0,0 +1,30 @@
<script setup lang="ts">
import Title from './title.vue'
import Faq from './faq.vue'
defineExpose({})
</script>
<template>
<div class="about-us">
<div class="bg">
<img src="https://code-create.com.hk/wp-content/uploads/2022/11/helpcentre_banner-1.jpg" alt="">
</div>
<Title />
<Faq />
</div>
</template>
<style lang="less" scoped>
.about-us{
width: 100%;
height: 100%;
position: relative;
> .bg{
width: 100%;
position: fixed;
z-index: -1;
top: 0;
> img{
width: 100%;
}
}
}
</style>

View File

@@ -0,0 +1,32 @@
<script setup lang="ts">
defineExpose({})
</script>
<template>
<section class="title-section">
<div class="content">
<div class="text">
<h1>HELP CENTRE</h1>
</div>
</div>
</section>
</template>
<style lang="less" scoped>
.title-section{
width: 100%;
> .content{
max-width: 1400px;
margin: 0 auto;
> .text{
padding: 200px 300px;
> h1{
text-align: center;
font-size: 64px;
font-weight: 600;
line-height: 64px;
letter-spacing: 2px;
color: #FFFFFF;
}
}
}
}
</style>

View File

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

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

@@ -0,0 +1,178 @@
<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">
{{ $t('MainHeader.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' icon: 'icon-address'
}, },
{ {
path: '/my-account/methods', path: '/my-account/payment-methods',
label: 'Payment methods', label: 'Payment methods',
icon: 'icon-duidiaojiaohuanduihuan' 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> <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> </template>
<script setup lang="ts"> <script setup lang="ts">
import { computed, ref } from 'vue' import { computed, ref } from 'vue'
import tipBox from './tip-box.vue'
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.orders { .orders {
width: 100%;
} }
</style> </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,49 @@
<template>
<div class="disclaimer">
<OthersHeader :title="$t('MainFooter.Disclaimer')" />
<div class="content">
<p>
The contents of this marketing material are fully protected by copyright and nothing
may be reused without permission.
</p>
<p>
All information and contents contained in this marketing material are provided for
reference only and should not be relied on as the basis for any decision making.
Code Create Limited shall make no representation or warranty and accept no
responsibility, express or implied, for the accuracy, completeness, reliability or
timeliness of the information and contents, or any opinions, findings, conclusions
or recommendations contained in this marketing material. Code Create Limited shall
have no legal liability or responsibility (including liability for negligence) for
any loss, damage, or injury (including death) which may result, whether directly or
indirectly, from the supply or use of this information.
</p>
<p>
In the event of concerns or queries arising from any of the contents of this
marketing material, independent professional advice should be sought.
</p>
</div>
</div>
</template>
<script setup lang="ts">
import { computed, ref } from 'vue'
import OthersHeader from './others-header.vue'
</script>
<style scoped lang="less">
.disclaimer {
border-top: var(--main-header-height) solid #000;
background-color: #f9f9f9;
> .content {
max-width: 1230px;
width: 100%;
margin: 0 auto;
padding: 25px 15px 80px;
line-height: 1.6;
color: #333;
font-weight: 400;
> p {
margin-bottom: 20px;
}
}
}
</style>

View File

@@ -0,0 +1,62 @@
<template>
<div class="not-found-404">
<OthersHeader :title="$t('PageNotFound')" />
<div class="content">
<h2>404</h2>
<h1>{{ $t('PageNotFoundTitle') }}</h1>
<p>{{ $t('PageNotFoundDesc') }}</p>
</div>
</div>
</template>
<script setup lang="ts">
import { computed, ref } from 'vue'
import OthersHeader from './others-header.vue'
</script>
<style scoped lang="less">
.not-found-404 {
border-top: var(--main-header-height) solid #000;
background-color: #f9f9f9;
> .content {
max-width: 1230px;
width: 100%;
margin: 0 auto;
padding: 120px 15px;
line-height: 1.6;
color: #333;
font-weight: 400;
display: flex;
flex-direction: column;
align-items: center;
color: #222;
> h2 {
font-size: 100px;
font-weight: 600;
letter-spacing: 2px;
background-image: url('@/assets/images/404.png');
background-size: auto 100%;
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
animation: bgImageAnim 7s linear infinite;
@keyframes bgImageAnim {
0% {
background-position-y: 0;
}
100% {
background-position-y: -200px;
}
}
}
> h1 {
font-size: 24px;
margin-bottom: 5px;
text-transform: uppercase;
}
> p {
color: #333;
margin-bottom: 20px;
}
}
}
</style>

View File

@@ -0,0 +1,42 @@
<template>
<div class="others-header">
<router-link to="/">
<span>{{ $t('MainHeader.Home') }}</span>
<span class="iconfont icon-arrow-right-bold"></span>
</router-link>
<h1 class="title">{{ title }}</h1>
</div>
</template>
<script setup lang="ts">
import { computed, ref } from 'vue'
const props = defineProps({
title: { type: String, required: true }
})
</script>
<style scoped lang="less">
.others-header {
padding: 50px 0;
background-color: #666;
display: flex;
flex-direction: column;
align-items: center;
> a {
font-size: 14px;
font-weight: 400;
color: #ffffff;
text-decoration: none;
> .iconfont {
font-size: 10px;
margin-left: 5px;
}
}
> .title {
font-size: 40px;
font-weight: 400;
line-height: 2;
text-transform: none;
color: #ffffff;
}
}
</style>

View File

@@ -0,0 +1,116 @@
<template>
<div class="privacy-policy">
<OthersHeader :title="$t('MainFooter.PrivacyPolicy')" />
<div class="content">
<p>
Please read this Privacy Policy Statement (PPS) to understand our policy and
practices on the collection, use, transfer, storage and processing of your personal
data. By accessing this Website, you are consenting to this PPS.
</p>
<ol>
<li>
Code Create Limited (we, us or our) pledges to comply with the
requirements of the Personal Data (Privacy) Ordinance. In doing so, we will
ensure compliance by our staff with the highest security and confidentiality
standards.
</li>
<li>
We protect the privacy of users of our website. Any personal data collected from
you will only be used for the specific purposes mentioned at the time of
collection or for purposes directly related to those specific purposes and/or
that mentioned in the relevant Personal Information Collection Statement.
</li>
<li>
We will retain your personal data only for so long as necessary to fulfill the
purpose of collection; and will erase your personal data thereafter. We will
ensure the security of your personal data and protect them from unauthorised
access.
</li>
<li>
We will keep your personal data confidential. Your personal data will be used
(and disclosed) to third parties for the purposes for which they were collected,
and where we are required to do so by law and as specified in the relevant
Personal Information Collection Statement.
</li>
<li>
We may keep an activity log that does not identify you individually and cannot
be used to determine the particular user in order to measure traffic, gauge the
popularity of different parts of our websites, gain general knowledge about the
users, and facilitate the enhancement of our websites. This information may
include the IP address, operating system and version, the type of network, the
type and configuration of your browser, the geo-location information and
identifiers of the device you used.
</li>
<li>
We use cookies to enhance your experience on this website (<strong>code-</strong
><strong>create.com.hk</strong>). Cookies are small pieces of data stored on
your computer or other devices when websites are loaded in a browser. We use
cookies to analyse website traffic, personalise website content and to make
targeted advertisements on third party websites. We use Google Analytics to
analyze usage trends at its website. We also use cookies at this website and
cookies set by Google Analytics to collect information on how visitors use our
website. Third parties such as YouTube and Google may set cookies, for example,
relating to the use of YouTube video players and targeted advertising
respectively. For further information, users should refer to the relevant third
parties cookies policy which may be amended from time to time. By continuing to
use this website, you agree to the use of these cookies. If you do not accept
the cookies or withdraw your consent, you will not able to use some of the
functions on this website.
</li>
<li>
This PPS is subject to change. Any changes will be posted on this page. Your
continued use of our website after the posting of such changes indicates your
acceptance to the same. In case of any inconsistency between the English and
Chinese versions, the English version shall prevail. If you have any enquiries,
please send an email to&nbsp;<strong
><a href="mailto:info@code-create.com.hk"
>info@code-create.com.hk</a
></strong
>.
</li>
</ol>
</div>
</div>
</template>
<script setup lang="ts">
import { computed, ref } from 'vue'
import OthersHeader from './others-header.vue'
</script>
<style scoped lang="less">
.privacy-policy {
border-top: var(--main-header-height) solid #000;
background-color: #f9f9f9;
> .content {
max-width: 1230px;
width: 100%;
margin: 0 auto;
padding: 25px 15px 80px;
line-height: 1.6;
color: #333;
font-weight: 400;
> p {
margin-bottom: 20px;
}
> ol {
padding-left: 20px;
margin: 0;
> li {
margin-bottom: 8px;
a,
strong {
text-decoration: none;
color: #222;
}
}
}
}
}
</style>

View File

@@ -0,0 +1,97 @@
<template>
<div class="site-map">
<OthersHeader :title="$t('MainFooter.SiteMap')" />
<div class="content">
<div>
<div>
<router-link to="/about-us"
><h3>{{ $t('MainHeader.AboutUs') }}</h3></router-link
>
</div>
<div>
<router-link to="/our-solutions"
><h3>{{ $t('MainHeader.OurSolutions') }}</h3></router-link
>
<router-link to="/aida">{{ $t('MainHeader.AiDA') }}</router-link>
<router-link to="/mixi">{{ $t('MainHeader.Mixi') }}</router-link>
</div>
<div>
<router-link to="#"
><h3>{{ $t('MainHeader.Communities') }}</h3></router-link
>
<router-link to="/events">{{ $t('MainHeader.Events') }}</router-link>
<router-link to="/user-stories">{{ $t('MainHeader.UserStories') }}</router-link>
<router-link to="/help-centre">{{ $t('MainHeader.HelpCentre') }}</router-link>
</div>
</div>
<div>
<div>
<router-link to="/contact-us"
><h3>{{ $t('MainHeader.ContactUs') }}</h3></router-link
>
</div>
<div>
<router-link to="/media"
><h3>{{ $t('MainHeader.Media') }}</h3></router-link
>
</div>
<div>
<router-link to="#"
><h3>{{ $t('MainFooter.Others') }}</h3></router-link
>
<router-link to="/privacy-policy">{{
$t('MainFooter.PrivacyPolicy')
}}</router-link>
<router-link to="/terms-of-use">{{ $t('MainFooter.TermsOfUse') }}</router-link>
<router-link to="/disclaimer">{{ $t('MainFooter.Disclaimer') }}</router-link>
<router-link to="/site-map">{{ $t('MainFooter.SiteMap') }}</router-link>
</div>
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { computed, ref } from 'vue'
import OthersHeader from './others-header.vue'
</script>
<style scoped lang="less">
.site-map {
border-top: var(--main-header-height) solid #000;
background-color: #f9f9f9;
> .content {
max-width: 1230px;
width: 100%;
margin: 0 auto;
padding: 25px 15px 80px;
display: flex;
> div {
flex: 1;
padding: 10px 40px;
> div {
margin-bottom: 20px;
display: flex;
flex-direction: column;
&:last-child {
margin-bottom: 0;
}
a {
color: #888;
font-size: 16px;
text-decoration: none;
padding: 8px 0;
transition: all 0.3s ease-in-out;
&:hover {
color: #222;
}
}
h3 {
padding: 2px 0;
color: #000;
font-size: 20px;
}
}
}
}
}
</style>

View File

@@ -0,0 +1,139 @@
<template>
<div class="terms-of-use">
<OthersHeader :title="$t('MainFooter.TermsOfUse')" />
<div class="content">
<p>
Please read these Terms of Use carefully.&nbsp; By accessing this Website, you are
consenting to these Terms of Use.&nbsp; If you do not accept these Terms of Use, do
not access this Website.
</p>
<p>1.<strong>Website Contents</strong></p>
<p>
This Website of the Code Create Limited (we, us, our) is for general
reference.&nbsp; We may, at our absolute discretion and at any time, without prior
notice to you, add to, amend or remove material from this Website, or alter the
presentation, substance, or functionality of this Website.
</p>
<p>2.<strong>Links to and from this Website</strong></p>
<p>
The links on this Website may take you to third-party websites or services that are
not owned or controlled by us.&nbsp; You acknowledge and agree that we have no
control over, and assume no responsibility for the content, privacy policies, or
practices of any third party websites or services.&nbsp; Links to other websites do
not constitute an endorsement by us of such websites or the information, products,
advertising, or other materials available on those websites.
</p>
<p>3.<strong>Intellectual Property Rights</strong></p>
<p>
All intellectual property rights subsisting in respect of this Website belong to us
or have been lawfully licensed to us for use on this Website. All rights under
applicable laws are hereby reserved. Except with our express written permission, you
are not allowed to upload, post, publish, reproduce, transmit or distribute in any
way any component of this Website itself or create derivative works with respect
thereto, as this Website is copyrighted under applicable laws.
</p>
<p>
You may only download such part of this Website as is expressly permitted to be
downloaded for the purposes specified.&nbsp; You have no rights in or to the
contents and you will not use them except as permitted under these Terms of Use.
</p>
<p>4.<strong>Limited Liability and Warranty</strong></p>
<p>
This Website is provided by us on an as is and as available basis.&nbsp; All
information is for your general reference only. We do not accept any responsibility
whatsoever in respect of such information.&nbsp; We do not guarantee or assume any
responsibility that:
</p>
<p>
this Website is available or will be uninterrupted or error-free, or that defects
will be corrected;
</p>
<p>
the information on this Website is accurate, adequate, current or reliable, or may
be used for any purpose other than for general reference;
</p>
<p>
the information on this Website is free of defect, error, omission, virus or
anything which may change, erase, add to or damage your software, data or equipment;
or
</p>
<p>
the messages sent through the internet will be free from interception, corruption
or loss.
</p>
<p>
We make no representation that the information on this Website is appropriate or
available for use in any other jurisdictions.&nbsp; Those who access this Website
from other locations do so at their discretion and are solely responsible for
compliance with their laws and rules.
</p>
<p>5.<strong>Privacy Policy</strong></p>
<p>
For information about our privacy policies and practices, please refer to
our&nbsp;<strong
><a href="/privacy-policy" data-type="URL" data-id="/privacy-policy"
>Privacy Policy Statement</a
></strong
>. Where personal data is collected, you should also have reference to the relevant
Personal Information Collection Statement in the form through which your personal
data is collected.
</p>
<p>6.<strong>Governing Law and Jurisdiction</strong></p>
<p>
These Terms of Use shall be governed by the law of the Hong Kong Special
Administrative Region of the Peoples Republic of China (Hong Kong). You agree to
submit to the non-exclusive jurisdiction of the Hong Kong courts.
</p>
<p>7.<strong>General Matters</strong></p>
<p>
These Terms of Use are subject to change.&nbsp; Any changes will be posted on this
page. Your continued use of our website after the posting of such changes indicates
your acceptance to the changes. In case of any inconsistency between the English and
Chinese versions, the English version shall prevail.
</p>
</div>
</div>
</template>
<script setup lang="ts">
import { computed, ref } from 'vue'
import OthersHeader from './others-header.vue'
</script>
<style scoped lang="less">
.terms-of-use {
border-top: var(--main-header-height) solid #000;
background-color: #f9f9f9;
> .content {
max-width: 1230px;
width: 100%;
margin: 0 auto;
padding: 25px 15px 80px;
line-height: 1.6;
color: #333;
font-weight: 400;
> p {
margin-bottom: 20px;
}
}
}
</style>

View File

@@ -0,0 +1,21 @@
<script setup lang="ts">
import UserList from './user-list.vue'
defineExpose({})
</script>
<template>
<div class="user-stores">
<div class="placeholder"></div>
<UserList></UserList>
</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

@@ -0,0 +1,337 @@
<script setup lang="ts">
import { ref } from "vue";
import MyEvent from "@/directives/myEvents";
const playVideo = (item)=>{
MyEvent.emit("playVideo",{
url: item.videoUrl,
poster: item.imgUrl,
});
}
const list = ref([
{
imgUrl: 'https://code-create.com.hk/wp-content/uploads/2025/04/XULULU.png',
videoUrl: 'https://code-create.com.hk/wp-content/uploads/2025/04/XULULU.mp4',
name: 'XULULU',
textList: [
'AiDA is a very interesting and creatively inspiring system that showcases limitless potential in fashion design. Traditional designers can typically create only a handful of styles in a day, whereas AiDA can generate multiple designs in an instant, making its efficiency incomparable to that of humans.',
'This high level of productivity makes AiDA an invaluable tool for designers, and the vast array of designs it produces also provides valuable learning opportunities. By analyzing and appreciating these designs, designers can gain inspiration and enhance their own creative skills.',
'Therefore, I believe that in the future, AiDA has the potential to become an essential tool for designers, driving innovation and transformation in the fashion industry.'
],
},
{
imgUrl: 'https://code-create.com.hk/wp-content/uploads/2025/04/Yiu-Ching-Yau.png',
videoUrl: 'https://code-create.com.hk/wp-content/uploads/2025/04/Yiu-Ching-Yau1.mp4',
name: 'Yiu Ching Yau',
textList: [
'Throughout the process of using AiDA, I deeply felt the significant impact of artificial intelligence on the future society. AI has provided me with a lot of innovative ideas for clothing design, such as the use of different garments, the combination of silhouettes and the matching of materials. Because of the intelligence of AI, I have received a lot of inspiration. AIs intelligence has provided me with a lot of inspiration that I never thought of, and its convenient and fast design methods have also greatly promoted my creative process.',
],
},
{
imgUrl: 'https://code-create.com.hk/wp-content/uploads/2025/04/XIEYAUKIT-scaled.png',
videoUrl: 'https://code-create.com.hk/wp-content/uploads/2025/04/XIEYAUKIT.mp4',
name: 'XIEYAUKIT',
textList: [
'Using AiDA has been a transformative experience in my design journey. The integration of technology and creativity has allowed me to explore new dimensions in my work. One of the most significant advantages of AiDA is its ability to automate repetitive tasks, such as creating style sketches. This automation has freed up valuable time, enabling me to focus on the more creative aspects of my designs. ',
'Reflecting on my experience with AiDA, I feel a renewed sense of excitement about the future of design. It has not only improved my skills but also opened my eyes to the endless possibilities that lie ahead when creativity meets technology.',
],
},
{
imgUrl: 'https://code-create.com.hk/wp-content/uploads/2025/04/Yuzhi-Lai-scaled.jpg',
videoUrl: 'https://code-create.com.hk/wp-content/uploads/2025/04/Yuzhi-Lai1.mp4',
name: 'Yuzhi Lai',
textList: [
'During the process of using AiDA for fashion design, I experienced unprecedented convenience and efficiency. Especially in the stages of color extraction and generating design sketches, as well as further developing them into fashion rendering image, the powerful capabilities of AI technology left me deeply impressed.',
'Using AiDA for fashion design is a highly enjoyable and innovative experience. Despite some limitations, I still believe that AiDA has brought revolutionary changes to the field of fashion design. Its efficiency and convenience have greatly shortened the design cycle. I look forward to future breakthroughs in AiDA and the emergence of more stunning design works.',
],
},
{
imgUrl: 'https://code-create.com.hk/wp-content/uploads/2025/04/Cheung-Tsz-Ching.png',
videoUrl: 'https://code-create.com.hk/wp-content/uploads/2025/04/Cheung-Tsz-Ching.mp4',
name: 'Cheung Tsz ChingBobo',
textList: [
'Through this competition, I had the opportunity to explore many different features of AiDA. Using AiDA allows me to design a collection step by step, starting from a moodboard. It provides the ability to edit outfit details, such as prints and colors. This feature makes it easier for the designs to align with my desired outcomes. Once completed, AiDA can generate real-life versions of the designs, making my work feel more complete. ',
],
},
{
imgUrl: 'https://code-create.com.hk/wp-content/uploads/2023/01/Aidlab_interview02_INJURY_thumb.jpg',
videoUrl: 'https://code-create.com.hk/wp-content/uploads/2026/03/UserStory3.mp4',
name: 'INJURY from Australia',
textList: [
'Regarding the user experience of AiDA, we would like to use five keywords to describe, which are “Surprise” “Easy”, “Unlimited”, “Automatic” and “Fast”.',
],
},
{
imgUrl: 'https://code-create.com.hk/wp-content/uploads/2023/01/Aidlab_interview02_Jae_thumb.jpg',
videoUrl: 'https://code-create.com.hk/wp-content/uploads/2026/03/UserStory2.mp4',
name: 'BESFXXK from Korea',
textList: [
'Those keywords that come to my mind when describing the systems are “Safe”, “Fast”, “Friendly”, “Smart” and “Futuristic”',
],
},
{
imgUrl: 'https://code-create.com.hk/wp-content/uploads/2023/01/Aidlab_interview02_Mountain_thumb.jpg',
videoUrl: 'https://code-create.com.hk/wp-content/uploads/2026/03/UserStory1.mp4',
name: 'Mountain Yam from Hong Kong',
textList: [
'The process is “Simple and user-friendly”, and the system is “Efficient”, “Fruitful”, “Innovative” and “Solidarity”.',
],
},
])
const userList = ref([
{
profile:'https://code-create.com.hk/wp-content/uploads/2025/04/WhatsApp-Image-2025-04-23-at-18.36.16_740726a9-794x1024.jpg',
name: 'Prof. Jung',
school: 'Hanyang University Department of Clothing and Textiles',
info: 'In the “Digital Fashion Content Development” course, Ive integrated the AiDA system into a 4-week mini-project with the goal of designing a “My Own Capsule Collection.” The class included a diverse group of students. Even those without prior knowledge of fashion design were able to create fun and imaginative designs within just three weeks using AiDA. Most notably, AiDAs powerful generative AI system stimulated students creativity, enabling them to produce designs beyond what they thought they were capable of. Based on this experience, I summarized the impact of AiDA through a short rhyme: “No barrier to begin — thats for sure, Ready to use everywhere, Boosting designers flair to dare.”',
},
{
profile:'https://code-create.com.hk/wp-content/uploads/2025/04/userstory_irene_siu-1-150x150.jpg',
name: 'Irene Siu',
info: 'The concept of AiDA has many potential applications in the fashion industry, which are still waiting for us to discover and develop.',
},
{
profile:'https://code-create.com.hk/wp-content/uploads/2025/04/userstory_joyce_chow-150x150.jpg',
name: 'Joyce Chow',
info: 'AiDA lets the fashion industry go into a new generation. A successful AiDA can help to push eco-friendliness, which is one of the most crucial worldwide topics in the fashion industry.',
},
{
profile:'https://code-create.com.hk/wp-content/uploads/2023/02/userstory_cheryl_ho-150x150.jpg',
name: 'Cheryl Ho',
info: 'Apart from providing new elements to inform my design process, AiDA also inspires me by offering much more variety of proportions and outfit combinations.',
},
{
profile:'https://code-create.com.hk/wp-content/uploads/2023/02/userstory_minna_n_polam-150x150.jpg',
name: 'Minna & Polam',
info: 'AiDA helps us mix and match each item and generate colours so we can quickly see what it will look like all items match together, and the effects come with different colours and patterns. It also assists us at the design development stage by learning our style and taste.',
},
])
defineExpose({})
</script>
<template>
<section class="user-list">
<div class="content">
<h2>User Stories</h2>
</div>
</section>
<section class="user-item" v-for="item in list" :key="item.name">
<div class="content">
<div class="video-box">
<img :src="item.imgUrl" alt="">
<span class="iconfont icon-bofang" @click="playVideo(item)"></span>
</div>
<div class="text-box">
<div class="text-content">
<div class="icon">
<span class="iconfont icon-quotesUp-copy"></span>
</div>
<h2 v-tween="{opacity:0,y:'30px'}">{{item.name}}</h2>
<div v-tween="{opacity:0}">
<p v-for="text in item.textList" :key="text">{{text}}</p>
</div>
</div>
</div>
</div>
</section>
<section class="user2-type">
<div class="content">
<div class="item" v-for="item in userList" :key="item.name">
<div class="img-box">
<img :src="item.profile" alt="">
</div>
<div class="box">
<div class="icon">
<span class="iconfont icon-quotesUp-copy"></span>
</div>
<h2 class="name" v-tween="{opacity:0,y:'30px'}">{{item.name}}</h2>
<h2 class="school" v-tween="{opacity:0,y:'30px'}" v-if="item?.school">{{item?.school}}</h2>
<p v-tween="{opacity:0}">{{item.info}}</p>
</div>
</div>
</div>
</section>
</template>
<style lang="less" scoped>
.user-list{
width: 100%;
background-color: #f9f9f9;
> .content{
margin: 0 auto;
max-width: 1140px;
padding: 100px 0px 100px 0px;
> h2{
text-align: center;
width: 100%;
font-size: 40px;
font-weight: 600;
letter-spacing: 1px;
color: #000000;
}
}
}
.user-item{
background-color: #f9f9f9;
width: 100%;
&:nth-child(2n){
> .content{
flex-direction: row-reverse;
}
}
> .content{
margin: 0 auto;
max-width: 1140px;
padding: 40px 0;
display: flex;
> div{
width: 50%;
padding: 20px;
}
> .video-box{
display: flex;
justify-content: center;
align-items: center;
position: relative;
> img{
aspect-ratio: 1.777 / 1;
width: 100%;
object-fit: cover;
}
> .icon-bofang{
font-size: 100px;
color: #fff;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
// box-shadow: 0 0 10px #fff;
filter: drop-shadow(0px 0px 8px rgba(0, 0, 0, .5));
cursor: pointer;
}
}
> .text-box{
display: flex;
align-items: center;
> .text-content{
box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
padding: 20px 20px 20px 20px;
border-radius: 20px;
text-align: center;
> .icon{
margin-bottom: 20px;
height: 25px;
width: 100%;
display: flex;
align-items: flex-end;
justify-content: center;
> span{
width: 80px;
height: 80px;
display: flex;
justify-content: center;
align-items: center;
background-color: #86040e;
border-radius: 50%;
font-size: 40px;
color: #fff;
}
}
> h2{
margin-bottom: 20px;
font-size: 19px;
font-weight: 600;
line-height: 20px;
color: #222222;
}
> div{
> p{
margin-bottom: 20px;
font-size: 14px;
font-weight: 400;
color: #333333;
line-height: 20px;
}
}
}
}
}
}
.user2-type{
background-color: #f9f9f9;
width: 100%;
> .content{
margin: 0 auto;
max-width: 1140px;
padding: 20px;
display: flex;
flex-wrap: wrap;
> .item{
margin: 40px 0;
width: 50%;
padding: 20px;
display: flex;
flex-direction: column;
justify-content: center;
&:nth-child(1){
width: 100%;
}
> .img-box{
width: 100%;
height: 40px;
margin-bottom: 20px;
text-align: start;
> img{
width: 100px;
height: 100px;
border-radius: 50%;
object-fit: cover;
object-position: top right;
box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.5);
}
}
> .box{
border-radius: 20px;
box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
text-align: center;
padding: 20px;
> .icon{
width: 100%;
height: 15px;
display: flex;
align-items: flex-end;
> span{
margin: -30px 0px 0px 60px;
width: 40px;
height: 40px;
display: flex;
justify-content: center;
align-items: center;
background-color: #86040e;
border-radius: 50%;
font-size: 20px;
color: #fff;
}
}
> h2{
margin-bottom: 20px;
font-size: 19px;
font-family: "Poppins", Sans-serif;
color: #222222;
line-height: 1;
font-weight: 600;
letter-spacing: 2px;
&.school{
font-size: 15px;
}
}
> p{
color: #333333;
font-size: 14px;
font-weight: 400;
line-height: 20px;
margin-bottom: 20px;
}
}
}
}
}
</style>

View File

@@ -1,6 +1,5 @@
import type { RouteRecordRaw } from 'vue-router' import type { RouteRecordRaw } from 'vue-router'
import AboutView from './pages/about-us/index.vue' import AboutView from './pages/about-us/index.vue'
import ContactView from './pages/ContactView.vue'
import HomeView from './pages/home/index.vue' import HomeView from './pages/home/index.vue'
import ProductsView from './pages/ProductsView.vue' import ProductsView from './pages/ProductsView.vue'
import { LANGS } from './lang' import { LANGS } from './lang'
@@ -10,6 +9,7 @@ export const routes: RouteRecordRaw[] = [
children: [ children: [
{ {
path: '', path: '',
name: 'home',
component: HomeView, component: HomeView,
}, },
{ {
@@ -22,16 +22,33 @@ export const routes: RouteRecordRaw[] = [
name: 'products', name: 'products',
component: ProductsView component: ProductsView
}, },
{
path: 'media',
name: 'media',
component: () => import('./pages/media/index.vue')
},
{ {
path: 'contact-us', path: 'contact-us',
name: 'contact', name: 'contact-us',
component: ContactView component: () => import('./pages/contact-us/index.vue')
}, },
{ {
path: 'aida', path: 'aida',
name: 'Aida', name: 'Aida',
component: () => import('./pages/aida/index.vue') 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: 'help-centre',
name: 'help-centre',
component: () => import('./pages/help-centre/index.vue')
},
{ {
path: 'my-account', path: 'my-account',
name: 'MyAccount', name: 'MyAccount',
@@ -39,18 +56,57 @@ export const routes: RouteRecordRaw[] = [
children: [ children: [
{ {
path: '', path: '',
name: 'welcome',
component: () => import('./pages/my-account/welcome.vue'), component: () => import('./pages/my-account/welcome.vue'),
}, },
{ {
path: 'orders', path: 'orders',
name: 'orders',
component: () => import('./pages/my-account/orders.vue'), 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(.*)*', path: ':pathMatch(.*)*',
name: 'not-found-welcome',
component: () => import('./pages/my-account/welcome.vue'), component: () => import('./pages/my-account/welcome.vue'),
}, },
] ]
}, },
{ path: 'privacy-policy',
name: 'privacy-policy',
component: () => import('./pages/others/privacy-policy.vue')
},
{ path: 'terms-of-use',
name: 'terms-of-use',
component: () => import('./pages/others/terms-of-use.vue')
},
{ path: 'disclaimer',
name: 'disclaimer',
component: () => import('./pages/others/disclaimer.vue')
},
{ path: 'site-map',
name: 'site-map',
component: () => import('./pages/others/site-map.vue')
},
{
path: ':pathMatch(.*)*',
name: 'not-found-404',
component: () => import('./pages/others/not-found-404.vue'),
},
] ]
} }
] ]

View File

@@ -1,26 +1,28 @@
{ {
"files": [], // "files": [],
"include": ["env.d.ts", "src/**/*", "src/**/*.vue", "src/types/**/*.d.ts"], "include": ["env.d.ts", "src/**/*", "src/**/*.vue", "src/types/**/*.d.ts"],
"compilerOptions": { "compilerOptions": {
"noUnusedLocals": false, // 关闭未使用局部变量检查
"noUnusedParameters": false, // 关闭未使用参数检查
"forceConsistentCasingInFileNames": false, // ⚠️ 禁用大小写检查 "forceConsistentCasingInFileNames": false, // ⚠️ 禁用大小写检查
"allowJs": true, "allowJs": true,
"baseUrl": ".", "types": ["node"],
"types": ["node", "unplugin-vue-define-options/macros-global"],
"paths": { "paths": {
"@/*": ["./src/*"], "@/*": ["./src/*"],
"_c/*": ["./src/components/*"] "_c/*": ["./src/components/*"]
}, },
"rootDirs": ["./src"],
"skipLibCheck": true, "skipLibCheck": true,
"strict": false, "strict": false,
"noEmit": true, "noEmit": true,
"noImplicitAny": false, "noImplicitAny": false,
"noEmitOnError": false "noEmitOnError": false
}, }
"references": [ // "references": [
{ "path": "./tsconfig.app.json" }, // { "path": "./tsconfig.app.json" },
{ // {
"path": "./tsconfig.node.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/ // https://vite.dev/config/
const 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: '/', base: '/',
plugins: [vue()], plugins: [vue()],
ssr: { ssr: {
noExternal: ['@kagol/vue-carousel'] noExternal: ['@kagol/vue-carousel']
}, },
ssgOptions: { ssgOptions: {
mock: true,
dirStyle: 'nested', dirStyle: 'nested',
script: 'defer', script: 'defer',
onFinished() { onFinished() {