提交
This commit is contained in:
1
甲情_甲意/miniprogram/node_modules/antd-mini/es/Progress/index.acss
generated
vendored
Normal file
1
甲情_甲意/miniprogram/node_modules/antd-mini/es/Progress/index.acss
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
.ant-progress-line{display:flex;flex-direction:row;align-items:center}.ant-progress-line .ant-progress-outer{background-color:#f5f5f5;border-radius:50vh;height:8px;overflow:hidden;flex:1}.ant-progress-line .ant-progress-inner{border-radius:50vh;transition:width .3s;height:100%;position:relative;background-color:#1677ff}.ant-progress-line .ant-progress-inner-success{background-color:#22b35e}.ant-progress-line .ant-progress-inner-exception{background-color:#ff3141}.ant-progress-line .ant-progress-indicator{margin-left:8px;color:#999;font-size:13px;height:18.5px;display:flex;align-items:center}.ant-progress-line .ant-progress-status-icon-success{color:#22b35e}.ant-progress-line .ant-progress-status-icon-exception{color:#ff3141}.ant-progress-circle{position:relative}.ant-progress-circle>canvas{width:100%;height:100%}.ant-progress-circle .ant-progress-indicator{font-size:20px;color:#333;position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0);z-index:10}
|
35
甲情_甲意/miniprogram/node_modules/antd-mini/es/Progress/index.axml
generated
vendored
Normal file
35
甲情_甲意/miniprogram/node_modules/antd-mini/es/Progress/index.axml
generated
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
<view
|
||||
class="ant-progress ant-progress-{{type}} {{className || ''}}"
|
||||
style="{{style || ''}};{{type === 'circle' ? 'width:' + width + 'px;height:' + width + 'px;' : ''}}"
|
||||
>
|
||||
<canvas
|
||||
a:if="{{type === 'circle'}}"
|
||||
class="ant-progress-canvas"
|
||||
id="ant-progress-canvas-{{$id}}"
|
||||
width="{{canvasWidth}}"
|
||||
height="{{canvasWidth}}"
|
||||
></canvas>
|
||||
<view
|
||||
a:if="{{type === 'line'}}"
|
||||
class="ant-progress-outer"
|
||||
style="{{strokeWidth ? 'height:' + strokeWidth + 'px;' : ''}}{{trailColor ? 'background-color:' + trailColor : ''}}"
|
||||
>
|
||||
<view
|
||||
class="ant-progress-inner {{status === 'success' || status === 'exception' ? 'ant-progress-inner-' + status : ''}}"
|
||||
style="width: {{curProgress}}%; {{strokeColor ? 'background-color:' + strokeColor : ''}}"
|
||||
></view>
|
||||
</view>
|
||||
<view class="ant-progress-indicator">
|
||||
<slot
|
||||
name="indicator"
|
||||
percent="{{percent}}"
|
||||
>
|
||||
<ant-icon
|
||||
a:if="{{status === 'success' || status === 'exception'}}"
|
||||
type="{{status === 'success' ? 'CheckCircleFill' : 'CloseCircleFill'}}"
|
||||
className="ant-progress-status-icon ant-progress-status-icon-{{status}}"
|
||||
></ant-icon>
|
||||
<block a:else>{{percent}}%</block>
|
||||
</slot>
|
||||
</view>
|
||||
</view>
|
1
甲情_甲意/miniprogram/node_modules/antd-mini/es/Progress/index.d.ts
generated
vendored
Normal file
1
甲情_甲意/miniprogram/node_modules/antd-mini/es/Progress/index.d.ts
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
export {};
|
155
甲情_甲意/miniprogram/node_modules/antd-mini/es/Progress/index.js
generated
vendored
Normal file
155
甲情_甲意/miniprogram/node_modules/antd-mini/es/Progress/index.js
generated
vendored
Normal file
@ -0,0 +1,155 @@
|
||||
import { __awaiter, __generator } from "tslib";
|
||||
import deepEqual from 'fast-deep-equal';
|
||||
import { Component, getValueFromProps } from '../_util/simply';
|
||||
import { ProgressBarDefaultProps } from './props';
|
||||
import { createCanvasContext } from '../_util/jsapi/create-canvas-context';
|
||||
import { getSystemInfo } from '../_util/jsapi/get-system-info';
|
||||
var animationFrameDuration = 16;
|
||||
Component(ProgressBarDefaultProps, {
|
||||
requestAnimationFrame: function (fn, duration) {
|
||||
if (duration === void 0) { duration = animationFrameDuration; }
|
||||
setTimeout(fn, duration);
|
||||
},
|
||||
getDrawColor: function () {
|
||||
var _a = getValueFromProps(this, [
|
||||
'strokeColor',
|
||||
'trailColor',
|
||||
]), strokeColor = _a[0], trailColor = _a[1];
|
||||
var drawColor = {
|
||||
strokeColor: strokeColor || '#1677ff',
|
||||
trailColor: trailColor || '#F5F5F5',
|
||||
};
|
||||
return drawColor;
|
||||
},
|
||||
getCanvasContext: function () {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var systemInfo, pixelRatio, width, _a;
|
||||
return __generator(this, function (_b) {
|
||||
switch (_b.label) {
|
||||
case 0:
|
||||
if (this.ctx)
|
||||
return [2 /*return*/];
|
||||
return [4 /*yield*/, getSystemInfo()];
|
||||
case 1:
|
||||
systemInfo = _b.sent();
|
||||
pixelRatio = systemInfo.pixelRatio;
|
||||
width = getValueFromProps(this, 'width');
|
||||
_a = this;
|
||||
return [4 /*yield*/, createCanvasContext([this.canvasId, this])];
|
||||
case 2:
|
||||
_a.ctx = _b.sent();
|
||||
this.ctx.imageSmoothingEnabled = true;
|
||||
this.ctx.imageSmoothingQuality = 'high';
|
||||
this.setData({
|
||||
canvasWidth: width * pixelRatio,
|
||||
});
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
clearCanvas: function () {
|
||||
var ctx = this.ctx;
|
||||
var canvasWidth = this.data.canvasWidth;
|
||||
ctx.clearRect(0, 0, canvasWidth, canvasWidth);
|
||||
},
|
||||
updateCanvasProgress: function (prev) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var drawColor, curRad, targetRad, direction, draw;
|
||||
var _this = this;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
drawColor = this.getDrawColor();
|
||||
return [4 /*yield*/, this.getCanvasContext()];
|
||||
case 1:
|
||||
_a.sent();
|
||||
curRad = Math.floor((prev / 100) * 360);
|
||||
targetRad = Math.floor((this.data.curProgress / 100) * 360);
|
||||
direction = curRad < targetRad ? 1 : -1;
|
||||
draw = function () {
|
||||
if (curRad == targetRad)
|
||||
return;
|
||||
var _a = getValueFromProps(_this, [
|
||||
'speed',
|
||||
'animation',
|
||||
]), speed = _a[0], animation = _a[1];
|
||||
curRad = direction * speed + curRad;
|
||||
if (direction == -1) {
|
||||
curRad = Math.max(curRad, targetRad);
|
||||
}
|
||||
else {
|
||||
curRad = Math.min(curRad, targetRad);
|
||||
}
|
||||
_this.clearCanvas();
|
||||
_this.drawOrbit(drawColor.trailColor);
|
||||
_this.drawProgress(drawColor.strokeColor, curRad);
|
||||
_this.ctx.draw(true);
|
||||
_this.requestAnimationFrame(draw, animation ? animationFrameDuration : 0);
|
||||
};
|
||||
draw();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
drawProgress: function (color, rad) {
|
||||
var ctx = this.ctx;
|
||||
var canvasWidth = this.data.canvasWidth;
|
||||
var strokeWidth = Number(getValueFromProps(this, 'strokeWidth'));
|
||||
ctx.beginPath();
|
||||
ctx.strokeStyle = color;
|
||||
ctx.lineWidth = strokeWidth;
|
||||
ctx.setLineCap('round');
|
||||
ctx.arc(canvasWidth / 2, canvasWidth / 2, canvasWidth / 2 - strokeWidth, -Math.PI / 2, -Math.PI / 2 + (rad / 360) * 2 * Math.PI, false);
|
||||
ctx.stroke();
|
||||
},
|
||||
drawOrbit: function (color) {
|
||||
var ctx = this.ctx;
|
||||
var canvasWidth = this.data.canvasWidth;
|
||||
var strokeWidth = Number(getValueFromProps(this, 'strokeWidth'));
|
||||
ctx.beginPath();
|
||||
ctx.strokeStyle = color;
|
||||
ctx.lineWidth = strokeWidth;
|
||||
ctx.arc(canvasWidth / 2, canvasWidth / 2, canvasWidth / 2 - strokeWidth, 0, Math.PI * 2, false);
|
||||
ctx.stroke();
|
||||
},
|
||||
calProgress: function () {
|
||||
var _a = getValueFromProps(this, ['percent', 'type']), p = _a[0], type = _a[1];
|
||||
var percent = +p;
|
||||
if (isNaN(percent)) {
|
||||
return this.setData({ curProgress: 0 });
|
||||
}
|
||||
var prevProgress = this.data.curProgress;
|
||||
if (percent === prevProgress) {
|
||||
return;
|
||||
}
|
||||
this.setData({
|
||||
curProgress: percent > 100 ? 100 : percent < 0 ? 0 : percent,
|
||||
});
|
||||
if (type === 'circle') {
|
||||
this.setCanvasId();
|
||||
this.updateCanvasProgress(prevProgress);
|
||||
}
|
||||
},
|
||||
setCanvasId: function () {
|
||||
this.canvasId = this.$id
|
||||
? "ant-progress-canvas-".concat(this.$id)
|
||||
: "ant-progress-canvas";
|
||||
},
|
||||
}, {
|
||||
curProgress: 0,
|
||||
canvasWidth: 100,
|
||||
}, undefined, {
|
||||
ctx: null,
|
||||
drawColor: null,
|
||||
canvas: null,
|
||||
didMount: function () {
|
||||
this.calProgress();
|
||||
},
|
||||
didUpdate: function (prevProps) {
|
||||
if (deepEqual(this.props, prevProps))
|
||||
return;
|
||||
this.calProgress();
|
||||
},
|
||||
});
|
6
甲情_甲意/miniprogram/node_modules/antd-mini/es/Progress/index.json
generated
vendored
Normal file
6
甲情_甲意/miniprogram/node_modules/antd-mini/es/Progress/index.json
generated
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"ant-icon": "../Icon/index"
|
||||
}
|
||||
}
|
47
甲情_甲意/miniprogram/node_modules/antd-mini/es/Progress/props.d.ts
generated
vendored
Normal file
47
甲情_甲意/miniprogram/node_modules/antd-mini/es/Progress/props.d.ts
generated
vendored
Normal file
@ -0,0 +1,47 @@
|
||||
import { IBaseProps } from '../_util/base';
|
||||
/**
|
||||
* @description 弹窗,可在其中加入具体内容,展示更多信息供用户使用。
|
||||
*/
|
||||
export interface IProgressBarProps extends IBaseProps {
|
||||
/**
|
||||
* @description 当前进度,范围 0-100
|
||||
* @default 0
|
||||
*/
|
||||
percent: number | string;
|
||||
/**
|
||||
* @description 模式
|
||||
* @default 'line'
|
||||
*/
|
||||
type: 'line' | 'circle';
|
||||
/**
|
||||
* @description 圆形进度条画布宽度,单位 px
|
||||
*/
|
||||
width: number;
|
||||
/**
|
||||
* @description 进度条宽度,单位px
|
||||
*/
|
||||
strokeWidth: number | string;
|
||||
/**
|
||||
* @description 状态,仅限 line
|
||||
*/
|
||||
status: 'success' | 'exception';
|
||||
/**
|
||||
* @description 进度条颜色
|
||||
*/
|
||||
strokeColor: string;
|
||||
/**
|
||||
* @description 轨道颜色
|
||||
*/
|
||||
trailColor: string;
|
||||
/**
|
||||
* @description 每次绘制进度条推进的角度,默认6deg
|
||||
* @default 6
|
||||
*/
|
||||
speed: number;
|
||||
/**
|
||||
* @description 是否开启过渡动画
|
||||
* @default true
|
||||
*/
|
||||
animation: boolean;
|
||||
}
|
||||
export declare const ProgressBarDefaultProps: Partial<IProgressBarProps>;
|
11
甲情_甲意/miniprogram/node_modules/antd-mini/es/Progress/props.js
generated
vendored
Normal file
11
甲情_甲意/miniprogram/node_modules/antd-mini/es/Progress/props.js
generated
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
export var ProgressBarDefaultProps = {
|
||||
percent: 0,
|
||||
type: 'line',
|
||||
width: 100,
|
||||
strokeWidth: 8,
|
||||
status: null,
|
||||
strokeColor: '',
|
||||
trailColor: '',
|
||||
speed: 6,
|
||||
animation: true,
|
||||
};
|
Reference in New Issue
Block a user