From f67b5ec13c8362e00cf8e708761a3ebc304e320a Mon Sep 17 00:00:00 2001 From: yangxu23 Date: Thu, 9 Jan 2025 15:47:25 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8A=BD=E5=A5=96?= =?UTF-8?q?=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/zh-CN/components/lottery.md | 9 + examples/components/Index.jsx | 62 ++++-- .../amis-ui/scss/components/_lottery.scss | 94 +++++++++ packages/amis-ui/scss/themes/_common.scss | 2 + packages/amis-ui/src/components/Lottery.tsx | 196 ++++++++++++++++++ packages/amis-ui/src/components/index.tsx | 4 +- packages/amis/src/Schema.ts | 5 +- packages/amis/src/minimal.ts | 5 + packages/amis/src/renderers/Lottery.tsx | 40 ++++ 9 files changed, 402 insertions(+), 15 deletions(-) create mode 100644 docs/zh-CN/components/lottery.md create mode 100644 packages/amis-ui/scss/components/_lottery.scss create mode 100644 packages/amis-ui/src/components/Lottery.tsx create mode 100644 packages/amis/src/renderers/Lottery.tsx diff --git a/docs/zh-CN/components/lottery.md b/docs/zh-CN/components/lottery.md new file mode 100644 index 00000000000..5a943ffeed1 --- /dev/null +++ b/docs/zh-CN/components/lottery.md @@ -0,0 +1,9 @@ +--- +title: Lottery 九宫格抽奖 +description: +type: 0 +group: ⚙ 组件 +menuName: Lottery 九宫格抽奖 +icon: +order: 27 +--- diff --git a/examples/components/Index.jsx b/examples/components/Index.jsx index e18938266d2..7481f7bc595 100644 --- a/examples/components/Index.jsx +++ b/examples/components/Index.jsx @@ -1,16 +1,52 @@ export default { type: 'page', - title: '标题', - remark: { - title: '标题', - body: '这是一段描述问题,注意到了没,还可以设置标题。而且只有点击了才弹出来。', - icon: 'question-mark', - placement: 'right', - trigger: 'click', - rootClose: true - }, - body: '内容部分. 可以使用 \\${var} 获取变量。如: `\\$date`: ${date}', - aside: '边栏部分', - toolbar: '工具栏', - initApi: '/api/mock2/page/initData' + + body: { + type: 'lottery', + width: '600', + height: '600', + prizeList: [ + { + name: "商品名称名称", + pictureUrl: + "//m.360buyimg.com/babel/s180x180_jfs/t1/174906/19/10256/188436/60a242afE89a800c9/801b64e5b80fde9a.jpg!q70.jpg", + }, + { + name: "没有中奖哦", + pictureUrl: + "https://img14.360buyimg.com/imagetools/jfs/t1/213369/13/5346/13899/619b60e5E2761162e/dca9b64e09bb2fed.png", + }, + { + name: "商品名称名称", + pictureUrl: + "//m.360buyimg.com/babel/s180x180_jfs/t1/17279/28/13940/140479/60b984f4E723b9981/d007711aa1cdc358.jpg!q70.jpg", + }, + { + name: "商品名称名称", + pictureUrl: + "//m.360buyimg.com/babel/s180x180_jfs/t1/190452/2/84/116077/608627ecEef11d11e/e0a93f09eca31ddf.jpg!q70.jpg", + }, + { + name: "商品名称名称", + pictureUrl: + "https://img10.360buyimg.com/n5/s54x54_jfs/t1/164065/10/8839/39628/603ee7edE9dee283f/e56acfa461919177.jpg", + }, + { + name: "祥禾饽饽铺京东自营旗舰店", + pictureUrl: + "//m.360buyimg.com/babel/s66x66_jfs/t1/195378/33/9432/145698/60d0400eE0520ca9f/2283995f6c6176e7.jpg!q50.jpg", + }, + { + name: "鲜花4+1束 鲜花速递 ", + pictureUrl: + "//m.360buyimg.com/babel/s180x180_jfs/t1/185809/36/6800/181830/60b4fdaaEa74ddfdf/7f3776e9a493ec20.jpg!q70.jpg", + }, + { + name: "大连萨米托爱心樱桃", + pictureUrl: + "//m.360buyimg.com/babel/s180x180_jfs/t1/191656/26/7699/116921/60c1ed9eE933be59e/5c77c8eabda19d0d.jpg!q70.jpg", + }, + ] + } + }; diff --git a/packages/amis-ui/scss/components/_lottery.scss b/packages/amis-ui/scss/components/_lottery.scss new file mode 100644 index 00000000000..e53920e7526 --- /dev/null +++ b/packages/amis-ui/scss/components/_lottery.scss @@ -0,0 +1,94 @@ +@keyframes switch-light { + from { + background-image: url("https://aipage.bce.baidu.com/resources/sys/img/lottery/light.png"); + } + to { + background-image: url("https://aipage.bce.baidu.com/resources/sys/img/lottery/light-2.png"); + } +} + +.#{$ns}Lottery { + position: relative; + padding: 10px; + box-sizing: content-box; + background-color: #fdd130; + background-size: 100% 100%; + animation: switch-light 0.3s infinite; + + .luckNineWrap { + box-sizing: content-box; + display: -webkit-flex; + display: flex; + justify-content: space-around; + align-content: space-around; + position: absolute; + background: #ffa00a; + padding: 5px; + left: 0; + right: 0; + top: 0; + bottom: 0; + margin: auto; + width: 90%; + height: 90%; + flex-wrap: wrap; + -webkit-flex-wrap: wrap; + border-radius: 10px; + overflow: hidden; + background-size: 100% 100%; + transition: all .05s ease; + + .luckNineItem { + border-radius: 5px; + padding: 5px; + background-image: linear-gradient(#ffefd1, #ffc8a4); + display: flex; + flex-direction: column; + justify-content: center; + width: 28%; + height: 28%; + align-items: center; + transition: all .05s ease; + + .luckNineItem-title { + margin-top: 2px; + font-size: 12px; + font-weight: bold; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + width: 70px; + height: 16px; + text-align: center; + color: #be602b; + } + + .luckNineItem-img { + width: 60%; + height: 60%; + } + } + + .startBtn { + cursor: pointer; + background-image: linear-gradient(#ff733e, #ff4e57); + color: rgba(255, 212, 167, 1); + font-size: 26px; + font-weight: bold; + transition: all 1s ease-in; + } + + .startBtn:hover { + background-image: linear-gradient(#f69d7c, #f46c72); + transition: all 1s ease-in; + } + } + + .luckNineWrap div.active { + background-image: linear-gradient(#f69d7c, #f46c72); + } + + .luckNineWrap div.active .luckNineItem-title { + color: #fff; + } +} diff --git a/packages/amis-ui/scss/themes/_common.scss b/packages/amis-ui/scss/themes/_common.scss index 7364fccf12b..1a5109abd87 100644 --- a/packages/amis-ui/scss/themes/_common.scss +++ b/packages/amis-ui/scss/themes/_common.scss @@ -150,3 +150,5 @@ @import '../components/verificationCode'; @import '../components/mobile-dev-tool'; + +@import '../components/lottery'; diff --git a/packages/amis-ui/src/components/Lottery.tsx b/packages/amis-ui/src/components/Lottery.tsx new file mode 100644 index 00000000000..a7d8d3e4504 --- /dev/null +++ b/packages/amis-ui/src/components/Lottery.tsx @@ -0,0 +1,196 @@ +import React from 'react'; +import {themeable, ThemeProps} from 'amis-core'; + +let now = 0, + count = 0, + timer: null | NodeJS.Timer = null, + speed = 50; + +interface SquareNineProps extends ThemeProps { + width?: number; + height?: number; + prizeList: {name: string; pictureUrl: string; id: number}[]; + children?: React.ReactNode; +} + +interface CallBackFn { + (now: number): number; +} + +interface SquareNineState { + width: number; + height: number; + off: 0 | 1; +} + +interface CustomElement extends HTMLElement { + start: (index: number, fn: CallBackFn) => void; + reset: () => void; + flag: 0 | 1; +} + +export class Lottery extends React.Component { + lightRef: React.RefObject = React.createRef(); + + constructor(props: SquareNineProps) { + super(props); + this.state = { + width: this.props.width || 300, + height: this.props.height || 300, + off: 1 + }; + } + + start = (index: number, fn?: CallBackFn) => { + //开始抽奖 + if (!this.state.off) return; + this.setState({off: 0}); + this.changeFn(index, fn); + }; + + reset = () => { + this.setState({off: 1}); + now = 0; + timer && clearTimeout(timer as unknown as number); + }; + + componentDidMount() { + if (this.lightRef.current) { + this.lightRef.current.start = this.start; + this.lightRef.current.reset = this.reset; + this.lightRef.current.flag = this.state.off; + } + } + + componentDidUpdate(prevProps: SquareNineProps, prevState: SquareNineState) { + if (this.lightRef.current && prevState.off !== this.state.off) { + this.lightRef.current.flag = this.state.off; + } + } + + changeFn = (index: number, fn?: CallBackFn) => { + let _item = document.querySelectorAll('.luckNineWrap .luckNineItem'); + now = ++now % (_item.length - 1); + now == 0 && count++; + _item.forEach((res: HTMLElement) => { + Number(res.dataset.index) == now + ? res.classList.add('active') + : res.classList.remove('active'); + }); + timer = setTimeout(() => { + this.changeFn(index, fn); + }, speed); + if (count > 3) speed += 10; + if (speed > 300 && now == index) { + timer && clearTimeout(timer); + count = 0; + speed = 50; + this.setState({off: 1}); + fn && fn(now); + } + }; + + render() { + const {width, height} = this.state; + const {classnames: cx} = this.props; + return ( +
+
+
+ 奖品图片 +
+ {this.props.prizeList[0].name} +
+
+
+ 奖品图片 +
+ {this.props.prizeList[1].name} +
+
+
+ 奖品图片 +
+ {this.props.prizeList[2].name} +
+
+
+ 奖品图片 +
+ {this.props.prizeList[7].name} +
+
+
+ {this.props.children ? ( + this.props.children + ) : ( + this.start(2)}>开始 + )} +
+
+ 奖品图片 +
+ {this.props.prizeList[3].name} +
+
+
+ 奖品图片 +
+ {this.props.prizeList[6].name} +
+
+
+ 奖品图片 +
+ {this.props.prizeList[5].name} +
+
+
+ 奖品图片 +
+ {this.props.prizeList[5].name} +
+
+
+
+ ); + } +} + +export default themeable(Lottery); diff --git a/packages/amis-ui/src/components/index.tsx b/packages/amis-ui/src/components/index.tsx index e57f4e38f88..e0fc6e1307a 100644 --- a/packages/amis-ui/src/components/index.tsx +++ b/packages/amis-ui/src/components/index.tsx @@ -144,6 +144,7 @@ import VerificationCode from './VerificationCode'; import Shape from './Shape'; import type {IShapeType} from './Shape'; import MobileDevTool from './MobileDevTool'; +import {Lottery} from './Lottery'; export { NotFound, @@ -287,5 +288,6 @@ export { VerificationCode, Shape, IShapeType, - MobileDevTool + MobileDevTool, + Lottery }; diff --git a/packages/amis/src/Schema.ts b/packages/amis/src/Schema.ts index 85b4d3f6ed8..970d0ab6b7d 100644 --- a/packages/amis/src/Schema.ts +++ b/packages/amis/src/Schema.ts @@ -130,12 +130,13 @@ import { SchemaClassName, SchemaExpression } from 'amis-core'; -import type {FormSchemaBase, TestIdBuilder} from 'amis-core'; +import type {FormSchemaBase} from 'amis-core'; import {MultilineTextSchema} from './renderers/MultilineText'; import {DateRangeSchema} from './renderers/DateRange'; import {PasswordSchema} from './renderers/Password'; import {WordsSchema} from './renderers/Words'; import {RadioControlSchema} from './renderers/Form/Radio'; +import {LotterySchema} from './renderers/Lottery'; // 每加个类型,这补充一下。 export type SchemaType = @@ -258,6 +259,7 @@ export type SchemaType = | 'input-signature' | 'input-verification-code' | 'shape' + | 'lottery' // editor 系列 | 'editor' @@ -498,6 +500,7 @@ export type SchemaObject = | DateRangeSchema | MultilineTextSchema | PasswordSchema + | LotterySchema | WordsSchema; export type SchemaCollection = diff --git a/packages/amis/src/minimal.ts b/packages/amis/src/minimal.ts index e28407e43ea..5cad502515a 100644 --- a/packages/amis/src/minimal.ts +++ b/packages/amis/src/minimal.ts @@ -820,6 +820,11 @@ registerRenderer({ type: 'pdf-viewer', getComponent: () => import('./renderers/PdfViewer') }); +// import './renderers/Lottery'; +registerRenderer({ + type: 'lottery', + getComponent: () => import('./renderers/Lottery') +}); // import './renderers/AMIS'; registerRenderer({ type: 'amis', diff --git a/packages/amis/src/renderers/Lottery.tsx b/packages/amis/src/renderers/Lottery.tsx new file mode 100644 index 00000000000..e2329268f93 --- /dev/null +++ b/packages/amis/src/renderers/Lottery.tsx @@ -0,0 +1,40 @@ +import React from 'react'; +import {Renderer, RendererProps} from 'amis-core'; +import {Lottery as SquareNineComponent} from 'amis-ui'; + +import type {BaseSchema} from 'amis'; + +interface SquareNineProps extends RendererProps { + width?: number; + height?: number; + prizeList: {name: string; pictureUrl: string; id: number}[]; + children?: React.ReactNode; +} +/** + * Lottery 九宫格抽奖。 + * 文档:https://aisuda.bce.baidu.com/amis/zh-CN/components/alert + */ + +export interface LotterySchema extends BaseSchema { + /** + * 指定为提示框类型 + */ + type: 'lottery'; + + /** + * 奖品列表 + * */ + prizeList: {name: string; pictureUrl: string}[]; +} + +@Renderer({ + type: 'lottery' +}) +export class LotteryRenderer extends React.Component< + Omit & RendererProps +> { + render() { + const {prizeList, ...rest} = this.props; + return ; + } +} From d701266c1cb66cf4df045cc799a369a7851178a4 Mon Sep 17 00:00:00 2001 From: yangxu23 Date: Thu, 9 Jan 2025 21:37:56 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8A=BD=E5=A5=96?= =?UTF-8?q?=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/components/Index.jsx | 43 ++++++------- .../amis-ui/scss/components/_lottery.scss | 16 ++--- packages/amis-ui/src/components/Lottery.tsx | 62 +++++++------------ packages/amis/src/renderers/Lottery.tsx | 8 +-- 4 files changed, 53 insertions(+), 76 deletions(-) diff --git a/examples/components/Index.jsx b/examples/components/Index.jsx index 7481f7bc595..b8beaafc3fc 100644 --- a/examples/components/Index.jsx +++ b/examples/components/Index.jsx @@ -1,3 +1,4 @@ +import Outline from '../../packages/amis-editor-core/static/outline.png'; export default { type: 'page', @@ -5,46 +6,38 @@ export default { type: 'lottery', width: '600', height: '600', - prizeList: [ + items: [ { - name: "商品名称名称", - pictureUrl: - "//m.360buyimg.com/babel/s180x180_jfs/t1/174906/19/10256/188436/60a242afE89a800c9/801b64e5b80fde9a.jpg!q70.jpg", + name: "商品名称名称1", + pictureUrl: Outline, }, { - name: "没有中奖哦", - pictureUrl: - "https://img14.360buyimg.com/imagetools/jfs/t1/213369/13/5346/13899/619b60e5E2761162e/dca9b64e09bb2fed.png", + name: "没有中奖哦2", + pictureUrl: Outline, }, { - name: "商品名称名称", - pictureUrl: - "//m.360buyimg.com/babel/s180x180_jfs/t1/17279/28/13940/140479/60b984f4E723b9981/d007711aa1cdc358.jpg!q70.jpg", + name: "商品名称名称3", + pictureUrl: Outline, }, { - name: "商品名称名称", - pictureUrl: - "//m.360buyimg.com/babel/s180x180_jfs/t1/190452/2/84/116077/608627ecEef11d11e/e0a93f09eca31ddf.jpg!q70.jpg", + name: "商品名称名称4", + pictureUrl: Outline, }, { - name: "商品名称名称", - pictureUrl: - "https://img10.360buyimg.com/n5/s54x54_jfs/t1/164065/10/8839/39628/603ee7edE9dee283f/e56acfa461919177.jpg", + name: "商品名称名称5", + pictureUrl: Outline, }, { - name: "祥禾饽饽铺京东自营旗舰店", - pictureUrl: - "//m.360buyimg.com/babel/s66x66_jfs/t1/195378/33/9432/145698/60d0400eE0520ca9f/2283995f6c6176e7.jpg!q50.jpg", + name: "祥禾饽饽铺京东自营旗舰店6", + pictureUrl: Outline, }, { - name: "鲜花4+1束 鲜花速递 ", - pictureUrl: - "//m.360buyimg.com/babel/s180x180_jfs/t1/185809/36/6800/181830/60b4fdaaEa74ddfdf/7f3776e9a493ec20.jpg!q70.jpg", + name: "鲜花4+1束 鲜花速递7 ", + pictureUrl: Outline, }, { - name: "大连萨米托爱心樱桃", - pictureUrl: - "//m.360buyimg.com/babel/s180x180_jfs/t1/191656/26/7699/116921/60c1ed9eE933be59e/5c77c8eabda19d0d.jpg!q70.jpg", + name: "大连萨米托爱心樱桃8", + pictureUrl: Outline, }, ] } diff --git a/packages/amis-ui/scss/components/_lottery.scss b/packages/amis-ui/scss/components/_lottery.scss index e53920e7526..096f938f93c 100644 --- a/packages/amis-ui/scss/components/_lottery.scss +++ b/packages/amis-ui/scss/components/_lottery.scss @@ -38,6 +38,14 @@ background-size: 100% 100%; transition: all .05s ease; + .active { + background-image: linear-gradient(#f69d7c, #f46c72) !important; + + .luckNineItem-title { + color: #fff !important; + } + } + .luckNineItem { border-radius: 5px; padding: 5px; @@ -83,12 +91,4 @@ transition: all 1s ease-in; } } - - .luckNineWrap div.active { - background-image: linear-gradient(#f69d7c, #f46c72); - } - - .luckNineWrap div.active .luckNineItem-title { - color: #fff; - } } diff --git a/packages/amis-ui/src/components/Lottery.tsx b/packages/amis-ui/src/components/Lottery.tsx index a7d8d3e4504..a9be4cd2a68 100644 --- a/packages/amis-ui/src/components/Lottery.tsx +++ b/packages/amis-ui/src/components/Lottery.tsx @@ -9,7 +9,7 @@ let now = 0, interface SquareNineProps extends ThemeProps { width?: number; height?: number; - prizeList: {name: string; pictureUrl: string; id: number}[]; + items: {name: string; pictureUrl: string; id: number}[]; children?: React.ReactNode; } @@ -103,89 +103,73 @@ export class Lottery extends React.Component {
奖品图片 -
- {this.props.prizeList[0].name} -
+
{this.props.items[0].name}
奖品图片 -
- {this.props.prizeList[1].name} -
+
{this.props.items[1].name}
奖品图片 -
- {this.props.prizeList[2].name} -
+
{this.props.items[2].name}
奖品图片 -
- {this.props.prizeList[7].name} -
+
{this.props.items[7].name}
-
- {this.props.children ? ( - this.props.children - ) : ( - this.start(2)}>开始 - )} +
this.start(2)} + > + {this.props.children ? this.props.children : 开始}
奖品图片 -
- {this.props.prizeList[3].name} -
+
{this.props.items[3].name}
奖品图片 -
- {this.props.prizeList[6].name} -
+
{this.props.items[6].name}
奖品图片 -
- {this.props.prizeList[5].name} -
+
{this.props.items[5].name}
奖品图片 -
- {this.props.prizeList[5].name} -
+
{this.props.items[5].name}
diff --git a/packages/amis/src/renderers/Lottery.tsx b/packages/amis/src/renderers/Lottery.tsx index e2329268f93..5a5e7b19afa 100644 --- a/packages/amis/src/renderers/Lottery.tsx +++ b/packages/amis/src/renderers/Lottery.tsx @@ -7,7 +7,7 @@ import type {BaseSchema} from 'amis'; interface SquareNineProps extends RendererProps { width?: number; height?: number; - prizeList: {name: string; pictureUrl: string; id: number}[]; + items: {name: string; pictureUrl: string; id: number}[]; children?: React.ReactNode; } /** @@ -24,7 +24,7 @@ export interface LotterySchema extends BaseSchema { /** * 奖品列表 * */ - prizeList: {name: string; pictureUrl: string}[]; + items: {name: string; pictureUrl: string}[]; } @Renderer({ @@ -34,7 +34,7 @@ export class LotteryRenderer extends React.Component< Omit & RendererProps > { render() { - const {prizeList, ...rest} = this.props; - return ; + const {items, ...rest} = this.props; + return ; } } From 4c19dac888b9b9bb360e988fb4289e9d14bbcb8e Mon Sep 17 00:00:00 2001 From: yangxu23 Date: Thu, 9 Jan 2025 22:23:40 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8A=BD=E5=A5=96?= =?UTF-8?q?=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/amis-ui/src/components/Lottery.tsx | 21 ++++++++++++++++----- packages/amis/src/renderers/Lottery.tsx | 16 ++++++++++++---- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/packages/amis-ui/src/components/Lottery.tsx b/packages/amis-ui/src/components/Lottery.tsx index a9be4cd2a68..bd9993b3153 100644 --- a/packages/amis-ui/src/components/Lottery.tsx +++ b/packages/amis-ui/src/components/Lottery.tsx @@ -1,16 +1,24 @@ import React from 'react'; import {themeable, ThemeProps} from 'amis-core'; -let now = 0, - count = 0, - timer: null | NodeJS.Timer = null, - speed = 50; +let now = 0; +let count = 0; +let timer: null | NodeJS.Timer = null; +let speed = 50; interface SquareNineProps extends ThemeProps { + //宽度,默认300px width?: number; + //高度,默认300px height?: number; + //奖品列表 items: {name: string; pictureUrl: string; id: number}[]; + // 开始按钮 children?: React.ReactNode; + //目标索引(中奖) + targetIndex?: number; + // 结束回调 + callback?: (index: number) => void; } interface CallBackFn { @@ -48,6 +56,7 @@ export class Lottery extends React.Component { this.changeFn(index, fn); }; + //重置抽奖状态 reset = () => { this.setState({off: 1}); now = 0; @@ -68,6 +77,7 @@ export class Lottery extends React.Component { } } + //抽奖动画效果 changeFn = (index: number, fn?: CallBackFn) => { let _item = document.querySelectorAll('.luckNineWrap .luckNineItem'); now = ++now % (_item.length - 1); @@ -87,6 +97,7 @@ export class Lottery extends React.Component { speed = 50; this.setState({off: 1}); fn && fn(now); + this.props.callback && this.props.callback(now); } }; @@ -135,7 +146,7 @@ export class Lottery extends React.Component {
this.start(2)} + onClick={() => this.start(this.props.targetIndex || 0)} > {this.props.children ? this.props.children : 开始}
diff --git a/packages/amis/src/renderers/Lottery.tsx b/packages/amis/src/renderers/Lottery.tsx index 5a5e7b19afa..c2f7a8fd20e 100644 --- a/packages/amis/src/renderers/Lottery.tsx +++ b/packages/amis/src/renderers/Lottery.tsx @@ -21,10 +21,18 @@ export interface LotterySchema extends BaseSchema { */ type: 'lottery'; - /** - * 奖品列表 - * */ - items: {name: string; pictureUrl: string}[]; + //宽度,默认300px + width?: number; + //高度,默认300px + height?: number; + //奖品列表 + items: {name: string; pictureUrl: string; id: number}[]; + // 开始按钮 + children?: React.ReactNode; + //目标索引(中奖) + targetIndex?: number; + // 结束回调 + callback?: (index: number) => void; } @Renderer({ From 64c3fcb2803649beda38dc6c7aa1c30375709394 Mon Sep 17 00:00:00 2001 From: yangxu23 Date: Fri, 10 Jan 2025 14:07:48 +0800 Subject: [PATCH 4/8] =?UTF-8?q?1.=E5=9B=BE=E7=89=87=E6=9B=BF=E6=8D=A2?= =?UTF-8?q?=E6=9C=AC=E5=9C=B0=E8=B5=84=E6=BA=90=202.=E9=87=87=E7=94=A8rem?= =?UTF-8?q?=E5=8D=95=E4=BD=8D=203.=E8=A1=A5=E5=85=85=E7=94=A8=E6=B3=95?= =?UTF-8?q?=E6=96=87=E6=A1=A3=204.=E6=94=B9=E5=8F=98=E5=8F=98=E9=87=8F?= =?UTF-8?q?=E4=BD=9C=E7=94=A8=E5=9F=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/zh-CN/components/lottery.md | 61 ++++++++++++ examples/components/Index.jsx | 4 +- examples/static/light-2.png | Bin 0 -> 28431 bytes examples/static/light.png | Bin 0 -> 28309 bytes .../amis-ui/scss/components/_lottery.scss | 24 ++--- packages/amis-ui/src/components/Lottery.tsx | 88 +++++++++++------- 6 files changed, 129 insertions(+), 48 deletions(-) create mode 100644 examples/static/light-2.png create mode 100644 examples/static/light.png diff --git a/docs/zh-CN/components/lottery.md b/docs/zh-CN/components/lottery.md index 5a943ffeed1..0a601c9f211 100644 --- a/docs/zh-CN/components/lottery.md +++ b/docs/zh-CN/components/lottery.md @@ -7,3 +7,64 @@ menuName: Lottery 九宫格抽奖 icon: order: 27 --- + +抽奖组件,可以配置奖品列表和中奖索引完成抽奖动画 + +```schema: scope="body" + { + type: 'lottery', + width: 300, + height: 300, + targetIndex: 1, + items: [ + { + name: "商品名称名称", + id: 1, + pictureUrl: + "//m.360buyimg.com/babel/s180x180_jfs/t1/174906/19/10256/188436/60a242afE89a800c9/801b64e5b80fde9a.jpg!q70.jpg", + }, + { + name: "没有中奖哦", + id: 2, + pictureUrl: + "https://img14.360buyimg.com/imagetools/jfs/t1/213369/13/5346/13899/619b60e5E2761162e/dca9b64e09bb2fed.png", + }, + { + name: "商品名称名称", + id: 3, + pictureUrl: + "//m.360buyimg.com/babel/s180x180_jfs/t1/17279/28/13940/140479/60b984f4E723b9981/d007711aa1cdc358.jpg!q70.jpg", + }, + { + name: "商品名称名称", + id: 4, + pictureUrl: + "//m.360buyimg.com/babel/s180x180_jfs/t1/190452/2/84/116077/608627ecEef11d11e/e0a93f09eca31ddf.jpg!q70.jpg", + }, + { + name: "商品名称名称", + id: 5, + pictureUrl: + "https://img10.360buyimg.com/n5/s54x54_jfs/t1/164065/10/8839/39628/603ee7edE9dee283f/e56acfa461919177.jpg", + }, + { + name: "祥禾饽饽铺京东自营旗舰店", + id: 6, + pictureUrl: + "//m.360buyimg.com/babel/s66x66_jfs/t1/195378/33/9432/145698/60d0400eE0520ca9f/2283995f6c6176e7.jpg!q50.jpg", + }, + { + name: "鲜花4+1束 鲜花速递 ", + id: 7, + pictureUrl: + "//m.360buyimg.com/babel/s180x180_jfs/t1/185809/36/6800/181830/60b4fdaaEa74ddfdf/7f3776e9a493ec20.jpg!q70.jpg", + }, + { + name: "大连萨米托爱心樱桃", + id: 8, + pictureUrl: + "//m.360buyimg.com/babel/s180x180_jfs/t1/191656/26/7699/116921/60c1ed9eE933be59e/5c77c8eabda19d0d.jpg!q70.jpg", + }, + ] + } +``` diff --git a/examples/components/Index.jsx b/examples/components/Index.jsx index b8beaafc3fc..429a0cea4a6 100644 --- a/examples/components/Index.jsx +++ b/examples/components/Index.jsx @@ -4,8 +4,8 @@ export default { body: { type: 'lottery', - width: '600', - height: '600', + width: '300', + height: '300', items: [ { name: "商品名称名称1", diff --git a/examples/static/light-2.png b/examples/static/light-2.png new file mode 100644 index 0000000000000000000000000000000000000000..d18c475d029de0c8a152c262ec11a8d39e2a7e57 GIT binary patch literal 28431 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 { this.state = { width: this.props.width || 300, height: this.props.height || 300, - off: 1 + off: 1, + now: -1, + count: 0, + speed: 50 }; } @@ -59,8 +60,7 @@ export class Lottery extends React.Component { //重置抽奖状态 reset = () => { this.setState({off: 1}); - now = 0; - timer && clearTimeout(timer as unknown as number); + this.setState({now: -1}); }; componentDidMount() { @@ -79,30 +79,26 @@ export class Lottery extends React.Component { //抽奖动画效果 changeFn = (index: number, fn?: CallBackFn) => { - let _item = document.querySelectorAll('.luckNineWrap .luckNineItem'); - now = ++now % (_item.length - 1); - now == 0 && count++; - _item.forEach((res: HTMLElement) => { - Number(res.dataset.index) == now - ? res.classList.add('active') - : res.classList.remove('active'); - }); - timer = setTimeout(() => { + let now = this.state.now; + now = ++now % (this.props.items.length - 1); + this.setState({now: now}); + this.state.now == 0 && this.setState({count: this.state.count + 1}); + let timer = setTimeout(() => { this.changeFn(index, fn); - }, speed); - if (count > 3) speed += 10; - if (speed > 300 && now == index) { + }, this.state.speed); + if (this.state.count > 3) { + this.setState({speed: this.state.speed + 10}); + } + if (this.state.speed > 300 && this.state.now == index) { timer && clearTimeout(timer); - count = 0; - speed = 50; - this.setState({off: 1}); - fn && fn(now); - this.props.callback && this.props.callback(now); + this.setState({off: 1, count: 0, speed: 50}); + fn && fn(this.state.now); + this.props.callback && this.props.callback(this.state.now); } }; render() { - const {width, height} = this.state; + const {width, height, now} = this.state; const {classnames: cx} = this.props; return (
{ style={{width: width + 'px', height: height + 'px'}} >
-
+
{ />
{this.props.items[0].name}
-
+
{ />
{this.props.items[1].name}
-
+
{ />
{this.props.items[2].name}
-
+
{ > {this.props.children ? this.props.children : 开始}
-
+
{ />
{this.props.items[3].name}
-
+
{ />
{this.props.items[6].name}
-
+
{ />
{this.props.items[5].name}
-
+
Date: Fri, 10 Jan 2025 16:16:04 +0800 Subject: [PATCH 5/8] =?UTF-8?q?5.=E6=94=AF=E6=8C=81source?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/zh-CN/components/lottery.md | 17 ++++++ packages/amis-ui/src/components/Lottery.tsx | 63 ++++++++++++++------- packages/amis/src/renderers/Lottery.tsx | 27 ++++++++- 3 files changed, 86 insertions(+), 21 deletions(-) diff --git a/docs/zh-CN/components/lottery.md b/docs/zh-CN/components/lottery.md index 0a601c9f211..8f93f6f95ca 100644 --- a/docs/zh-CN/components/lottery.md +++ b/docs/zh-CN/components/lottery.md @@ -68,3 +68,20 @@ order: 27 ] } ``` + +支持数据源 +```schema: scope="body" +{ + "type": "page", + "body": { + "type": "service", + "api": "/amis/api/mock2/sample?perPage=5", + "body": [ + { + "type": "lottery", + "source": "$rows", + } + ] + } +} +``` diff --git a/packages/amis-ui/src/components/Lottery.tsx b/packages/amis-ui/src/components/Lottery.tsx index 11039e299e3..7fe5462c953 100644 --- a/packages/amis-ui/src/components/Lottery.tsx +++ b/packages/amis-ui/src/components/Lottery.tsx @@ -1,5 +1,12 @@ import React from 'react'; -import {themeable, ThemeProps} from 'amis-core'; +import { + getPropValue, + isPureVariable, + resolveVariableAndFilter, + themeable, + ThemeProps +} from 'amis-core'; +import {SchemaTokenizeableString} from 'amis/src/Schema'; interface SquareNineProps extends ThemeProps { //宽度,默认300px @@ -7,13 +14,17 @@ interface SquareNineProps extends ThemeProps { //高度,默认300px height?: number; //奖品列表 - items: {name: string; pictureUrl: string; id: number}[]; + items?: {name: string; pictureUrl: string; id: number}[]; // 开始按钮 children?: React.ReactNode; //目标索引(中奖) targetIndex?: number; // 结束回调 callback?: (index: number) => void; + // 数据源: 绑定当前环境变量, @default: '${items}' + source?: SchemaTokenizeableString; + //数据 + data: any; } interface CallBackFn { @@ -38,6 +49,7 @@ interface CustomElement extends HTMLElement { export class Lottery extends React.Component { lightRef: React.RefObject = React.createRef(); + list: Array = []; constructor(props: SquareNineProps) { super(props); this.state = { @@ -80,7 +92,7 @@ export class Lottery extends React.Component { //抽奖动画效果 changeFn = (index: number, fn?: CallBackFn) => { let now = this.state.now; - now = ++now % (this.props.items.length - 1); + now = ++now % (this.list.length - 1); this.setState({now: now}); this.state.now == 0 && this.setState({count: this.state.count + 1}); let timer = setTimeout(() => { @@ -100,6 +112,19 @@ export class Lottery extends React.Component { render() { const {width, height, now} = this.state; const {classnames: cx} = this.props; + const {source, items, data} = this.props; + + let list: any; + let value: any; + + if (typeof source === 'string' && isPureVariable(source)) { + list = resolveVariableAndFilter(source, data, '| raw') || undefined; + } else if (Array.isArray(items)) { + list = items; + } + + this.list = list; + return (
{ > 奖品图片 -
{this.props.items[0].name}
+
{this.list[0].name}
{ > 奖品图片 -
{this.props.items[1].name}
+
{this.list[1].name}
{ > 奖品图片 -
{this.props.items[2].name}
+
{this.list[2].name}
{ > 奖品图片 -
{this.props.items[7].name}
+
{this.list[7].name}
{ > 奖品图片 -
{this.props.items[3].name}
+
{this.list[3].name}
{ > 奖品图片 -
{this.props.items[6].name}
+
{this.list[6].name}
{ > 奖品图片 -
{this.props.items[5].name}
+
{this.list[5].name}
{ > 奖品图片 -
{this.props.items[5].name}
+
{this.list[5].name}
diff --git a/packages/amis/src/renderers/Lottery.tsx b/packages/amis/src/renderers/Lottery.tsx index c2f7a8fd20e..de9446a19a9 100644 --- a/packages/amis/src/renderers/Lottery.tsx +++ b/packages/amis/src/renderers/Lottery.tsx @@ -1,18 +1,29 @@ import React from 'react'; -import {Renderer, RendererProps} from 'amis-core'; +import { + anyChanged, + getPropValue, + IListStore, + isPureVariable, + Renderer, + RendererProps, + resolveVariableAndFilter +} from 'amis-core'; import {Lottery as SquareNineComponent} from 'amis-ui'; +import {SchemaTokenizeableString} from '../Schema'; import type {BaseSchema} from 'amis'; +import {ListProps} from './List'; interface SquareNineProps extends RendererProps { width?: number; height?: number; items: {name: string; pictureUrl: string; id: number}[]; + source: SchemaTokenizeableString; children?: React.ReactNode; } /** * Lottery 九宫格抽奖。 - * 文档:https://aisuda.bce.baidu.com/amis/zh-CN/components/alert + * 文档:https://aisuda.bce.baidu.com/amis/zh-CN/components/lottery */ export interface LotterySchema extends BaseSchema { @@ -33,6 +44,8 @@ export interface LotterySchema extends BaseSchema { targetIndex?: number; // 结束回调 callback?: (index: number) => void; + // 数据源: 绑定当前环境变量, @default: '${items}' + source?: SchemaTokenizeableString; } @Renderer({ @@ -41,6 +54,16 @@ export interface LotterySchema extends BaseSchema { export class LotteryRenderer extends React.Component< Omit & RendererProps > { + static propList: Array = [ + 'width', + 'height', + 'items', + 'source', + 'targetIndex', + 'callback', + 'children' + ]; + render() { const {items, ...rest} = this.props; return ; From 83eb601ab3e4f57ffa6bdb5d37d5cad83196f149 Mon Sep 17 00:00:00 2001 From: yangxu23 Date: Sat, 11 Jan 2025 10:28:38 +0800 Subject: [PATCH 6/8] =?UTF-8?q?fix:=E4=BD=BF=E7=94=A8px2rem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../amis-ui/scss/components/_lottery.scss | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/packages/amis-ui/scss/components/_lottery.scss b/packages/amis-ui/scss/components/_lottery.scss index a539e536336..b3aac10e422 100644 --- a/packages/amis-ui/scss/components/_lottery.scss +++ b/packages/amis-ui/scss/components/_lottery.scss @@ -1,3 +1,9 @@ + +@use 'sass:color'; +@import 'node_modules/amis-ui/scss/mixins'; +@import 'node_modules/amis-ui/scss/functions'; +@import 'node_modules/amis-ui/scss/variables'; + @keyframes switch-light { from { background-image: url("../../../../examples/static/light.png"); @@ -9,7 +15,7 @@ .#{$ns}Lottery { position: relative; - padding: 0.2rem; + padding: px2rem(10px); box-sizing: content-box; background-color: #fdd130; background-size: 100% 100%; @@ -23,7 +29,7 @@ align-content: space-around; position: absolute; background: #ffa00a; - padding: 0.2rem; + padding: px2rem(5px); left: 0; right: 0; top: 0; @@ -33,7 +39,7 @@ height: 90%; flex-wrap: wrap; -webkit-flex-wrap: wrap; - border-radius: 0.1rem; + border-radius: px2rem(15px); overflow: hidden; background-size: 100% 100%; transition: all .05s ease; @@ -47,8 +53,8 @@ } .luckNineItem { - border-radius: 1rem; - padding: 0.2rem; + border-radius: px2rem(10px); + padding: px2rem(5px); background-image: linear-gradient(#ffefd1, #ffc8a4); display: flex; flex-direction: column; @@ -59,14 +65,14 @@ transition: all .05s ease; .luckNineItem-title { - margin-top: 0.1rem; - font-size: 0.6rem; + margin-top: px2rem(5px); + font-size: px2rem(10px); font-weight: bold; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; - width: 4rem; - height: 1rem; + width: px2rem(60px); + height: px2rem(15px); text-align: center; color: #be602b; } @@ -81,7 +87,7 @@ cursor: pointer; background-image: linear-gradient(#ff733e, #ff4e57); color: rgba(255, 212, 167, 1); - font-size: 1.8rem; + font-size: px2rem(30px); font-weight: bold; transition: all 1s ease-in; } From bd40f51535d3a770922528fa3f68694ba4869949 Mon Sep 17 00:00:00 2001 From: yangxu23 Date: Sat, 11 Jan 2025 10:48:29 +0800 Subject: [PATCH 7/8] =?UTF-8?q?fix:=E7=9B=B4=E6=8E=A5=E4=BD=BF=E7=94=A8pro?= =?UTF-8?q?ps=E5=AE=BD=E9=AB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/amis-ui/src/components/Lottery.tsx | 13 +++++-------- packages/amis/src/renderers/Lottery.tsx | 10 ---------- 2 files changed, 5 insertions(+), 18 deletions(-) diff --git a/packages/amis-ui/src/components/Lottery.tsx b/packages/amis-ui/src/components/Lottery.tsx index 7fe5462c953..dc221b1acac 100644 --- a/packages/amis-ui/src/components/Lottery.tsx +++ b/packages/amis-ui/src/components/Lottery.tsx @@ -1,6 +1,5 @@ import React from 'react'; import { - getPropValue, isPureVariable, resolveVariableAndFilter, themeable, @@ -10,9 +9,9 @@ import {SchemaTokenizeableString} from 'amis/src/Schema'; interface SquareNineProps extends ThemeProps { //宽度,默认300px - width?: number; + width?: string; //高度,默认300px - height?: number; + height?: string; //奖品列表 items?: {name: string; pictureUrl: string; id: number}[]; // 开始按钮 @@ -32,8 +31,6 @@ interface CallBackFn { } interface SquareNineState { - width: number; - height: number; off: 0 | 1; now: number; count: number; @@ -53,8 +50,6 @@ export class Lottery extends React.Component { constructor(props: SquareNineProps) { super(props); this.state = { - width: this.props.width || 300, - height: this.props.height || 300, off: 1, now: -1, count: 0, @@ -110,9 +105,11 @@ export class Lottery extends React.Component { }; render() { - const {width, height, now} = this.state; + const {now} = this.state; const {classnames: cx} = this.props; const {source, items, data} = this.props; + const width = this.props.width || '300'; + const height = this.props.height || '300'; let list: any; let value: any; diff --git a/packages/amis/src/renderers/Lottery.tsx b/packages/amis/src/renderers/Lottery.tsx index de9446a19a9..1bc6b84badf 100644 --- a/packages/amis/src/renderers/Lottery.tsx +++ b/packages/amis/src/renderers/Lottery.tsx @@ -54,16 +54,6 @@ export interface LotterySchema extends BaseSchema { export class LotteryRenderer extends React.Component< Omit & RendererProps > { - static propList: Array = [ - 'width', - 'height', - 'items', - 'source', - 'targetIndex', - 'callback', - 'children' - ]; - render() { const {items, ...rest} = this.props; return ; From c38de36eb23beaee19c2a6e6a65d105e1d1a724c Mon Sep 17 00:00:00 2001 From: yangxu23 Date: Sat, 11 Jan 2025 10:50:02 +0800 Subject: [PATCH 8/8] =?UTF-8?q?fix=EF=BC=9A=E5=88=A0=E9=99=A4=E8=83=8C?= =?UTF-8?q?=E6=99=AF=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/static/light-2.png | Bin 28431 -> 0 bytes examples/static/light.png | Bin 28309 -> 0 bytes packages/amis-ui/scss/components/_lottery.scss | 9 --------- 3 files changed, 9 deletions(-) delete mode 100644 examples/static/light-2.png delete mode 100644 examples/static/light.png diff --git a/examples/static/light-2.png b/examples/static/light-2.png deleted file mode 100644 index d18c475d029de0c8a152c262ec11a8d39e2a7e57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28431 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