first commit

This commit is contained in:
2026-07-27 14:54:21 +08:00
commit 4d086758e8
161 changed files with 63776 additions and 0 deletions
+243
View File
@@ -0,0 +1,243 @@
"use strict";
(wx["webpackJsonp"] = wx["webpackJsonp"] || []).push([["pages/index/index"],{
/***/ "./node_modules/@tarojs/taro-loader/lib/entry-cache.js?name=pages/index/index!./src/pages/index/index.tsx":
/*!****************************************************************************************************************!*\
!*** ./node_modules/@tarojs/taro-loader/lib/entry-cache.js?name=pages/index/index!./src/pages/index/index.tsx ***!
\****************************************************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": function() { return /* binding */ Index; }
/* harmony export */ });
/* harmony import */ var F_weixin_wordc_node_modules_babel_runtime_helpers_esm_slicedToArray_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js */ "./node_modules/@babel/runtime/helpers/esm/slicedToArray.js");
/* harmony import */ var _tarojs_components__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @tarojs/components */ "./node_modules/@tarojs/plugin-platform-weapp/dist/components-react.js");
/* harmony import */ var _tarojs_taro__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tarojs/taro */ "./node_modules/@tarojs/taro/index.js");
/* harmony import */ var _tarojs_taro__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_tarojs_taro__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "./node_modules/react/cjs/react.production.min.js");
/* harmony import */ var _utils_productConfig__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/productConfig */ "./src/utils/productConfig.ts");
/* harmony import */ var _components_ThemeToggle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/ThemeToggle */ "./src/components/ThemeToggle/index.tsx");
/* harmony import */ var _context_ThemeContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../context/ThemeContext */ "./src/context/ThemeContext.tsx");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/cjs/react-jsx-runtime.production.min.js");
// 成品展示数据
var SHOWCASES = [{
title: '毕业纪念笔记本',
desc: '全班名字组成校徽',
color: '#FFE4EC'
}, {
title: '铜质杯垫',
desc: '金属质感桌面艺术',
color: '#E8D5C4'
}, {
title: '竹制笔盒',
desc: '自然竹纹文房雅器',
color: '#E0F0D9'
}, {
title: '书本型灯',
desc: '温暖光影点亮心意',
color: '#FFF3CD'
}, {
title: '情侣定制礼',
desc: '两个人的名字交织',
color: '#FCE4EC'
}, {
title: '企业年会礼',
desc: '员工名字组成Logo',
color: '#E3F2FD'
}];
function Index() {
var _useThemeContext = (0,_context_ThemeContext__WEBPACK_IMPORTED_MODULE_4__.useThemeContext)(),
theme = _useThemeContext.theme;
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(''),
_useState2 = (0,F_weixin_wordc_node_modules_babel_runtime_helpers_esm_slicedToArray_js__WEBPACK_IMPORTED_MODULE_6__["default"])(_useState, 2),
searchKey = _useState2[0],
setSearchKey = _useState2[1];
var navigateToProduct = function navigateToProduct(categoryId) {
_tarojs_taro__WEBPACK_IMPORTED_MODULE_0___default().navigateTo({
url: "/pages/product/index?id=".concat(categoryId)
});
};
var filteredCategories = searchKey.trim() ? _utils_productConfig__WEBPACK_IMPORTED_MODULE_2__.CATEGORIES.filter(function (c) {
return c.name.includes(searchKey) || c.desc.includes(searchKey);
}) : _utils_productConfig__WEBPACK_IMPORTED_MODULE_2__.CATEGORIES;
var handleSearch = function handleSearch(e) {
setSearchKey(e.detail.value);
};
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "theme-".concat(theme),
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "index-page",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_components_ThemeToggle__WEBPACK_IMPORTED_MODULE_3__["default"], {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "header-bar",
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "header-title",
children: "\u667A\u7ED8\u5FAE\u523B"
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "search-card dashed-card",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "star-badge"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "search-inner",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "search-icon",
children: "\uD83D\uDD0D"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Input, {
className: "search-input",
type: "text",
placeholder: "\u641C\u7D22\u5B9A\u5236\u54C1\u7C7B\uFF1A\u7B14\u8BB0\u672C\u3001\u676F\u57AB\u3001\u4E66\u706F...",
value: searchKey,
onInput: handleSearch,
confirmType: "search"
})]
}), searchKey.trim() && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "search-result-hint",
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "hint-text",
children: filteredCategories.length > 0 ? "\u627E\u5230 ".concat(filteredCategories.length, " \u4E2A\u76F8\u5173\u54C1\u7C7B") : '没有找到相关品类,试试看其他关键词'
})
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "showcase-section mt-20",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "section-title",
children: "\u5B9A\u5236\u6210\u54C1\u5C55\u793A"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Swiper, {
className: "showcase-swiper",
indicatorColor: "#e0e0e0",
indicatorActiveColor: "#ff9a9e",
circular: true,
autoplay: true,
interval: 3000,
duration: 500,
previousMargin: "40rpx",
nextMargin: "40rpx",
indicatorDots: true,
children: SHOWCASES.map(function (item, idx) {
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.SwiperItem, {
className: "showcase-swiper-item",
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "showcase-swiper-card dashed-card",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "star-badge"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "showcase-image-wrapper",
style: {
background: item.color
},
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "showcase-emoji",
children: "\uD83C\uDF81"
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "showcase-info",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "showcase-title",
children: item.title
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "showcase-desc",
children: item.desc
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "showcase-tag",
children: "\u6210\u54C1\u6848\u4F8B"
})]
})
}, idx);
})
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "category-section mt-20",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "section-title",
children: "\u70ED\u95E8\u54C1\u7C7B"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "category-grid",
children: filteredCategories.map(function (cat) {
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "category-item dashed-card",
onClick: function onClick() {
return navigateToProduct(cat.id);
},
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "star-badge"
}), cat.images && cat.images.length > 0 ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Image, {
className: "category-icon-img",
src: cat.images[0],
mode: "aspectFit"
}) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "category-icon",
children: cat.icon
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "category-name",
children: cat.name
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "category-desc",
children: cat.desc
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "category-price",
children: ["\xA5", cat.price, " \u8D77"]
})]
}, cat.id);
})
}), filteredCategories.length === 0 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "empty-category dashed-card",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "empty-icon",
children: "\uD83D\uDD0D"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "empty-text",
children: "\u672A\u627E\u5230\u5339\u914D\u7684\u54C1\u7C7B"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "empty-sub",
children: "\u5C1D\u8BD5\u641C\u7D22\u201C\u7B14\u8BB0\u672C\u201D\u3001\u201C\u676F\u57AB\u201D\u7B49"
})]
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "safe-bottom-placeholder"
})]
})
});
}
/***/ }),
/***/ "./src/pages/index/index.tsx":
/*!***********************************!*\
!*** ./src/pages/index/index.tsx ***!
\***********************************/
/***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
/* harmony import */ var _tarojs_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tarojs/runtime */ "./node_modules/@tarojs/runtime/dist/runtime.esm.js");
/* harmony import */ var _node_modules_tarojs_taro_loader_lib_entry_cache_js_name_pages_index_index_index_tsx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !!../../../node_modules/@tarojs/taro-loader/lib/entry-cache.js?name=pages/index/index!./index.tsx */ "./node_modules/@tarojs/taro-loader/lib/entry-cache.js?name=pages/index/index!./src/pages/index/index.tsx");
var config = {};
var inst = Page((0,_tarojs_runtime__WEBPACK_IMPORTED_MODULE_1__.createPageConfig)(_node_modules_tarojs_taro_loader_lib_entry_cache_js_name_pages_index_index_index_tsx__WEBPACK_IMPORTED_MODULE_0__["default"], 'pages/index/index', {root:{cn:[]}}, config || {}))
/* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_tarojs_taro_loader_lib_entry_cache_js_name_pages_index_index_index_tsx__WEBPACK_IMPORTED_MODULE_0__["default"]);
/***/ })
},
/******/ function(__webpack_require__) { // webpackRuntimeModules
/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
/******/ __webpack_require__.O(0, ["taro","vendors","common"], function() { return __webpack_exec__("./src/pages/index/index.tsx"); });
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ }
]);
//# sourceMappingURL=index.js.map
+1
View File
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
{"usingComponents":{"comp":"../../comp"}}
+2
View File
@@ -0,0 +1,2 @@
<import src="../../base.wxml"/>
<template is="taro_tmpl" data="{{root:root}}" />
+284
View File
@@ -0,0 +1,284 @@
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** css ./node_modules/@tarojs/webpack5-runner/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[0].use[2]!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[0].use[4]!./src/pages/index/index.scss ***!
\**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
.index-page {
padding: 0 24rpx 24rpx;
}
/* 顶部标题栏 */
.header-bar {
padding: 20rpx 0 16rpx;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
}
.header-title {
font-size: 48rpx;
font-weight: 800;
color: #5c3a3a;
letter-spacing: 4rpx;
}
/* 搜索框卡片 */
.search-card {
padding: 20rpx 24rpx;
}
.search-inner {
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
background: #f8f9fa;
border-radius: 40rpx;
padding: 16rpx 24rpx;
}
.search-icon {
font-size: 28rpx;
margin-right: 16rpx;
}
.search-input {
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
font-size: 28rpx;
color: #5c3a3a;
background: transparent;
border: none;
outline: none;
}
.search-input::-webkit-input-placeholder {
color: #b08d8d;
font-size: 26rpx;
}
.search-input::-moz-placeholder {
color: #b08d8d;
font-size: 26rpx;
}
.search-input:-ms-input-placeholder {
color: #b08d8d;
font-size: 26rpx;
}
.search-input::-ms-input-placeholder {
color: #b08d8d;
font-size: 26rpx;
}
.search-input::placeholder {
color: #b08d8d;
font-size: 26rpx;
}
.search-result-hint {
margin-top: 16rpx;
padding-top: 16rpx;
border-top: 2rpx dashed #eee;
}
.hint-text {
font-size: 24rpx;
color: #b08d8d;
}
/* 成品展示轮播 */
.showcase-section {
margin-top: 20rpx;
}
.showcase-swiper {
height: 460rpx;
}
.showcase-swiper-item {
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center;
padding: 0 10rpx;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.showcase-swiper-card {
width: 100%;
height: 100%;
padding: 20rpx;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
position: relative;
-webkit-box-sizing: border-box;
box-sizing: border-box;
overflow: hidden;
}
.showcase-image-wrapper {
width: 100%;
height: 240rpx;
border-radius: 16rpx;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center;
margin-bottom: 16rpx;
}
.showcase-emoji {
font-size: 80rpx;
}
.showcase-info {
text-align: center;
}
.showcase-info .showcase-title {
font-size: 32rpx;
font-weight: 700;
color: #5c3a3a;
display: block;
margin-bottom: 8rpx;
}
.showcase-info .showcase-desc {
font-size: 24rpx;
color: #b08d8d;
display: block;
}
.showcase-tag {
position: absolute;
top: 16rpx;
right: 16rpx;
background: rgba(255, 154, 158, 0.15);
color: #ff6b81;
font-size: 20rpx;
padding: 4rpx 16rpx;
border-radius: 20rpx;
font-weight: 500;
}
/* 热门品类 */
.category-section {
margin-top: 20rpx;
}
.category-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20rpx;
}
.category-item {
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
text-align: center;
padding: 32rpx 20rpx;
-webkit-transition: -webkit-transform 0.2s;
transition: -webkit-transform 0.2s;
transition: transform 0.2s;
transition: transform 0.2s, -webkit-transform 0.2s;
}
.category-item:active {
-webkit-transform: scale(0.96);
-ms-transform: scale(0.96);
transform: scale(0.96);
}
.category-icon {
font-size: 56rpx;
margin-bottom: 12rpx;
}
.category-icon-img {
width: 120rpx;
height: 120rpx;
-o-object-fit: contain;
object-fit: contain;
margin-bottom: 12rpx;
}
.category-name {
font-size: 28rpx;
font-weight: 700;
color: #5c3a3a;
margin-bottom: 8rpx;
}
.category-desc {
font-size: 22rpx;
color: #b08d8d;
}
/* 空状态 */
.empty-category {
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
padding: 60rpx 40rpx;
text-align: center;
}
.empty-icon {
font-size: 64rpx;
margin-bottom: 16rpx;
}
.empty-text {
font-size: 30rpx;
font-weight: 600;
color: #5c3a3a;
margin-bottom: 8rpx;
}
.empty-sub {
font-size: 24rpx;
color: #b08d8d;
}
/* 底部安全区 */
.safe-bottom-placeholder {
height: 160rpx;
}