From bb3d0c8c0be4c19eb89680e19c500765f7b2353e Mon Sep 17 00:00:00 2001 From: "AERWEN\\26795" <123456789a> Date: Mon, 23 Oct 2023 16:13:53 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E5=AF=B9=E6=8E=A5=E5=95=86=E5=93=81?= =?UTF-8?q?=E6=94=B6=E8=97=8F(80%)=EF=BC=8C=E6=B5=8F=E8=A7=88=E8=AE=B0?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.json | 2 + components/goods-card/index.js | 14 +- components/goods-card/index.wxml | 142 ++++++++++++++++++ components/goods-card/index.wxss | 9 ++ pages/cart/components/cart-group/index.wxml | 2 +- .../goods/details/components/buy-bar/index.js | 22 ++- .../details/components/buy-bar/index.wxml | 1 + pages/goods/details/index.js | 22 ++- pages/home/home.js | 2 +- pages/home/home.wxml | 3 +- pages/usercenter/goods-collect/index.js | 122 +++++++++++++++ pages/usercenter/goods-collect/index.json | 8 + pages/usercenter/goods-collect/index.wxml | 9 ++ pages/usercenter/goods-collect/index.wxss | 1 + pages/usercenter/goods-history/index.js | 122 +++++++++++++++ pages/usercenter/goods-history/index.json | 8 + pages/usercenter/goods-history/index.wxml | 9 ++ pages/usercenter/goods-history/index.wxss | 1 + pages/usercenter/index.js | 14 +- pages/usercenter/index.wxml | 12 ++ pages/usercenter/index.wxss | 24 +++ .../addOrUpdateGoodsBrowsingHistory.js | 20 +++ .../goods-collect/getGoodsCollectionList.js | 20 +++ .../addOrUpdateGoodsBrowsingHistory.js | 20 +++ .../getGoodsBrowsingHistoryList.js | 21 +++ 25 files changed, 613 insertions(+), 17 deletions(-) create mode 100644 pages/usercenter/goods-collect/index.js create mode 100644 pages/usercenter/goods-collect/index.json create mode 100644 pages/usercenter/goods-collect/index.wxml create mode 100644 pages/usercenter/goods-collect/index.wxss create mode 100644 pages/usercenter/goods-history/index.js create mode 100644 pages/usercenter/goods-history/index.json create mode 100644 pages/usercenter/goods-history/index.wxml create mode 100644 pages/usercenter/goods-history/index.wxss create mode 100644 services/usercenter/goods-collect/addOrUpdateGoodsBrowsingHistory.js create mode 100644 services/usercenter/goods-collect/getGoodsCollectionList.js create mode 100644 services/usercenter/goods-history/addOrUpdateGoodsBrowsingHistory.js create mode 100644 services/usercenter/goods-history/getGoodsBrowsingHistoryList.js diff --git a/app.json b/app.json index d604e8d..ddf972d 100644 --- a/app.json +++ b/app.json @@ -5,6 +5,8 @@ "pages/login/authorize-avatar-name/index", "pages/login/phone-register/index", "pages/usercenter/index", + "pages/usercenter/goods-collect/index", + "pages/usercenter/goods-history/index", "pages/usercenter/person-info/index", "pages/usercenter/address/list/index", "pages/usercenter/address/edit/index", diff --git a/components/goods-card/index.js b/components/goods-card/index.js index c24811b..af7d33b 100644 --- a/components/goods-card/index.js +++ b/components/goods-card/index.js @@ -1,3 +1,7 @@ +import { + addOrUpdateGoodsBrowsingHistory +} from '~/services/usercenter/goods-history/addOrUpdateGoodsBrowsingHistory'; + Component({ options: { addGlobalClass: true, @@ -68,7 +72,15 @@ Component({ pageLifeTimes: {}, methods: { - clickHandle() { + clickHandle(e) { + // 点击加入历史记录 + console.log(this.data.goods.spuId,'看看点击商品卡的id'); + let data = { + goodsGuid: this.data.goods.spuId + } + addOrUpdateGoodsBrowsingHistory(data).then((res) => { + console.log(res); + }) this.triggerEvent('click', { goods: this.data.goods }); }, diff --git a/components/goods-card/index.wxml b/components/goods-card/index.wxml index e7e3de9..493e186 100644 --- a/components/goods-card/index.wxml +++ b/components/goods-card/index.wxml @@ -137,3 +137,145 @@ + + + + + + + + + + + {{ goods.title }} + + + + + + + {{tag}} + + + + + + + + + + + + + + + + + + + + + + + {{ goods.title }} + + + + + + + {{tag}} + + + + + + + + {{goods.craeteTime}} + + + + diff --git a/components/goods-card/index.wxss b/components/goods-card/index.wxss index 1905e00..571ae9f 100644 --- a/components/goods-card/index.wxss +++ b/components/goods-card/index.wxss @@ -178,4 +178,13 @@ .custom-tab-bar { --td-tab-bar-active-bg: #ff0000; /* 设置选中状态的背景颜色为红色 */ +} + +.goods-card__crate-time{ + width: 100%; + font-size: 25rpx; + color: grey; + display: flex; + justify-content: flex-end; + margin-right: 30rpx; } \ No newline at end of file diff --git a/pages/cart/components/cart-group/index.wxml b/pages/cart/components/cart-group/index.wxml index 373f955..9c2c55d 100644 --- a/pages/cart/components/cart-group/index.wxml +++ b/pages/cart/components/cart-group/index.wxml @@ -122,7 +122,7 @@ catchspecs="specsTap" catchclick="goGoodsDetail" > - + 无货 diff --git a/pages/goods/details/components/buy-bar/index.js b/pages/goods/details/components/buy-bar/index.js index ae274e2..0c01145 100644 --- a/pages/goods/details/components/buy-bar/index.js +++ b/pages/goods/details/components/buy-bar/index.js @@ -1,7 +1,9 @@ Component({ externalClasses: ['wr-sold-out', 'wr-class'], - options: { multipleSlots: true }, + options: { + multipleSlots: true + }, properties: { soldout: { @@ -44,23 +46,33 @@ Component({ methods: { toAddCart() { - const { isStock } = this.properties; + const { + isStock + } = this.properties; if (!isStock) return; this.triggerEvent('toAddCart'); }, toBuyNow(e) { - const { isStock } = this.properties; + const { + isStock + } = this.properties; if (!isStock) return; this.triggerEvent('toBuyNow', e); }, toNav(e) { - const { url } = e.currentTarget.dataset; + const { + url, + title + } = e.currentTarget.dataset; + return this.triggerEvent('toNav', { e, url, + title }); + }, }, -}); +}); \ No newline at end of file diff --git a/pages/goods/details/components/buy-bar/index.wxml b/pages/goods/details/components/buy-bar/index.wxml index 604afb4..e75d89b 100644 --- a/pages/goods/details/components/buy-bar/index.wxml +++ b/pages/goods/details/components/buy-bar/index.wxml @@ -11,6 +11,7 @@ data-ele="foot_navigation" data-index="{{index}}" data-url="{{item.url}}" + data-title="{{item.title}}" > diff --git a/pages/goods/details/index.js b/pages/goods/details/index.js index 103658e..c49b732 100644 --- a/pages/goods/details/index.js +++ b/pages/goods/details/index.js @@ -58,9 +58,10 @@ Page({ storeLogo: `${imgPrefix}common/store-logo.png`, storeName: '云mall标准版旗舰店', jumpArray: [{ - title: '首页', - url: '/pages/home/home', - iconName: 'home', + title: '收藏', + url: '', + iconName: 'star', + filled_iconName: 'star-filled', }, { title: '购物车', @@ -126,11 +127,18 @@ Page({ toNav(e) { const { - url + url, + title } = e.detail; - wx.switchTab({ - url: url, - }); + + if (title == "收藏") { + console.log(this.data.details.spuId,'点击收藏的id'); + // console.log("点击收藏"); + } else { + wx.switchTab({ + url: url, + }); + } }, showCurImg(e) { diff --git a/pages/home/home.js b/pages/home/home.js index e814ad6..7b9b7fa 100644 --- a/pages/home/home.js +++ b/pages/home/home.js @@ -28,7 +28,7 @@ Page({ goodsList: [], goodsListLoadStatus: 0, pageLoading: false, - current: 1, + current: 0, autoplay: true, duration: '500', interval: 5000, diff --git a/pages/home/home.wxml b/pages/home/home.wxml index 5be19ba..ba8254a 100644 --- a/pages/home/home.wxml +++ b/pages/home/home.wxml @@ -8,7 +8,8 @@ - + + diff --git a/pages/usercenter/goods-collect/index.js b/pages/usercenter/goods-collect/index.js new file mode 100644 index 0000000..3262b2b --- /dev/null +++ b/pages/usercenter/goods-collect/index.js @@ -0,0 +1,122 @@ +import { + getGoodsCollectionList +} from '~/services/usercenter/goods-collect/getGoodsCollectionList'; + + +Page({ + page: { + size: 10, + num: 1, + }, + /** + * 页面的初始数据 + */ + data: { + list: [] + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + this.init() + }, + + // 获取售后订单列表 + init(reset = false) { + const params = { + pageSize: this.page.size, + pageIndex: this.page.num, + }; + + return getGoodsCollectionList(params) + .then((res) => { + this.page.num++; + let list = []; + + if (res && res.data && res.data.result) { + this.setData({ + list: res.data.result + }) + } + + return new Promise((resolve) => { + if (reset) { + this.setData({ + list: [], + }, + () => resolve(), + ); + } else resolve(); + }).then(() => { + this.setData({ + list: this.data.list.concat(list), + }); + }); + }) + .catch((err) => { + return Promise.reject(err); + }); + }, + + gotoGoodsDetail(e) { + const { + index + } = e.detail; + const { + spuId + } = this.data.list[index]; + wx.navigateTo({ + url: `/pages/goods/details/index?spuId=${spuId}`, + }); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/pages/usercenter/goods-collect/index.json b/pages/usercenter/goods-collect/index.json new file mode 100644 index 0000000..cff538b --- /dev/null +++ b/pages/usercenter/goods-collect/index.json @@ -0,0 +1,8 @@ +{ + "navigationBarTitleText": "我的收藏", + "usingComponents": { + "t-empty": "tdesign-miniprogram/empty/empty", + "t-toast": "tdesign-miniprogram/toast/toast", + "goods-list": "/components/goods-list/index" + } +} \ No newline at end of file diff --git a/pages/usercenter/goods-collect/index.wxml b/pages/usercenter/goods-collect/index.wxml new file mode 100644 index 0000000..82ecd1e --- /dev/null +++ b/pages/usercenter/goods-collect/index.wxml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/pages/usercenter/goods-collect/index.wxss b/pages/usercenter/goods-collect/index.wxss new file mode 100644 index 0000000..9ffdd1f --- /dev/null +++ b/pages/usercenter/goods-collect/index.wxss @@ -0,0 +1 @@ +/* pages/usercenter/goods-collect/index.wxss */ \ No newline at end of file diff --git a/pages/usercenter/goods-history/index.js b/pages/usercenter/goods-history/index.js new file mode 100644 index 0000000..a8930a5 --- /dev/null +++ b/pages/usercenter/goods-history/index.js @@ -0,0 +1,122 @@ +import { + getGoodsBrowsingHistoryList +} from '~/services/usercenter/goods-history/getGoodsBrowsingHistoryList'; + + +Page({ + page: { + size: 10, + num: 1, + }, + /** + * 页面的初始数据 + */ + data: { + list: [] + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + this.init() + }, + + // 获取商品浏览记录列表 + init(reset = false) { + const params = { + pageSize: this.page.size, + pageIndex: this.page.num, + }; + + return getGoodsBrowsingHistoryList(params) + .then((res) => { + this.page.num++; + let list = []; + + if (res && res.data && res.data.result) { + this.setData({ + list: res.data.result + }) + } + + return new Promise((resolve) => { + if (reset) { + this.setData({ + list: [], + }, + () => resolve(), + ); + } else resolve(); + }).then(() => { + this.setData({ + list: this.data.list.concat(list), + }); + }); + }) + .catch((err) => { + return Promise.reject(err); + }); + }, + + gotoGoodsDetail(e) { + const { + index + } = e.detail; + const { + spuId + } = this.data.list[index]; + wx.navigateTo({ + url: `/pages/goods/details/index?spuId=${spuId}`, + }); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/pages/usercenter/goods-history/index.json b/pages/usercenter/goods-history/index.json new file mode 100644 index 0000000..9a25db8 --- /dev/null +++ b/pages/usercenter/goods-history/index.json @@ -0,0 +1,8 @@ +{ + "navigationBarTitleText": "我的浏览记录", + "usingComponents": { + "t-empty": "tdesign-miniprogram/empty/empty", + "t-toast": "tdesign-miniprogram/toast/toast", + "goods-list": "/components/goods-list/index" + } +} \ No newline at end of file diff --git a/pages/usercenter/goods-history/index.wxml b/pages/usercenter/goods-history/index.wxml new file mode 100644 index 0000000..4d4d0a5 --- /dev/null +++ b/pages/usercenter/goods-history/index.wxml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/pages/usercenter/goods-history/index.wxss b/pages/usercenter/goods-history/index.wxss new file mode 100644 index 0000000..c20ef43 --- /dev/null +++ b/pages/usercenter/goods-history/index.wxss @@ -0,0 +1 @@ +/* pages/usercenter/goods-history/index.wxss */ \ No newline at end of file diff --git a/pages/usercenter/index.js b/pages/usercenter/index.js index 81bb51a..d4cd4bd 100644 --- a/pages/usercenter/index.js +++ b/pages/usercenter/index.js @@ -60,7 +60,7 @@ const menuData = [ const orderTagInfos = [{ title: '待付款', iconName: 'wallet', - orderNum: 0, + orderNum: 1, tabType: 5, status: 1, }, @@ -253,6 +253,18 @@ Page({ }); }, + jumpCollect() { + wx.navigateTo({ + url: '/pages/usercenter/goods-collect/index' + }); + }, + + jumpHistory() { + wx.navigateTo({ + url: '/pages/usercenter/goods-history/index' + }); +}, + openMakePhone() { this.setData({ showMakePhone: true diff --git a/pages/usercenter/index.wxml b/pages/usercenter/index.wxml index d3dea60..3a9eea7 100644 --- a/pages/usercenter/index.wxml +++ b/pages/usercenter/index.wxml @@ -10,6 +10,18 @@ + + + + 0 + 收藏 + + + + 0 + 浏览记录 + + diff --git a/pages/usercenter/index.wxss b/pages/usercenter/index.wxss index 483e6f2..c06d4d6 100644 --- a/pages/usercenter/index.wxss +++ b/pages/usercenter/index.wxss @@ -144,3 +144,27 @@ page { .cell-box .t-cell-padding { padding: 24rpx 18rpx 24rpx 32rpx; } +.order-history-box{ + width: 90%; + display: flex; + justify-content: space-around; + margin: 30rpx auto; +} +.order-history-content-box{ + display: flex; + flex-direction: column; + align-items: center; + cursor: pointer; +} +.order-history-content-num{ + font-size: 35rpx; + font-weight: bold; + margin-bottom: 10rpx; +} +.order-history-content-line{ + /* width: 1rpx; */ + height: 80rpx; + border: 1px solid black; + display: flex; + align-self: center; +} \ No newline at end of file diff --git a/services/usercenter/goods-collect/addOrUpdateGoodsBrowsingHistory.js b/services/usercenter/goods-collect/addOrUpdateGoodsBrowsingHistory.js new file mode 100644 index 0000000..bb32acc --- /dev/null +++ b/services/usercenter/goods-collect/addOrUpdateGoodsBrowsingHistory.js @@ -0,0 +1,20 @@ +import { + request +} from '~/services/_utils/request'; + +/** 添加商品浏览记录 */ +export function addOrUpdateGoodsBrowsingHistory(data) { + return new Promise((resolve, reject) => { + request({ + url: `GoodsCollectionApi/addOrUpdateGoodsBrowsingHistory`, + method: 'Post', + data: data, + success: function (res) { + resolve(res); + }, + fail: function (error) { + reject(error); + } + }); + }); +} \ No newline at end of file diff --git a/services/usercenter/goods-collect/getGoodsCollectionList.js b/services/usercenter/goods-collect/getGoodsCollectionList.js new file mode 100644 index 0000000..9cb093d --- /dev/null +++ b/services/usercenter/goods-collect/getGoodsCollectionList.js @@ -0,0 +1,20 @@ +import { + request +} from '~/services/_utils/request'; + +/** 获取商品收藏列表 */ +export function getGoodsCollectionList(data) { + return new Promise((resolve, reject) => { + request({ + url: `GoodsCollectionApi/getGoodsCollectionList`, + method: 'GET', + data: data, + success: function (res) { + resolve(res); + }, + fail: function (error) { + reject(error); + } + }); + }); +} \ No newline at end of file diff --git a/services/usercenter/goods-history/addOrUpdateGoodsBrowsingHistory.js b/services/usercenter/goods-history/addOrUpdateGoodsBrowsingHistory.js new file mode 100644 index 0000000..57742d2 --- /dev/null +++ b/services/usercenter/goods-history/addOrUpdateGoodsBrowsingHistory.js @@ -0,0 +1,20 @@ +import { + request +} from '~/services/_utils/request'; + +/** 添加商品浏览记录 */ +export function addOrUpdateGoodsBrowsingHistory(data) { + return new Promise((resolve, reject) => { + request({ + url: `GoodsBrowsingHistoryApi/addOrUpdateGoodsBrowsingHistory`, + method: 'Post', + data: data, + success: function (res) { + resolve(res); + }, + fail: function (error) { + reject(error); + } + }); + }); +} \ No newline at end of file diff --git a/services/usercenter/goods-history/getGoodsBrowsingHistoryList.js b/services/usercenter/goods-history/getGoodsBrowsingHistoryList.js new file mode 100644 index 0000000..445082c --- /dev/null +++ b/services/usercenter/goods-history/getGoodsBrowsingHistoryList.js @@ -0,0 +1,21 @@ +import data from '~/custom-tab-bar/data'; +import { + request +} from '~/services/_utils/request'; + +/** 获取商品浏览记录列表 */ +export function getGoodsBrowsingHistoryList(data) { + return new Promise((resolve, reject) => { + request({ + url: `GoodsBrowsingHistoryApi/getGoodsBrowsingHistoryList`, + method: 'GET', + data: data, + success: function (res) { + resolve(res); + }, + fail: function (error) { + reject(error); + } + }); + }); +} \ No newline at end of file