From 00a96d6881dd10ae7d3c4f5437bfceaabe677723 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期四, 14 十一月 2024 10:55:29 +0800
Subject: [PATCH] bug修复

---
 miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.js |   36 ++++++++++++++++++------------------
 1 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.js b/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.js
index 584e520..78c6519 100644
--- a/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.js
+++ b/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.js
@@ -9,10 +9,7 @@
 import props from './props';
 const { prefix } = config;
 const name = `${prefix}-picker-item`;
-const itemHeight = 80;
 const DefaultDuration = 240;
-const { windowWidth } = wx.getSystemInfoSync();
-const rpx2px = (rpx) => Math.floor((windowWidth * rpx) / 750);
 const range = function (num, min, max) {
     return Math.min(Math.max(num, min), max);
 };
@@ -47,8 +44,15 @@
             duration: 0,
             value: '',
             curIndex: 0,
+            columnIndex: 0,
             labelAlias: 'label',
             valueAlias: 'value',
+        };
+        this.lifetimes = {
+            created() {
+                this.StartY = 0;
+                this.StartOffset = 0;
+            },
         };
         this.methods = {
             onTouchStart(event) {
@@ -57,24 +61,25 @@
                 this.setData({ duration: 0 });
             },
             onTouchMove(event) {
-                const { StartY, StartOffset, itemHeight } = this;
+                const { pickItemHeight } = this.data;
+                const { StartY, StartOffset } = this;
                 const touchDeltaY = event.touches[0].clientY - StartY;
-                const deltaY = this.calculateViewDeltaY(touchDeltaY);
+                const deltaY = this.calculateViewDeltaY(touchDeltaY, pickItemHeight);
                 this.setData({
-                    offset: range(StartOffset + deltaY, -(this.getCount() * itemHeight), 0),
+                    offset: range(StartOffset + deltaY, -(this.getCount() * pickItemHeight), 0),
                     duration: DefaultDuration,
                 });
             },
             onTouchEnd() {
-                const { offset, labelAlias, valueAlias } = this.data;
+                const { offset, labelAlias, valueAlias, columnIndex, pickItemHeight } = this.data;
                 const { options } = this.properties;
                 if (offset === this.StartOffset) {
                     return;
                 }
-                const index = range(Math.round(-offset / this.itemHeight), 0, this.getCount() - 1);
+                const index = range(Math.round(-offset / pickItemHeight), 0, this.getCount() - 1);
                 this.setData({
                     curIndex: index,
-                    offset: -index * this.itemHeight,
+                    offset: -index * pickItemHeight,
                 });
                 if (index === this._selectedIndex) {
                     return;
@@ -86,17 +91,17 @@
                     this._selectedLabel = (_b = options[index]) === null || _b === void 0 ? void 0 : _b[labelAlias];
                     (_c = this.$parent) === null || _c === void 0 ? void 0 : _c.triggerColumnChange({
                         index,
-                        column: this.columnIndex || 0,
+                        column: columnIndex,
                     });
                 });
             },
             update() {
                 var _a, _b;
-                const { options, value, labelAlias, valueAlias } = this.data;
+                const { options, value, labelAlias, valueAlias, pickItemHeight } = this.data;
                 const index = options.findIndex((item) => item[valueAlias] === value);
                 const selectedIndex = index > 0 ? index : 0;
                 this.setData({
-                    offset: -selectedIndex * this.itemHeight,
+                    offset: -selectedIndex * pickItemHeight,
                     curIndex: selectedIndex,
                 });
                 this._selectedIndex = selectedIndex;
@@ -112,13 +117,8 @@
             },
         };
     }
-    calculateViewDeltaY(touchDeltaY) {
+    calculateViewDeltaY(touchDeltaY, itemHeight) {
         return Math.abs(touchDeltaY) > itemHeight ? 1.2 * touchDeltaY : touchDeltaY;
-    }
-    created() {
-        this.StartY = 0;
-        this.StartOffset = 0;
-        this.itemHeight = rpx2px(itemHeight);
     }
 };
 PickerItem = __decorate([

--
Gitblit v1.9.3