From d7fdf239019cb1f0f49ff1f34519171d631011eb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=A6=86=E9=92=B1=E8=90=BD=E5=B0=BD=E6=A7=BF=E8=8A=B1?=
=?UTF-8?q?=E7=A8=80?= <2675540038@qq.com>
Date: Tue, 17 Jun 2025 16:51:43 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=B8=80=E7=B3=BB=E5=88=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
packageA/afterSales/index.vue | 8 +-
packageA/afterSales/info.vue | 13 +-
packageA/center/applyDetail.vue | 10 +-
packageA/center/detail.vue | 10 +-
packageA/center/detailSys.vue | 8 +-
packageA/center/signDetail.vue | 1 +
packageA/cropper.vue | 250 ++-
packageA/my/exercise.vue | 2 +-
packageA/my/orderList.vue | 8 +-
packageA/my/pendinPay.vue | 2 +-
packageA/my/pendinPayDetail.vue | 2583 +++++++++++++++---------------
packageA/my/pendinPayStatus.vue | 10 +-
packageA/my/person-detail.vue | 2 +-
packageA/my/stationDetail.vue | 23 +-
packageB/names/index.vue | 2 +-
packageB/wallet/bank.vue | 9 +-
pages/activity/stationStemys.vue | 2 +-
pages/center/index.vue | 2 +-
pages/my/applyOwner.vue | 2 +-
utils/weCropper.js | 298 +++-
20 files changed, 1733 insertions(+), 1512 deletions(-)
diff --git a/packageA/afterSales/index.vue b/packageA/afterSales/index.vue
index aa00834..82a0c88 100644
--- a/packageA/afterSales/index.vue
+++ b/packageA/afterSales/index.vue
@@ -22,7 +22,7 @@
{{detail.title}}
- {{detail.address_detail}}
+ {{detail.address}}{{detail.address_detail}}
@@ -507,7 +507,7 @@
width: 430rpx;
// height: 77rpx;
font-family: PingFang SC, PingFang SC;
- font-weight: 400;
+ font-weight: 600;
font-size: 28rpx;
color: #323232;
// margin-left: 16rpx;
@@ -695,12 +695,12 @@
// height: 1100rpx;
.popup_tk{
- font-size: 42rpx;font-weight: 800;margin: 12rpx 0 24rpx 0;height: 120rpx;
+ font-size: 42rpx;font-weight: 800;margin: 12rpx 0 24rpx 0;
text-align: center;
}
.popup-content{
height: 700rpx;
- margin-bottom: 140rpx;
+ margin-bottom: 75rpx;
// overflow-y: auto;
}
.popup-content-item{
diff --git a/packageA/afterSales/info.vue b/packageA/afterSales/info.vue
index 5462abe..9c0412a 100644
--- a/packageA/afterSales/info.vue
+++ b/packageA/afterSales/info.vue
@@ -5,7 +5,7 @@
-
+
@@ -187,7 +187,7 @@
- {{ info.detail.address_detail }}
+ {{ info.detail.address }}{{ info.detail.address_detail }}
@@ -231,7 +231,7 @@
- {{ info.detail.address_detail }}
+ {{ info.detail.address }}{{ info.detail.address_detail }}
@@ -299,6 +299,11 @@ export default {
}
},
methods: {
+ toDetail() {
+ uni.navigateTo({
+ url: '/packageA/center/detail?id=' + this.info.activity_id
+ });
+ },
SuccessDo(type) {
uni.$u.http.post('/api/school.newworker.activity.order/shop_confirmation', {
order_no: this.id,
@@ -483,7 +488,7 @@ export default {
width: 440rpx;
height: 39rpx;
font-family: PingFang SC, PingFang SC;
- font-weight: 400;
+ font-weight: 600;
font-size: 28rpx;
color: #323232;
// margin-left: 16rpx;
diff --git a/packageA/center/applyDetail.vue b/packageA/center/applyDetail.vue
index 359c538..c4954f1 100644
--- a/packageA/center/applyDetail.vue
+++ b/packageA/center/applyDetail.vue
@@ -305,8 +305,8 @@
《用户参与须知》
-
+
@@ -408,8 +408,8 @@ export default {
qrUrl: '',
is_collect: 0,
popupStylezf: {
- width: '642rpx',
- padding: '24rpx 24rpx 42rpx 24rpx',
+ width: '620rpx',
+ padding: '50rpx 40rpx 40rpx 40rpx',
height: '984rpx',
margin: '0 auto', // 水平居中
display: 'flex',
@@ -1135,7 +1135,7 @@ export default {
width: 430rpx;
// height: 77rpx;
font-family: PingFang SC, PingFang SC;
- font-weight: 400;
+ font-weight: 600;
font-size: 28rpx;
color: #323232;
// margin-left: 16rpx;
diff --git a/packageA/center/detail.vue b/packageA/center/detail.vue
index d5eb6d0..5e2f50b 100644
--- a/packageA/center/detail.vue
+++ b/packageA/center/detail.vue
@@ -2,7 +2,7 @@
+ title="详情" :titleStyle="{color:'#000000',fontSize:'34rpx',fontWeight:'bold'}">
@@ -110,7 +110,7 @@
-
+
@@ -1236,10 +1236,8 @@
height: 100%;
.v_html {
- word-wrap: break-word;
- word-break: break-all;
- font-size: 26rpx;
- line-height: 42rpx;
+ font-size: 28rpx;
+ line-height: 44rpx;
}
.imgs {
diff --git a/packageA/center/detailSys.vue b/packageA/center/detailSys.vue
index 4c0cc28..97e5ac0 100644
--- a/packageA/center/detailSys.vue
+++ b/packageA/center/detailSys.vue
@@ -2,7 +2,7 @@
+ :titleStyle="{color:'#000000',fontSize:'34rpx',fontWeight:'bold'}">
@@ -162,7 +162,7 @@
-
+
@@ -1176,8 +1176,8 @@
margin: 0 auto;
.v_html {
- word-wrap: break-word;
- word-break: break-all;
+ font-size: 28rpx;
+ line-height: 44rpx;
}
.imgs {
diff --git a/packageA/center/signDetail.vue b/packageA/center/signDetail.vue
index b81887d..37b5e56 100644
--- a/packageA/center/signDetail.vue
+++ b/packageA/center/signDetail.vue
@@ -81,6 +81,7 @@
uni.$u.http.get('/api/school.newworker.activity.order/order_list', {
params: {
activity_id: that.id,
+ status:'2,3,9',
page: 1,
limit: 1000,
},
diff --git a/packageA/cropper.vue b/packageA/cropper.vue
index eb96474..1276e1f 100644
--- a/packageA/cropper.vue
+++ b/packageA/cropper.vue
@@ -7,10 +7,17 @@
@touchstart="touchStart"
@touchmove="touchMove"
@touchend="touchEnd"
- :style="{ width: cropperOpt.width, height: cropperOpt.height, backgroundColor: 'rgba(0, 0, 0, 0.8)' }"
+ :style="{ width: cropperOpt.width, height: cropperOpt.height }"
canvas-id="cropper"
id="cropper"
>
+
-
+
diff --git a/packageA/my/orderList.vue b/packageA/my/orderList.vue
index 1fd8f7a..38baa1e 100644
--- a/packageA/my/orderList.vue
+++ b/packageA/my/orderList.vue
@@ -32,8 +32,8 @@
-
+ v-for="(item, index) in hotList" :key="index" >
+
-
+
@@ -676,7 +676,7 @@
.shenhe {
width: 94%;
position: fixed;
- top: 85rpx;
+ top: 75rpx;
//background: #f7f7f7;
background: #f7f7f7;
z-index: 100;
diff --git a/packageA/my/pendinPay.vue b/packageA/my/pendinPay.vue
index 7d119ba..c63c389 100644
--- a/packageA/my/pendinPay.vue
+++ b/packageA/my/pendinPay.vue
@@ -856,7 +856,7 @@
width: 440rpx;
height: 39rpx;
font-family: PingFang SC, PingFang SC;
- font-weight: 400;
+ font-weight: 600;
font-size: 28rpx;
color: #323232;
// margin-left: 16rpx;
diff --git a/packageA/my/pendinPayDetail.vue b/packageA/my/pendinPayDetail.vue
index 3da0df7..6ccf061 100644
--- a/packageA/my/pendinPayDetail.vue
+++ b/packageA/my/pendinPayDetail.vue
@@ -101,1440 +101,1383 @@
v-if="detailAny.detail.feel == 0 && (detailAny.status == 9 || detailAny.status == 2 || detailAny.status == 3) && (detail.status==4|| detail.status==5)">
申请售后
-
-
-
-
-
+
+
- {{ detail.title }}
-
- ¥{{ detail.price }}
- 公益
-
-
+ 是否取消参与活动
+
+ 多次取消参与,会限制账号权限请谨慎操作
+
-
-
-
- {{ formattedTime.formattedTime }} (共计{{ formattedTimeList.length }}节)
-
-
-
- {{ detail.address_detail }}
-
-
-
-
-
-
-
- 保 存 海 报
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/packageA/my/pendinPayStatus.vue b/packageA/my/pendinPayStatus.vue
index efcdb59..6b7958e 100644
--- a/packageA/my/pendinPayStatus.vue
+++ b/packageA/my/pendinPayStatus.vue
@@ -9,7 +9,7 @@
-
+
@@ -167,7 +167,8 @@
background: '#ffffff00',
titleStyle: {
color: '#000000',
- fontSize: '32rpx'
+ fontSize: '32rpx',
+ fontWeight: 'bold'
},
status:null,
toptitle: '',
@@ -196,6 +197,11 @@
},
methods: {
+ openInfo(){
+ uni.navigateTo({
+ url: `/packageA/center/detail?id=${this.detail.activity_id}`
+ })
+ },
//申请售后
service(id) {
uni.navigateTo({
diff --git a/packageA/my/person-detail.vue b/packageA/my/person-detail.vue
index 37a91f0..4c12e06 100644
--- a/packageA/my/person-detail.vue
+++ b/packageA/my/person-detail.vue
@@ -50,7 +50,7 @@
未认证
+ style="color: #9C9C9C;font-size: 26rpx;">未设置
已认证
diff --git a/packageA/my/stationDetail.vue b/packageA/my/stationDetail.vue
index c67695d..7a77e3a 100644
--- a/packageA/my/stationDetail.vue
+++ b/packageA/my/stationDetail.vue
@@ -1,15 +1,17 @@
-
-
-
+
+
+
-
-
-
- {{detail.createtime_text}}
+
+ {{detail.title}}
+
+
+
+ {{detail.createtime_text}}
+
-
@@ -49,7 +51,7 @@
diff --git a/pages/activity/stationStemys.vue b/pages/activity/stationStemys.vue
index b2edb9e..4e9b553 100644
--- a/pages/activity/stationStemys.vue
+++ b/pages/activity/stationStemys.vue
@@ -16,7 +16,7 @@
slot="center"
@click="one"
>
- 系统消息
+ 系统消息
-
diff --git a/pages/my/applyOwner.vue b/pages/my/applyOwner.vue
index f479361..622e469 100644
--- a/pages/my/applyOwner.vue
+++ b/pages/my/applyOwner.vue
@@ -3,7 +3,7 @@
+ :titleStyle="{color:'#000000',fontSize:'34rpx',fontWeight:'bold'}">
diff --git a/utils/weCropper.js b/utils/weCropper.js
index c98713d..9276a38 100644
--- a/utils/weCropper.js
+++ b/utils/weCropper.js
@@ -358,14 +358,25 @@
while (len-- > 0) args[len] = arguments[len + 1];
if (obj === void 0) obj = {};
+ console.log('wxPromise 调用:', fn.name || '未知函数', '参数:', JSON.stringify(obj));
return new Promise(function(resolve, reject) {
obj.success = function(res) {
+ console.log('wxPromise 成功:', fn.name || '未知函数', '结果:', res);
resolve(res);
};
obj.fail = function(err) {
+ console.error('wxPromise 失败:', fn.name || '未知函数', '错误:', err);
reject(err);
};
- fn.apply(void 0, [obj].concat(args));
+ obj.complete = function() {
+ console.log('wxPromise 完成:', fn.name || '未知函数');
+ };
+ try {
+ fn.apply(void 0, [obj].concat(args));
+ } catch (error) {
+ console.error('wxPromise 执行异常:', fn.name || '未知函数', '错误:', error);
+ reject(error);
+ }
})
}
}
@@ -373,8 +384,27 @@
function draw(ctx, reserve) {
if (reserve === void 0) reserve = false;
- return new Promise(function(resolve) {
- ctx.draw(reserve, resolve);
+ console.log('开始绘制 canvas');
+ return new Promise(function(resolve, reject) {
+ try {
+ if (!ctx) {
+ console.error('绘制失败: ctx 为空');
+ reject(new Error('绘制失败: ctx 为空'));
+ return;
+ }
+
+ // 直接绘制,不使用延时,避免额外问题
+ ctx.draw(reserve, function(res) {
+ console.log('绘制完成', res);
+ // 给一点时间让绘制完成
+ setTimeout(function() {
+ resolve(res);
+ }, 200);
+ });
+ } catch (error) {
+ console.error('绘制出错:', error);
+ reject(error);
+ }
})
}
@@ -420,7 +450,7 @@
// `decode` is designed to be fully compatible with `atob` as described in the
// HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob
- // The optimized base64-decoding algorithm used is based on @atk’s excellent
+ // The optimized base64-decoding algorithm used is based on @atk's excellent
// implementation. https://gist.github.com/atk/1020396
var decode = function(input) {
input = String(input)
@@ -907,15 +937,90 @@
fn = customOptions;
}
+ // Check if circular crop is requested
+ var isCircular = customOptions && customOptions.shape === 'circle';
+
+ if (isCircular) {
+ // 使用更简单的方法实现圆形裁剪
+ console.log('使用简化方法进行圆形裁剪');
+
+ // 先使用普通方式裁剪出矩形
+ var rectOptions = Object.assign({}, canvasOptions);
+
+ // 确保有正确的输出尺寸
+ var destWidth = customOptions.destWidth || width;
+ var destHeight = customOptions.destHeight || height;
+
+ // 先获取矩形裁剪的临时文件
+ return canvasToTempFilePath.apply(null, [rectOptions])
+ .then(function(res) {
+ console.log('矩形裁剪完成,开始圆形处理');
+ var rectPath = res.tempFilePath;
+
+ // 创建新的画布进行圆形裁剪
+ var circleCanvas = self.targetCtx;
+
+ // 清空画布
+ circleCanvas.clearRect(0, 0, destWidth, destHeight);
+
+ // 创建圆形路径
+ circleCanvas.save();
+ circleCanvas.beginPath();
+ var centerX = destWidth / 2;
+ var centerY = destHeight / 2;
+ var radius = Math.min(destWidth, destHeight) / 2;
+ circleCanvas.arc(centerX, centerY, radius, 0, 2 * Math.PI);
+ circleCanvas.clip();
+
+ // 加载裁剪后的图片
+ return getImageInfo({ src: rectPath })
+ .then(function(imgInfo) {
+ console.log('加载裁剪图片信息:', imgInfo);
+
+ // 绘制到圆形区域
+ circleCanvas.drawImage(
+ rectPath,
+ 0,
+ 0,
+ imgInfo.width,
+ imgInfo.height,
+ 0,
+ 0,
+ destWidth,
+ destHeight
+ );
+
+ circleCanvas.restore();
+
+ // 绘制并导出 - 不再绘制边框
+ return draw(circleCanvas)
+ .then(function() {
+ var circleOptions = {
+ canvasId: targetId,
+ x: 0,
+ y: 0,
+ width: destWidth,
+ height: destHeight,
+ destWidth: destWidth,
+ destHeight: destHeight,
+ fileType: customOptions.fileType || 'png'
+ };
+
+ return canvasToTempFilePath.apply(null, [circleOptions]);
+ });
+ });
+ });
+ }
+
var arg = canvasOptions.componentContext ?
[canvasOptions, canvasOptions.componentContext] :
[canvasOptions];
-
+
return canvasToTempFilePath.apply(null, arg)
})
.then(function(res) {
var tempFilePath = res.tempFilePath;
-
+
return tools_7(fn) ?
fn.call(self, tempFilePath, null) :
tempFilePath
@@ -1120,89 +1225,120 @@
self.setBoundStyle = function(ref) {
if (ref === void 0) ref = {};
var color = ref.color;
- if (color === void 0) color = '#04b00f';
+ if (color === void 0) color = '#ffffff';
var mask = ref.mask;
- if (mask === void 0) mask = 'rgba(0, 0, 0, 0.3)';
+ if (mask === void 0) mask = 'rgba(0, 0, 0, 0)';
var lineWidth = ref.lineWidth;
if (lineWidth === void 0) lineWidth = 1;
-
+ var isCircle = ref.isCircle;
+ if (isCircle === void 0) isCircle = true; // 默认使用圆形边框
+
var half = lineWidth / 2;
- var boundOption = [{
- start: {
- x: x - half,
- y: y + 10 - half
- },
- step1: {
- x: x - half,
- y: y - half
- },
- step2: {
- x: x + 10 - half,
- y: y - half
- }
- },
- {
- start: {
- x: x - half,
- y: y + height - 10 + half
- },
- step1: {
- x: x - half,
- y: y + height + half
- },
- step2: {
- x: x + 10 - half,
- y: y + height + half
- }
- },
- {
- start: {
- x: x + width - 10 + half,
- y: y - half
- },
- step1: {
- x: x + width + half,
- y: y - half
- },
- step2: {
- x: x + width + half,
- y: y + 10 - half
- }
- },
- {
- start: {
- x: x + width + half,
- y: y + height - 10 + half
- },
- step1: {
- x: x + width + half,
- y: y + height + half
- },
- step2: {
- x: x + width - 10 + half,
- y: y + height + half
- }
- }
- ];
-
- // 绘制半透明层
- self.ctx.beginPath();
- self.ctx.setFillStyle(mask);
- self.ctx.fillRect(0, 0, x, boundHeight);
- self.ctx.fillRect(x, 0, width, y);
- self.ctx.fillRect(x, y + height, width, boundHeight - y - height);
- self.ctx.fillRect(x + width, 0, boundWidth - x - width, boundHeight);
- self.ctx.fill();
-
- boundOption.forEach(function(op) {
+
+ // Check if we want a circular boundary instead of rectangular
+ if (isCircle) {
+ // Calculate center and radius
+ var centerX = x + width / 2;
+ var centerY = y + height / 2;
+ var radius = width / 2; // Assuming width = height for a circle
+
+ // Draw the mask (everything outside the circle)
self.ctx.beginPath();
+ self.ctx.setFillStyle(mask);
+ // Draw a rectangle covering the entire canvas
+ self.ctx.fillRect(0, 0, boundWidth, boundHeight);
+
+ // Create a circular hole in the mask
+ self.ctx.beginPath();
+ self.ctx.arc(centerX, centerY, radius, 0, 2 * Math.PI);
+ self.ctx.setFillStyle('transparent');
+ self.ctx.fill();
+
+ // Draw the border circle
+ self.ctx.beginPath();
+ self.ctx.arc(centerX, centerY, radius, 0, 2 * Math.PI);
self.ctx.setStrokeStyle(color);
self.ctx.setLineWidth(lineWidth);
- self.ctx.moveTo(op.start.x, op.start.y);
- self.ctx.lineTo(op.step1.x, op.step1.y);
- self.ctx.lineTo(op.step2.x, op.step2.y);
self.ctx.stroke();
- });
+ } else {
+ // Original rectangular boundary code
+ var boundOption = [{
+ start: {
+ x: x - half,
+ y: y + 10 - half
+ },
+ step1: {
+ x: x - half,
+ y: y - half
+ },
+ step2: {
+ x: x + 10 - half,
+ y: y - half
+ }
+ },
+ {
+ start: {
+ x: x - half,
+ y: y + height - 10 + half
+ },
+ step1: {
+ x: x - half,
+ y: y + height + half
+ },
+ step2: {
+ x: x + 10 - half,
+ y: y + height + half
+ }
+ },
+ {
+ start: {
+ x: x + width - 10 + half,
+ y: y - half
+ },
+ step1: {
+ x: x + width + half,
+ y: y - half
+ },
+ step2: {
+ x: x + width + half,
+ y: y + 10 - half
+ }
+ },
+ {
+ start: {
+ x: x + width + half,
+ y: y + height - 10 + half
+ },
+ step1: {
+ x: x + width + half,
+ y: y + height + half
+ },
+ step2: {
+ x: x + width - 10 + half,
+ y: y + height + half
+ }
+ }
+ ];
+
+ // 绘制半透明层
+ self.ctx.beginPath();
+ self.ctx.setFillStyle(mask);
+ self.ctx.fillRect(0, 0, x, boundHeight);
+ self.ctx.fillRect(x, 0, width, y);
+ self.ctx.fillRect(x, y + height, width, boundHeight - y - height);
+ self.ctx.fillRect(x + width, 0, boundWidth - x - width, boundHeight);
+ self.ctx.fill();
+
+ boundOption.forEach(function(op) {
+ self.ctx.beginPath();
+ self.ctx.setStrokeStyle(color);
+ self.ctx.setLineWidth(lineWidth);
+ self.ctx.moveTo(op.start.x, op.start.y);
+ self.ctx.lineTo(op.step1.x, op.step1.y);
+ self.ctx.lineTo(op.step2.x, op.step2.y);
+ self.ctx.stroke();
+ });
+ }
};
}