From 1c97afb5c0351b80704b896546678efe5bbb547d Mon Sep 17 00:00:00 2001
From: "1054425342@qq.com" <1054425342@qq.com>
Date: Tue, 16 Sep 2025 13:24:56 +0800
Subject: [PATCH] =?UTF-8?q?=E7=A7=AF=E5=88=86=E5=85=91=E6=8D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
App.vue | 1 +
components/DynamicIsland.vue | 101 +++++----
components/nmr-icon/nmr-icon.vue | 52 +++++
static/css/icon.scss | 22 ++
subPackages/points/index.vue | 360 ++++++++++++++++++++++++++++---
5 files changed, 456 insertions(+), 80 deletions(-)
create mode 100644 components/nmr-icon/nmr-icon.vue
create mode 100644 static/css/icon.scss
diff --git a/App.vue b/App.vue
index 4099298..00e9868 100644
--- a/App.vue
+++ b/App.vue
@@ -353,6 +353,7 @@ export default {
\ No newline at end of file
diff --git a/components/nmr-icon/nmr-icon.vue b/components/nmr-icon/nmr-icon.vue
new file mode 100644
index 0000000..58366f7
--- /dev/null
+++ b/components/nmr-icon/nmr-icon.vue
@@ -0,0 +1,52 @@
+
+
+
+
+
+
diff --git a/static/css/icon.scss b/static/css/icon.scss
new file mode 100644
index 0000000..9488381
--- /dev/null
+++ b/static/css/icon.scss
@@ -0,0 +1,22 @@
+@font-face {
+ font-family: "des"; /* Project id 5022607 */
+ src: url('//at.alicdn.com/t/c/font_5022607_r74iwur9ql.woff2?t=1757989865177') format('woff2'),
+ url('//at.alicdn.com/t/c/font_5022607_r74iwur9ql.woff?t=1757989865177') format('woff'),
+ url('//at.alicdn.com/t/c/font_5022607_r74iwur9ql.ttf?t=1757989865177') format('truetype');
+}
+
+.des {
+ font-family: "des" !important;
+ font-size: 16px;
+ font-style: normal;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.iconfont-jifen:before {
+ content: "\e614";
+}
+
+.iconfont-jifenduihuan:before {
+ content: "\e60b";
+}
diff --git a/subPackages/points/index.vue b/subPackages/points/index.vue
index 07ccd85..9320aa6 100644
--- a/subPackages/points/index.vue
+++ b/subPackages/points/index.vue
@@ -6,6 +6,12 @@
{{ totalPoints }}
当前积分
+
+
+
+ 兑换时间奖励
+
+
@@ -27,7 +33,7 @@
-
+
{{ item.dictName }}
@@ -63,30 +69,87 @@
暂无积分记录
+
+
+
+
+
+
+
+
+ 当前时间奖励值:
+ {{ userInfo&&userInfo.hourValue||0 }}
+
+
+
+
+ 兑换数量:
+
+
+
+
+
+ 兑换规则:
+
+ • 1个时间奖励值 = {{pointInfo.points||0}}积分
+
+
+
+
+
+
+
+
@@ -270,6 +387,7 @@
background: linear-gradient(135deg, #77f3f9 0%, #764ba2 100%);
padding: 60rpx 32rpx;
text-align: center;
+ position: relative;
}
.total-points {
@@ -289,7 +407,28 @@
font-size: 28rpx;
color: rgba(255, 255, 255, 0.8);
}
-
+
+ /* 时间奖励值 */
+ .time-reward {
+ position: absolute;
+ top: 30rpx;
+ right: 32rpx;
+ display: flex;
+ align-items: center;
+ background: rgba(255, 255, 255, 0.2);
+ border-radius: 30rpx;
+ padding: 6rpx 10rpx;
+ border: 1rpx solid rgba(255, 255, 255, 0.3);
+ }
+
+ .reward-icon {
+ margin-right: 8rpx;
+ font-size: 26rpx;
+ display: flex;
+ align-items: center;
+ color: white;
+ }
+
/* 筛选标签 */
.filter-tabs {
display: flex;
@@ -449,4 +588,155 @@
font-size: 28rpx;
color: #999;
}
+
+ /* 兑换弹窗样式 */
+ .exchange-modal {
+ width: 600rpx;
+ background: #fff;
+ border-radius: 20rpx;
+ overflow: hidden;
+ }
+
+ .modal-header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 40rpx 40rpx 20rpx;
+ border-bottom: 1rpx solid #f0f0f0;
+ }
+
+ .modal-title {
+ font-size: 36rpx;
+ font-weight: 600;
+ color: #333;
+ }
+
+ .close-btn {
+ width: 60rpx;
+ height: 60rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+
+ .modal-content {
+ padding: 40rpx;
+ }
+
+ .current-reward {
+ display: flex;
+ align-items: center;
+ margin-bottom: 40rpx;
+ padding: 20rpx;
+ background: #f8f9fa;
+ border-radius: 12rpx;
+ }
+
+ .reward-label {
+ font-size: 28rpx;
+ color: #666;
+ }
+
+ .reward-value {
+ font-size: 32rpx;
+ font-weight: 600;
+ color: #77f3f9;
+ margin-left: 10rpx;
+ }
+
+ .exchange-form {
+ margin-bottom: 40rpx;
+ }
+
+ .form-item {
+ margin-bottom: 20rpx;
+ }
+
+ .form-label {
+ font-size: 28rpx;
+ color: #333;
+ margin-bottom: 12rpx;
+ display: block;
+ }
+
+ .form-input {
+ width: 100%;
+ height: 80rpx;
+ border: 1rpx solid #ddd;
+ border-radius: 8rpx;
+ padding: 0 20rpx;
+ font-size: 28rpx;
+ box-sizing: border-box;
+ }
+
+ .exchange-result {
+ padding: 20rpx;
+ background: #e8f5e8;
+ border-radius: 8rpx;
+ margin-top: 20rpx;
+ }
+
+ .result-text {
+ font-size: 28rpx;
+ color: #52c41a;
+ font-weight: 500;
+ }
+
+ .exchange-rules {
+ padding: 20rpx;
+ background: #f8f9fa;
+ border-radius: 12rpx;
+ }
+
+ .rules-title {
+ font-size: 28rpx;
+ font-weight: 600;
+ color: #333;
+ margin-bottom: 16rpx;
+ display: block;
+ }
+
+ .rules-list {
+ display: flex;
+ flex-direction: column;
+ gap: 8rpx;
+ }
+
+ .rule-item {
+ font-size: 24rpx;
+ color: #666;
+ line-height: 1.5;
+ }
+
+ .modal-footer {
+ display: flex;
+ gap: 20rpx;
+ padding: 20rpx 40rpx 40rpx;
+ }
+
+ .cancel-btn, .confirm-btn {
+ flex: 1;
+ height: 80rpx;
+ border-radius: 8rpx;
+ font-size: 28rpx;
+ border: none;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+
+ .cancel-btn {
+ background: #f5f5f5;
+ color: #666;
+ }
+
+ .confirm-btn {
+ background: #77f3f9;
+ color: #fff;
+ }
+
+ .confirm-btn:disabled {
+ background: #ccc;
+ color: #999;
+ }
\ No newline at end of file