diff --git a/pages/category/category.vue b/pages/category/category.vue index 7b413c6..40018bf 100644 --- a/pages/category/category.vue +++ b/pages/category/category.vue @@ -14,14 +14,15 @@ :columns="2" :height="'80vh'" @image-click="handlerClick" + @load-more-action = "queryList" > - @@ -32,54 +33,13 @@ return { current:0, tabs:[], - list:[ - { - - "id":1, - "title":"1", - "src":"../../static/images/default.png" - }, - { - "id":2, - "title":2, - "src":"../../static/images/default.png" - }, - { - "id":3, - "title":3, - "src":"../../static/images/default.png" - }, - { - "id":9, - "title":9, - "src":"../../static/images/default.png" - }, - { - "id":4, - "title":4, - "src":"../../static/images/default.png" - }, - { - "id":5, - "title":5, - "src":"../../static/images/default.png" - }, - { - "id":6, - "title":6, - "src":"../../static/images/default.png" - }, - { - "id":7, - "title":7, - "src":"../../static/images/default.png" - }, - { - "id":8, - "title":8, - "src":"../../static/images/default.png" - } - ] + list:[], + pageInfo:{ + index:1, + size:10, + isEnd:false, + sub_category_id:0 + } } }, onLoad() { @@ -88,21 +48,69 @@ methods: { getCategory() { // 获取分类 - this.tabs = [ - {label:"拉布布",value:"labubu"}, - {label:"科幻",value:"kh"}, - {label:"酷炫汽车1",value:"car1"}, - {label:"酷炫汽车2",value:"car2"}, - {label:"酷炫汽车3",value:"car3"}, - {label:"酷炫汽车4",value:"car4"}, - {label:"酷炫汽车5",value:"car5"}, - {label:"雏田",value:"ct"} - ] + let param = { + index:1, + size:1000, + target:'sub' + } + try { + this.$http.get('/category/list',param).then((resp)=>{ + this.tabs = []; + resp.data?.list.forEach((item,idx)=>{ + this.tabs.push({ + id:item?.id, + label:item?.name, + }); + }); + this.pageInfo.sub_category_id = this.tabs[this.current].id + this.queryList() + }) + } catch(err){ + console.log("query category error",err) + } }, handleTabChange(idx) { this.current = idx; - console.log(this.tabs[idx]) + this.pageInfo.sub_category_id = this.tabs[this.current].id + }, + queryList() { + if (this.pageInfo.isEnd) { + uni.showToast({ + title: '没有更多数据了哦!^v^', + icon: 'none', + complete: () => { + console.log("no more data") + } + }); + return + } + let param = { + ...this.pageInfo + } + try { + uni.$http.get('/resource/list',param).then((resp) => { + console.log("resp data",resp.data); + resp.data?.list.forEach((item,idx)=>{ + this.list.push({ + id:item?.id, + name:item?.name, + src:item?.thumb_src, + android_src:item?.android_src, + }); + }); + console.log("length:",this.list.length,resp.data.page.rows,resp.data.page) + if (this.list.length >= resp.data.page.rows) { + this.pageInfo.isEnd = true + } else { + this.pageInfo.isEnd = false + this.pageInfo.index++ + } + }) + }catch(err) { + console.log("catch query list err:",err) + } } + } } diff --git a/pages/detail/detail.vue b/pages/detail/detail.vue index b4bbb00..f138a75 100644 --- a/pages/detail/detail.vue +++ b/pages/detail/detail.vue @@ -61,8 +61,11 @@ if (options.id) { this.id = options.id; // 这里可以根据id发起请求获取详情数据等操作 - this.$http.get('/resource/'+this.id).then((resp)=>{ - this.url = resp.url + this.$http.get('/resource/detail/'+this.id).then((resp)=>{ + console.log("detail:",resp.data) + this.url = resp.data?.item.android_src + console.log("detail-url:",this.url) + }).catch((err)=>{ console.log('请求异常') }) diff --git a/pages/home/home.nvue b/pages/home/home.nvue index bb7b53b..0a3d670 100644 --- a/pages/home/home.nvue +++ b/pages/home/home.nvue @@ -33,8 +33,9 @@ { label: '最新', name: 'new', badge: 0 }, ], page:1, - size:4, + size:6, tag:'hot', + isEnd:false, videoConfig:{ "columns":2 }, @@ -55,6 +56,10 @@ handleTabChange(idx) { this.current = idx; this.tag = this.tabs[idx]?.name + this.isEnd = false + this.list = [] + this.page = 1 + this.queryList() }, handlerClick(item) { console.log("video click",item) @@ -68,8 +73,18 @@ handleLoginSuccess(event) { console.log('检测到登录成功,刷新首页数据'); this.queryList() -}, + }, queryList() { + if (this.isEnd) { + uni.showToast({ + title: '没有更多数据了哦!^v^', + icon: 'none', + complete: () => { + console.log("no more data") + } + }); + return + } let param = { index:this.page, size:this.size, @@ -84,8 +99,14 @@ name:item?.name, src:item?.thumb_src, android_src:item?.android_src, - }) - }) + }); + }); + console.log("length:",this.list.length,resp.data.page.rows,resp.data.page) + if (this.list.length >= resp.data.page.rows) { + this.isEnd = true + } else { + this.isEnd = false + } this.page++ }) }catch(err) { diff --git a/unpackage/dist/dev/mp-weixin/pages/category/category.js b/unpackage/dist/dev/mp-weixin/pages/category/category.js index 64710d5..360df39 100644 --- a/unpackage/dist/dev/mp-weixin/pages/category/category.js +++ b/unpackage/dist/dev/mp-weixin/pages/category/category.js @@ -1,58 +1,17 @@ "use strict"; const common_vendor = require("../../common/vendor.js"); -const common_assets = require("../../common/assets.js"); const _sfc_main = { data() { return { current: 0, tabs: [], - list: [ - { - "id": 1, - "title": "1", - "src": "../../static/images/default.png" - }, - { - "id": 2, - "title": 2, - "src": "../../static/images/default.png" - }, - { - "id": 3, - "title": 3, - "src": "../../static/images/default.png" - }, - { - "id": 9, - "title": 9, - "src": "../../static/images/default.png" - }, - { - "id": 4, - "title": 4, - "src": "../../static/images/default.png" - }, - { - "id": 5, - "title": 5, - "src": "../../static/images/default.png" - }, - { - "id": 6, - "title": 6, - "src": "../../static/images/default.png" - }, - { - "id": 7, - "title": 7, - "src": "../../static/images/default.png" - }, - { - "id": 8, - "title": 8, - "src": "../../static/images/default.png" - } - ] + list: [], + pageInfo: { + index: 1, + size: 10, + isEnd: false, + sub_category_id: 0 + } }; }, onLoad() { @@ -60,20 +19,69 @@ const _sfc_main = { }, methods: { getCategory() { - this.tabs = [ - { label: "拉布布", value: "labubu" }, - { label: "科幻", value: "kh" }, - { label: "酷炫汽车1", value: "car1" }, - { label: "酷炫汽车2", value: "car2" }, - { label: "酷炫汽车3", value: "car3" }, - { label: "酷炫汽车4", value: "car4" }, - { label: "酷炫汽车5", value: "car5" }, - { label: "雏田", value: "ct" } - ]; + let param = { + index: 1, + size: 1e3, + target: "sub" + }; + try { + this.$http.get("/category/list", param).then((resp) => { + var _a; + this.tabs = []; + (_a = resp.data) == null ? void 0 : _a.list.forEach((item, idx) => { + this.tabs.push({ + id: item == null ? void 0 : item.id, + label: item == null ? void 0 : item.name + }); + }); + this.pageInfo.sub_category_id = this.tabs[this.current].id; + this.queryList(); + }); + } catch (err) { + console.log("query category error", err); + } }, handleTabChange(idx) { this.current = idx; - console.log(this.tabs[idx]); + this.pageInfo.sub_category_id = this.tabs[this.current].id; + }, + queryList() { + if (this.pageInfo.isEnd) { + common_vendor.index.showToast({ + title: "没有更多数据了哦!^v^", + icon: "none", + complete: () => { + console.log("no more data"); + } + }); + return; + } + let param = { + ...this.pageInfo + }; + try { + common_vendor.index.$http.get("/resource/list", param).then((resp) => { + var _a; + console.log("resp data", resp.data); + (_a = resp.data) == null ? void 0 : _a.list.forEach((item, idx) => { + this.list.push({ + id: item == null ? void 0 : item.id, + name: item == null ? void 0 : item.name, + src: item == null ? void 0 : item.thumb_src, + android_src: item == null ? void 0 : item.android_src + }); + }); + console.log("length:", this.list.length, resp.data.page.rows, resp.data.page); + if (this.list.length >= resp.data.page.rows) { + this.pageInfo.isEnd = true; + } else { + this.pageInfo.isEnd = false; + this.pageInfo.index++; + } + }); + } catch (err) { + console.log("catch query list err:", err); + } } } }; @@ -96,8 +104,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { scrollEnable: true, activeColor: "#19c324" }), - c: common_assets._imports_0, - d: common_vendor.o(_ctx.handlerClick), + c: common_vendor.o(_ctx.handlerClick), + d: common_vendor.o($options.queryList), e: common_vendor.p({ imageList: $data.list, columns: 2, diff --git a/unpackage/dist/dev/mp-weixin/pages/category/category.wxml b/unpackage/dist/dev/mp-weixin/pages/category/category.wxml index b405f55..37de966 100644 --- a/unpackage/dist/dev/mp-weixin/pages/category/category.wxml +++ b/unpackage/dist/dev/mp-weixin/pages/category/category.wxml @@ -1 +1 @@ -没有找到视频内容 \ No newline at end of file + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/detail/detail.js b/unpackage/dist/dev/mp-weixin/pages/detail/detail.js index ee3bd09..f18ba04 100644 --- a/unpackage/dist/dev/mp-weixin/pages/detail/detail.js +++ b/unpackage/dist/dev/mp-weixin/pages/detail/detail.js @@ -33,8 +33,11 @@ const _sfc_main = { onLoad(options) { if (options.id) { this.id = options.id; - this.$http.get("/resource/" + this.id).then((resp) => { - this.url = resp.url; + this.$http.get("/resource/detail/" + this.id).then((resp) => { + var _a; + console.log("detail:", resp.data); + this.url = (_a = resp.data) == null ? void 0 : _a.item.android_src; + console.log("detail-url:", this.url); }).catch((err) => { console.log("请求异常"); }); diff --git a/unpackage/dist/dev/mp-weixin/pages/home/home.js b/unpackage/dist/dev/mp-weixin/pages/home/home.js index 9456a64..cf68eb9 100644 --- a/unpackage/dist/dev/mp-weixin/pages/home/home.js +++ b/unpackage/dist/dev/mp-weixin/pages/home/home.js @@ -10,8 +10,9 @@ const _sfc_main = { { label: "最新", name: "new", badge: 0 } ], page: 1, - size: 4, + size: 6, tag: "hot", + isEnd: false, videoConfig: { "columns": 2 }, @@ -32,6 +33,10 @@ const _sfc_main = { var _a; this.current = idx; this.tag = (_a = this.tabs[idx]) == null ? void 0 : _a.name; + this.isEnd = false; + this.list = []; + this.page = 1; + this.queryList(); }, handlerClick(item) { console.log("video click", item); @@ -47,6 +52,16 @@ const _sfc_main = { this.queryList(); }, queryList() { + if (this.isEnd) { + common_vendor.index.showToast({ + title: "没有更多数据了哦!^v^", + icon: "none", + complete: () => { + console.log("no more data"); + } + }); + return; + } let param = { index: this.page, size: this.size, @@ -64,6 +79,12 @@ const _sfc_main = { android_src: item == null ? void 0 : item.android_src }); }); + console.log("length:", this.list.length, resp.data.page.rows, resp.data.page); + if (this.list.length >= resp.data.page.rows) { + this.isEnd = true; + } else { + this.isEnd = false; + } this.page++; }); } catch (err) { diff --git a/unpackage/dist/dev/mp-weixin/utils/login.js b/unpackage/dist/dev/mp-weixin/utils/login.js index 252876e..39ddfb7 100644 --- a/unpackage/dist/dev/mp-weixin/utils/login.js +++ b/unpackage/dist/dev/mp-weixin/utils/login.js @@ -13,16 +13,16 @@ const silentLogin = async () => { return token; } console.log("静默登录", token); - let newToken; + let data; if (utils_config.PLATFORM === "mp-weixin") { - newToken = await wxSilentLogin(); - console.log("newToken~~~~~~~~~"); + data = await wxSilentLogin(); } - if (newToken) { - console.log("静默登录-----", newToken); - saveLocalToken(newToken); - common_vendor.index.$emit("LOGIN_SUCCESS", { token: newToken }); - return newToken; + if (data) { + console.log("静默登录-----", data.token); + saveLocalToken(data.token); + saveUserInfo(data.user); + common_vendor.index.$emit("LOGIN_SUCCESS", { token: data.token }); + return data.token; } throw new Error("静默登录失败"); } catch (error) { @@ -60,8 +60,8 @@ const wxSilentLogin = async () => { fail: reject }); }); - if (response.code === 200 && response.data.token) { - return response.data.token; + if (response.code === 200) { + return response.data; } throw new Error(response.msg || "微信登录失败"); } catch (error) { @@ -103,8 +103,8 @@ const ksSilentLogin = async () => { fail: reject }); }); - if (res.code === 0 && res.data.token) { - return res.data.token; + if (res.code === 0) { + return res.data; } throw new Error(res.msg || "快手登录失败"); } catch (error) { @@ -120,6 +120,9 @@ const saveLocalToken = (token) => { const tokenKey = "wx_token"; common_vendor.index.setStorageSync(tokenKey, token); }; +const saveUserInfo = (user) => { + common_vendor.index.setStorageSync("user-info", user); +}; const checkLoginStatus = async () => { try { const token = getLocalToken(); diff --git a/utils/login.js b/utils/login.js index c1c3d98..19f00aa 100644 --- a/utils/login.js +++ b/utils/login.js @@ -17,23 +17,23 @@ export const silentLogin = async () => { console.log("静默登录",token) // 2. 执行平台静默登录 - let newToken; + let data; if (PLATFORM === 'mp-weixin') { - newToken = await wxSilentLogin(); - console.log("newToken~~~~~~~~~") + data = await wxSilentLogin(); } else if (PLATFORM === 'mp-kuaishou') { - newToken = await ksSilentLogin(); + data = await ksSilentLogin(); } else { // 待处理 throw new Error("当前平台不支持") } // 3. 保存token - if (newToken) { - console.log("静默登录-----",newToken) - saveLocalToken(newToken); - uni.$emit('LOGIN_SUCCESS', { token: newToken }); - return newToken; + if (data) { + console.log("静默登录-----",data.token) + saveLocalToken(data.token); + saveUserInfo(data.user) + uni.$emit('LOGIN_SUCCESS', { token: data.token }); + return data.token; } throw new Error('静默登录失败'); @@ -81,8 +81,8 @@ const wxSilentLogin = async () => { }); // 4. 处理登录响应 - if (response.code === 200 && response.data.token) { - return response.data.token; + if (response.code === 200) { + return response.data; } throw new Error(response.msg || '微信登录失败'); @@ -135,8 +135,8 @@ const ksSilentLogin = async () => { }); // 3. 返回token - if (res.code === 0 && res.data.token) { - return res.data.token; + if (res.code === 0) { + return res.data; } throw new Error(res.msg || '快手登录失败'); @@ -158,6 +158,11 @@ const saveLocalToken = (token) => { uni.setStorageSync(tokenKey, token); }; +// 保存用户信息 +const saveUserInfo = (user) => { + uni.setStorageSync('user-info', user); +}; + // 获取用户信息(需要授权) export const getUserInfo = async () => { try {