>?etx=T`vvL6BlrT)ee=Ftx?0)T7DoK-pd8lNOW~}O
zN|v4q9XvT$oya+QIVVzK)SnnhT-G@m@%SOQw~4!R7CamZEHe6tmI18+zJ+5e&u=8a
zPImy7Q%4klwwg*3Ehr~A1T;x)Mt2UaQ|e=+frl|9>Sv=b8SlHs)#;F1EQO3a@6d0xDwT~
zo9Ji|lk^Q{83Xl&ua^#fREX(JqB^0y&p6e;_F!$VY%wT_HGmY)YhyG@dmc*b72}+L
zcOa?g5xr0=JmnZh!Ntg^fiYnh(Q`AG5Nphs4sR2hHqB{9bC-HT=Dbuhkd-waOeivgA*I|_c4uBvkKcM~E9kqaELZ;9uR1*MId_&)
zpDlqtQQrS$f%Fgi16QB=Sg9ZT(^i@p?v>%4H^Gli&m2AgrfaJB(EhM(_-`X4ReRsL
zru9vy7$P|cFtoOzSOE!bo>|)K{5ZX`{>xwuz#1Jzg0vO`@cM!JR<4S9B?=>RKtAAe
z1a+-wGhj)C+&9nD@zM=vP~Q}1`+Rr>f`|#%V|1kvN1Pe+2+#pkQb5-ih|wsmIrQy@
z0ebXH22&I8H~U9UZo$tp`Zm#|0zPd3t6^EF9ftc$y^0}qCZiFbGwAH^Z0Xu>B!T&0
z2f00{Bntw8C2uKL)pJk3wEq0b{bgoH`cF;e%*TKEM@u>Q?bZXB;`-5;=6-|r)*DK_
z>iwlY_yu_dddwES(f#@>8~VEuaI3hz>wta-v)>^(ZC0-2*l+UMvd=biS)~XkzzX56
z9+CjfLpvT?b$ACw03g>u(5%tg;r&iX+cZx@BymXlU;i2^FDiH&GX$pr#;>vk`G}DR
z8^2>OE@P*8bF2%sr}TQ~8D5Y<1(=H~GqyYRgFyo(DxeBbEPb^TI@%*}&Oz%%YWeG!
z*}z$uCiFI>iQ3KjG2=UOCa5~(E6opNKEm*DFKYt&FiqbwQ8H~jT?8}lfqbVZ*2;O^
z^?b|0*PMQJ{mF6l&Zb!%UiT~4Ez9z4zA<0C-zsuGd$QCk-&g8=cR~Iw2V31=o45i+
z#kclHdybz?O*i43;v=ft(wI4bRQy1Rh%?nDD~lg9@qB-5bE
zCu^$MV(E=m#kk2W-K$53JOkigX3m@6Lhe$YYzzYFI-v8$>uPEpmMmM~3uOn37Dt4GnrKQ-txe1xBU1y$8Y}q)X{Hvz+Iod_6;wp2g?=iS{?l2zB|jo
z9`NtDwRbI)Vf3AQM7o#7Cz{a_XyN2R
zTwz1tr3qz6X3~q&%BOnP4O_)3+4e>rtr!5+G1hKz3?KOQJ_qHV;&Nc!7qTt@AkY+d
zCl74yBF+4{cc(U;O@G5I#xQ*nfFYC51N%ek%xlF}SsRVc90c#OwnV>)$wMT1s=kie
zbWX01MtzKcD~wJ=3P|^07+!X!3)6`$&UnFNPe2$I1`Rm|*+~k{BHfI~X_TTnvIgAc
zSIcrqIjFD7u3^}K_nwPqu6yI#OIdzUUhYu2N1g{hUk*NUX(_i}-+sTqqE0ej?axRF
zqr(tBF^>`dUTLgvRDY`@0RsL^s?&cBGkMUszhg)LQWi~Jvq7hC94OmOU0lI&5)I2&
zI~*uhH6}+ofv1Ae_SF2@RO9mtE02YBi4GY+bU1HHP1W2qhN^jFsf4vryumB)k5UX1
z&_afWh9Bwr1XyNiku3+bKn_~o!Pp~EXGb%OEC)`*LPa`#co4P$-9aPbwp;i*n1|xS
zYD|yQ&{?l_0%i*WXQqEQ8
z`RK!?e)RHkaKlxtG_zN_Fwta~fu~0>wICj4w{gV~It+$AMzC;RvU1QsNpg^Je9D7#
zhmI+%k>(1%dIkzy*W7;lQFdy-@|4KzJd&TR^k5`T1X49{9fd^m0i!7<=|37H2{OYT
zFbo6}4WN4W1)W>#cfYdnCuNm8qI-SRMz^;DQ62qE0o@eTj0cT0;wV6?*qebYx^*1T
zpml0>6G!E`H_{3)MusxrYNMkda2S^=w!!58vxUQqS4MB$9F%po=~yMT_8-dH%ELAy
zFzw@w0&pz3LwX%g(@xC$Q7qaiKWqCt+)+4`e@6&&>4q)ZL>5u>FFV$Ku;Lc8e
zxzuZ~DD}Dzmik0=@>iK>zANjf>(xEBjxo?1@3TRvfqzjdgg7ov00@C961lzK_+NBr
zMrRcmvL49R_E1rvk?ieS;BNy
zYixmCG6liBm}SYcu#6L7aI{~db;28xo1EJa|SEVaLtiD(vOvp
zQ*~M1RLZfp;LjyKS+G}_u)OCdo__cZ&%3>pMxjDlHvw>iqTEh`VKUDB(Y#!UMh!M4#9MVuam5QA_PDak0Vtu2$XOERdCi;5S1}0RHZ;3OhG%3fD}Q5vQUD(UQ|4P>#wliucpN<=CF~4P
zO#(hRkOU{T%Dw*`f}Al71eWn8jW(Fbv8@V#tLP2RVdx+&Rt3BZSsgM+`?awHc(@*v
zcb8Irw;bMdSv_8MPbJXXzUrAzyzv!fDZf{5`9!H#UQ+4ue%IV
zLj(O;KSr>Rm*NSR<#!@1fDh=I*LOamB|?Dhr_
z{7^{-(ggSIXuWnm3JCj(X8l>fu3*tB9Ir9pfG6;SvKTTemxOiIo_PL{SxmggWx1!6@|jZ0Er(~88;%_uUc2QowWkE-
bgHHZ0H@Il4X9V00000NkvXXu0mjfxn)iq
literal 0
HcmV?d00001
diff --git a/static/images/seckill-bg.png b/static/images/seckilbg.png
similarity index 100%
rename from static/images/seckill-bg.png
rename to static/images/seckilbg.png
From 2163f717a2f421a8dbf6dfc47106b2a0aab83387 Mon Sep 17 00:00:00 2001
From: 77 <270260644@qq.com>
Date: Thu, 26 Sep 2024 11:10:58 +0800
Subject: [PATCH 3/7] =?UTF-8?q?16=E3=80=81=E6=88=91=E7=9A=84=E6=9C=8D?=
=?UTF-8?q?=E5=8A=A1=E8=8F=9C=E5=8D=95=E7=9A=84=E5=9B=9B=E4=B8=AA=E5=AD=97?=
=?UTF-8?q?=E7=94=A8=E7=BB=84=E4=BB=B6=E6=A0=87=E9=A2=98=E6=9B=BF=E6=8D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../s-coupon-list/s-coupon-list.vue | 2 +-
.../s-menu-button/s-menu-button.vue | 64 ++++++---
sheep/components/s-menu-list/s-menu-list.vue | 122 +++++++++---------
.../components/s-order-card/s-order-card.vue | 4 +-
.../s-title-block/s-title-block.vue | 4 +-
sheep/components/s-user-card/s-user-card.vue | 3 +
6 files changed, 120 insertions(+), 79 deletions(-)
diff --git a/sheep/components/s-coupon-list/s-coupon-list.vue b/sheep/components/s-coupon-list/s-coupon-list.vue
index 3a577d2..a950321 100644
--- a/sheep/components/s-coupon-list/s-coupon-list.vue
+++ b/sheep/components/s-coupon-list/s-coupon-list.vue
@@ -40,7 +40,7 @@
:class="isDisable ? 'disabled-color' : 'subtitle-color'"
v-if="data.validityType === 2"
>
- 有效期:领取后 {{ data.fixedEndTerm }} 天内可用
+ 有效期:领取后第{{ data.fixedStartTerm }}天开始至第{{ data.fixedEndTerm }}天内有效
有效期: {{ sheep.$helper.timeFormat(data.validStartTime, 'yyyy-mm-dd') }} 至
diff --git a/sheep/components/s-menu-button/s-menu-button.vue b/sheep/components/s-menu-button/s-menu-button.vue
index 590316b..4a75d5a 100644
--- a/sheep/components/s-menu-button/s-menu-button.vue
+++ b/sheep/components/s-menu-button/s-menu-button.vue
@@ -1,19 +1,19 @@
-
+
-
+
-
-
+ @change="swiperChange"> -->
+
-
+
+
-
+
+
+
+
+
+
@@ -212,9 +235,18 @@
+ :deep(.container--right){
+ padding-left: 5px !important;
+ }
+ .ss-col-center{
+ .list-icon {
+ position: relative;
+ width: 100px;
+ height: 40px;
+ padding-right: 10px;
+ &::after{
+ position:absolute;
+ content:'';
+ top:50%;
+ right:0;
+ width:1px;
+ height:57%;
+ border-right:1px solid #ababab;
+ transform: translateY(-50%);
+ }
+ }
+ }
+
+
+ .notice-text {}
+
+ .menu-list-wrap {
+ ::v-deep .uni-list {
+ background-color: transparent;
+ }
+ }
+
\ No newline at end of file
diff --git a/sheep/components/s-order-card/s-order-card.vue b/sheep/components/s-order-card/s-order-card.vue
index 776c1ac..42eb94e 100644
--- a/sheep/components/s-order-card/s-order-card.vue
+++ b/sheep/components/s-order-card/s-order-card.vue
@@ -4,7 +4,7 @@
订单中心
- 查看更多
+ 查看全部
@@ -96,7 +96,7 @@
diff --git a/pages/user/user_vip/dayjs/dayjs.min.js b/pages/user/user_vip/dayjs/dayjs.min.js
new file mode 100644
index 0000000..8cf21f8
--- /dev/null
+++ b/pages/user/user_vip/dayjs/dayjs.min.js
@@ -0,0 +1,309 @@
+! function(t, e) {
+ "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define &&
+ define.amd ? define(e) : t.dayjs = e()
+}(this, function() {
+ "use strict";
+ var t = "millisecond",
+ e = "second",
+ n = "minute",
+ r = "hour",
+ i = "day",
+ s = "week",
+ u = "month",
+ o = "quarter",
+ a = "year",
+ h = /^(\d{4})-?(\d{1,2})-?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?.?(\d{1,3})?$/,
+ f = /\[([^\]]+)]|Y{2,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,
+ c = function(t, e, n) {
+ var r = String(t);
+ return !r || r.length >= e ? t : "" + Array(e + 1 - r.length).join(n) + t
+ },
+ d = {
+ s: c,
+ z: function(t) {
+ var e = -t.utcOffset(),
+ n = Math.abs(e),
+ r = Math.floor(n / 60),
+ i = n % 60;
+ return (e <= 0 ? "+" : "-") + c(r, 2, "0") + ":" + c(i, 2, "0")
+ },
+ m: function(t, e) {
+ var n = 12 * (e.year() - t.year()) + (e.month() - t.month()),
+ r = t.clone().add(n, u),
+ i = e - r < 0,
+ s = t.clone().add(n + (i ? -1 : 1), u);
+ return Number(-(n + (e - r) / (i ? r - s : s - r)) || 0)
+ },
+ a: function(t) {
+ return t < 0 ? Math.ceil(t) || 0 : Math.floor(t)
+ },
+ p: function(h) {
+ return {
+ M: u,
+ y: a,
+ w: s,
+ d: i,
+ D: "date",
+ h: r,
+ m: n,
+ s: e,
+ ms: t,
+ Q: o
+ } [h] || String(h || "").toLowerCase().replace(/s$/, "")
+ },
+ u: function(t) {
+ return void 0 === t
+ }
+ },
+ $ = {
+ name: "en",
+ weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
+ months: "January_February_March_April_May_June_July_August_September_October_November_December".split(
+ "_")
+ },
+ l = "en",
+ m = {};
+ m[l] = $;
+ var y = function(t) {
+ return t instanceof v
+ },
+ M = function(t, e, n) {
+ var r;
+ if (!t) return l;
+ if ("string" == typeof t) m[t] && (r = t), e && (m[t] = e, r = t);
+ else {
+ var i = t.name;
+ m[i] = t, r = i
+ }
+ return !n && r && (l = r), r || !n && l
+ },
+ g = function(t, e) {
+ if (y(t)) return t.clone();
+ var n = "object" == typeof e ? e : {};
+ return n.date = t, n.args = arguments, new v(n)
+ },
+ D = d;
+ D.l = M, D.i = y, D.w = function(t, e) {
+ return g(t, {
+ locale: e.$L,
+ utc: e.$u,
+ $offset: e.$offset
+ })
+ };
+ var v = function() {
+ function c(t) {
+ this.$L = this.$L || M(t.locale, null, !0), this.parse(t)
+ }
+ var d = c.prototype;
+ return d.parse = function(t) {
+ this.$d = function(t) {
+ var e = t.date,
+ n = t.utc;
+ if (null === e) return new Date(NaN);
+ if (D.u(e)) return new Date;
+ if (e instanceof Date) return new Date(e);
+ if ("string" == typeof e && !/Z$/i.test(e)) {
+ var r = e.match(h);
+ if (r) return n ? new Date(Date.UTC(r[1], r[2] - 1, r[3] || 1, r[4] || 0, r[5] || 0,
+ r[6] || 0, r[7] || 0)) : new Date(r[1], r[2] - 1, r[3] || 1, r[4] || 0,
+ r[5] || 0, r[6] || 0, r[7] || 0)
+ }
+ return new Date(e)
+ }(t), this.init()
+ }, d.init = function() {
+ var t = this.$d;
+ this.$y = t.getFullYear(), this.$M = t.getMonth(), this.$D = t.getDate(), this.$W = t.getDay(),
+ this.$H = t.getHours(), this.$m = t.getMinutes(), this.$s = t.getSeconds(), this.$ms = t
+ .getMilliseconds()
+ }, d.$utils = function() {
+ return D
+ }, d.isValid = function() {
+ return !("Invalid Date" === this.$d.toString())
+ }, d.isSame = function(t, e) {
+ var n = g(t);
+ return this.startOf(e) <= n && n <= this.endOf(e)
+ }, d.isAfter = function(t, e) {
+ return g(t) < this.startOf(e)
+ }, d.isBefore = function(t, e) {
+ return this.endOf(e) < g(t)
+ }, d.$g = function(t, e, n) {
+ return D.u(t) ? this[e] : this.set(n, t)
+ }, d.year = function(t) {
+ return this.$g(t, "$y", a)
+ }, d.month = function(t) {
+ return this.$g(t, "$M", u)
+ }, d.day = function(t) {
+ return this.$g(t, "$W", i)
+ }, d.date = function(t) {
+ return this.$g(t, "$D", "date")
+ }, d.hour = function(t) {
+ return this.$g(t, "$H", r)
+ }, d.minute = function(t) {
+ return this.$g(t, "$m", n)
+ }, d.second = function(t) {
+ return this.$g(t, "$s", e)
+ }, d.millisecond = function(e) {
+ return this.$g(e, "$ms", t)
+ }, d.unix = function() {
+ return Math.floor(this.valueOf() / 1e3)
+ }, d.valueOf = function() {
+ return this.$d.getTime()
+ }, d.startOf = function(t, o) {
+ var h = this,
+ f = !!D.u(o) || o,
+ c = D.p(t),
+ d = function(t, e) {
+ var n = D.w(h.$u ? Date.UTC(h.$y, e, t) : new Date(h.$y, e, t), h);
+ return f ? n : n.endOf(i)
+ },
+ $ = function(t, e) {
+ return D.w(h.toDate()[t].apply(h.toDate("s"), (f ? [0, 0, 0, 0] : [23, 59, 59, 999])
+ .slice(e)), h)
+ },
+ l = this.$W,
+ m = this.$M,
+ y = this.$D,
+ M = "set" + (this.$u ? "UTC" : "");
+ switch (c) {
+ case a:
+ return f ? d(1, 0) : d(31, 11);
+ case u:
+ return f ? d(1, m) : d(0, m + 1);
+ case s:
+ var g = this.$locale().weekStart || 0,
+ v = (l < g ? l + 7 : l) - g;
+ return d(f ? y - v : y + (6 - v), m);
+ case i:
+ case "date":
+ return $(M + "Hours", 0);
+ case r:
+ return $(M + "Minutes", 1);
+ case n:
+ return $(M + "Seconds", 2);
+ case e:
+ return $(M + "Milliseconds", 3);
+ default:
+ return this.clone()
+ }
+ }, d.endOf = function(t) {
+ return this.startOf(t, !1)
+ }, d.$set = function(s, o) {
+ var h, f = D.p(s),
+ c = "set" + (this.$u ? "UTC" : ""),
+ d = (h = {}, h[i] = c + "Date", h.date = c + "Date", h[u] = c + "Month", h[a] = c +
+ "FullYear", h[r] = c + "Hours", h[n] = c + "Minutes", h[e] = c + "Seconds", h[t] = c +
+ "Milliseconds", h)[f],
+ $ = f === i ? this.$D + (o - this.$W) : o;
+ if (f === u || f === a) {
+ var l = this.clone().set("date", 1);
+ l.$d[d]($), l.init(), this.$d = l.set("date", Math.min(this.$D, l.daysInMonth())).toDate()
+ } else d && this.$d[d]($);
+ return this.init(), this
+ }, d.set = function(t, e) {
+ return this.clone().$set(t, e)
+ }, d.get = function(t) {
+ return this[D.p(t)]()
+ }, d.add = function(t, o) {
+ var h, f = this;
+ t = Number(t);
+ var c = D.p(o),
+ d = function(e) {
+ var n = g(f);
+ return D.w(n.date(n.date() + Math.round(e * t)), f)
+ };
+ if (c === u) return this.set(u, this.$M + t);
+ if (c === a) return this.set(a, this.$y + t);
+ if (c === i) return d(1);
+ if (c === s) return d(7);
+ var $ = (h = {}, h[n] = 6e4, h[r] = 36e5, h[e] = 1e3, h)[c] || 1,
+ l = this.$d.getTime() + t * $;
+ return D.w(l, this)
+ }, d.subtract = function(t, e) {
+ return this.add(-1 * t, e)
+ }, d.format = function(t) {
+ var e = this;
+ if (!this.isValid()) return "Invalid Date";
+ var n = t || "YYYY-MM-DDTHH:mm:ssZ",
+ r = D.z(this),
+ i = this.$locale(),
+ s = this.$H,
+ u = this.$m,
+ o = this.$M,
+ a = i.weekdays,
+ h = i.months,
+ c = function(t, r, i, s) {
+ return t && (t[r] || t(e, n)) || i[r].substr(0, s)
+ },
+ d = function(t) {
+ return D.s(s % 12 || 12, t, "0")
+ },
+ $ = i.meridiem || function(t, e, n) {
+ var r = t < 12 ? "AM" : "PM";
+ return n ? r.toLowerCase() : r
+ },
+ l = {
+ YY: String(this.$y).slice(-2),
+ YYYY: this.$y,
+ M: o + 1,
+ MM: D.s(o + 1, 2, "0"),
+ MMM: c(i.monthsShort, o, h, 3),
+ MMMM: h[o] || h(this, n),
+ D: this.$D,
+ DD: D.s(this.$D, 2, "0"),
+ d: String(this.$W),
+ dd: c(i.weekdaysMin, this.$W, a, 2),
+ ddd: c(i.weekdaysShort, this.$W, a, 3),
+ dddd: a[this.$W],
+ H: String(s),
+ HH: D.s(s, 2, "0"),
+ h: d(1),
+ hh: d(2),
+ a: $(s, u, !0),
+ A: $(s, u, !1),
+ m: String(u),
+ mm: D.s(u, 2, "0"),
+ s: String(this.$s),
+ ss: D.s(this.$s, 2, "0"),
+ SSS: D.s(this.$ms, 3, "0"),
+ Z: r
+ };
+ return n.replace(f, function(t, e) {
+ return e || l[t] || r.replace(":", "")
+ })
+ }, d.utcOffset = function() {
+ return 15 * -Math.round(this.$d.getTimezoneOffset() / 15)
+ }, d.diff = function(t, h, f) {
+ var c, d = D.p(h),
+ $ = g(t),
+ l = 6e4 * ($.utcOffset() - this.utcOffset()),
+ m = this - $,
+ y = D.m(this, $);
+ return y = (c = {}, c[a] = y / 12, c[u] = y, c[o] = y / 3, c[s] = (m - l) / 6048e5, c[i] = (m -
+ l) / 864e5, c[r] = m / 36e5, c[n] = m / 6e4, c[e] = m / 1e3, c)[d] || m, f ? y : D.a(y)
+ }, d.daysInMonth = function() {
+ return this.endOf(u).$D
+ }, d.$locale = function() {
+ return m[this.$L]
+ }, d.locale = function(t, e) {
+ if (!t) return this.$L;
+ var n = this.clone(),
+ r = M(t, e, !0);
+ return r && (n.$L = r), n
+ }, d.clone = function() {
+ return D.w(this.$d, this)
+ }, d.toDate = function() {
+ return new Date(this.valueOf())
+ }, d.toJSON = function() {
+ return this.isValid() ? this.toISOString() : null
+ }, d.toISOString = function() {
+ return this.$d.toISOString()
+ }, d.toString = function() {
+ return this.$d.toUTCString()
+ }, c
+ }();
+ return g.prototype = v.prototype, g.extend = function(t, e) {
+ return t(e, v, g), g
+ }, g.locale = M, g.isDayjs = y, g.unix = function(t) {
+ return g(1e3 * t)
+ }, g.en = m[l], g.Ls = m, g
+});
\ No newline at end of file
diff --git a/pages/user/user_vip/home/index.vue b/pages/user/user_vip/home/index.vue
new file mode 100644
index 0000000..1fa37eb
--- /dev/null
+++ b/pages/user/user_vip/home/index.vue
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/user/user_vip/index.vue b/pages/user/user_vip/index.vue
new file mode 100644
index 0000000..32b17e3
--- /dev/null
+++ b/pages/user/user_vip/index.vue
@@ -0,0 +1,608 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 当前经验值
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 会员折扣
+
+
+
+
+
+
+ 专属徽章
+
+
+
+
+
+
+ 会员升级
+
+
+
+
+
+
+ 经验积累
+
+
+
+
+
+
+ 更多特权
+
+
+
+
+
+
+ 获取经验
+
+
+
+
+
+
+
+
+ 签到
+ 每日签到可获得经验值
+
+
+ 去获取
+
+
+
+
+
+
+
+
+ 购买商品
+ 购买商品可获得对应是经验值
+
+
+ 去获取
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sheep/api/member/level.js b/sheep/api/member/level.js
new file mode 100644
index 0000000..395cff1
--- /dev/null
+++ b/sheep/api/member/level.js
@@ -0,0 +1,20 @@
+import request from '@/sheep/request';
+
+const getExper = {
+ // 获得会员等级列表
+ getLevelList: () => {
+ return request({
+ url: '/app-api/member/level/list',
+ method: 'GET',
+ });
+ },
+ // 获得会员经验记录分页
+ getExperienceRecordPage: () => {
+ return request({
+ url: '/app-api/member/experience-record/page',
+ method: 'GET',
+ });
+ },
+};
+
+export default getExper;
\ No newline at end of file
diff --git a/sheep/api/trade/delivery.js b/sheep/api/trade/delivery.js
index 7ba35aa..b8004f6 100644
--- a/sheep/api/trade/delivery.js
+++ b/sheep/api/trade/delivery.js
@@ -8,6 +8,14 @@ const DeliveryApi = {
method: 'get',
});
},
+ // 获得自提门店列表
+ getDeliveryPickUpStoreList: () => {
+ return request({
+ url: `/trade/delivery/pick-up-store/list`,
+ method: 'get',
+ });
+ },
};
+
export default DeliveryApi;
diff --git a/sheep/platform/provider/wechat/miniProgram.js b/sheep/platform/provider/wechat/miniProgram.js
index e31408c..6d8d91c 100644
--- a/sheep/platform/provider/wechat/miniProgram.js
+++ b/sheep/platform/provider/wechat/miniProgram.js
@@ -164,10 +164,10 @@ const checkUpdate = async (silence = true) => {
// 获取订阅消息模板
async function getSubscribeTemplate() {
- const { error, data } = await third.wechat.subscribeTemplate();
- if (error === 0) {
- subscribeEventList = data;
- }
+ // const { error, data } = await third.wechat.subscribeTemplate();
+ // if (error === 0) {
+ // subscribeEventList = data;
+ // }
}
// 订阅消息
From 613122558aa5be39b66d626daad89aa4c9be5d8d Mon Sep 17 00:00:00 2001
From: 77 <270260644@qq.com>
Date: Fri, 27 Sep 2024 18:36:26 +0800
Subject: [PATCH 5/7] =?UTF-8?q?=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pages.json | 11 +
pages/activity/groupon/detail.vue | 941 +++++++++---------
pages/activity/groupon/list.vue | 2 +-
pages/goods/groupon.vue | 13 +-
pages/goods/sales.vue | 295 ++++++
pages/subscribe/subscribe.vue | 596 +++++++----
pages/user/user_vip/index.vue | 211 ++--
sheep/api/member/level.js | 4 +-
sheep/api/product/spu.js | 108 +-
.../s-coupon-block/s-coupon-block.vue | 15 +-
.../s-groupon-block/s-groupon-block.vue | 274 ++---
sheep/ui/su-coupon/su-coupon.vue | 41 +-
uni_modules/zmxy-slideshow/changelog.md | 14 +
.../zmxy-slideshow/zmxy-slideshow.vue | 147 +++
uni_modules/zmxy-slideshow/package.json | 85 ++
uni_modules/zmxy-slideshow/readme.md | 65 ++
16 files changed, 1836 insertions(+), 986 deletions(-)
create mode 100644 pages/goods/sales.vue
create mode 100644 uni_modules/zmxy-slideshow/changelog.md
create mode 100644 uni_modules/zmxy-slideshow/components/zmxy-slideshow/zmxy-slideshow.vue
create mode 100644 uni_modules/zmxy-slideshow/package.json
create mode 100644 uni_modules/zmxy-slideshow/readme.md
diff --git a/pages.json b/pages.json
index 2085d81..ef6fdec 100644
--- a/pages.json
+++ b/pages.json
@@ -177,6 +177,17 @@
"group": "商品"
}
},
+ {
+ "path": "sales",
+ "style": {
+ "navigationBarTitleText": "促销商品"
+ },
+ "meta": {
+ "sync": true,
+ "title": "促销商品",
+ "group": "商品"
+ }
+ },
{
"path": "list",
"style": {
diff --git a/pages/activity/groupon/detail.vue b/pages/activity/groupon/detail.vue
index 0cf22f1..bade0a3 100644
--- a/pages/activity/groupon/detail.vue
+++ b/pages/activity/groupon/detail.vue
@@ -1,516 +1,531 @@
-
-
-
-
-
+
+
+
+
+
-
+
-
-
- {{ state.data.headRecord.userSize }}人团
- 已拼{{ state.data.headRecord.userCount }}件
-
-
-
-
+ " :style="[{ top: Number(statusBarHeight + 108) + 'rpx' }]">
+
+
+ {{ state.data.headRecord.userSize }}人团
+ 已拼{{ state.data.headRecord.userCount }}件
+
+
+
+
+
+
+
+
+
+
+
+ 恭喜您~拼团成功
+
+
+
+
+
+ 抱歉~该团已满员
+
+
+
-
-
-
-
-
-
- 恭喜您~拼团成功
-
-
-
-
-
- 抱歉~该团已满员
-
-
-
+
+
+
+
+ {{ state.data.orderId ? '拼团超时,已自动退款' : '该团已解散' }}
+
+
-
-
-
-
- {{ state.data.orderId ? '拼团超时,已自动退款' : '该团已解散' }}
-
-
+
+
+
+
+
+ 拼团已结束,请关注下次活动
+
+
+
+ 还差
+ {{ state.data.headRecord.userSize - state.data.headRecord.userCount }}人
+ 拼团成功
+
+ {{ endTime.h }}
+ :
+
+ {{ endTime.m }}
+
+ :
+
+ {{ endTime.s }}
+
+
+
+
-
-
-
-
-
- 拼团已结束,请关注下次活动
-
-
-
- 还差
- {{ state.data.headRecord.userSize - state.data.headRecord.userCount }}人
- 拼团成功
-
- {{ endTime.h }}
- :
-
- {{ endTime.m }}
-
- :
-
- {{ endTime.s }}
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
+
+
+ .order-btn {
+ width: 668rpx;
+ height: 70rpx;
+ border: 2rpx solid #dfdfdf;
+ border-radius: 35rpx;
+ color: #999999;
+ font-weight: 500;
+ font-size: 26rpx;
+ line-height: normal;
+ }
+
+ .disabled-btn {
+ width: 668rpx;
+ height: 70rpx;
+ background: #dddddd;
+ border-radius: 35rpx;
+ color: #999999;
+ font-weight: 500;
+ font-size: 28rpx;
+ line-height: normal;
+ }
+
+ .join-btn {
+ width: 668rpx;
+ height: 70rpx;
+ background: linear-gradient(90deg, #ff6000 0%, #fe832a 100%);
+ box-shadow: 0px 8rpx 6rpx 0px rgba(255, 104, 4, 0.22);
+ border-radius: 35rpx;
+ color: #fff;
+ font-weight: 500;
+ font-size: 28rpx;
+ line-height: normal;
+ }
+
+ .detail-cell-wrap {
+ width: 100%;
+ padding: 10rpx 20rpx;
+ box-sizing: border-box;
+ border-top: 2rpx solid #dfdfdf;
+ background-color: #fff;
+ // min-height: 60rpx;
+
+ .label-text {
+ font-size: 28rpx;
+ font-weight: 400;
+ }
+
+ .cell-content {
+ font-size: 28rpx;
+ font-weight: 500;
+ color: $dark-6;
+ }
+
+ .right-forwrad-icon {
+ font-size: 28rpx;
+ font-weight: 500;
+ color: $dark-9;
+ }
+ }
+
\ No newline at end of file
diff --git a/pages/activity/groupon/list.vue b/pages/activity/groupon/list.vue
index b5a2746..08aee39 100644
--- a/pages/activity/groupon/list.vue
+++ b/pages/activity/groupon/list.vue
@@ -119,7 +119,7 @@
width: 100%;
height: 458rpx;
margin-top: -88rpx;
- background: v-bind(headerBg) no-repeat;
+ background: url('https://zysc.fjptzykj.com:3000/shangcheng/fea9ad54f32d4705a633874efd534e70e507030ea5a7604b0110fdf7292f1f4d.png');
background-size: 100% 100%;
}
.list-content {
diff --git a/pages/goods/groupon.vue b/pages/goods/groupon.vue
index 97c5851..aa8cb12 100644
--- a/pages/goods/groupon.vue
+++ b/pages/goods/groupon.vue
@@ -85,7 +85,12 @@
-
+
+
+
+
+
+
diff --git a/pages/goods/sales.vue b/pages/goods/sales.vue
new file mode 100644
index 0000000..811f198
--- /dev/null
+++ b/pages/goods/sales.vue
@@ -0,0 +1,295 @@
+
+
+
+ ssss
+
+
+
+
+
+
diff --git a/pages/subscribe/subscribe.vue b/pages/subscribe/subscribe.vue
index c41de5f..0a024d9 100644
--- a/pages/subscribe/subscribe.vue
+++ b/pages/subscribe/subscribe.vue
@@ -1,35 +1,36 @@
-
+
-
-
+
+
-
-
+
+
- 医馆地址:
- {{ brandList[selectedClinicIndex].address }}
-
-
-
-
+ 医馆地址:
+ {{ brandList.list[selectedClinicIndex].address }}
+
+
+
+
-
+
医馆选择
-
+
- {{ brandList[selectedClinicIndex].name}}
+ {{ brandList.list[selectedClinicIndex].name}}
预约类型
-
+
- {{ typeList[selecttypeIndex].dictLabel}}
+ {{ typeList[selecttypeIndex].label}}
@@ -52,12 +53,12 @@
-
+
{{ item.formattedDate }}
{{ item.weekday }}
-
+
{{ item.formattedDate }}
{{ item.weekday }}
@@ -76,13 +77,15 @@
-
+
+
{{ item.technicianName }}
{{item.typeName}}
-
+
-
+
+
服务范围
@@ -90,7 +93,7 @@
-
+
@@ -99,20 +102,20 @@
{{ item.str }}
-
+
-
- 约满
- {{ item.str }}
-
+
+ 约满
+ {{ item.str }}
+
-
- {{ item.str }}
+
+ {{ item.str }}
-
+
@@ -127,24 +130,33 @@
diff --git a/sheep/components/s-groupon-block/s-groupon-block.vue b/sheep/components/s-groupon-block/s-groupon-block.vue
index 1345483..0bc5e21 100644
--- a/sheep/components/s-groupon-block/s-groupon-block.vue
+++ b/sheep/components/s-groupon-block/s-groupon-block.vue
@@ -1,154 +1,164 @@
-
-
-
+
-
+
-
-
-
-
-
-
+
+ -->
+
+
+
+
+
+
+
+
+
+
+
+ .goods-list {
+ position: relative;
+
+ .cart-btn {
+ position: absolute;
+ bottom: 10rpx;
+ right: 20rpx;
+ z-index: 11;
+ height: 50rpx;
+ line-height: 50rpx;
+ padding: 0 20rpx;
+ border-radius: 25rpx;
+ font-size: 24rpx;
+ color: #fff;
+ }
+ }
+
+ .goods-list {
+ &:nth-last-of-type(1) {
+ margin-bottom: 0 !important;
+ }
+ }
+
+ .goods-sm-box {
+ margin: 0 auto;
+ box-sizing: border-box;
+
+ .goods-card-box {
+ flex-shrink: 0;
+ overflow: hidden;
+ width: 33.3%;
+ box-sizing: border-box;
+ }
+ }
+
\ No newline at end of file
diff --git a/sheep/ui/su-coupon/su-coupon.vue b/sheep/ui/su-coupon/su-coupon.vue
index 472d17f..c94806c 100644
--- a/sheep/ui/su-coupon/su-coupon.vue
+++ b/sheep/ui/su-coupon/su-coupon.vue
@@ -1,7 +1,7 @@
- {{ state.stateMap[props.state] }}
-
+ -->
-
-
+ -->
-
仅剩:{{ props.surplus }}张
-
+ -->
+
+
+
+ {{ type === 'reduce' ? value : Number(value) }}
+ {{ type === 'reduce' ? '元' : '折' }}
+
+
+ {{ props.title }}
+ 仅剩:{{ props.surplus }}张
+
+
+
+
+
+
+
+
@@ -175,6 +203,7 @@
\ No newline at end of file
diff --git a/uni_modules/zmxy-slideshow/package.json b/uni_modules/zmxy-slideshow/package.json
new file mode 100644
index 0000000..85db18b
--- /dev/null
+++ b/uni_modules/zmxy-slideshow/package.json
@@ -0,0 +1,85 @@
+{
+ "id": "zmxy-slideshow",
+ "displayName": "zmxy-slideshow-个性化幻灯片",
+ "version": "1.0.3",
+ "description": "zmxy-slideshow-个性化幻灯片,常用于轮播图,广告播放",
+ "keywords": [
+ "幻灯片",
+ "轮播图",
+ "广告横幅",
+ "渐变",
+ "放大"
+],
+ "repository": "",
+ "engines": {
+ "HBuilderX": "^3.8.0"
+ },
+ "dcloudext": {
+ "type": "component-vue",
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": ""
+ },
+ "uni_modules": {
+ "dependencies": [],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ },
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "n"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "n",
+ "QQ": "y",
+ "钉钉": "y",
+ "快手": "y",
+ "飞书": "n",
+ "京东": "n"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/zmxy-slideshow/readme.md b/uni_modules/zmxy-slideshow/readme.md
new file mode 100644
index 0000000..21ee561
--- /dev/null
+++ b/uni_modules/zmxy-slideshow/readme.md
@@ -0,0 +1,65 @@
+# zmxy-slideshow 幻灯片
+
+> 该组件是对原生
+> [swiper](https://uniapp.dcloud.net.cn/component/swiper.html)
+> 进行封装,继承了原组件部分属性及功能。
+
+## 属性说明
+
+| 属性名 | 类型 | 默认值 | 说明 | 平台差异说明 |
+|:-------------------:|:-----------:|:--------:|:----------------------------------------------------------------------------------------------------:|:------------------------------------------------:|
+| autoplay | Boolean | true | 是否自动切换 | |
+| interval | Number | 5000 | 自动切换时间间隔 | |
+| vertical | Boolean | false | 滑动方向是否为纵向 | |
+| margin | String | 60rpx | 前后边距,接受 px 和 rpx 值 | app-nvue、抖音小程序、飞书小程序不支持 |
+| easing-function | String | default | 指定 swiper 切换缓动动画类型,有效值:default、linear、easeInCubic、easeOutCubic、easeInOutCubic | 微信小程序、快手小程序、京东小程序 |
+| height | String | 300rpx | 组件整体高度,接受 px 和 rpx 值 | |
+| items | Array | [] | 图片地址、标题、链接等数据组成的对象数组([{url,title,link,...},{url,title,link,...},...]),也支持字符串数组([url1,url2,url3,...]) | |
+| @clickItem | EventHandle | | 点击幻灯片触发 clickItem 事件,item = {url,title,link,...} 或者 item = url |
+
+### easing-function 属性
+
+| 值 | 说明 |
+|:---------------:|:-------:|
+| default | 默认缓动函数 |
+| linear | 线性动画 |
+| easeInCubic | 缓入动画 |
+| easeOutCubic | 缓出动画 |
+| easeInOutCubic | 缓入缓出动画 |
+
+### 案例代码
+
+```vue
+# 基础使用
+
+# 字符串数组,线性动画
+
+```
+```javascript
+export default {
+ data() {
+ return {
+ items: [{
+ url: 'https://web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg',
+ title: '内容标题',
+ }, {
+ url: 'https://web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg',
+ title: '内容标题',
+ }, {
+ url: 'https://web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg',
+ title: '内容标题',
+ }, ],
+ items2: [
+ 'https://web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg',
+ 'https://web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg',
+ 'https://web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg',
+ ],
+ };
+ },
+ methods: {
+ clickItem(item) {
+ console.log(item);
+ }
+ }
+}
+```
From 3852d6a23a6ca9b5329e29b03f4ff9cfa2a1796d Mon Sep 17 00:00:00 2001
From: 77 <270260644@qq.com>
Date: Mon, 30 Sep 2024 19:00:13 +0800
Subject: [PATCH 6/7] =?UTF-8?q?=E4=BC=98=E5=8C=963?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pages.json | 13 +
pages/activity/groupon/list.vue | 2 +
.../commission/components/commission-auth.vue | 2 +-
.../commission/components/commission-info.vue | 2 +-
.../commission/components/commission-log.vue | 4 +-
.../commission/components/commission-menu.vue | 18 +-
pages/commission/team.vue | 2 +-
pages/goods/groupon.vue | 88 +-
pages/goods/sales.vue | 628 ++++++-----
pages/goods/seckill.vue | 986 +++++++++---------
pages/index/user.vue | 88 +-
pages/subscribe/subscribe.vue | 4 +-
pages/user/goods_details_store/index.vue | 6 +-
pages/user/user_vip/index.vue | 34 +-
sheep/api/product/spu.js | 25 +-
.../components/s-block-item/s-block-item.vue | 39 +
.../s-coupon-block/s-coupon-block.vue | 12 +-
.../s-goods-column/s-goods-column.vue | 5 +-
.../s-groupon-block/s-groupon-block.vue | 81 +-
.../components/s-menu-tools/s-menu-tools.vue | 14 +-
.../components/s-order-card/s-order-card.vue | 6 +-
.../s-seckill-block/s-seckill-block.vue | 156 ++-
sheep/ui/su-coupon/su-coupon.vue | 8 +-
.../uni-list/components/uni-list/uni-list.vue | 4 +-
24 files changed, 1314 insertions(+), 913 deletions(-)
diff --git a/pages.json b/pages.json
index ef6fdec..da6207c 100644
--- a/pages.json
+++ b/pages.json
@@ -20,6 +20,19 @@
"group": "商城"
}
},
+ {
+ "path": "pages/integration/index",
+ "style": {
+ "navigationBarTitleText": "积分商城",
+ "enablePullDownRefresh": true
+ },
+ "meta": {
+ "auth": false,
+ "sync": true,
+ "title": "积分商城",
+ "group": "商城"
+ }
+ },
{
"path": "pages/subscribe/subscribe",
"style": {
diff --git a/pages/activity/groupon/list.vue b/pages/activity/groupon/list.vue
index 08aee39..416c85b 100644
--- a/pages/activity/groupon/list.vue
+++ b/pages/activity/groupon/list.vue
@@ -203,9 +203,11 @@
}
}
.scroll-box {
+ margin-top: 13px;
height: 900rpx;
.goods-box {
position: relative;
+ padding: 0 10px;
.cart-btn {
position: absolute;
bottom: 10rpx;
diff --git a/pages/commission/components/commission-auth.vue b/pages/commission/components/commission-auth.vue
index 9a484fa..1b348fe 100644
--- a/pages/commission/components/commission-auth.vue
+++ b/pages/commission/components/commission-auth.vue
@@ -12,7 +12,7 @@
diff --git a/pages/commission/components/commission-info.vue b/pages/commission/components/commission-info.vue
index 1bd5fb4..25285aa 100644
--- a/pages/commission/components/commission-info.vue
+++ b/pages/commission/components/commission-info.vue
@@ -34,7 +34,7 @@
height: 192rpx;
margin: -88rpx 20rpx 0 20rpx;
padding-top: 88rpx;
- background: v-bind(headerBg) no-repeat;
+ background: url('https://zysc.fjptzykj.com:3000/shangcheng/10c7d7a9afb36266f658e5f398922b835530cb350ef98cf90d4ef6f60ccc1bc1.png') no-repeat;
background-size: 100% 100%;
.head-img-box {
diff --git a/pages/commission/components/commission-log.vue b/pages/commission/components/commission-log.vue
index b0fa56c..d6a8201 100644
--- a/pages/commission/components/commission-log.vue
+++ b/pages/commission/components/commission-log.vue
@@ -2,7 +2,7 @@