2025-06-06 15:17:30 +08:00

130 lines
3.8 KiB
JavaScript

let perfumeNum = 1.5;
Component({
properties:{
percent: {
type:Number,
value:100,
observer:'change'
},
percentStr: {
type:String,
},
all:Number,
sum:Number
},
methods:{
// b、香水余量
initRing(res) {
// console.log(res,'aaaa')
let that = this;
const canvas = res[0].node
const ctx = canvas.getContext('2d');
// console.log("canvas=====>",canvas)
var circleR = 240 / 2; // 画布的一半,用来找中心点和半径
ctx.translate(0, 0); // 定义起始点
console.log(that.data.percent)
function draw() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
// 取色圆环
ctx.beginPath();
ctx.strokeStyle = '#eeeff7';//transparent
ctx.lineWidth = 14;
ctx.lineCap='round' // 设置圆环端点的形状
ctx.arc(circleR, circleR-10, circleR - 35, Math.PI, 2 * Math.PI, false);
ctx.stroke();
ctx.closePath();
// 进度_香水余量
ctx.beginPath(); // 起始一条路径,或重置当前路径
ctx.lineWidth = 14; // 线条宽度
ctx.lineCap='round' // 线条的结束端点样式
ctx.arc(circleR, circleR -10,circleR - 35, Math.PI, Math.PI + (that.data.percent > 1 ? 1 :that.data.percent) * Math.PI , false);
ctx.strokeStyle = "#FFC20E";//transparent
ctx.stroke();
canvas.requestAnimationFrame(draw);
}
draw();
},
change(newVal, oldVal){
if(newVal== oldVal) return
let that = this;
// console.log('gogogo')
// 香水余量圆环
const query = wx.createSelectorQuery().in(this)
query.select('#percent').fields({ node: true, size: true }).exec((res) => {
// console.log(res)
that.initRing(res);
})
},
// 复位
resetTab(){
let that = this;
perfumeNum = 2; // 香水余量为100%
that.setData({
percent: 100,
})
},
}
})
// Page({
// data: {
// percent: 12, // 香水余量
// },
// /**
// * 生命周期函数--监听页面加载
// */
// onLoad: function (options) {
// let that = this;
// // 香水余量圆环
// const query = wx.createSelectorQuery()
// query.select('#percent') .fields({ node: true, size: true }).exec((res) => {
// console.log(res)
// that.initRing(res);
// })
// },
// // b、香水余量
// initRing(res) {
// let that = this;
// const canvas = res[0].node
// const ctx = canvas.getContext('2d');
// canvas.width = res[0].width * dpr
// canvas.height = res[0].height * dpr
// ctx.scale(dpr, dpr);
// var circleR = 220 / 2; // 画布的一半,用来找中心点和半径
// ctx.translate(0, 0); // 定义起始点
// function draw() {
// ctx.clearRect(0, 0, canvas.width, canvas.height);
// // 取色圆环
// ctx.beginPath();
// ctx.strokeStyle = '#fff';//transparent
// ctx.lineWidth = 12;
// ctx.lineCap='round' // 设置圆环端点的形状
// ctx.arc(circleR, circleR-10, circleR - 35, Math.PI, 2 * Math.PI, false);
// ctx.stroke();
// ctx.closePath();
// console.log("香水余量")
// // 进度_香水余量
// ctx.beginPath(); // 起始一条路径,或重置当前路径
// ctx.lineWidth = 6; // 线条宽度
// ctx.lineCap='round' // 线条的结束端点样式
// ctx.arc(circleR, circleR-10, circleR - 35, Math.PI,perfumeNum * Math.PI, false);
// ctx.strokeStyle = "#00CED1";//transparent
// ctx.stroke();
// canvas.requestAnimationFrame(draw);
// }
// draw();
// },
// // 复位
// resetTab(){
// let that = this;
// perfumeNum = 2; // 香水余量为100%
// that.setData({
// percent: 100,
// })
// },
// })