hookehuyr

✨ feat(B端首页): API联调

...@@ -39,6 +39,12 @@ axios.interceptors.response.use( ...@@ -39,6 +39,12 @@ axios.interceptors.response.use(
39 } 39 }
40 }); 40 });
41 } 41 }
42 + // TEMP: 临时拦截B端未登录情况
43 + if (response.data.msg === '老师请先登录!' || response.data.msg === '老师不存在!') {
44 + router.replace({
45 + path: '/business/login'
46 + });
47 + }
42 return response; 48 return response;
43 }, 49 },
44 error => { 50 error => {
......
...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
2 <div class="all-book-page content-bg"> 2 <div class="all-book-page content-bg">
3 <div class="modify-top"></div> 3 <div class="modify-top"></div>
4 <div class="belong-school"> 4 <div class="belong-school">
5 - <van-image round width="2rem" height="2rem" lazy-load src="https://lanhu.oss-cn-beijing.aliyuncs.com/SketchPngcff89d3955421a988f983d312e970e4f07e08045b33c0505e52c65bb63ac35a9" style="vertical-align: text-bottom;" > 5 + <van-image round width="2rem" height="2rem" lazy-load :src="kgInfo.logo" style="vertical-align: text-bottom;" >
6 <template v-slot:error>加载失败</template> 6 <template v-slot:error>加载失败</template>
7 </van-image> 7 </van-image>
8 - <p class="title">杨浦民办科技幼稚园</p> 8 + <p class="title">{{ kgInfo.name }}</p>
9 </div> 9 </div>
10 <div class="summary"> 10 <div class="summary">
11 <div class="ding left"></div> 11 <div class="ding left"></div>
...@@ -13,18 +13,18 @@ ...@@ -13,18 +13,18 @@
13 <div class="content-box" style=""> 13 <div class="content-box" style="">
14 <van-row class="van-hairline--bottom"> 14 <van-row class="van-hairline--bottom">
15 <van-col span="12" class="van-hairline--right"> 15 <van-col span="12" class="van-hairline--right">
16 - <div class="text-box"><span class="text">视频上传</span>&nbsp;24<span style="color: #888888;">/30</span></div> 16 + <div class="text-box"><span class="text">视频上传</span>&nbsp;{{ kgInfo.mission_num }}<span style="color: #888888;">/{{ kgInfo.mission_target }}</span></div>
17 </van-col> 17 </van-col>
18 <van-col span="12"> 18 <van-col span="12">
19 - <div class="text-box"><span class="text">作品总数</span>&nbsp;436</div> 19 + <div class="text-box"><span class="text">作品总数</span>&nbsp;{{ kgInfo.prod_num }}</div>
20 </van-col> 20 </van-col>
21 </van-row> 21 </van-row>
22 <van-row> 22 <van-row>
23 <van-col span="12" class="van-hairline--right"> 23 <van-col span="12" class="van-hairline--right">
24 - <div class="text-box"><span class="text">捐书金额</span>&nbsp¥ 235</div> 24 + <div class="text-box"><span class="text">捐书金额</span>&nbsp;¥&nbsp;{{ kgInfo.donate_amt }}</div>
25 </van-col> 25 </van-col>
26 <van-col span="12"> 26 <van-col span="12">
27 - <div class="text-box"><span class="text">参与人数</span>&nbsp;876</div> 27 + <div class="text-box"><span class="text">参与人数</span>&nbsp;{{ kgInfo.perf_num }}</div>
28 </van-col> 28 </van-col>
29 </van-row> 29 </van-row>
30 </div> 30 </div>
...@@ -40,11 +40,11 @@ ...@@ -40,11 +40,11 @@
40 <van-col span="8"></van-col> 40 <van-col span="8"></van-col>
41 <van-col span="8" class="right"> 41 <van-col span="8" class="right">
42 <van-icon :name="icon_book" size="0.8rem" style="vertical-align: middle;" /> 42 <van-icon :name="icon_book" size="0.8rem" style="vertical-align: middle;" />
43 - &nbsp;<span style="vertical-align: middle;">共15种</span> 43 + &nbsp;<span style="vertical-align: middle;">共 {{ kgInfo.book_num }} 种</span>
44 </van-col> 44 </van-col>
45 </van-row> 45 </van-row>
46 </div> 46 </div>
47 - <template v-for="(item, key) in items" :key="key"> 47 + <template v-for="(item, key) in kgInfo.book" :key="key">
48 <book-card :item="item" type="B" @on-click="onClick(item)"></book-card> 48 <book-card :item="item" type="B" @on-click="onClick(item)"></book-card>
49 </template> 49 </template>
50 </div> 50 </div>
...@@ -55,14 +55,12 @@ ...@@ -55,14 +55,12 @@
55 55
56 <script setup> 56 <script setup>
57 import icon_book from '@images/shu@2x.png' 57 import icon_book from '@images/shu@2x.png'
58 -import MyButton from '@/components/MyButton/index.vue'
59 import BookCard from '@/components/BookCard/index.vue' 58 import BookCard from '@/components/BookCard/index.vue'
60 import ShortcutFixed from '@/components/ShortcutFixed/index.vue' 59 import ShortcutFixed from '@/components/ShortcutFixed/index.vue'
61 60
62 import { ref, reactive, onMounted } from 'vue' 61 import { ref, reactive, onMounted } from 'vue'
63 import { useRoute, useRouter } from 'vue-router' 62 import { useRoute, useRouter } from 'vue-router'
64 import axios from '@/utils/axios'; 63 import axios from '@/utils/axios';
65 -import $ from 'jquery'
66 import { Toast } from 'vant'; 64 import { Toast } from 'vant';
67 const $route = useRoute(); 65 const $route = useRoute();
68 const $router = useRouter(); 66 const $router = useRouter();
...@@ -77,17 +75,24 @@ const onClick = (item) => { ...@@ -77,17 +75,24 @@ const onClick = (item) => {
77 } 75 }
78 }); 76 });
79 } 77 }
80 -const gotoMe = () => { 78 +
81 - console.warn('跳转我的地址'); 79 +// TODO: 后端要给我个确切的判断,没有登录,中文太坑了
82 -} 80 +const kgInfo = ref({});
83 - onMounted(() => { 81 +axios.get('/srv/?a=kg_info')
84 - for (let index = 0; index < 20; index++) { 82 +.then(res => {
85 - items.push({ 83 + if (res.data.code === 1) {
86 - id: index, 84 + kgInfo.value = res.data.data;
87 - avatar: 'https://lanhu.oss-cn-beijing.aliyuncs.com/SketchPng4bb07576e7df209c1f91dd67e0c2671bd5704366605bc720b56d20b38602c2b7' 85 + } else {
88 - }) 86 + console.warn(res);
89 - } 87 + Toast({
90 - }) 88 + icon: 'close',
89 + message: res.data.msg
90 + });
91 + }
92 +})
93 +.catch(err => {
94 + console.error(err);
95 +})
91 </script> 96 </script>
92 97
93 <script> 98 <script>
...@@ -181,4 +186,4 @@ export default { ...@@ -181,4 +186,4 @@ export default {
181 } 186 }
182 } 187 }
183 } 188 }
184 -</style>
...\ No newline at end of file ...\ No newline at end of file
189 +</style>
......