@tarojs/components-react 4.1.12-alpha.0 → 4.1.12-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,43 +12,42 @@ const getIndicatorStyle = lineColor => {
12
12
  borderBottomColor: lineColor
13
13
  };
14
14
  };
15
- // 辅助函数:计算 lengthScaleRatio
16
- const calculateLengthScaleRatio = res => {
17
- let lengthScaleRatio = res === null || res === void 0 ? void 0 : res.lengthScaleRatio;
18
- if (lengthScaleRatio == null || lengthScaleRatio === 0) {
19
- console.warn('Taro.getSystemInfo: lengthScaleRatio 不存在,使用计算值');
20
- lengthScaleRatio = 1;
21
- if (res.windowWidth < 320) {
22
- lengthScaleRatio = res.windowWidth / 320;
23
- } else if (res.windowWidth >= 400 && res.windowWidth < 600) {
24
- lengthScaleRatio = res.windowWidth / 400;
25
- }
26
- const shortSide = res.windowWidth < res.windowHeight ? res.windowWidth : res.windowHeight;
27
- const isBigScreen = shortSide >= 600;
28
- if (isBigScreen) {
29
- lengthScaleRatio = shortSide / 720;
30
- }
31
- }
32
- return lengthScaleRatio;
33
- };
34
15
  // 辅助函数:获取系统信息的 lengthScaleRatio 并设置 targetScrollTop
35
- const setTargetScrollTopWithScale = function (setTargetScrollTop, baseValue, randomOffset) {
36
- let lengthScaleRatio = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
16
+ const setTargetScrollTopWithScale = (setTargetScrollTop, baseValue, randomOffset) => {
37
17
  // H5 和 weapp 不参与放大计算,直接使用 baseValue
38
18
  if (process.env.TARO_ENV === 'h5' || process.env.TARO_ENV === 'weapp') {
39
19
  const finalValue = randomOffset !== undefined ? baseValue + randomOffset : baseValue;
40
20
  setTargetScrollTop(finalValue);
41
21
  return;
42
22
  }
43
- if (process.env.TARO_PLATFORM === 'harmony') {
44
- const scaledValue = baseValue;
45
- const finalValue = randomOffset !== undefined ? scaledValue + randomOffset : scaledValue;
46
- setTargetScrollTop(finalValue);
47
- } else {
48
- const scaledValue = baseValue * lengthScaleRatio;
49
- const finalValue = randomOffset !== undefined ? scaledValue + randomOffset : scaledValue;
50
- setTargetScrollTop(finalValue);
51
- }
23
+ Taro.getSystemInfo({
24
+ success: res => {
25
+ let lengthScaleRatio = res === null || res === void 0 ? void 0 : res.lengthScaleRatio;
26
+ if (lengthScaleRatio == null || lengthScaleRatio === 0) {
27
+ console.warn('Taro.getSystemInfo: lengthScaleRatio 不存在,使用计算值');
28
+ lengthScaleRatio = 1;
29
+ if (res.windowWidth < 320) {
30
+ lengthScaleRatio = res.windowWidth / 320;
31
+ } else if (res.windowWidth >= 400 && res.windowWidth < 600) {
32
+ lengthScaleRatio = res.windowWidth / 400;
33
+ }
34
+ const shortSide = res.windowWidth < res.windowHeight ? res.windowWidth : res.windowHeight;
35
+ const isBigScreen = shortSide >= 600;
36
+ if (isBigScreen) {
37
+ lengthScaleRatio = shortSide / 720;
38
+ }
39
+ }
40
+ const scaledValue = baseValue * lengthScaleRatio;
41
+ const finalValue = randomOffset !== undefined ? scaledValue + randomOffset : scaledValue;
42
+ setTargetScrollTop(finalValue);
43
+ },
44
+ fail: err => {
45
+ console.error('获取系统信息失败:', err);
46
+ // 失败时使用默认值 1
47
+ const finalValue = randomOffset !== undefined ? baseValue + randomOffset : baseValue;
48
+ setTargetScrollTop(finalValue);
49
+ }
50
+ });
52
51
  };
53
52
  function PickerGroupBasic(props) {
54
53
  const {
@@ -69,25 +68,10 @@ function PickerGroupBasic(props) {
69
68
  const [currentIndex, setCurrentIndex] = React.useState(selectedIndex);
70
69
  // 触摸状态用于优化用户体验
71
70
  const [isTouching, setIsTouching] = React.useState(false);
72
- const lengthScaleRatioRef = React.useRef(1);
73
71
  const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT);
74
- // 初始化时计算 lengthScaleRatio
75
- React.useEffect(() => {
76
- Taro.getSystemInfo({
77
- success: res => {
78
- lengthScaleRatioRef.current = calculateLengthScaleRatio(res);
79
- },
80
- fail: () => {
81
- // 失败时使用默认值 1
82
- lengthScaleRatioRef.current = 1;
83
- }
84
- });
85
- }, []);
86
72
  React.useEffect(() => {
87
73
  var _a;
88
- if (process.env.TARO_PLATFORM === 'harmony') {
89
- itemHeightRef.current = PICKER_LINE_HEIGHT * lengthScaleRatioRef.current;
90
- } else {
74
+ if (process.env.TARO_PLATFORM !== 'harmony') {
91
75
  if (scrollViewRef.current && ((_a = scrollViewRef.current) === null || _a === void 0 ? void 0 : _a.scrollHeight)) {
92
76
  itemHeightRef.current = scrollViewRef.current.scrollHeight / scrollViewRef.current.childNodes.length;
93
77
  } else {
@@ -103,7 +87,7 @@ function PickerGroupBasic(props) {
103
87
  React.useEffect(() => {
104
88
  if (scrollViewRef.current && range.length > 0 && !isTouching) {
105
89
  const baseValue = selectedIndex * itemHeightRef.current;
106
- setTargetScrollTopWithScale(setTargetScrollTop, baseValue, undefined, lengthScaleRatioRef.current);
90
+ setTargetScrollTopWithScale(setTargetScrollTop, baseValue);
107
91
  setCurrentIndex(selectedIndex);
108
92
  }
109
93
  }, [selectedIndex, range]);
@@ -124,7 +108,7 @@ function PickerGroupBasic(props) {
124
108
  setIsTouching(false);
125
109
  const baseValue = newIndex * itemHeightRef.current;
126
110
  const randomOffset = Math.random() * 0.001; // 随机数为了在一个项内滚动时强制刷新
127
- setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current);
111
+ setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset);
128
112
  updateIndex(newIndex, columnId);
129
113
  onColumnChange === null || onColumnChange === void 0 ? void 0 : onColumnChange({
130
114
  columnId,
@@ -213,25 +197,10 @@ function PickerGroupTime(props) {
213
197
  const itemRefs = React.useRef([]);
214
198
  const [currentIndex, setCurrentIndex] = React.useState(selectedIndex);
215
199
  const [isTouching, setIsTouching] = React.useState(false);
216
- const lengthScaleRatioRef = React.useRef(1);
217
200
  const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT);
218
- // 初始化时计算 lengthScaleRatio
219
- React.useEffect(() => {
220
- Taro.getSystemInfo({
221
- success: res => {
222
- lengthScaleRatioRef.current = calculateLengthScaleRatio(res);
223
- },
224
- fail: () => {
225
- // 失败时使用默认值 1
226
- lengthScaleRatioRef.current = 1;
227
- }
228
- });
229
- }, []);
230
201
  React.useEffect(() => {
231
202
  var _a;
232
- if (process.env.TARO_PLATFORM === 'harmony') {
233
- itemHeightRef.current = PICKER_LINE_HEIGHT * lengthScaleRatioRef.current;
234
- } else {
203
+ if (process.env.TARO_PLATFORM !== 'harmony') {
235
204
  if (scrollViewRef.current && ((_a = scrollViewRef.current) === null || _a === void 0 ? void 0 : _a.scrollHeight)) {
236
205
  itemHeightRef.current = scrollViewRef.current.scrollHeight / scrollViewRef.current.childNodes.length;
237
206
  } else {
@@ -246,7 +215,7 @@ function PickerGroupTime(props) {
246
215
  React.useEffect(() => {
247
216
  if (scrollViewRef.current && range.length > 0 && !isTouching) {
248
217
  const baseValue = selectedIndex * itemHeightRef.current;
249
- setTargetScrollTopWithScale(setTargetScrollTop, baseValue, undefined, lengthScaleRatioRef.current);
218
+ setTargetScrollTopWithScale(setTargetScrollTop, baseValue);
250
219
  setCurrentIndex(selectedIndex);
251
220
  }
252
221
  }, [selectedIndex, range]);
@@ -271,7 +240,7 @@ function PickerGroupTime(props) {
271
240
  if (!isLimited) {
272
241
  const baseValue = newIndex * itemHeightRef.current;
273
242
  const randomOffset = Math.random() * 0.001;
274
- setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current);
243
+ setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset);
275
244
  }
276
245
  isCenterTimerId.current = null;
277
246
  }, 100);
@@ -354,25 +323,10 @@ function PickerGroupDate(props) {
354
323
  const scrollViewRef = React.useRef(null);
355
324
  const [currentIndex, setCurrentIndex] = React.useState(selectedIndex);
356
325
  const [isTouching, setIsTouching] = React.useState(false);
357
- const lengthScaleRatioRef = React.useRef(1);
358
326
  const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT);
359
- // 初始化时计算 lengthScaleRatio
360
- React.useEffect(() => {
361
- Taro.getSystemInfo({
362
- success: res => {
363
- lengthScaleRatioRef.current = calculateLengthScaleRatio(res);
364
- },
365
- fail: () => {
366
- // 失败时使用默认值 1
367
- lengthScaleRatioRef.current = 1;
368
- }
369
- });
370
- }, []);
371
327
  React.useEffect(() => {
372
328
  var _a;
373
- if (process.env.TARO_PLATFORM === 'harmony') {
374
- itemHeightRef.current = PICKER_LINE_HEIGHT * lengthScaleRatioRef.current;
375
- } else {
329
+ if (process.env.TARO_PLATFORM !== 'harmony') {
376
330
  if (scrollViewRef.current && ((_a = scrollViewRef.current) === null || _a === void 0 ? void 0 : _a.scrollHeight)) {
377
331
  itemHeightRef.current = scrollViewRef.current.scrollHeight / scrollViewRef.current.childNodes.length;
378
332
  } else {
@@ -387,7 +341,7 @@ function PickerGroupDate(props) {
387
341
  React.useEffect(() => {
388
342
  if (scrollViewRef.current && range.length > 0 && !isTouching) {
389
343
  const baseValue = selectedIndex * itemHeightRef.current;
390
- setTargetScrollTopWithScale(setTargetScrollTop, baseValue, undefined, lengthScaleRatioRef.current);
344
+ setTargetScrollTopWithScale(setTargetScrollTop, baseValue);
391
345
  setCurrentIndex(selectedIndex);
392
346
  }
393
347
  }, [selectedIndex, range]);
@@ -408,7 +362,7 @@ function PickerGroupDate(props) {
408
362
  setIsTouching(false);
409
363
  const baseValue = newIndex * itemHeightRef.current;
410
364
  const randomOffset = Math.random() * 0.001; // 随机数为了在一个项内滚动时强制刷新
411
- setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current);
365
+ setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset);
412
366
  // 更新日期值
413
367
  if (updateDay) {
414
368
  // 解析文本中的数字(移除年、月、日等后缀)
@@ -497,26 +451,11 @@ function PickerGroupRegion(props) {
497
451
  const [targetScrollTop, setTargetScrollTop] = React.useState(0);
498
452
  const [currentIndex, setCurrentIndex] = React.useState(selectedIndex);
499
453
  const [isTouching, setIsTouching] = React.useState(false);
500
- const lengthScaleRatioRef = React.useRef(1);
501
454
  const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT);
502
455
  const isUserBeginScrollRef = React.useRef(false);
503
- // 初始化时计算 lengthScaleRatio
504
- React.useEffect(() => {
505
- Taro.getSystemInfo({
506
- success: res => {
507
- lengthScaleRatioRef.current = calculateLengthScaleRatio(res);
508
- },
509
- fail: () => {
510
- // 失败时使用默认值 1
511
- lengthScaleRatioRef.current = 1;
512
- }
513
- });
514
- }, []);
515
456
  React.useEffect(() => {
516
457
  var _a;
517
- if (process.env.TARO_PLATFORM === 'harmony') {
518
- itemHeightRef.current = PICKER_LINE_HEIGHT * lengthScaleRatioRef.current;
519
- } else {
458
+ if (process.env.TARO_PLATFORM !== 'harmony') {
520
459
  if (scrollViewRef.current && ((_a = scrollViewRef.current) === null || _a === void 0 ? void 0 : _a.scrollHeight)) {
521
460
  itemHeightRef.current = scrollViewRef.current.scrollHeight / scrollViewRef.current.childNodes.length;
522
461
  } else {
@@ -551,7 +490,7 @@ function PickerGroupRegion(props) {
551
490
  setIsTouching(false);
552
491
  const baseValue = newIndex * itemHeightRef.current;
553
492
  const randomOffset = Math.random() * 0.001; // 随机数为了在一个项内滚动时强制刷新
554
- setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current);
493
+ setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset);
555
494
  updateIndex(newIndex, columnId, false, isUserBeginScrollRef.current);
556
495
  }, 100);
557
496
  };
@@ -1 +1 @@
1
- {"version":3,"file":"picker-group.js","sources":["../../../src/components/picker/picker-group.tsx"],"sourcesContent":["import { ScrollView, View } from '@tarojs/components'\nimport Taro from '@tarojs/taro'\nimport * as React from 'react'\n\n// 添加类型定义\ntype TaroScrollView = React.ElementRef<typeof ScrollView>\ntype TaroView = React.ElementRef<typeof View>\n\nexport interface PickerGroupProps {\n mode?: 'basic' | 'time' | 'date' | 'region'\n range: any[]\n rangeKey?: string\n columnId: string\n updateIndex: (index: number, columnId: string, needRevise?: boolean, isUserBeginScroll?: boolean) => void // 替换updateHeight\n onColumnChange?: (e: { columnId: string, index: number }) => void // 修改回调参数名称\n updateDay?: (value: number, fields: number) => void\n selectedIndex?: number // 添加selectedIndex参数\n _updateTrigger?: any // 仅用于强制触发更新\n colors?: {\n itemDefaultColor?: string // 选项字体默认颜色\n itemSelectedColor?: string // 选项字体选中颜色\n lineColor?: string // 选中指示线颜色\n }\n}\n\n// 定义常量\nconst PICKER_LINE_HEIGHT = 34 // px\nconst PICKER_VISIBLE_ITEMS = 7 // 可见行数\nconst PICKER_BLANK_ITEMS = 3 // 空白行数\n\nconst getIndicatorStyle = (lineColor: string): React.CSSProperties => {\n return {\n borderTopColor: lineColor,\n borderBottomColor: lineColor\n }\n}\n\n// 辅助函数:计算 lengthScaleRatio\nconst calculateLengthScaleRatio = (res: Taro.getSystemInfo.Result): number => {\n let lengthScaleRatio = (res as any)?.lengthScaleRatio\n if (lengthScaleRatio == null || lengthScaleRatio === 0) {\n console.warn('Taro.getSystemInfo: lengthScaleRatio 不存在,使用计算值')\n lengthScaleRatio = 1\n if (res.windowWidth < 320) {\n lengthScaleRatio = res.windowWidth / 320\n } else if (res.windowWidth >= 400 && res.windowWidth < 600) {\n lengthScaleRatio = res.windowWidth / 400\n }\n const shortSide = res.windowWidth < res.windowHeight ? res.windowWidth : res.windowHeight\n const isBigScreen = shortSide >= 600\n if (isBigScreen) {\n lengthScaleRatio = shortSide / 720\n }\n }\n return lengthScaleRatio\n}\n\n// 辅助函数:获取系统信息的 lengthScaleRatio 并设置 targetScrollTop\nconst setTargetScrollTopWithScale = (\n setTargetScrollTop: (value: number) => void,\n baseValue: number,\n randomOffset?: number,\n lengthScaleRatio: number = 1,\n) => {\n // H5 和 weapp 不参与放大计算,直接使用 baseValue\n if (process.env.TARO_ENV === 'h5' || process.env.TARO_ENV === 'weapp') {\n const finalValue = randomOffset !== undefined ? baseValue + randomOffset : baseValue\n setTargetScrollTop(finalValue)\n return\n }\n\n if (process.env.TARO_PLATFORM === 'harmony') {\n const scaledValue = baseValue\n const finalValue = randomOffset !== undefined ? scaledValue + randomOffset : scaledValue\n setTargetScrollTop(finalValue)\n } else {\n const scaledValue = baseValue * lengthScaleRatio\n const finalValue = randomOffset !== undefined ? scaledValue + randomOffset : scaledValue\n setTargetScrollTop(finalValue)\n }\n}\n\nexport function PickerGroupBasic(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n onColumnChange,\n selectedIndex = 0, // 使用selectedIndex参数,默认为0\n colors = {},\n } = props\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const itemRefs = React.useRef<Array<TaroView | null>>([])\n // 使用selectedIndex初始化当前索引\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n // 触摸状态用于优化用户体验\n const [isTouching, setIsTouching] = React.useState(false)\n\n const lengthScaleRatioRef = React.useRef(1)\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n\n // 初始化时计算 lengthScaleRatio\n React.useEffect(() => {\n Taro.getSystemInfo({\n success: (res) => {\n lengthScaleRatioRef.current = calculateLengthScaleRatio(res)\n },\n fail: () => {\n // 失败时使用默认值 1\n lengthScaleRatioRef.current = 1\n }\n })\n }, [])\n\n React.useEffect(() => {\n if (process.env.TARO_PLATFORM === 'harmony') {\n itemHeightRef.current = PICKER_LINE_HEIGHT * lengthScaleRatioRef.current\n } else {\n if (scrollViewRef.current && scrollViewRef.current?.scrollHeight) {\n itemHeightRef.current = scrollViewRef.current.scrollHeight / scrollViewRef.current.childNodes.length\n } else {\n console.warn('Height measurement anomaly')\n }\n }\n }, [range.length]) // 只在range长度变化时重新计算\n // 获取选中的索引\n const getSelectedIndex = (scrollTop: number) => {\n return Math.round(scrollTop / itemHeightRef.current)\n }\n\n // 当selectedIndex变化时,调整滚动位置\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouching) {\n const baseValue = selectedIndex * itemHeightRef.current\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, undefined, lengthScaleRatioRef.current)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range])\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n // 简化为直接在滚动结束时通知父组件\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 做一个0.1s延时 0.1s之内没有新的滑动 则把选项归到中间 然后更新选中项\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n\n setIsTouching(false)\n const baseValue = newIndex * itemHeightRef.current\n const randomOffset = Math.random() * 0.001 // 随机数为了在一个项内滚动时强制刷新\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n updateIndex(newIndex, columnId)\n onColumnChange?.({ columnId, index: newIndex })\n isCenterTimerId.current = null\n }, 100)\n }\n // 滚动处理 - 在滚动时计算索引然后更新选中项样式\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ref={(el) => (itemRefs.current[index] = el)}\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n return (\n <View className=\"taro-picker__group\">\n <View className=\"taro-picker__mask\" />\n <View\n className=\"taro-picker__indicator\"\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n style={{\n height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS,\n }}\n scrollTop={targetScrollTop}\n onScroll={handleScroll}\n onTouchStart={() => setIsTouching(true)}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 时间选择器实现\nexport function PickerGroupTime(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n selectedIndex = 0,\n colors = {},\n } = props\n\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const itemRefs = React.useRef<Array<TaroView | null>>([])\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const [isTouching, setIsTouching] = React.useState(false)\n\n const lengthScaleRatioRef = React.useRef(1)\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n\n // 初始化时计算 lengthScaleRatio\n React.useEffect(() => {\n Taro.getSystemInfo({\n success: (res) => {\n lengthScaleRatioRef.current = calculateLengthScaleRatio(res)\n },\n fail: () => {\n // 失败时使用默认值 1\n lengthScaleRatioRef.current = 1\n }\n })\n }, [])\n\n React.useEffect(() => {\n if (process.env.TARO_PLATFORM === 'harmony') {\n itemHeightRef.current = PICKER_LINE_HEIGHT * lengthScaleRatioRef.current\n } else {\n if (scrollViewRef.current && scrollViewRef.current?.scrollHeight) {\n itemHeightRef.current = scrollViewRef.current.scrollHeight / scrollViewRef.current.childNodes.length\n } else {\n console.warn('Height measurement anomaly')\n }\n }\n }, [range.length]) // 只在range长度变化时重新计算\n\n const getSelectedIndex = (scrollTop: number) => {\n return Math.round(scrollTop / itemHeightRef.current)\n }\n\n // 当selectedIndex变化时,调整滚动位置\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouching) {\n const baseValue = selectedIndex * itemHeightRef.current\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, undefined, lengthScaleRatioRef.current)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range])\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n\n // 简化为直接在滚动结束时通知父组件\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 做一个0.1s延时 0.1s之内没有新的滑动 则把选项归到中间 然后更新选中项\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n setIsTouching(false)\n // 调用updateIndex执行限位逻辑,获取是否触发了限位\n const isLimited = Boolean(updateIndex(newIndex, columnId, true))\n // 如果没有触发限位,才执行归中逻辑\n if (!isLimited) {\n const baseValue = newIndex * itemHeightRef.current\n const randomOffset = Math.random() * 0.001\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n }\n isCenterTimerId.current = null\n }, 100)\n }\n\n // 滚动处理\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ref={(el) => (itemRefs.current[index] = el)}\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n return (\n <View className=\"taro-picker__group\">\n <View className=\"taro-picker__mask\" />\n <View\n className=\"taro-picker__indicator\"\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n style={{\n height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS,\n }}\n scrollTop={targetScrollTop}\n onScroll={handleScroll}\n onTouchStart={() => setIsTouching(true)}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 日期选择器实现\nexport function PickerGroupDate(props: PickerGroupProps) {\n const {\n range = [],\n columnId,\n updateDay,\n selectedIndex = 0,\n colors = {},\n } = props\n\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const [isTouching, setIsTouching] = React.useState(false)\n\n const lengthScaleRatioRef = React.useRef(1)\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n\n // 初始化时计算 lengthScaleRatio\n React.useEffect(() => {\n Taro.getSystemInfo({\n success: (res) => {\n lengthScaleRatioRef.current = calculateLengthScaleRatio(res)\n },\n fail: () => {\n // 失败时使用默认值 1\n lengthScaleRatioRef.current = 1\n }\n })\n }, [])\n\n React.useEffect(() => {\n if (process.env.TARO_PLATFORM === 'harmony') {\n itemHeightRef.current = PICKER_LINE_HEIGHT * lengthScaleRatioRef.current\n } else {\n if (scrollViewRef.current && scrollViewRef.current?.scrollHeight) {\n itemHeightRef.current = scrollViewRef.current.scrollHeight / scrollViewRef.current.childNodes.length\n } else {\n console.warn('Height measurement anomaly')\n }\n }\n }, [range.length]) // 只在range长度变化时重新计算\n\n const getSelectedIndex = (scrollTop: number) => {\n return Math.round(scrollTop / itemHeightRef.current)\n }\n\n // 当selectedIndex变化时,调整滚动位置\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouching) {\n const baseValue = selectedIndex * itemHeightRef.current\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, undefined, lengthScaleRatioRef.current)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range])\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n\n // 简化为直接在滚动结束时通知父组件\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n\n // 做一个0.1s延时 0.1s之内没有新的滑动 则把选项归到中间 然后更新选中项\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n\n setIsTouching(false)\n const baseValue = newIndex * itemHeightRef.current\n const randomOffset = Math.random() * 0.001 // 随机数为了在一个项内滚动时强制刷新\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n\n // 更新日期值\n if (updateDay) {\n // 解析文本中的数字(移除年、月、日等后缀)\n const valueText = range[newIndex] || ''\n const numericValue = parseInt(valueText.replace(/[^0-9]/g, ''))\n updateDay(isNaN(numericValue) ? 0 : numericValue, parseInt(columnId))\n }\n isCenterTimerId.current = null\n }, 100)\n }\n\n // 滚动处理\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {item}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n return (\n <View className=\"taro-picker__group\">\n <View className=\"taro-picker__mask\" />\n <View\n className=\"taro-picker__indicator\"\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n style={{ height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS }}\n scrollTop={targetScrollTop}\n onScroll={handleScroll}\n onTouchStart={() => setIsTouching(true)}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 地区选择器实现\nexport function PickerGroupRegion(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n selectedIndex = 0, // 使用selectedIndex参数,默认为0\n colors = {},\n } = props\n\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const scrollViewRef = React.useRef<any>(null)\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const [isTouching, setIsTouching] = React.useState(false)\n\n const lengthScaleRatioRef = React.useRef(1)\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n const isUserBeginScrollRef = React.useRef(false)\n\n // 初始化时计算 lengthScaleRatio\n React.useEffect(() => {\n Taro.getSystemInfo({\n success: (res) => {\n lengthScaleRatioRef.current = calculateLengthScaleRatio(res)\n },\n fail: () => {\n // 失败时使用默认值 1\n lengthScaleRatioRef.current = 1\n }\n })\n }, [])\n\n React.useEffect(() => {\n if (process.env.TARO_PLATFORM === 'harmony') {\n itemHeightRef.current = PICKER_LINE_HEIGHT * lengthScaleRatioRef.current\n } else {\n if (scrollViewRef.current && scrollViewRef.current?.scrollHeight) {\n itemHeightRef.current = scrollViewRef.current.scrollHeight / scrollViewRef.current.childNodes.length\n } else {\n console.warn('Height measurement anomaly')\n }\n }\n }, [range.length]) // 只在range长度变化时重新计算\n\n const getSelectedIndex = (scrollTop: number) => {\n return Math.round(scrollTop / itemHeightRef.current)\n }\n\n // 当selectedIndex变化时,调整滚动位置\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouching) {\n const baseValue = selectedIndex * itemHeightRef.current\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range])\n\n // 滚动结束处理\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 做一个0.1s延时 0.1s之内没有新的滑动 则把选项归到中间 然后更新选中项\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n\n setIsTouching(false)\n const baseValue = newIndex * itemHeightRef.current\n const randomOffset = Math.random() * 0.001 // 随机数为了在一个项内滚动时强制刷新\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n updateIndex(newIndex, columnId, false, isUserBeginScrollRef.current)\n }, 100)\n }\n\n // 滚动处理 - 在滚动时计算索引\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n return (\n <View className=\"taro-picker__group\">\n <View className=\"taro-picker__mask\" />\n <View\n className=\"taro-picker__indicator\"\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n style={{ height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS }}\n scrollTop={targetScrollTop}\n onScroll={handleScroll}\n onTouchStart={() => {\n setIsTouching(true)\n isUserBeginScrollRef.current = true\n }}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 默认导出,根据 mode 自动分发\nexport function PickerGroup(props: PickerGroupProps) {\n switch (props.mode) {\n case 'time':\n return <PickerGroupTime {...props} />\n case 'date':\n return <PickerGroupDate {...props} />\n case 'region':\n return <PickerGroupRegion {...props} />\n default:\n return <PickerGroupBasic {...props} />\n }\n}\n"],"names":["PICKER_LINE_HEIGHT","PICKER_VISIBLE_ITEMS","PICKER_BLANK_ITEMS","getIndicatorStyle","lineColor","borderTopColor","borderBottomColor","calculateLengthScaleRatio","res","lengthScaleRatio","console","warn","windowWidth","shortSide","windowHeight","isBigScreen","setTargetScrollTopWithScale","setTargetScrollTop","baseValue","randomOffset","arguments","length","undefined","process","env","TARO_ENV","finalValue","TARO_PLATFORM","scaledValue","PickerGroupBasic","props","range","rangeKey","columnId","updateIndex","onColumnChange","selectedIndex","colors","indicatorStyle","targetScrollTop","React","useState","scrollViewRef","useRef","itemRefs","currentIndex","setCurrentIndex","isTouching","setIsTouching","lengthScaleRatioRef","itemHeightRef","useEffect","Taro","getSystemInfo","success","current","fail","_a","scrollHeight","childNodes","getSelectedIndex","scrollTop","Math","round","isCenterTimerId","handleScrollEnd","clearTimeout","setTimeout","newIndex","random","index","handleScroll","pickerItem","map","item","content","_jsx","View","id","ref","el","className","style","height","color","itemSelectedColor","itemDefaultColor","children","realPickerItems","Array","fill","_","idx","_jsxs","ScrollView","scrollY","showScrollbar","onScroll","onTouchStart","onScrollEnd","scrollWithAnimation","PickerGroupTime","isLimited","Boolean","PickerGroupDate","updateDay","valueText","numericValue","parseInt","replace","isNaN","PickerGroupRegion","isUserBeginScrollRef","PickerGroup","mode"],"mappings":"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"}
1
+ {"version":3,"file":"picker-group.js","sources":["../../../src/components/picker/picker-group.tsx"],"sourcesContent":["import { ScrollView, View } from '@tarojs/components'\nimport Taro from '@tarojs/taro'\nimport * as React from 'react'\n\n// 添加类型定义\ntype TaroScrollView = React.ElementRef<typeof ScrollView>\ntype TaroView = React.ElementRef<typeof View>\n\nexport interface PickerGroupProps {\n mode?: 'basic' | 'time' | 'date' | 'region'\n range: any[]\n rangeKey?: string\n columnId: string\n updateIndex: (index: number, columnId: string, needRevise?: boolean, isUserBeginScroll?: boolean) => void // 替换updateHeight\n onColumnChange?: (e: { columnId: string, index: number }) => void // 修改回调参数名称\n updateDay?: (value: number, fields: number) => void\n selectedIndex?: number // 添加selectedIndex参数\n _updateTrigger?: any // 仅用于强制触发更新\n colors?: {\n itemDefaultColor?: string // 选项字体默认颜色\n itemSelectedColor?: string // 选项字体选中颜色\n lineColor?: string // 选中指示线颜色\n }\n}\n\n// 定义常量\nconst PICKER_LINE_HEIGHT = 34 // px\nconst PICKER_VISIBLE_ITEMS = 7 // 可见行数\nconst PICKER_BLANK_ITEMS = 3 // 空白行数\n\nconst getIndicatorStyle = (lineColor: string): React.CSSProperties => {\n return {\n borderTopColor: lineColor,\n borderBottomColor: lineColor\n }\n}\n\n// 辅助函数:获取系统信息的 lengthScaleRatio 并设置 targetScrollTop\nconst setTargetScrollTopWithScale = (\n setTargetScrollTop: (value: number) => void,\n baseValue: number,\n randomOffset?: number\n) => {\n // H5 和 weapp 不参与放大计算,直接使用 baseValue\n if (process.env.TARO_ENV === 'h5' || process.env.TARO_ENV === 'weapp') {\n const finalValue = randomOffset !== undefined ? baseValue + randomOffset : baseValue\n setTargetScrollTop(finalValue)\n return\n }\n\n Taro.getSystemInfo({\n success: (res) => {\n let lengthScaleRatio = (res as any)?.lengthScaleRatio\n if (lengthScaleRatio == null || lengthScaleRatio === 0) {\n console.warn('Taro.getSystemInfo: lengthScaleRatio 不存在,使用计算值')\n lengthScaleRatio = 1\n if (res.windowWidth < 320) {\n lengthScaleRatio = res.windowWidth / 320\n } else if (res.windowWidth >= 400 && res.windowWidth < 600) {\n lengthScaleRatio = res.windowWidth / 400\n }\n const shortSide = res.windowWidth < res.windowHeight ? res.windowWidth : res.windowHeight\n const isBigScreen = shortSide >= 600\n if (isBigScreen) {\n lengthScaleRatio = shortSide / 720\n }\n }\n const scaledValue = baseValue * lengthScaleRatio\n const finalValue = randomOffset !== undefined ? scaledValue + randomOffset : scaledValue\n setTargetScrollTop(finalValue)\n },\n fail: (err) => {\n console.error('获取系统信息失败:', err)\n // 失败时使用默认值 1\n const finalValue = randomOffset !== undefined ? baseValue + randomOffset : baseValue\n setTargetScrollTop(finalValue)\n }\n })\n}\n\nexport function PickerGroupBasic(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n onColumnChange,\n selectedIndex = 0, // 使用selectedIndex参数,默认为0\n colors = {},\n } = props\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const itemRefs = React.useRef<Array<TaroView | null>>([])\n // 使用selectedIndex初始化当前索引\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n // 触摸状态用于优化用户体验\n const [isTouching, setIsTouching] = React.useState(false)\n\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n React.useEffect(() => {\n if (process.env.TARO_PLATFORM !== 'harmony') {\n if (scrollViewRef.current && scrollViewRef.current?.scrollHeight) {\n itemHeightRef.current = scrollViewRef.current.scrollHeight / scrollViewRef.current.childNodes.length\n } else {\n console.warn('Height measurement anomaly')\n }\n }\n }, [range.length]) // 只在range长度变化时重新计算\n // 获取选中的索引\n const getSelectedIndex = (scrollTop: number) => {\n return Math.round(scrollTop / itemHeightRef.current)\n }\n\n // 当selectedIndex变化时,调整滚动位置\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouching) {\n const baseValue = selectedIndex * itemHeightRef.current\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range])\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n // 简化为直接在滚动结束时通知父组件\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 做一个0.1s延时 0.1s之内没有新的滑动 则把选项归到中间 然后更新选中项\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n\n setIsTouching(false)\n const baseValue = newIndex * itemHeightRef.current\n const randomOffset = Math.random() * 0.001 // 随机数为了在一个项内滚动时强制刷新\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset)\n updateIndex(newIndex, columnId)\n onColumnChange?.({ columnId, index: newIndex })\n isCenterTimerId.current = null\n }, 100)\n }\n // 滚动处理 - 在滚动时计算索引然后更新选中项样式\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ref={(el) => (itemRefs.current[index] = el)}\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n return (\n <View className=\"taro-picker__group\">\n <View className=\"taro-picker__mask\" />\n <View\n className=\"taro-picker__indicator\"\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n style={{\n height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS,\n }}\n scrollTop={targetScrollTop}\n onScroll={handleScroll}\n onTouchStart={() => setIsTouching(true)}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 时间选择器实现\nexport function PickerGroupTime(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n selectedIndex = 0,\n colors = {},\n } = props\n\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const itemRefs = React.useRef<Array<TaroView | null>>([])\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const [isTouching, setIsTouching] = React.useState(false)\n\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n React.useEffect(() => {\n if (process.env.TARO_PLATFORM !== 'harmony') {\n if (scrollViewRef.current && scrollViewRef.current?.scrollHeight) {\n itemHeightRef.current = scrollViewRef.current.scrollHeight / scrollViewRef.current.childNodes.length\n } else {\n console.warn('Height measurement anomaly')\n }\n }\n }, [range.length]) // 只在range长度变化时重新计算\n\n const getSelectedIndex = (scrollTop: number) => {\n return Math.round(scrollTop / itemHeightRef.current)\n }\n\n // 当selectedIndex变化时,调整滚动位置\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouching) {\n const baseValue = selectedIndex * itemHeightRef.current\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range])\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n\n // 简化为直接在滚动结束时通知父组件\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 做一个0.1s延时 0.1s之内没有新的滑动 则把选项归到中间 然后更新选中项\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n setIsTouching(false)\n // 调用updateIndex执行限位逻辑,获取是否触发了限位\n const isLimited = Boolean(updateIndex(newIndex, columnId, true))\n // 如果没有触发限位,才执行归中逻辑\n if (!isLimited) {\n const baseValue = newIndex * itemHeightRef.current\n const randomOffset = Math.random() * 0.001\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset)\n }\n isCenterTimerId.current = null\n }, 100)\n }\n\n // 滚动处理\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ref={(el) => (itemRefs.current[index] = el)}\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n return (\n <View className=\"taro-picker__group\">\n <View className=\"taro-picker__mask\" />\n <View\n className=\"taro-picker__indicator\"\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n style={{\n height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS,\n }}\n scrollTop={targetScrollTop}\n onScroll={handleScroll}\n onTouchStart={() => setIsTouching(true)}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 日期选择器实现\nexport function PickerGroupDate(props: PickerGroupProps) {\n const {\n range = [],\n columnId,\n updateDay,\n selectedIndex = 0,\n colors = {},\n } = props\n\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const [isTouching, setIsTouching] = React.useState(false)\n\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n React.useEffect(() => {\n if (process.env.TARO_PLATFORM !== 'harmony') {\n if (scrollViewRef.current && scrollViewRef.current?.scrollHeight) {\n itemHeightRef.current = scrollViewRef.current.scrollHeight / scrollViewRef.current.childNodes.length\n } else {\n console.warn('Height measurement anomaly')\n }\n }\n }, [range.length]) // 只在range长度变化时重新计算\n\n const getSelectedIndex = (scrollTop: number) => {\n return Math.round(scrollTop / itemHeightRef.current)\n }\n\n // 当selectedIndex变化时,调整滚动位置\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouching) {\n const baseValue = selectedIndex * itemHeightRef.current\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range])\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n\n // 简化为直接在滚动结束时通知父组件\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n\n // 做一个0.1s延时 0.1s之内没有新的滑动 则把选项归到中间 然后更新选中项\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n\n setIsTouching(false)\n const baseValue = newIndex * itemHeightRef.current\n const randomOffset = Math.random() * 0.001 // 随机数为了在一个项内滚动时强制刷新\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset)\n\n // 更新日期值\n if (updateDay) {\n // 解析文本中的数字(移除年、月、日等后缀)\n const valueText = range[newIndex] || ''\n const numericValue = parseInt(valueText.replace(/[^0-9]/g, ''))\n updateDay(isNaN(numericValue) ? 0 : numericValue, parseInt(columnId))\n }\n isCenterTimerId.current = null\n }, 100)\n }\n\n // 滚动处理\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {item}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n return (\n <View className=\"taro-picker__group\">\n <View className=\"taro-picker__mask\" />\n <View\n className=\"taro-picker__indicator\"\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n style={{ height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS }}\n scrollTop={targetScrollTop}\n onScroll={handleScroll}\n onTouchStart={() => setIsTouching(true)}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 地区选择器实现\nexport function PickerGroupRegion(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n selectedIndex = 0, // 使用selectedIndex参数,默认为0\n colors = {},\n } = props\n\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const scrollViewRef = React.useRef<any>(null)\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const [isTouching, setIsTouching] = React.useState(false)\n\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n const isUserBeginScrollRef = React.useRef(false)\n React.useEffect(() => {\n if (process.env.TARO_PLATFORM !== 'harmony') {\n if (scrollViewRef.current && scrollViewRef.current?.scrollHeight) {\n itemHeightRef.current = scrollViewRef.current.scrollHeight / scrollViewRef.current.childNodes.length\n } else {\n console.warn('Height measurement anomaly')\n }\n }\n }, [range.length]) // 只在range长度变化时重新计算\n\n const getSelectedIndex = (scrollTop: number) => {\n return Math.round(scrollTop / itemHeightRef.current)\n }\n\n // 当selectedIndex变化时,调整滚动位置\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouching) {\n const baseValue = selectedIndex * itemHeightRef.current\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range])\n\n // 滚动结束处理\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 做一个0.1s延时 0.1s之内没有新的滑动 则把选项归到中间 然后更新选中项\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n\n setIsTouching(false)\n const baseValue = newIndex * itemHeightRef.current\n const randomOffset = Math.random() * 0.001 // 随机数为了在一个项内滚动时强制刷新\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset)\n updateIndex(newIndex, columnId, false, isUserBeginScrollRef.current)\n }, 100)\n }\n\n // 滚动处理 - 在滚动时计算索引\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n return (\n <View className=\"taro-picker__group\">\n <View className=\"taro-picker__mask\" />\n <View\n className=\"taro-picker__indicator\"\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n style={{ height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS }}\n scrollTop={targetScrollTop}\n onScroll={handleScroll}\n onTouchStart={() => {\n setIsTouching(true)\n isUserBeginScrollRef.current = true\n }}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 默认导出,根据 mode 自动分发\nexport function PickerGroup(props: PickerGroupProps) {\n switch (props.mode) {\n case 'time':\n return <PickerGroupTime {...props} />\n case 'date':\n return <PickerGroupDate {...props} />\n case 'region':\n return <PickerGroupRegion {...props} />\n default:\n return <PickerGroupBasic {...props} />\n }\n}\n"],"names":["PICKER_LINE_HEIGHT","PICKER_VISIBLE_ITEMS","PICKER_BLANK_ITEMS","getIndicatorStyle","lineColor","borderTopColor","borderBottomColor","setTargetScrollTopWithScale","setTargetScrollTop","baseValue","randomOffset","process","env","TARO_ENV","finalValue","undefined","Taro","getSystemInfo","success","res","lengthScaleRatio","console","warn","windowWidth","shortSide","windowHeight","isBigScreen","scaledValue","fail","err","error","PickerGroupBasic","props","range","rangeKey","columnId","updateIndex","onColumnChange","selectedIndex","colors","indicatorStyle","targetScrollTop","React","useState","scrollViewRef","useRef","itemRefs","currentIndex","setCurrentIndex","isTouching","setIsTouching","itemHeightRef","useEffect","TARO_PLATFORM","current","_a","scrollHeight","childNodes","length","getSelectedIndex","scrollTop","Math","round","isCenterTimerId","handleScrollEnd","clearTimeout","setTimeout","newIndex","random","index","handleScroll","pickerItem","map","item","content","_jsx","View","id","ref","el","className","style","height","color","itemSelectedColor","itemDefaultColor","children","realPickerItems","Array","fill","_","idx","_jsxs","ScrollView","scrollY","showScrollbar","onScroll","onTouchStart","onScrollEnd","scrollWithAnimation","PickerGroupTime","isLimited","Boolean","PickerGroupDate","updateDay","valueText","numericValue","parseInt","replace","isNaN","PickerGroupRegion","isUserBeginScrollRef","PickerGroup","mode"],"mappings":"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"}