diff --git a/pages.json b/pages.json
index 8d4e6f9..2085d81 100644
--- a/pages.json
+++ b/pages.json
@@ -20,6 +20,19 @@
"group": "商城"
}
},
+ {
+ "path": "pages/subscribe/subscribe",
+ "style": {
+ "navigationBarTitleText": "预约",
+ "enablePullDownRefresh": true
+ },
+ "meta": {
+ "auth": false,
+ "sync": true,
+ "title": "预约",
+ "group": "商城"
+ }
+ },
{
"path": "pages/index/user",
"style": {
@@ -120,11 +133,10 @@
}
},
{
- "path" : "pages/mulu/mulu",
- "style" :
- {
- "navigationBarTitleText" : "详情",
- "enablePullDownRefresh" : true,
+ "path": "pages/mulu/mulu",
+ "style": {
+ "navigationBarTitleText": "详情",
+ "enablePullDownRefresh": true,
"navigationStyle": "default"
}
}
@@ -238,16 +250,16 @@
"title": "申请售后"
}
},
- {
- "path": "aftersale/return-delivery",
- "style": {
- "navigationBarTitleText": "退货物流"
- },
- "meta": {
- "auth": true,
- "title": "退货物流"
- }
- },
+ {
+ "path": "aftersale/return-delivery",
+ "style": {
+ "navigationBarTitleText": "退货物流"
+ },
+ "meta": {
+ "auth": true,
+ "title": "退货物流"
+ }
+ },
{
"path": "aftersale/list",
"style": {
@@ -306,6 +318,18 @@
"group": "用户中心"
}
},
+ {
+ "path": "user_vip/index",
+ "style": {
+ "navigationBarTitleText": "会员中心"
+ },
+ "meta": {
+ "auth": true,
+ "sync": true,
+ "title": "会员中心",
+ "group": "用户中心"
+ }
+ },
{
"path": "goods-collect",
"style": {
@@ -472,17 +496,17 @@
"group": "分销商城"
}
}, {
- "path": "withdraw",
- "style": {
- "navigationBarTitleText": "申请提现"
- },
- "meta": {
- "auth": true,
- "sync": true,
- "title": "申请提现",
- "group": "分销商城"
- }
- }
+ "path": "withdraw",
+ "style": {
+ "navigationBarTitleText": "申请提现"
+ },
+ "meta": {
+ "auth": true,
+ "sync": true,
+ "title": "申请提现",
+ "group": "分销商城"
+ }
+ }
]
},
{
@@ -707,4 +731,4 @@
}
]
}
-}
+}
\ No newline at end of file
diff --git a/pages/subscribe/subscribe.vue b/pages/subscribe/subscribe.vue
new file mode 100644
index 0000000..c41de5f
--- /dev/null
+++ b/pages/subscribe/subscribe.vue
@@ -0,0 +1,673 @@
+
+
+
+
+
+
+
+
+
+
+ 医馆地址:
+ {{ brandList[selectedClinicIndex].address }}
+
+
+
+
+
+
+
+
+ 医馆选择
+
+
+ {{ brandList[selectedClinicIndex].name}}
+
+
+
+
+ 预约类型
+
+
+ {{ typeList[selecttypeIndex].dictLabel}}
+
+
+
+
+
+
+
+
+
+
+ {{ item.formattedDate }}
+ {{ item.weekday }}
+
+
+
+ {{ item.formattedDate }}
+ {{ item.weekday }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.technicianName }}
+ {{item.typeName}}
+
+
+
+
+
+ 服务范围
+
+ 介绍
+
+
+
+
+
+
+
+
+
+
+ {{ item.str }}
+
+
+
+
+ 约满
+ {{ item.str }}
+
+
+
+
+
+ {{ item.str }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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;
+ // }
}
// 订阅消息