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
+362
View File
@@ -0,0 +1,362 @@
"use strict";
(wx["webpackJsonp"] = wx["webpackJsonp"] || []).push([["pages/wordcloud/index"],{
/***/ "./node_modules/@tarojs/taro-loader/lib/entry-cache.js?name=pages/wordcloud/index!./src/pages/wordcloud/index.tsx":
/*!************************************************************************************************************************!*\
!*** ./node_modules/@tarojs/taro-loader/lib/entry-cache.js?name=pages/wordcloud/index!./src/pages/wordcloud/index.tsx ***!
\************************************************************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": function() { return /* binding */ WordCloudPage; }
/* harmony export */ });
/* harmony import */ var F_weixin_wordc_node_modules_babel_runtime_helpers_esm_slicedToArray_js__WEBPACK_IMPORTED_MODULE_5__ = __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_6__ = __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 _components_ThemeToggle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/ThemeToggle */ "./src/components/ThemeToggle/index.tsx");
/* harmony import */ var _context_ThemeContext__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../context/ThemeContext */ "./src/context/ThemeContext.tsx");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/cjs/react-jsx-runtime.production.min.js");
function WordCloudPage() {
var _useThemeContext = (0,_context_ThemeContext__WEBPACK_IMPORTED_MODULE_3__.useThemeContext)(),
theme = _useThemeContext.theme;
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(1),
_useState2 = (0,F_weixin_wordc_node_modules_babel_runtime_helpers_esm_slicedToArray_js__WEBPACK_IMPORTED_MODULE_5__["default"])(_useState, 2),
step = _useState2[0],
setStep = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(''),
_useState4 = (0,F_weixin_wordc_node_modules_babel_runtime_helpers_esm_slicedToArray_js__WEBPACK_IMPORTED_MODULE_5__["default"])(_useState3, 2),
baseImage = _useState4[0],
setBaseImage = _useState4[1];
var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(''),
_useState6 = (0,F_weixin_wordc_node_modules_babel_runtime_helpers_esm_slicedToArray_js__WEBPACK_IMPORTED_MODULE_5__["default"])(_useState5, 2),
namesText = _useState6[0],
setNamesText = _useState6[1];
var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(''),
_useState8 = (0,F_weixin_wordc_node_modules_babel_runtime_helpers_esm_slicedToArray_js__WEBPACK_IMPORTED_MODULE_5__["default"])(_useState7, 2),
generatedImage = _useState8[0],
setGeneratedImage = _useState8[1];
var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false),
_useState0 = (0,F_weixin_wordc_node_modules_babel_runtime_helpers_esm_slicedToArray_js__WEBPACK_IMPORTED_MODULE_5__["default"])(_useState9, 2),
isGenerating = _useState0[0],
setIsGenerating = _useState0[1];
var _useState1 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0),
_useState10 = (0,F_weixin_wordc_node_modules_babel_runtime_helpers_esm_slicedToArray_js__WEBPACK_IMPORTED_MODULE_5__["default"])(_useState1, 2),
progress = _useState10[0],
setProgress = _useState10[1];
var steps = [{
num: 1,
label: '上传底图'
}, {
num: 2,
label: '输入名单'
}, {
num: 3,
label: '生成预览'
}];
var chooseImage = function chooseImage() {
_tarojs_taro__WEBPACK_IMPORTED_MODULE_0___default().chooseImage({
count: 1,
sizeType: ['compressed'],
sourceType: ['album', 'camera'],
success: function success(res) {
setBaseImage(res.tempFilePaths[0]);
setStep(2);
}
});
};
var handleGenerate = function handleGenerate() {
if (!namesText.trim()) {
_tarojs_taro__WEBPACK_IMPORTED_MODULE_0___default().showToast({
title: '请先输入名字',
icon: 'none'
});
return;
}
setStep(3);
setIsGenerating(true);
setProgress(0);
var timer = setInterval(function () {
setProgress(function (prev) {
if (prev >= 100) {
clearInterval(timer);
setIsGenerating(false);
setGeneratedImage(baseImage);
return 100;
}
return prev + Math.random() * 15;
});
}, 1000);
};
var handleExportImage = function handleExportImage() {
if (!generatedImage) return;
_tarojs_taro__WEBPACK_IMPORTED_MODULE_0___default().saveImageToPhotosAlbum({
filePath: generatedImage,
success: function success() {
return _tarojs_taro__WEBPACK_IMPORTED_MODULE_0___default().showToast({
title: '已保存到相册',
icon: 'success'
});
},
fail: function fail() {
return _tarojs_taro__WEBPACK_IMPORTED_MODULE_0___default().showToast({
title: '保存失败',
icon: 'none'
});
}
});
};
var goBack = function goBack() {
if (step > 1) setStep(step - 1);else _tarojs_taro__WEBPACK_IMPORTED_MODULE_0___default().navigateBack();
};
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "theme-".concat(theme),
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "wordcloud-page",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_components_ThemeToggle__WEBPACK_IMPORTED_MODULE_2__["default"], {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "page-header flex-between",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
className: "back-btn",
onClick: goBack,
children: "\u2190"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
className: "page-title",
children: "AI\u8BCD\u4E91\u751F\u6210"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
style: {
width: '60px'
}
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "step-indicator dashed-card",
children: steps.map(function (s, idx) {
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "step-item",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "step-circle ".concat(step >= s.num ? 'active' : ''),
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
className: "step-num",
children: s.num
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
className: "step-label ".concat(step >= s.num ? 'active' : ''),
children: s.label
}), idx < steps.length - 1 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "step-line ".concat(step > s.num ? 'active' : '')
})]
}, s.num);
})
}), step === 1 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "step-content",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "upload-area dashed-card",
onClick: chooseImage,
children: baseImage ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Image, {
className: "preview-image",
src: baseImage,
mode: "aspectFit"
}) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "upload-placeholder",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
className: "upload-icon",
children: "\uD83D\uDCF7"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
className: "upload-title",
children: "\u70B9\u51FB\u4E0A\u4F20\u5E95\u56FE"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
className: "upload-desc",
children: "\u652F\u6301\u7167\u7247\u3001Logo\u3001\u56FE\u6848\u7B49"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
className: "upload-tip",
children: "\u7CFB\u7EDF\u5C06\u7528\u540D\u5B57\u586B\u5145\u5230\u6DF1\u8272\u533A\u57DF"
})]
})
}), baseImage && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "action-btns",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "btn-gradient",
onClick: function onClick() {
return setStep(2);
},
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
children: "\u4E0B\u4E00\u6B65\uFF1A\u8F93\u5165\u540D\u5355"
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "btn-outline",
onClick: function onClick() {
return setBaseImage('');
},
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
children: "\u91CD\u65B0\u9009\u62E9"
})
})]
})]
}), step === 2 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "step-content",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "input-section dashed-card",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
className: "section-title",
children: "\u8F93\u5165\u540D\u5B57\u540D\u5355"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Textarea, {
className: "names-input",
placeholder: "\u4F8B\u5982\uFF1A\n\u5F20\u4E09\n\u674E\u56DB\n\u738B\u4E94",
value: namesText,
onInput: function onInput(e) {
return setNamesText(e.detail.value);
},
maxlength: 5000
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
className: "input-stats",
children: ["\u5DF2\u8F93\u5165 ", namesText.split(/\n||,/).filter(function (n) {
return n.trim();
}).length, " \u4E2A\u540D\u5B57"]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "input-tips",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
className: "tip-item",
children: "\u540D\u5B57\u4F1A\u968F\u673A\u5206\u5E03\u5728\u5E95\u56FE\u7684\u6DF1\u8272\u533A\u57DF"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
className: "tip-item",
children: "\u5EFA\u8BAE\u8F93\u516510-200\u4E2A\u540D\u5B57\u6548\u679C\u6700\u4F73"
})]
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "action-btns",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "btn-gradient",
onClick: handleGenerate,
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
children: "\u5F00\u59CB\u751F\u6210\u8BCD\u4E91"
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "btn-outline",
onClick: function onClick() {
return setStep(1);
},
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
children: "\u4E0A\u4E00\u6B65"
})
})]
})]
}), step === 3 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "step-content",
children: isGenerating ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "generating-panel",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
className: "generating-icon",
children: "\u2728"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
className: "generating-title",
children: "\u6B63\u5728\u751F\u6210\u8BCD\u4E91..."
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
className: "generating-subtitle",
children: "AI\u6B63\u5728\u5C06\u540D\u5B57\u878D\u5165\u56FE\u6848"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "progress-bar",
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "progress-fill",
style: {
width: "".concat(Math.min(progress, 100), "%")
}
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
className: "progress-text",
children: [Math.min(Math.round(progress), 100), "%"]
})]
}) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "result-panel",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "result-image-wrapper dashed-card",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Image, {
className: "result-image",
src: generatedImage || '',
mode: "aspectFit"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "watermark-badge",
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
children: "\u667A\u7ED8\u5FAE\u523B\u9884\u89C8"
})
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "result-actions",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "action-btn",
onClick: handleExportImage,
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
className: "action-icon",
children: "\uD83D\uDCBE"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
className: "action-label",
children: "\u4FDD\u5B58\u56FE\u7247"
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "action-btn",
onClick: handleGenerate,
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
className: "action-icon",
children: "\uD83D\uDD04"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
className: "action-label",
children: "\u91CD\u65B0\u751F\u6210"
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.View, {
className: "action-btn",
onClick: function onClick() {
return setStep(2);
},
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
className: "action-icon",
children: "\u270F\uFE0F"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_6__.Text, {
className: "action-label",
children: "\u4FEE\u6539\u540D\u5355"
})]
})]
})]
})
})]
})
});
}
/***/ }),
/***/ "./src/pages/wordcloud/index.tsx":
/*!***************************************!*\
!*** ./src/pages/wordcloud/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_wordcloud_index_index_tsx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !!../../../node_modules/@tarojs/taro-loader/lib/entry-cache.js?name=pages/wordcloud/index!./index.tsx */ "./node_modules/@tarojs/taro-loader/lib/entry-cache.js?name=pages/wordcloud/index!./src/pages/wordcloud/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_wordcloud_index_index_tsx__WEBPACK_IMPORTED_MODULE_0__["default"], 'pages/wordcloud/index', {root:{cn:[]}}, config || {}))
/* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_tarojs_taro_loader_lib_entry_cache_js_name_pages_wordcloud_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/wordcloud/index.tsx"); });
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ }
]);
//# sourceMappingURL=index.js.map
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}}" />
+400
View File
@@ -0,0 +1,400 @@
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** 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/wordcloud/index.scss ***!
\******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
.wordcloud-page {
min-height: 100vh;
padding: 0 24rpx 24rpx;
}
/* 顶部导航 */
.page-header {
padding: 50rpx 32rpx 24rpx;
margin: 20rpx 0 0;
background: transparent;
}
.back-btn {
font-size: 40rpx;
color: var(--text-primary);
padding: 10rpx;
}
/* 步骤指示器 */
.step-indicator {
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: 32rpx;
margin: 0 24rpx;
}
.step-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;
position: relative;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
}
.step-circle {
width: 64rpx;
height: 64rpx;
border-radius: 50%;
background: var(--bg-input);
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: 12rpx;
border: 4rpx dashed var(--bg-input);
}
.step-circle.active {
background: var(--btn-gradient);
border-color: var(--accent-pink);
}
.step-num {
font-size: 28rpx;
font-weight: 700;
color: var(--text-muted);
}
.step-circle.active .step-num {
color: #fff;
}
.step-label {
font-size: 24rpx;
color: var(--text-secondary);
}
.step-label.active {
color: var(--accent-pink);
font-weight: 600;
}
.step-line {
position: absolute;
top: 30rpx;
left: 60%;
width: 100%;
height: 4rpx;
background: var(--bg-input);
}
.step-line.active {
background: var(--btn-gradient);
}
/* 步骤内容 */
.step-content {
padding: 32rpx;
}
/* 上传区域 */
.upload-area {
min-height: 400rpx;
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;
}
.upload-placeholder {
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;
}
.upload-icon {
font-size: 80rpx;
margin-bottom: 24rpx;
}
.upload-title {
font-size: 32rpx;
font-weight: 600;
color: var(--text-primary);
margin-bottom: 12rpx;
}
.upload-desc {
font-size: 26rpx;
color: var(--text-secondary);
margin-bottom: 16rpx;
}
.upload-tip {
font-size: 22rpx;
color: var(--accent-blue);
background: rgba(91, 140, 255, 0.1);
padding: 8rpx 20rpx;
border-radius: 50rpx;
border: var(--line-card);
}
.preview-image {
width: 100%;
height: 400rpx;
border-radius: 24rpx;
}
/* 按钮 */
.action-btns {
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
gap: 20rpx;
margin-top: 40rpx;
}
/* 输入区域 */
.input-section {
padding: 32rpx;
}
.names-input {
width: 100%;
min-height: 300rpx;
background: var(--bg-input);
border-radius: 16rpx;
padding: 24rpx;
font-size: 28rpx;
line-height: 1.6;
-webkit-box-sizing: border-box;
box-sizing: border-box;
border: var(--line-card);
color: var(--text-primary);
}
.input-stats {
display: block;
text-align: right;
font-size: 24rpx;
color: var(--text-secondary);
margin-top: 12rpx;
}
.input-tips {
margin-top: 24rpx;
}
.tip-item {
display: block;
font-size: 24rpx;
color: var(--text-secondary);
margin-bottom: 8rpx;
}
/* 生成中 */
.generating-panel {
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: 80rpx 40rpx;
}
.generating-icon {
font-size: 120rpx;
-webkit-animation: pulse 2s infinite;
animation: pulse 2s infinite;
}
@-webkit-keyframes pulse {
0%, 100% {
-webkit-transform: scale(1);
transform: scale(1);
opacity: 1;
}
50% {
-webkit-transform: scale(1.2);
transform: scale(1.2);
opacity: 0.7;
}
}
@keyframes pulse {
0%, 100% {
-webkit-transform: scale(1);
transform: scale(1);
opacity: 1;
}
50% {
-webkit-transform: scale(1.2);
transform: scale(1.2);
opacity: 0.7;
}
}
.generating-title {
font-size: 40rpx;
font-weight: 700;
color: var(--text-primary);
margin-top: 40rpx;
}
.generating-subtitle {
font-size: 28rpx;
color: var(--text-secondary);
margin-top: 16rpx;
margin-bottom: 40rpx;
}
.progress-bar {
width: 80%;
height: 16rpx;
background: rgba(255, 154, 158, 0.15);
border-radius: 8rpx;
overflow: hidden;
}
.progress-fill {
height: 100%;
background: var(--btn-gradient);
border-radius: 8rpx;
-webkit-transition: width 0.5s ease;
transition: width 0.5s ease;
}
.progress-text {
font-size: 32rpx;
font-weight: 700;
color: var(--accent-pink);
margin-top: 16rpx;
}
/* 结果面板 */
.result-panel {
padding: 20rpx 0;
}
.result-image-wrapper {
overflow: hidden;
position: relative;
}
.result-image {
width: 100%;
height: 500rpx;
background: -webkit-linear-gradient(315deg, rgba(255, 154, 158, 0.08) 0%, rgba(160, 196, 255, 0.08) 100%);
background: linear-gradient(135deg, rgba(255, 154, 158, 0.08) 0%, rgba(160, 196, 255, 0.08) 100%);
}
.watermark-badge {
position: absolute;
bottom: 20rpx;
right: 20rpx;
background: rgba(255, 255, 255, 0.8);
color: var(--text-primary);
padding: 8rpx 20rpx;
border-radius: 8rpx;
font-size: 22rpx;
border: var(--line-card);
}
.result-actions {
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-justify-content: space-around;
-ms-flex-pack: distribute;
justify-content: space-around;
margin: 32rpx 0;
}
.action-btn {
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: 20rpx;
}
.action-icon {
font-size: 48rpx;
margin-bottom: 8rpx;
}
.action-label {
font-size: 24rpx;
color: var(--text-secondary);
}
/* 跳转DIY卡片 */
.diy-jump-card {
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
-webkit-justify-content: space-between;
-ms-flex-pack: justify;
justify-content: space-between;
margin-bottom: 32rpx;
}
.diy-jump-title {
font-size: 32rpx;
font-weight: 700;
color: var(--text-primary);
display: block;
margin-bottom: 8rpx;
}
.diy-jump-desc {
font-size: 24rpx;
color: var(--text-secondary);
display: block;
}
.diy-jump-arrow {
font-size: 40rpx;
color: var(--accent-pink);
}