提交
This commit is contained in:
147
甲情_甲意/miniprogram/node_modules/antd-mini/es/Rate/index.js
generated
vendored
Normal file
147
甲情_甲意/miniprogram/node_modules/antd-mini/es/Rate/index.js
generated
vendored
Normal file
@ -0,0 +1,147 @@
|
||||
import { __assign, __awaiter, __generator } from "tslib";
|
||||
import { Component, triggerEvent, getValueFromProps } from '../_util/simply';
|
||||
import { RateDefaultProps } from './props';
|
||||
import createValue from '../mixins/value';
|
||||
import { getInstanceBoundingClientRect } from '../_util/jsapi/get-instance-bounding-client-rect';
|
||||
Component(RateDefaultProps, {
|
||||
getInstance: function () {
|
||||
if (this.$id) {
|
||||
return my;
|
||||
}
|
||||
return this;
|
||||
},
|
||||
getRate: function (clientX) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var _a, gutter, count, allowHalf, _b, left, width, halfRateWidth, num, halfRateCount, val, rate;
|
||||
return __generator(this, function (_c) {
|
||||
switch (_c.label) {
|
||||
case 0:
|
||||
_a = getValueFromProps(this, [
|
||||
'gutter',
|
||||
'count',
|
||||
'allowHalf',
|
||||
]), gutter = _a[0], count = _a[1], allowHalf = _a[2];
|
||||
return [4 /*yield*/, getInstanceBoundingClientRect(this.getInstance(), "#ant-rate-container".concat(this.$id ? "-".concat(this.$id) : ''))];
|
||||
case 1:
|
||||
_b = _c.sent(), left = _b.left, width = _b.width;
|
||||
halfRateWidth = (width - (count - 1) * gutter) / count / 2;
|
||||
num = clientX - left;
|
||||
halfRateCount = 0;
|
||||
/* eslint-disable no-constant-condition */
|
||||
while (true) {
|
||||
val = halfRateWidth * halfRateCount +
|
||||
gutter * Math.floor(halfRateCount / 2);
|
||||
if (halfRateCount >= count * 2 || num <= val) {
|
||||
break;
|
||||
}
|
||||
halfRateCount++;
|
||||
}
|
||||
rate = allowHalf
|
||||
? halfRateCount * 0.5
|
||||
: Math.ceil(halfRateCount * 0.5);
|
||||
return [2 /*return*/, rate];
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
handleStarTap: function (e) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var _a, readonly, allowClear, _b, clientX, x, clickX, rateValue, rate;
|
||||
return __generator(this, function (_c) {
|
||||
switch (_c.label) {
|
||||
case 0:
|
||||
_a = getValueFromProps(this, [
|
||||
'readonly',
|
||||
'allowClear',
|
||||
]), readonly = _a[0], allowClear = _a[1];
|
||||
if (readonly) {
|
||||
return [2 /*return*/];
|
||||
}
|
||||
_b = e.detail, clientX = _b.clientX, x = _b.x;
|
||||
clickX = typeof x === 'number' ? x : clientX;
|
||||
rateValue = this.getValue();
|
||||
return [4 /*yield*/, this.getRate(clickX)];
|
||||
case 1:
|
||||
rate = _c.sent();
|
||||
if (rateValue === rate && allowClear) {
|
||||
rate = 0;
|
||||
}
|
||||
if (!this.isControlled()) {
|
||||
this.update(rate);
|
||||
}
|
||||
if (rateValue !== rate) {
|
||||
triggerEvent(this, 'change', rate);
|
||||
}
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
handleStarMove: function (e) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var readonly, touches, clientX, rate;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
readonly = getValueFromProps(this, ['readonly'])[0];
|
||||
if (readonly) {
|
||||
return [2 /*return*/];
|
||||
}
|
||||
touches = e.touches;
|
||||
clientX = touches[0].clientX;
|
||||
if (!this.moveRate) {
|
||||
this.moveRate = {
|
||||
originalRate: this.getValue(),
|
||||
};
|
||||
}
|
||||
return [4 /*yield*/, this.getRate(clientX)];
|
||||
case 1:
|
||||
rate = _a.sent();
|
||||
if (this.moveRate) {
|
||||
this.moveRate = __assign(__assign({}, this.moveRate), { currentRate: rate });
|
||||
if (this.isControlled()) {
|
||||
this.setData({ displayValue: rate });
|
||||
}
|
||||
else {
|
||||
this.update(rate);
|
||||
}
|
||||
}
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
handleStarMoveEnd: function () {
|
||||
var readonly = getValueFromProps(this, 'readonly');
|
||||
if (readonly) {
|
||||
return;
|
||||
}
|
||||
if (!this.moveRate) {
|
||||
return;
|
||||
}
|
||||
var _a = this.moveRate, currentRate = _a.currentRate, originalRate = _a.originalRate;
|
||||
this.moveRate = null;
|
||||
if (this.isControlled()) {
|
||||
this.setData({ displayValue: null });
|
||||
}
|
||||
if (currentRate !== originalRate) {
|
||||
triggerEvent(this, 'change', currentRate);
|
||||
}
|
||||
},
|
||||
}, { displayValue: null }, [
|
||||
createValue({
|
||||
transformValue: function (value) {
|
||||
var allowHalf = getValueFromProps(this, 'allowHalf');
|
||||
if (allowHalf) {
|
||||
return {
|
||||
needUpdate: true,
|
||||
value: value % 0.5 !== 0 ? Math.round(value) : value,
|
||||
};
|
||||
}
|
||||
return {
|
||||
needUpdate: true,
|
||||
value: Math.ceil(value),
|
||||
};
|
||||
},
|
||||
}),
|
||||
]);
|
Reference in New Issue
Block a user