diff --git a/public/img/allow.png b/public/img/allow.png
new file mode 100644
index 0000000..a856069
Binary files /dev/null and b/public/img/allow.png differ
diff --git a/public/img/allow_bg.jpg b/public/img/allow_bg.jpg
new file mode 100644
index 0000000..71cd988
Binary files /dev/null and b/public/img/allow_bg.jpg differ
diff --git a/public/img/certificate.png b/public/img/certificate.png
new file mode 100644
index 0000000..c0d2c05
Binary files /dev/null and b/public/img/certificate.png differ
diff --git a/public/img/check.png b/public/img/check.png
new file mode 100644
index 0000000..c2394df
Binary files /dev/null and b/public/img/check.png differ
diff --git a/public/img/co_icon.png b/public/img/co_icon.png
new file mode 100644
index 0000000..0844c1a
Binary files /dev/null and b/public/img/co_icon.png differ
diff --git a/public/img/cv-i1.png b/public/img/cv-i1.png
index 7526453..a507947 100644
Binary files a/public/img/cv-i1.png and b/public/img/cv-i1.png differ
diff --git a/public/img/cv_bg.jpg b/public/img/cv_bg.jpg
new file mode 100644
index 0000000..85071d0
Binary files /dev/null and b/public/img/cv_bg.jpg differ
diff --git a/public/img/down-one.png b/public/img/down-one.png
new file mode 100644
index 0000000..809c09f
Binary files /dev/null and b/public/img/down-one.png differ
diff --git a/public/img/ft_i1.png b/public/img/ft_i1.png
new file mode 100644
index 0000000..ad2feb4
Binary files /dev/null and b/public/img/ft_i1.png differ
diff --git a/public/img/ft_i2.png b/public/img/ft_i2.png
new file mode 100644
index 0000000..a1cf4c7
Binary files /dev/null and b/public/img/ft_i2.png differ
diff --git a/public/img/ft_i3.png b/public/img/ft_i3.png
new file mode 100644
index 0000000..79f89ff
Binary files /dev/null and b/public/img/ft_i3.png differ
diff --git a/public/img/invite_bg.jpg b/public/img/invite_bg.jpg
index 7aae233..e9d3e5c 100644
Binary files a/public/img/invite_bg.jpg and b/public/img/invite_bg.jpg differ
diff --git a/public/img/logo.png b/public/img/logo.png
new file mode 100644
index 0000000..f490469
Binary files /dev/null and b/public/img/logo.png differ
diff --git a/public/img/merchant_bg.jpg b/public/img/merchant_bg.jpg
new file mode 100644
index 0000000..218d6a1
Binary files /dev/null and b/public/img/merchant_bg.jpg differ
diff --git a/public/img/paycode.jpg b/public/img/paycode.jpg
new file mode 100644
index 0000000..0ca3cf3
Binary files /dev/null and b/public/img/paycode.jpg differ
diff --git a/public/img/point_bg.jpg b/public/img/point_bg.jpg
new file mode 100644
index 0000000..30ea38d
Binary files /dev/null and b/public/img/point_bg.jpg differ
diff --git a/public/img/team-i1.png b/public/img/team-i1.png
index 27f9975..5431a57 100644
Binary files a/public/img/team-i1.png and b/public/img/team-i1.png differ
diff --git a/src/components/AddressSelector.vue b/src/components/AddressSelector.vue
index 4a6b233..005bad7 100644
--- a/src/components/AddressSelector.vue
+++ b/src/components/AddressSelector.vue
@@ -49,7 +49,8 @@
- 保存
+ 保存
@@ -61,7 +62,7 @@
-
+
@@ -174,6 +175,10 @@ export default {
overflow-y: auto;
}
+.van-switch--on {
+ background: #ca2904;
+}
+
.address-item {
padding: 1.067vw 0;
}
diff --git a/src/components/ManagerPopup.vue b/src/components/ManagerPopup.vue
index a2e48a1..18b9673 100644
--- a/src/components/ManagerPopup.vue
+++ b/src/components/ManagerPopup.vue
@@ -2,7 +2,7 @@
-
+
个人管理中心
@@ -10,13 +10,13 @@
-
商家中心
+
商家管理中心
-
运营中心
+
运营管理中心
@@ -41,37 +41,11 @@
-
- 返回
+
+ 退出登录
-
-
-
-
-
-
-
-
-
-
-
-
-
- 更改联系平台
-
-
-
-
- 保存
-
-
-
-
-
\ No newline at end of file
diff --git a/src/router.js b/src/router.js
index a3f3b4a..a38283d 100644
--- a/src/router.js
+++ b/src/router.js
@@ -62,20 +62,36 @@ const routes = [
title: '余额',
}
},
- {
- path: '/Voucher',
- name: 'Voucher',
- component: () => import('./views/User/Voucher.vue'),
- meta: {
- title: '消费券',
- }
- },
{
path: '/CV',
name: 'CV',
component: () => import('./views/User/CV.vue'),
meta: {
- title: '贡献值',
+ title: '会员卡额度',
+ }
+ },
+ {
+ path: '/Point',
+ name: 'Point',
+ component: () => import('./views/User/Point.vue'),
+ meta: {
+ title: '积分',
+ }
+ },
+ {
+ path: '/Allow',
+ name: 'Allow',
+ component: () => import('./views/User/Allow.vue'),
+ meta: {
+ title: '业绩统计',
+ }
+ },
+ {
+ path: '/Certificate',
+ name: 'Certificate',
+ component: () => import('./views/User/Certificate.vue'),
+ meta: {
+ title: '礼品券',
}
},
{
diff --git a/src/styles/ch.less b/src/styles/ch.less
index 66975c6..fcc4f98 100644
--- a/src/styles/ch.less
+++ b/src/styles/ch.less
@@ -2510,9 +2510,12 @@
.b_l_w;
.f5;
padding: 4vw 3.33vw;
+ background: url(/img/merchant_bg.jpg) no-repeat;
+ background-size: 100% auto;
.shopinfo {
.box;
+ position: relative;
.tx {
width: 16vw;
@@ -2539,62 +2542,88 @@
}
.service-box {
- height: 6.4vw;
- background-color: #2db57c;
- border-radius: 3.2vw;
- .bs;
- .box;
- .box-align-center;
+ margin-left: auto;
+ display: flex;
+ flex-wrap: nowrap;
+ align-items: center;
+ position: absolute;
+ color: #fff;
+ font-size: 3.47vw;
+ font-weight: bold;
+ right: -4vw;
+ top: 8vw;
+ height: 6.67vw;
+ background-color: #fc6a39;
+ border-radius: 3.33vw 0vw 0vw 3.33vw;
+ padding: 0 2.8vw;
white-space: nowrap;
- padding: 0 1.33vw;
-
- .icon {
- height: 4.67vw;
- margin-right: 1.2vw;
- }
}
}
.wallet {
padding: 4.133vw 2.667vw;
- background-color: #3dcd91;
- border-radius: 2.667vw;
+ background-color: #ffffff;
+ border-radius: 1.6vw;
position: relative;
margin-top: 4vw;
- &::after {
- content: '';
- width: 12.67vw;
- height: 14.27vw;
- position: absolute;
- top: 0;
- right: 3.73vw;
- z-index: 0;
- background: url(/img/money.png)no-repeat;
- background-size: 100% 100%;
+ .tit {
+ span {
+ color: #1b1b1b;
+ }
+
+ .line {
+ .box;
+ .box-align-center;
+ margin-top: 4.53vw;
+
+ >div {
+ margin-left: 6.67vw;
+ .box;
+ .box-align-center;
+ height: 6.13vw;
+ padding: 0 1.47vw;
+ border-radius: 1.07vw;
+ border: solid 0.13vw #222222;
+ color: #1b1b1b;
+
+ p {
+ font-weight: bold;
+ }
+ }
+
+ b {
+ font-size: 6.67vw;
+ color: #1b1b1b;
+ }
+ }
}
b {
font-size: 4vw;
- .bs;
}
.cc {
.box;
position: relative;
z-index: 1;
- background-color: #ffffff;
- border-radius: 1.333vw;
+ background-color: #f5f5f5;
+ border-radius: 1.6vw;
padding: 5.667vw 3.33vw;
margin-top: 3.33vw;
>div {
.box;
.box-tb;
+ .box-align-center;
width: 50%;
color: #222222;
}
+ >div:first-child {
+ border-right: 1px solid #8a8a8a80;
+ }
+
span {
display: block;
margin-bottom: 2vw;
@@ -2607,6 +2636,53 @@
}
}
+ .fastTo {
+ .box;
+ .box-align-center;
+ .box-pack-between;
+ margin-top: 4vw;
+
+ >div {
+ .box;
+ width: 29.33vw;
+ height: 18.67vw;
+ border-radius: 1.6vw;
+ position: relative;
+ padding: 4vw 2.2vw;
+ font-size: 3.73vw;
+ font-weight: bold;
+ line-height: 4.44vw;
+ color: #1b1b1b;
+
+ img {
+ width: 11.6vw;
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ }
+ }
+
+ .ft1 {
+ background-color: #f5f8ff;
+ border: solid 0.27vw #9ab0f9;
+ }
+
+ .ft2 {
+ background-color: #fff8f6;
+ border: solid 0.27vw #f9b49d;
+ }
+
+ .ft3 {
+ background-color: #fff8ef;
+ border: solid 0.27vw #f6c88a;
+
+ img {
+ bottom: 1.2vw;
+ right: 1.2vw;
+ }
+ }
+ }
+
.block {
.box;
.box-pack-between;
@@ -4113,209 +4189,141 @@
}
}
-.voucher {
- background: url(/img/voucher-bg.png) no-repeat;
- background-size: 100% auto;
- padding: 6.667vw 3.333vw;
- .b_l_w;
- .f5;
+.balance {
- >div {
- .b_l_w;
- }
+ .top {
+ .bs;
+ background-color: #374c6d;
+ padding: 8vw 4vw;
- .t {
- background-size: 100% 100% !important;
- border-radius: 4vw;
- position: relative;
- margin-bottom: 4vw;
- height: 49.2vw;
+ .line {
+ .box;
+ .box-align-center;
+ margin-bottom: 5vw;
+
+ .num {
+ font-size: 8vw;
+ color: #ffffff;
+ }
+ }
.tit {
.box;
.box-align-center;
+ font-size: 4.8vw;
+ color: #ffffff;
+
+ .van-icon {
+ margin-left: 2.4vw;
+ }
+ }
+
+ .co_box {
+ .r;
+ .box;
+ .box-align-center;
span {
- font-size: 4vw;
- .box;
- .box-align-center;
+ margin: 0 1.2vw;
+ }
- i {
- font-size: 4vw;
- margin: .5vw 0 0 1vw;
- }
+ img {
+ height: 4.27vw;
}
}
- .c {
+ button {
+ padding: 0 4vw;
+ color: #333;
+ height: 8vw;
+ background-color: #ffffff;
+ border-radius: 4vw;
+ box-shadow: none;
+ }
+
+ .pn {
.box;
.box-align-center;
- .box-wrap;
- font-size: 3.2vw;
- position: relative;
- background: url(/img/voucher-c.png) no-repeat;
- background-size: 100% auto;
- height: 50vw;
- padding: 5vw 5.467vw 0;
- padding-bottom: 4.53vw;
-
-
- >div {
- .b_l_w;
- }
-
- .number {
- font-size: 8vw;
- .box;
- .box-pack-between;
- .box-align-center;
- margin: 4vw 0 0;
- color: #d5a837;
-
- .a {
- width: 26.667vw;
- height: 8vw;
- line-height: 8vw;
- border-radius: 4vw;
- .center;
- background-color: #f3c947;
- font-size: 4.267vw;
- color: #141414;
- margin-left: auto;
- }
-
- .van-button {
- width: 24vw;
- .b;
- font-size: 3.733vw;
- margin-left: 3vw;
- }
- }
-
- .total {
- margin: 4vw 0 0;
- line-height: 8vw;
- .box;
- .box-pack-around;
- .center;
- font-size: 3.333vw;
- color: #959595;
-
- p {
- font-size: 4vw;
- color: #252525;
- .b;
- }
- }
-
+ color: #b6c7e1;
}
}
- .times {
+ .botom {
+ padding: 5.87vw 4vw;
+ background-color: #ffffff;
+ border-radius: 5.33vw 5.33vw 0vw 0vw;
+ margin-top: -10vw;
+
+ .tabs {
+ margin-top: 4vw;
+
+ .van-tab--card:last-child {
+ margin: 0;
+ }
+
+ .van-tab--card {
+ border-right: none;
+ border-radius: 4vw;
+ background-color: #f6f6f6;
+ margin-right: 3vw;
+ gap: 3vw;
+ width: max-content;
+ font-size: 3.2vw;
+ }
+
+ .van-tabs__nav--card {
+ border: none;
+ margin: 0;
+ }
+ }
+ }
+
+ .date_box {
.box;
.box-align-center;
- height: 12.8vw;
- margin: 2vw 0 4vw;
- background-color: #ffffff;
- box-shadow: 0vw 0.67vw 1.11vw 0.09vw rgba(219, 255, 242, 0.08);
- border-radius: 2.67vw;
- position: relative;
- z-index: 2;
- &::after {
- content: '';
- width: 86.4vw;
- height: 10.4vw;
- background-color: #ffffff;
- opacity: 0.5;
- border-radius: 2.67vw;
- position: absolute;
- bottom: -2vw;
- left: 2.4vw;
- z-index: -1;
- }
-
- img {
- width: 2.4vw;
- height: 1.333vw;
- margin-left: 1.2vw;
- }
-
- ._t {
+ .date {
.box;
- .box-align-center;
- height: 12.667vw;
+ .box-center-center;
+ height: 8vw;
+ background-color: #f6f6f6;
+ border-radius: 4vw;
+ padding: 0 2.8vw;
- p {
- width: 1.333vw;
- height: 4vw;
- border-radius: 0.667vw;
- margin-right: 1.867vw;
+ img {
+ height: 1.2vw;
+ margin-left: 1.2vw;
}
+ }
- b {
- font-size: 3.867vw;
- }
+ .count {
+ .r;
+ .box;
+ gap: 12vw;
+ line-height: 4.67vw;
- a {
- .r;
- .b;
+ >div {
.box;
+ .box-tb;
.box-align-center;
}
}
-
- ._m {
- .box;
- .box-align-center;
- .box-pack-between;
- width: 100%;
- padding-right: 3.33vw;
-
- .l {
- .box;
- .box-align-center;
- .box-pack-center;
- width: 28vw;
- height: 8vw;
- .b_k;
- border-radius: 4vw;
- font-size: 3.33vw;
- color: #474747;
-
- span {
- .box;
- .box-tb;
- .box-align-center;
- }
- }
-
- .right {
- .box;
- .center;
-
- p {
- margin-left: 10vw;
- line-height: 4.5vw;
- }
- }
- }
-
}
- ._m_list {
- background-color: #ffffff;
- border-radius: 2.67vw;
+ ._m_ {
+ margin-top: 4vw;
.list {
.b_l_w;
.b_k;
- // margin-bottom: 4vw;
+ margin-bottom: 4vw;
+ border-bottom: 1px solid #f5f5f580;
padding: 3.333vw;
.box;
.box-tb;
+ background-color: #f6f6f6;
+ border-radius: 1.6vw;
border-radius: 2vw;
- border-bottom: 1px solid #f5f5f580;
>div {
.b_l_w;
@@ -4449,94 +4457,205 @@
}
.cv {
- .b_l_w;
.f5;
+ padding: 8vw 4vw;
- >div {
- .b_l_w;
- }
+ .card {
+ .box;
+ .box-tb;
+ .box-pack-between;
+ background-color: #fbf0f0;
+ border-radius: 2.67vw;
+ overflow: hidden;
+ border: solid 1.33vw #ffffff;
+ padding: 5.07vw 2.67vw;
+ // height: 34.67vw;
+ width: 100%;
+ position: relative;
+ z-index: 1;
- .top {
- background: url(/img/cv-t.png) no-repeat;
- background-size: 100% auto;
- padding: 9.07vw 6.67vw;
- height: 58.13vw;
- .bs;
+ &::after {
+ content: '';
+ right: 0;
+ bottom: 0;
+ z-index: -1;
+ position: absolute;
+ width: 26vw;
+ height: 23.33vw;
+ background: url(/img/cv-i1.png) no-repeat;
+ background-size: 100% auto;
+ }
- .line {
+ .t {
.box;
.box-align-center;
- .title {
- font-size: 4.67vw;
- font-weight: bold;
- }
-
- .explain {
- .r;
+ .u_info {
+ margin-left: 3.6vw;
+ height: 10.4vw;
.box;
- .box-center-center;
- padding: 0 1.2vw;
- height: 5.33vw;
- border-radius: 2.67vw;
- border: solid 0.27vw #ffffff;
+ .box-tb;
+ .box-pack-around;
- img {
- width: 3.33vw;
- height: 3.33vw;
- margin-right: 1.2vw;
+ b {
+ font-size: 3.47vw;
+ color: #222;
+ }
+
+ span {
+ color: #999999;
}
}
- }
- b {
- display: block;
- font-size: 8.67vw;
- margin-top: 10vw;
- }
- }
-
- .container {
- background: #f5f5f5;
- padding: 0 3.33vw
- }
-
- .inf_box {
- .box;
- .box-tb;
- padding: 3.73vw 3.07vw;
- background-color: #ffffff;
- border-radius: 2.67vw;
- margin-top: -6.67vw;
-
- .title {
- font-size: 4vw;
- font-weight: bold;
- color: #000000;
- margin-bottom: 4vw;
- }
-
- .list {
-
- >div:last-child {
- border: none;
+ .record {
+ color: #841e36;
}
+ }
- >div {
+ .db {
+ .box;
+ .box-align-center;
+ padding-left: 12.4vw;
+ margin-top: 5.2vw;
+
+ .left {
.box;
- .box-align-center;
- padding: 3.33vw 1.2vw;
- border-bottom: 1px solid #f5f5f580;
+ .box-tb;
+ .box-align-start;
- img {
- width: 4.27vw;
- margin-right: 2.53vw;
+ span {
+ color: #999999;
}
b {
- .r;
+ margin-top: 1.73vw;
+ display: block;
+ font-size: 4.8vw;
+ line-height: 3.2vw;
+ color: #222222;
}
}
+
+ button {
+ .r;
+ height: 6.67vw;
+ border-radius: 3.33vw;
+ border: solid 0.27vw #841e36;
+ padding: 0 2.4vw;
+ background: transparent;
+ color: #841e36;
+ }
+ }
+ }
+
+ .list_box {
+ background-color: #ffffff;
+ border-radius: 2.67vw 2.67vw 1.07vw 1.07vw;
+ margin-top: 4vw;
+ padding: 6vw 2.67vw;
+ height: 100%;
+
+ .date_box {
+ .box;
+ .box-align-center;
+
+ .date {
+ .box;
+ .box-center-center;
+ height: 8vw;
+ background-color: #fbf0f0;
+ border-radius: 4vw;
+ padding: 0 2.8vw;
+ color: #841e36;
+
+ img {
+ height: 1.2vw;
+ margin-left: 1.2vw;
+ }
+ }
+
+ .count {
+ .r;
+ .box;
+ gap: 12vw;
+ line-height: 4.67vw;
+
+ >div {
+ .box;
+ .box-tb;
+ .box-align-center;
+ }
+ }
+ }
+
+ .list {
+ margin-top: 4vw;
+
+ .item {
+ .box;
+ .box-tb;
+ padding: 3.07vw 2.67vw;
+ background-color: #f6f6f6;
+ border-radius: 1.6vw;
+ margin-bottom: 4vw;
+
+ span {
+ font-size: 3.2vw;
+ font-weight: normal;
+ font-stretch: normal;
+ line-height: 4.67vw;
+ letter-spacing: 0vw;
+ color: #999999;
+ }
+
+ .t {
+ .box;
+ .box-align-center;
+ margin-bottom: 1.2vw;
+
+ span {
+ .bs;
+ }
+
+ .tit {
+ font-size: 3.47vw;
+ color: #333333;
+ }
+
+ .in {
+ .box;
+ .box-center-center;
+ .bs;
+ height: 4.8vw;
+ background-color: #269f3d;
+ border-radius: 0.53vw;
+ padding: 0 2.4vw;
+ }
+
+ .out {
+ .box;
+ .box-center-center;
+ .bs;
+ height: 4.8vw;
+ background-color: #d13c25;
+ border-radius: 0.53vw;
+ padding: 0 2.4vw;
+ }
+ }
+ }
+ }
+ }
+}
+
+.point {
+ .top {
+ background: url(/img/point_bg.jpg) no-repeat;
+ background-size: 100% auto;
+
+ .line {
+ .pn {
+ color: #e8b5b6;
+ }
}
}
}
@@ -4554,20 +4673,25 @@
.count {
.box;
.box-tb;
- background-image: linear-gradient(0deg,
- #156e3f 0%,
- #52c087 100%);
+ background-color: #d1b792;
border-radius: 2vw;
padding: 3.33vw;
+ .num {
+ font-size: 6.67vw;
+ line-height: 6.4vw;
+ color: #222222;
+ }
+
.top {
.box;
.box-align-center;
+ color: #222222;
.left {
.box;
- .box-tb;
- .bs;
+ // .box-tb;
+ // .bs;
b {
font-size: 3.73vw;
@@ -4586,9 +4710,10 @@
height: 8vw;
line-height: 8vw;
.b_k;
+ .bs;
+ background-color: #1b1b1b;
border-radius: 4vw;
padding: 0 3.33vw;
- color: #2c8d5a;
font-size: 4vw;
img {
@@ -4654,10 +4779,12 @@
.user_box {
.box;
.box-align-center;
+ width: 100%;
margin-bottom: 4vw;
background-color: #ffffff;
border-radius: 2vw;
padding: 3.33vw;
+ padding-bottom: 0;
.icon {
width: 12vw;
@@ -4669,11 +4796,13 @@
.info {
.box;
.box-tb;
+ width: 100%;
>div {
.box;
.box-align-center;
- margin-bottom: 2.53vw;
+ margin-bottom: 3.33vw;
+ width: 100%;
b {
font-size: 4vw;
@@ -4712,4 +4841,138 @@
}
}
}
+}
+
+.allow {
+
+ .top {
+ background: url(/img/allow_bg.jpg);
+ background-size: 100% auto;
+ // height: 35vw;
+ padding: 12vw 4vw;
+
+ .tit {
+ .box;
+ .box-align-center;
+ font-size: 4.8vw;
+ color: #222222;
+
+ span {
+ display: block;
+ margin-right: 1.2vw;
+ }
+ }
+
+ b {
+ display: block;
+ font-size: 8vw;
+ color: #222222;
+ margin-top: 5.47vw;
+ }
+ }
+
+ .content {
+ background-color: #ffffff;
+ border-radius: 5.33vw 5.33vw 0vw 0vw;
+ margin-top: -4vw;
+ padding: 4vw;
+
+ .t {
+ font-size: 4vw;
+ font-weight: bold;
+ color: #333333;
+ }
+
+ .list {
+ .box;
+ .box-tb;
+ margin-top: 3.33vw;
+
+ .item {
+ .box;
+ .box-align-center;
+ // height: 10vw;
+ padding: 4vw 0;
+ border-bottom: 1px solid #f5f5f580;
+
+ img {
+ width: 4.53vw;
+ height: 4.27vw;
+ margin-right: 4vw;
+ }
+
+ span {
+ font-size: 3.47vw;
+ color: #333333;
+ }
+ }
+ }
+ }
+}
+
+.certificate {
+ .f5;
+
+ .van-tabs__line {
+ bottom: 5.5vw;
+ }
+
+ .list {
+ margin-top: 4vw;
+ padding: 0 4vw;
+
+ .item {
+ .box;
+ .box-align-center;
+ margin-bottom: 4vw;
+
+ img {
+ width: 26.67vw;
+ height: 26.67vw;
+ }
+
+ .info {
+ .box;
+ .box-align-center;
+ height: 26.67vw;
+ background-color: #ffffff;
+ border-radius: 1.6vw;
+ width: 100%;
+ padding: 5.2vw 0;
+ position: relative;
+
+ >div {
+ margin-left: 5.2vw;
+
+ b {
+ font-size: 4.8vw;
+ color: #010101;
+ }
+
+ p {
+ color: #333333;
+ margin-top: 5.2vw;
+ }
+ }
+
+ img {
+ width: 11.6vw;
+ height: 10.27vw;
+ position: absolute;
+ right: 2.4vw;
+ }
+
+ button {
+ position: absolute;
+ right: 2.4vw;
+ width: 18.67vw;
+ height: 6.67vw;
+ background-color: #ea3e23;
+ border-radius: 1.6vw;
+ border: none;
+ .bs;
+ }
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/src/styles/public.less b/src/styles/public.less
index a674add..9f5d9d6 100644
--- a/src/styles/public.less
+++ b/src/styles/public.less
@@ -1098,8 +1098,11 @@ img {
}
button {
+ position: fixed;
+ bottom: 4vw;
+
border: none;
- width: 100%;
+ width: 86%;
.bs;
font-size: 4.53vw;
height: 10.67vw;
@@ -1375,6 +1378,7 @@ img {
.box-pack-between;
font-size: 3.47vw;
color: #303030;
+ width: 100%;
b {
.text-hide(1);
@@ -2163,6 +2167,7 @@ img {
.box-align-center;
.box-pack-between;
margin-top: 4vw;
+ white-space: nowrap;
>div {
.box;
@@ -2304,20 +2309,29 @@ img {
margin-bottom: 3.2vw;
}
+ .active {
+ background-color: #ca2904;
+ .bs;
+ }
+
+ .inactive {
+ border: 1px solid #ca2904;
+ color: #000;
+ }
+
.spec_de {
height: 8vw;
- background-color: #ca2904;
border-radius: 1.07vw;
padding: 0 4vw;
width: max-content;
margin-right: 2.4vw;
.box;
.box-center-center;
- .bs;
}
.buynums {
- .box;
+ display: flex;
+ width: 100%;
.title {
margin-bottom: 0;
diff --git a/src/views/Account/Login.vue b/src/views/Account/Login.vue
index 57b9482..9ec553d 100644
--- a/src/views/Account/Login.vue
+++ b/src/views/Account/Login.vue
@@ -324,6 +324,15 @@ export default {
},
mounted() {
this.init()
+ // 解析邀请链接参数
+ const params = new URLSearchParams(location.hash.split('?')[1] || '');
+ const inviteCode = params.get('invite');
+ if (inviteCode) {
+ this.formData.Recommend = inviteCode;
+ localStorage.setItem('recommend', inviteCode);
+ // 有邀请码时自动切换到注册模式
+ this.isReg = true;
+ }
},
beforeUnmount() {
if (this.countdown.timer) {
diff --git a/src/views/Goods/NGoodsDetail.vue b/src/views/Goods/NGoodsDetail.vue
index 44d13f0..6e8e487 100644
--- a/src/views/Goods/NGoodsDetail.vue
+++ b/src/views/Goods/NGoodsDetail.vue
@@ -16,8 +16,6 @@
-
-
¥{{ data.saleprice?.toFixed(2) }}
@@ -60,9 +58,9 @@
-
+
-
请选择规格分类
+
{{ selectedSku }}
@@ -71,17 +69,15 @@
产品详情
-
-
-
+
-
-
-
+
+
+
@@ -89,40 +85,40 @@
-
+
-
¥
-
剩余:
-
已选:
+
¥{{ (tempSku.saleprice * tempSku.Qty).toFixed(2) }}
+
剩余:{{ tempSku.saleleft }}
+
已选:{{ tempSku.skuname }}
-
+
- 基本规格
+ {{ spec.name }}
-
- 瓶
+
+ {{ child.name }}
-
- 瓶
-
-
-
-
-
- 购买数量
-
-
-
-
+
+
+ 购买数量
+
+
+
+
+
+
-
+
@@ -133,19 +129,28 @@
\ No newline at end of file
diff --git a/src/views/Merchant/Merchant.vue b/src/views/Merchant/Merchant.vue
index b86a5dd..c4bfa4d 100644
--- a/src/views/Merchant/Merchant.vue
+++ b/src/views/Merchant/Merchant.vue
@@ -8,41 +8,52 @@
账号:{{ data.MerchantPhone }}
-
-
- 专属顾问
+
+ 管理中心
+
-
- 我的钱包
-
+
-
+
- 当前营业收入
+ 可用余额
{{ data.Income?.toFixed(2) }}
-
+
- 消费券累计
+ 会员卡额度
{{ data.Point?.toFixed(2) }}
-
-
+
+
-->
+
+
+
+
收款码
+
+
+
+
+
订单记录
+
+
+
+
+
商家资料
+
+
@@ -81,7 +109,7 @@
- 今日抵扣积分
+ 今日应收(元)
{{ data.TodayDeduct?.toFixed(2) }}
昨日{{ data.YesterdayDeduct?.toFixed(2) }}
@@ -97,36 +125,58 @@
- 本月收入(元)
+ 今日惠利金额(元)
{{ data.MonthIncome?.toFixed(2) }}
-
上月{{ data.PrevMonthIncome?.toFixed(2) }}
+
昨日{{ data.PrevMonthIncome?.toFixed(2) }}
-
- 返回个人中心
-
-
+
+
+
+
+
+
+
+
+
+ {{ data.MerchantName }}
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/Trade/TradeConfirm.vue b/src/views/Trade/TradeConfirm.vue
index 46ec874..8af6cb2 100644
--- a/src/views/Trade/TradeConfirm.vue
+++ b/src/views/Trade/TradeConfirm.vue
@@ -4,7 +4,7 @@
-
+
{{ address.ReceiveName }}
{{ address.ReceivePhone }}
@@ -41,7 +41,7 @@
商品金额
¥ {{ ((product.saleprice || 0) * (product.buynums || 1))?.toFixed(2)
- }}
+ }}
@@ -142,18 +142,29 @@ export default {
},
methods: {
loadProduct() {
- this.$get(`/v1/client/EProsClient/${this.$route.query.id}`).then(res => {
+ const id = this.$route.query.id;
+ const skuid = this.$route.query.skuid;
+ this.$get(`/v1/client/EProsClient/${id}`).then(res => {
const data = res.data;
- const skuid = this.$route.query.skuid;
- const sku = (data.specCombinations || []).find(s => s.skuid == skuid);
+ // 从规格组合中找到匹配的SKU
+ let sku = null;
+ if (skuid && data.specCombinations) {
+ sku = data.specCombinations.find(s => String(s.skuid) === String(skuid));
+ }
+ if (!sku && data.specCombinations?.length) {
+ sku = data.specCombinations[0];
+ }
this.product = {
- ...data,
- skuid: sku?.skuid,
- skuname: sku?.skuname,
- saleprice: sku?.saleprice,
- originalprice: sku?.originalprice,
+ id: data.id,
+ name: data.name,
img: sku?.img || data.img,
- buynums: 1
+ saleprice: sku?.saleprice || data.saleprice,
+ originalprice: sku?.originalprice || data.originalprice,
+ skuid: sku?.skuid,
+ skuname: sku?.skuname || '默认规格',
+ buynums: parseInt(this.$route.query.buynums) || 1,
+ typename: data.typename || '商品',
+ expressprice: data.expressprice || 0
};
});
},
diff --git a/src/views/User/Allow.vue b/src/views/User/Allow.vue
new file mode 100644
index 0000000..2c0cb02
--- /dev/null
+++ b/src/views/User/Allow.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+ 礼包业绩总累计
+
+
+
+
4000.00
+
+
+
+
+ 业绩统计
+
+
+
+
+
+
+ 自己礼包消费业绩
+
+
+
+
+
+
+
+ 网体礼包消费业绩
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/User/Balance.vue b/src/views/User/Balance.vue
index 33e7c4c..2480a4b 100644
--- a/src/views/User/Balance.vue
+++ b/src/views/User/Balance.vue
@@ -1,6 +1,6 @@
-
+
+
@@ -114,56 +114,169 @@
-
-
+
+
+
+
+ 当前余额
+
+
+
+
+
提现记录
+
-
-->
+
+
+
+ {{ data.total.totalsum?.toFixed(2) }}
+
+
+
+ 提现
+
+
+
+
+
+ 累计收入:
+
{{ data.total?.positivesum?.toFixed(2) }}
+
+
+ 累计支出:
+
{{ Math.abs((data.total?.negativesum))?.toFixed(2) }}
+
+
+
+
+
+
+
+ {{ date[0] }}-
+
{{ (parseInt(date[1]) < 10) ? `0${parseInt(date[1])}` : parseInt(date[1]) }}
+
+
+
+
+
+
收入
+
{{ data.total?.positivesumcurrent?.toFixed(2) }}
+
+
+
+
支出
+
{{ Math.abs((data.total?.negativesumcurrent))?.toFixed(2) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $route.meta.title }}:{{
+ item.balance?.toFixed(2) }}
+
+
+
+ {{ item.nums > 0 ? "增加:+" : "减少:"
+ }}{{ (item.nums).toFixed(2) }}
+
+
+
+
+
+
+ 备注:{{ item.remark }}
+
+
+
+
+
+
+ 订单:{{ item.ordernum }}
+
+ 复制
+
+
+
+
+
+ 时间:{{ $formatGMT(item.addtime, 'yyyy-MM-dd HH:mm:ss') }}
+
+
+
+
+
+
+
+
+
+
@@ -176,8 +289,6 @@
\ No newline at end of file
diff --git a/src/views/User/Invite.vue b/src/views/User/Invite.vue
index ae7651e..507133c 100644
--- a/src/views/User/Invite.vue
+++ b/src/views/User/Invite.vue
@@ -5,11 +5,13 @@
-
+
-
+
{{ $substring(data.NickName, 0, 8) }}
+
邀请你使用泰古润平台
+ 共赴葡园品鉴醇香
import { html2canvas, canvasToDataURL } from '@/utils/html2image';
+import { useUserStore } from '@/stores/user';
export default {
name: 'Invite',
@@ -34,30 +37,66 @@ export default {
loading: true,
data: {
Icon: '',
- Avatar: '/img/avatar.png',
- NickName: '123123',
+ Avatar: '',
+ NickName: '',
},
- link: '123',
+ link: '',
+ userStore: useUserStore(),
};
},
mounted() {
this.loading = false;
- document.getElementById("invite_bg").onload = () => {
- this.CreatePoster(".ewm_bg > div", "#sc_ewm");
- };
+ this.init().then(() => {
+ // 等数据和二维码都准备好后再生成海报
+ this.$nextTick(() => {
+ const img = document.getElementById("invite_bg");
+ if (img.complete) {
+ this.CreatePoster(".ewm_bg > div", "#sc_ewm");
+ } else {
+ img.onload = () => this.CreatePoster(".ewm_bg > div", "#sc_ewm");
+ }
+ });
+ });
},
methods: {
+ async init() {
+ try {
+ // 获取用户信息
+ const userInfo = await this.$get('/v1/client/DUsersClient');
+ if (userInfo?.data) {
+ this.data.Avatar = userInfo.data.userimg || '';
+ this.data.NickName = userInfo.data.nickname || '';
+ this.data.Icon = userInfo.data.Icon || '';
+ }
+ // 生成包含邀请码的链接
+ const inviteCode = userInfo?.data?.cellphone || '';
+ this.link = `${location.origin}${location.pathname}#/Login?invite=${inviteCode}`;
+ } catch (err) {
+ console.error('获取用户信息失败:', err);
+ }
+ },
async CreatePoster(divID, targetID) {
var shareContent = document.querySelector(divID);
var width = shareContent.offsetWidth;
var height = shareContent.offsetHeight;
try {
+ // 等待头像图片加载完成
+ const avatarImg = shareContent.querySelector('.icon');
+ if (avatarImg && !avatarImg.complete) {
+ await new Promise((resolve, reject) => {
+ avatarImg.onload = resolve;
+ avatarImg.onerror = resolve; // 加载失败也继续
+ setTimeout(resolve, 5000); // 超时也继续
+ });
+ }
+
var canvas = await html2canvas(shareContent, {
scale: 2,
width: width,
height: height,
useCORS: true,
+ allowTaint: false,
});
var dataUrl = canvasToDataURL(canvas, "image/png", 1.0);
var newImg = document.createElement("img");
@@ -88,38 +127,39 @@ export default {
.name {
position: absolute;
- bottom: 78.067vw;
+ left: 20.27vw;
+ bottom: 25.6vw;
line-height: 6vw;
width: 100%;
b {
- font-size: 4.8vw;
- color: #1d3437;
+ font-size: 3.47vw;
+ color: #3a0a05;
}
p {
- color: #1d3437;
font-size: 3.2vw;
}
}
.icon {
position: absolute;
- width: 16.8vw;
- height: 16.8vw;
- left: 41.467vw;
- bottom: 86.933vw;
+ width: 10.67vw;
+ height: 10.67vw;
+ left: 20.27vw;
+ bottom: 42vw;
+ border-radius: 50%;
}
.ewm_test {
position: absolute;
- left: 30vw;
- bottom: 28.133vw;
+ left: 23.73vw;
+ bottom: 57.47vw;
white-space: nowrap;
img {
- width: 39.333vw;
- height: 39.333vw;
+ width: 52.53vw;
+ height: 52.53vw;
}
}
}
diff --git a/src/views/User/My.vue b/src/views/User/My.vue
index 5dc2f4a..72ae551 100644
--- a/src/views/User/My.vue
+++ b/src/views/User/My.vue
@@ -32,7 +32,7 @@
-
+
余额
@@ -40,7 +40,7 @@
1377.00
-
+
会员卡额度
@@ -48,7 +48,7 @@
13777.00
-
+
积分
diff --git a/src/views/User/Point.vue b/src/views/User/Point.vue
new file mode 100644
index 0000000..6013511
--- /dev/null
+++ b/src/views/User/Point.vue
@@ -0,0 +1,174 @@
+
+
+
+
+
+
+
+ 当前积分
+
+
+
+
+
+
+ {{ data.total.totalsum?.toFixed(2) }}
+
+
+
+
+
+ 累计收入:
+
{{ data.total?.positivesum?.toFixed(2) }}
+
+
+ 累计支出:
+
{{ Math.abs((data.total?.negativesum))?.toFixed(2) }}
+
+
+
+
+
+
+
+ {{ date[0] }}-
+
{{ (parseInt(date[1]) < 10) ? `0${parseInt(date[1])}` : parseInt(date[1]) }}
+
+
+
+
+
+
收入
+
{{ data.total?.positivesumcurrent?.toFixed(2) }}
+
+
+
+
支出
+
{{ Math.abs((data.total?.negativesumcurrent))?.toFixed(2) }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $route.meta.title }}:{{
+ item.balance?.toFixed(2) }}
+
+
+
+ {{ item.nums > 0 ? "增加:+" : "减少:"
+ }}{{ (item.nums).toFixed(2) }}
+
+
+
+
+
+
+ 备注:{{ item.remark }}
+
+
+
+
+
+
+ 订单:{{ item.ordernum }}
+
+ 复制
+
+
+
+
+
+ 时间:{{ $formatGMT(item.addtime, 'yyyy-MM-dd HH:mm:ss') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/User/Team.vue b/src/views/User/Team.vue
index a8a025c..bcc58ca 100644
--- a/src/views/User/Team.vue
+++ b/src/views/User/Team.vue
@@ -7,9 +7,11 @@
我的好友
-
+
+
@@ -19,8 +21,13 @@
-
-
+
@@ -63,14 +70,16 @@
{{ total.allfriendcount }}
-
+
-->
-
-
-
+
+
+
+
+
@@ -85,25 +94,47 @@
- {{ item.username }}
+ {{ item.nickname }}
{{ item.userlevelname }}
-
+
账号:{{ item.cellphone ? item.cellphone.substring(0, 3) + '****' +
item.cellphone.substring(7) : '' }}
+
-
{{ $formatGMT(item.addtime, 'yyyy-MM-dd HH:mm:ss') }}
+
+
+ {{ $formatGMT(item.addtime, 'yyyy-MM-dd HH:mm:ss') }}
+
+ 商家信息
+
+
+
+
+
+
+
+
+
+ name
+ 账号:
+
+
+
@@ -122,39 +153,11 @@ export default {
data() {
return {
active: 0,
+ cansee: true,
+ show: false,
data: [
- {
- UserID: '10001',
- NickName: '张三',
- Avatar: '/img/mall_i1.png',
- LevelName: 'VIP会员',
- Phone: '13812345678',
- CTime: '2026-04-15 10:30:00',
- },
- {
- UserID: '10002',
- NickName: '李四',
- Avatar: '/img/mall_i2.png',
- LevelName: '银卡会员',
- Phone: '13987654321',
- CTime: '2026-04-10 14:20:00',
- },
- {
- UserID: '10003',
- NickName: '王五',
- Avatar: '/img/mall_i3.png',
- LevelName: '普通会员',
- Phone: '13611112222',
- CTime: '2026-04-05 09:15:00',
- },
],
total: {
- TotalTreeQty: 3,
- TotalTreeSeed: 12,
- TotalTreeFruit: 580,
- TotalCount: 3,
- friendcount: 0,
- allfriendcount: 0,
},
title: this.$route.query.title || null,
};
@@ -188,4 +191,32 @@ export default {
.r10 {
border-radius: 10px;
}
+
+.merchantinfo {
+ display: flex;
+}
+
+.merchantinfo img {
+ width: 12vw;
+ height: 12vw;
+ border-radius: 50%;
+}
+
+.merchantinfo .inf {
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ margin-left: 3.33vw;
+ height: 12vw;
+}
+
+.merchantinfo .inf b {
+ font-size: 4vw;
+ color: #000000;
+}
+
+.merchantinfo .inf span {
+ font-size: 3.67vw;
+ color: #333;
+}
diff --git a/src/views/User/Voucher.vue b/src/views/User/Voucher.vue
deleted file mode 100644
index 57ab505..0000000
--- a/src/views/User/Voucher.vue
+++ /dev/null
@@ -1,258 +0,0 @@
-
-
-
-
-
-
- 当前{{ $route.meta.title }}
-
-
- {{ data.total?.totalsum?.toFixed(2) }}
-
-
-
- 累计收入
-
{{ data.total?.positivesum?.toFixed(2) }}
-
-
- 累计支出
-
{{ Math.abs(data.total?.negativesum)?.toFixed(2) }}
-
-
-
-
-
-
-
-
-
- {{ date[0] }}年
- {{ (parseInt(date[1]) < 10) ? `0${parseInt(date[1])}` : parseInt(date[1]) }}月
-
-
-
-
-
- 收入
- {{ data.total?.positivesumcurrent?.toFixed(2) }}
-
-
- 支出
- {{ Math.abs(data.total?.negativesumcurrent)?.toFixed(2) }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ $route.meta.title }}:{{
- item.balance?.toFixed(2) }}
-
-
-
- {{ item.nums > 0 ? "增加:+" : "减少:"
- }}{{ (item.nums).toFixed(2) }}
-
-
-
-
-
-
- 备注:{{ item.remark }}
-
-
-
-
-
-
- 订单:{{ item.ordernum }}
-
- 复制
-
-
-
-
-
- 时间:{{ $formatGMT(item.addtime, 'yyyy-MM-dd HH:mm:ss') }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-