'颜色尺码价格联动'

This commit is contained in:
2026-08-22 19:05:26 +08:00
parent c3b6af07c9
commit b190fba0f3
39 changed files with 2434 additions and 2997 deletions
+798 -2
View File
@@ -871,7 +871,7 @@ function populateParameters(result) {
// wx.getAccountInfoSync
var parameters = {
appId: "",
appId: "__UNI__73E5929",
appName: "inkreach-miniprogram",
appVersion: "1.0.0",
appVersionCode: "100",
@@ -982,7 +982,7 @@ var getAppBaseInfo = {
var _hostName = getHostName(result);
var hostLanguage = (language || '').replace('_', '-');
var parameters = {
appId: "",
appId: "__UNI__73E5929",
appName: "inkreach-miniprogram",
appVersion: "1.0.0",
appVersionCode: "100",
@@ -12751,6 +12751,802 @@ var debounce = function debounce(scope, fn, delay) {
var _default = debounce;
exports.default = _default;
/***/ }),
/* 49 */,
/* 50 */,
/* 51 */,
/* 52 */,
/* 53 */,
/* 54 */,
/* 55 */
/*!************************************************************************************************!*\
!*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/@babel/runtime/regenerator/index.js ***!
\************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// TODO(Babel 8): Remove this file.
var runtime = __webpack_require__(/*! @babel/runtime/helpers/regeneratorRuntime */ 56)();
module.exports = runtime;
/***/ }),
/* 56 */
/*!*******************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***!
\*******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
var _typeof = __webpack_require__(/*! ./typeof.js */ 13)["default"];
function _regeneratorRuntime() {
"use strict";
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
return e;
}, module.exports.__esModule = true, module.exports["default"] = module.exports;
var t,
e = {},
r = Object.prototype,
n = r.hasOwnProperty,
o = Object.defineProperty || function (t, e, r) {
t[e] = r.value;
},
i = "function" == typeof Symbol ? Symbol : {},
a = i.iterator || "@@iterator",
c = i.asyncIterator || "@@asyncIterator",
u = i.toStringTag || "@@toStringTag";
function define(t, e, r) {
return Object.defineProperty(t, e, {
value: r,
enumerable: !0,
configurable: !0,
writable: !0
}), t[e];
}
try {
define({}, "");
} catch (t) {
define = function define(t, e, r) {
return t[e] = r;
};
}
function wrap(t, e, r, n) {
var i = e && e.prototype instanceof Generator ? e : Generator,
a = Object.create(i.prototype),
c = new Context(n || []);
return o(a, "_invoke", {
value: makeInvokeMethod(t, r, c)
}), a;
}
function tryCatch(t, e, r) {
try {
return {
type: "normal",
arg: t.call(e, r)
};
} catch (t) {
return {
type: "throw",
arg: t
};
}
}
e.wrap = wrap;
var h = "suspendedStart",
l = "suspendedYield",
f = "executing",
s = "completed",
y = {};
function Generator() {}
function GeneratorFunction() {}
function GeneratorFunctionPrototype() {}
var p = {};
define(p, a, function () {
return this;
});
var d = Object.getPrototypeOf,
v = d && d(d(values([])));
v && v !== r && n.call(v, a) && (p = v);
var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);
function defineIteratorMethods(t) {
["next", "throw", "return"].forEach(function (e) {
define(t, e, function (t) {
return this._invoke(e, t);
});
});
}
function AsyncIterator(t, e) {
function invoke(r, o, i, a) {
var c = tryCatch(t[r], t, o);
if ("throw" !== c.type) {
var u = c.arg,
h = u.value;
return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) {
invoke("next", t, i, a);
}, function (t) {
invoke("throw", t, i, a);
}) : e.resolve(h).then(function (t) {
u.value = t, i(u);
}, function (t) {
return invoke("throw", t, i, a);
});
}
a(c.arg);
}
var r;
o(this, "_invoke", {
value: function value(t, n) {
function callInvokeWithMethodAndArg() {
return new e(function (e, r) {
invoke(t, n, e, r);
});
}
return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
}
});
}
function makeInvokeMethod(e, r, n) {
var o = h;
return function (i, a) {
if (o === f) throw Error("Generator is already running");
if (o === s) {
if ("throw" === i) throw a;
return {
value: t,
done: !0
};
}
for (n.method = i, n.arg = a;;) {
var c = n.delegate;
if (c) {
var u = maybeInvokeDelegate(c, n);
if (u) {
if (u === y) continue;
return u;
}
}
if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) {
if (o === h) throw o = s, n.arg;
n.dispatchException(n.arg);
} else "return" === n.method && n.abrupt("return", n.arg);
o = f;
var p = tryCatch(e, r, n);
if ("normal" === p.type) {
if (o = n.done ? s : l, p.arg === y) continue;
return {
value: p.arg,
done: n.done
};
}
"throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg);
}
};
}
function maybeInvokeDelegate(e, r) {
var n = r.method,
o = e.iterator[n];
if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y;
var i = tryCatch(o, e.iterator, r.arg);
if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y;
var a = i.arg;
return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y);
}
function pushTryEntry(t) {
var e = {
tryLoc: t[0]
};
1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);
}
function resetTryEntry(t) {
var e = t.completion || {};
e.type = "normal", delete e.arg, t.completion = e;
}
function Context(t) {
this.tryEntries = [{
tryLoc: "root"
}], t.forEach(pushTryEntry, this), this.reset(!0);
}
function values(e) {
if (e || "" === e) {
var r = e[a];
if (r) return r.call(e);
if ("function" == typeof e.next) return e;
if (!isNaN(e.length)) {
var o = -1,
i = function next() {
for (; ++o < e.length;) {
if (n.call(e, o)) return next.value = e[o], next.done = !1, next;
}
return next.value = t, next.done = !0, next;
};
return i.next = i;
}
}
throw new TypeError(_typeof(e) + " is not iterable");
}
return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {
value: GeneratorFunctionPrototype,
configurable: !0
}), o(GeneratorFunctionPrototype, "constructor", {
value: GeneratorFunction,
configurable: !0
}), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {
var e = "function" == typeof t && t.constructor;
return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));
}, e.mark = function (t) {
return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t;
}, e.awrap = function (t) {
return {
__await: t
};
}, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {
return this;
}), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {
void 0 === i && (i = Promise);
var a = new AsyncIterator(wrap(t, r, n, o), i);
return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {
return t.done ? t.value : a.next();
});
}, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () {
return this;
}), define(g, "toString", function () {
return "[object Generator]";
}), e.keys = function (t) {
var e = Object(t),
r = [];
for (var n in e) {
r.push(n);
}
return r.reverse(), function next() {
for (; r.length;) {
var t = r.pop();
if (t in e) return next.value = t, next.done = !1, next;
}
return next.done = !0, next;
};
}, e.values = values, Context.prototype = {
constructor: Context,
reset: function reset(e) {
if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) {
"t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);
}
},
stop: function stop() {
this.done = !0;
var t = this.tryEntries[0].completion;
if ("throw" === t.type) throw t.arg;
return this.rval;
},
dispatchException: function dispatchException(e) {
if (this.done) throw e;
var r = this;
function handle(n, o) {
return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o;
}
for (var o = this.tryEntries.length - 1; o >= 0; --o) {
var i = this.tryEntries[o],
a = i.completion;
if ("root" === i.tryLoc) return handle("end");
if (i.tryLoc <= this.prev) {
var c = n.call(i, "catchLoc"),
u = n.call(i, "finallyLoc");
if (c && u) {
if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
} else if (c) {
if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
} else {
if (!u) throw Error("try statement without catch or finally");
if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
}
}
}
},
abrupt: function abrupt(t, e) {
for (var r = this.tryEntries.length - 1; r >= 0; --r) {
var o = this.tryEntries[r];
if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
var i = o;
break;
}
}
i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);
var a = i ? i.completion : {};
return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a);
},
complete: function complete(t, e) {
if ("throw" === t.type) throw t.arg;
return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y;
},
finish: function finish(t) {
for (var e = this.tryEntries.length - 1; e >= 0; --e) {
var r = this.tryEntries[e];
if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;
}
},
"catch": function _catch(t) {
for (var e = this.tryEntries.length - 1; e >= 0; --e) {
var r = this.tryEntries[e];
if (r.tryLoc === t) {
var n = r.completion;
if ("throw" === n.type) {
var o = n.arg;
resetTryEntry(r);
}
return o;
}
}
throw Error("illegal catch attempt");
},
delegateYield: function delegateYield(e, r, n) {
return this.delegate = {
iterator: values(e),
resultName: r,
nextLoc: n
}, "next" === this.method && (this.arg = t), y;
}
}, e;
}
module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;
/***/ }),
/* 57 */
/*!*****************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/asyncToGenerator.js ***!
\*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
try {
var info = gen[key](arg);
var value = info.value;
} catch (error) {
reject(error);
return;
}
if (info.done) {
resolve(value);
} else {
Promise.resolve(value).then(_next, _throw);
}
}
function _asyncToGenerator(fn) {
return function () {
var self = this,
args = arguments;
return new Promise(function (resolve, reject) {
var gen = fn.apply(self, args);
function _next(value) {
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
}
function _throw(err) {
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
}
_next(undefined);
});
};
}
module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
/***/ }),
/* 58 */
/*!***********************************************************!*\
!*** C:/gs/project/demo/demo_uni/api/public.js ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 4);
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
exports.getCategories = getCategories;
exports.getCountries = getCountries;
exports.getGoods = getGoods;
exports.getGoodsDetail = getGoodsDetail;
exports.getHomeGoods = getHomeGoods;
exports.getTagGroups = getTagGroups;
exports.getTags = getTags;
var _request = _interopRequireDefault(__webpack_require__(/*! ./request.js */ 59));
/**
* 公共路由接口封装/public/*
* 响应拦截器暂未做业务规范拦截调用方拿到的是 uni.request 原始 response 结构 { statusCode, data, header ... }
*/
var PREFIX = '/public';
/**
* 获取商品分类树
* @param {Object} [params]
* @param {string|number} [params.countryId] 国家 ID不传时返回全部国家
*/
function getCategories(params) {
return _request.default.get("".concat(PREFIX, "/categories"), params);
}
/**
* 获取有商品的国家列表
*/
function getCountries() {
return _request.default.get("".concat(PREFIX, "/countries"));
}
/**
* 获取有商品的标签列表
*/
function getTags() {
return _request.default.get("".concat(PREFIX, "/tags"));
}
/**
* 获取标签组及标签筛选项
* @param {Object} [params]
* @param {string|number} [params.countryId] 国家 ID不传时返回全部国家
*/
function getTagGroups(params) {
return _request.default.get("".concat(PREFIX, "/tag-groups"), params);
}
/**
* 分页获取商品
* @param {Object} params
* @param {number} [params.page]
* @param {number} [params.pageSize]
* @param {string|number} [params.countryId]
* @param {string|number} [params.categoryId]
* @param {string} [params.keyword]
*/
function getGoods(params) {
return _request.default.get("".concat(PREFIX, "/goods"), params);
}
/**
* 获取商品完整详情
* @param {string|number} goodId 商品 ID替换路径变量 {goodId}
*/
function getGoodsDetail(goodId) {
return _request.default.get("".concat(PREFIX, "/goods/").concat(goodId));
}
/**
* 获取首页商品可按国家返回
* @param {Object} [params]
* @param {string|number} [params.countryId]
*/
function getHomeGoods(params) {
return _request.default.get("".concat(PREFIX, "/home-goods"), params);
}
var _default = {
getCategories: getCategories,
getCountries: getCountries,
getTags: getTags,
getTagGroups: getTagGroups,
getGoods: getGoods,
getGoodsDetail: getGoodsDetail,
getHomeGoods: getHomeGoods
};
exports.default = _default;
/***/ }),
/* 59 */
/*!************************************************************!*\
!*** C:/gs/project/demo/demo_uni/api/request.js ***!
\************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(uni) {
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 4);
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.BASE_URL = void 0;
exports.buildUrl = buildUrl;
exports.default = void 0;
var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 11));
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
/**
* uni-app 简易请求封装
* - 统一拼接 BASE_URL + path
* - 注入 token header
* - Promise 提供 get/post/put/delete 快捷方法
*
* 用法
* import request from '@/api/request.js'
* request.get('/user/info', { id: 1 })
* request.post('/user/login', { username, password })
*/
// 基础路径:修改此处即可切换后端地址
var BASE_URL = 'https://official.inkreach.cc/api/';
exports.BASE_URL = BASE_URL;
// 默认配置
var TIMEOUT = 30000;
var DEFAULT_HEADER = {
'Content-Type': 'application/json'
};
// 统一拼装 URL:完整地址直接返回,否则 BASE_URL + path
// 图片/静态资源路径也可直接调用,得到完整可访问地址
function buildUrl(url) {
if (!url) return '';
if (/^https?:\/\//i.test(url)) return url;
var base = BASE_URL.replace(/\/+$/, '');
var path = url.replace(/^\/+/, '');
return path ? "".concat(base, "/").concat(path) : base;
}
// 统一取 header(注入 token
function buildHeader(extraHeader) {
var header = Object.assign({}, DEFAULT_HEADER, extraHeader || {});
var token = uni.getStorageSync('token');
if (token) header['Authorization'] = "Bearer ".concat(token);
return header;
}
/**
* 核心请求方法
* @param {Object} options
* @param {string} options.url 相对路径或完整 URL
* @param {string} [options.method='GET']
* @param {Object} [options.data] 请求参数 / body
* @param {Object} [options.header] 额外 header
* @returns {Promise<any>}
*/
function request() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return new Promise(function (resolve, reject) {
uni.request({
url: buildUrl(options.url || ''),
method: (options.method || 'GET').toUpperCase(),
data: options.data || {},
header: buildHeader(options.header),
timeout: TIMEOUT,
dataType: 'json',
success: resolve,
fail: reject
});
});
}
// 快捷方法
request.get = function (url, data, options) {
return request(_objectSpread({
url: url,
method: 'GET',
data: data
}, options));
};
request.post = function (url, data, options) {
return request(_objectSpread({
url: url,
method: 'POST',
data: data
}, options));
};
request.put = function (url, data, options) {
return request(_objectSpread({
url: url,
method: 'PUT',
data: data
}, options));
};
request.delete = function (url, data, options) {
return request(_objectSpread({
url: url,
method: 'DELETE',
data: data
}, options));
};
var _default = request;
exports.default = _default;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
/***/ }),
/* 60 */
/*!*****************************************************************!*\
!*** C:/gs/project/demo/demo_uni/pages/index/mock.js ***!
\*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.trustStats = exports.stepList = exports.reasonList = exports.podProducts = exports.featureList = exports.ctaSection = exports.countryTabs = exports.companyIntro = exports.companyFeatures = void 0;
// 首页 mock 数据
// 设计稿尺寸: 390px 宽度,1px ≈ 2rpx
// Hero 区 4个指标
var trustStats = [{
value: '11',
unit: '国',
label: '全球本土工厂'
}, {
value: '24',
unit: 'H',
label: '极速发货'
}, {
value: '1000',
unit: 'W+',
label: '订单履约'
}, {
value: '800',
unit: '+',
label: '产品生产'
}];
// 4步流程
exports.trustStats = trustStats;
var stepList = [{
step: '01',
title: '选择产品',
desc: '海量精选产品,满足多元定制需求'
}, {
step: '02',
title: '上传设计',
desc: '可视化编辑器,轻松实现创意落地'
}, {
step: '03',
title: '在线销售',
desc: '一键开通店铺,多渠道触达目标客群'
}, {
step: '04',
title: '生产配送',
desc: '智能化柔性生产,快速响应全球配送'
}];
// 全球POD货盘 - 国家tab
exports.stepList = stepList;
var countryTabs = [{
id: 'us',
name: '美国'
}, {
id: 'ca',
name: '加拿大'
}, {
id: 'mx',
name: '墨西哥'
}, {
id: 'br',
name: '巴西'
}, {
id: 'ar',
name: '阿根廷'
}, {
id: 'cl',
name: '智利'
}, {
id: 'co',
name: '哥伦比亚'
}, {
id: 'pe',
name: '秘鲁'
}];
// 全球POD货盘 - 产品列表
exports.countryTabs = countryTabs;
var podProducts = [{
id: 1,
name: '女士短款露脐T恤',
image: '/static/images/home/Rectangle_63_1446_1437.png'
}, {
id: 2,
name: '女士短款露脐T恤',
image: '/static/images/home/Rectangle_181_1455_1450.png'
}, {
id: 3,
name: '女士短款露脐T恤',
image: '/static/images/home/Rectangle_63_1455_1461.png'
}, {
id: 4,
name: '女士短款露脐T恤',
image: '/static/images/home/Rectangle_181_1455_1456.png'
}];
// 平台功能卡片
exports.podProducts = podProducts;
var featureList = [{
step: '01',
title: '设计工具',
desc: '轻松设计,快速定制'
}, {
step: '02',
title: '自动化履约',
desc: '从生产到配送,全程无忧,准时交付'
}, {
step: '03',
title: '全球配送',
desc: '全球11国自营本土工厂'
}, {
step: '04',
title: '店铺集成',
desc: '与全球主流电商平台无缝对接'
}];
// 为什么选择 - 4个优势
exports.featureList = featureList;
var reasonList = [{
id: 1,
title: '零库存',
icon: '/static/icons/home/零库存图标.svg'
}, {
id: 2,
title: '快速生产',
icon: '/static/icons/home/快速生产图标.svg'
}, {
id: 3,
title: '优质产品',
icon: '/static/icons/home/优质产品图标.svg'
}, {
id: 4,
title: '全球配送',
icon: '/static/icons/home/全球配送图标.svg'
}];
// 公司简介
exports.reasonList = reasonList;
var companyIntro = {
title: '公司简介',
sloganMain: '用科技重新定义POD供应链',
sloganSub: '让每一个创意,都能高效抵达全球',
desc: 'Inkreach印美达全球,一家以AI与智能印花技术驱动的全球化POD柔性供应链公司,致力于成为全球创业者最可靠的成长伙伴。',
cols: [{
title: '服务对象与场景',
text: '服务于数千家跨境独立站、TikTok、TEMU、SHEIN等平台商家,提供从海外生产到末端物流的一站式供应链服务,让电商创业者专注增长,无惧后端履约。'
}, {
title: '愿景',
text: '我们坚信,每一个创意都值得被完美呈现。 Inkreach将持续深耕智能供应链生态,用科技消除制造壁垒,让全球创业者专注发挥创造力,共同书写个性化电商的新纪元。'
}]
};
// 公司简介 - 4个核心能力
exports.companyIntro = companyIntro;
var companyFeatures = [{
id: 1,
title: '前沿印花技术',
desc: '搭载最新智能印花工艺,品质与效率兼得',
icon: '/static/icons/home/ability_printing.svg'
}, {
id: 2,
title: '深度AI应用',
desc: '从设计到生产,全链路智能化提效',
icon: '/static/icons/home/ability_ai.svg'
}, {
id: 3,
title: '全球智能工厂',
desc: '11国自营本土化POD工厂,日均产能超20万单',
icon: '/static/icons/home/ability_global.svg'
}, {
id: 4,
title: '一站式柔性交付',
desc: '覆盖生产至物流,助力品牌从概念到商业落地',
icon: '/static/icons/home/ability_flexible.svg'
}];
// 底部CTA
exports.companyFeatures = companyFeatures;
var ctaSection = {
qrImage: '/static/images/home/Rectangle_187_1470_1653.png',
bgImage: '/static/images/home/image_26_1496_1761.png',
textImage: '/static/images/home/image_28_1498_1767.png',
text: '联系我们,开启你的全球生意新篇'
};
exports.ctaSection = ctaSection;
/***/ })
]]);
//# sourceMappingURL=../../.sourcemap/mp-weixin/common/vendor.js.map