Showing
3 changed files
with
57 additions
and
54 deletions
| ... | @@ -2,67 +2,59 @@ | ... | @@ -2,67 +2,59 @@ |
| 2 | * @Author: hookehuyr hookehuyr@gmail.com | 2 | * @Author: hookehuyr hookehuyr@gmail.com |
| 3 | * @Date: 2022-05-31 18:32:38 | 3 | * @Date: 2022-05-31 18:32:38 |
| 4 | * @LastEditors: hookehuyr hookehuyr@gmail.com | 4 | * @LastEditors: hookehuyr hookehuyr@gmail.com |
| 5 | - * @LastEditTime: 2022-06-07 16:33:09 | 5 | + * @LastEditTime: 2022-06-08 21:21:09 |
| 6 | * @FilePath: /tswj/src/components/DonateBar/index.vue | 6 | * @FilePath: /tswj/src/components/DonateBar/index.vue |
| 7 | * @Description: 爱心助力底部固定栏 | 7 | * @Description: 爱心助力底部固定栏 |
| 8 | --> | 8 | --> |
| 9 | <template> | 9 | <template> |
| 10 | <div class="fix-btn"> | 10 | <div class="fix-btn"> |
| 11 | - <div class="text" @click="toDonate"><slot /></div> | 11 | + <div class="text" @click="showDonate=true"> |
| 12 | + <slot /> | ||
| 12 | </div> | 13 | </div> |
| 13 | - <donate-flower :user-type="donateType" :show-popup="showDonate" :item="donateInfo" @on-close="closeDonate" /> | 14 | + </div> |
| 15 | + <donate-flower | ||
| 16 | + :user-type="donateType" | ||
| 17 | + :show-popup="showDonate" | ||
| 18 | + :item="donateInfo" | ||
| 19 | + @on-close="showDonate=false" | ||
| 20 | + /> | ||
| 14 | </template> | 21 | </template> |
| 15 | 22 | ||
| 16 | <script setup> | 23 | <script setup> |
| 17 | import { ref, onMounted } from 'vue' | 24 | import { ref, onMounted } from 'vue' |
| 18 | import { useRoute } from 'vue-router' | 25 | import { useRoute } from 'vue-router' |
| 19 | 26 | ||
| 20 | -import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@/utils/generatePackage.js' | ||
| 21 | -//import { } from '@/utils/generateModules.js' | ||
| 22 | -//import { } from '@/utils/generateIcons.js' | ||
| 23 | -//import { } from '@/composables' | ||
| 24 | import { DonateFlower } from '@/utils/generateModules' | 27 | import { DonateFlower } from '@/utils/generateModules' |
| 25 | import { prepareDonateAPI } from '@/api/C/donate.js' | 28 | import { prepareDonateAPI } from '@/api/C/donate.js' |
| 29 | +import { USER_TYPE } from '@/constant' | ||
| 26 | 30 | ||
| 27 | const $route = useRoute(); | 31 | const $route = useRoute(); |
| 28 | -useTitle($route.meta.title); | ||
| 29 | - | ||
| 30 | const props = defineProps({ | 32 | const props = defineProps({ |
| 31 | donateType: { | 33 | donateType: { |
| 32 | type: String, | 34 | type: String, |
| 33 | default: (value) => value, | 35 | default: (value) => value, |
| 34 | validator: value => { | 36 | validator: value => { |
| 35 | - return ['C', 'V', 'K'].includes(value); // type: C | V | K, 儿童|访客|幼儿园 | 37 | + return [ |
| 38 | + USER_TYPE.CHILDREN, | ||
| 39 | + USER_TYPE.VISIT, | ||
| 40 | + USER_TYPE.KINDERGARTEN | ||
| 41 | + ].includes(value); | ||
| 36 | } | 42 | } |
| 37 | } | 43 | } |
| 38 | }) | 44 | }) |
| 39 | 45 | ||
| 40 | -// 捐钱-游客 type: V | 46 | +// 查询参数 |
| 41 | -// 捐钱-幼儿园 type: K | ||
| 42 | -// 捐钱-指定儿童 type: C | ||
| 43 | -const donateInfo = ref({}) | ||
| 44 | let params = {}; | 47 | let params = {}; |
| 45 | -if (props.donateType === 'C') { // 助力TA | 48 | +if (props.donateType === USER_TYPE.CHILDREN) params = { perf_id: $route.query.perf_id }; |
| 46 | - params = { perf_id: $route.query.perf_id } | 49 | +if (props.donateType === USER_TYPE.KINDERGARTEN) params = { kg_id: $route.query.kg_id }; |
| 47 | -} else if (props.donateType === 'K') { | 50 | + |
| 48 | - params = { kg_id: $route.query.kg_id } | 51 | +const donateInfo = ref({}) |
| 49 | -} | ||
| 50 | onMounted(async () => { | 52 | onMounted(async () => { |
| 51 | const { data } = await prepareDonateAPI(params); | 53 | const { data } = await prepareDonateAPI(params); |
| 52 | donateInfo.value = data; | 54 | donateInfo.value = data; |
| 53 | }) | 55 | }) |
| 54 | 56 | ||
| 55 | -// 弹出捐赠弹框模块 | ||
| 56 | const showDonate = ref(false); | 57 | const showDonate = ref(false); |
| 57 | - | ||
| 58 | -const toDonate = () => { | ||
| 59 | - showDonate.value = true; | ||
| 60 | -} | ||
| 61 | - | ||
| 62 | -const closeDonate = (v) => { | ||
| 63 | - showDonate.value = v; | ||
| 64 | -} | ||
| 65 | - | ||
| 66 | </script> | 58 | </script> |
| 67 | 59 | ||
| 68 | <style lang="less" scoped> | 60 | <style lang="less" scoped> | ... | ... |
| ... | @@ -2,7 +2,7 @@ | ... | @@ -2,7 +2,7 @@ |
| 2 | * @Author: hookehuyr hookehuyr@gmail.com | 2 | * @Author: hookehuyr hookehuyr@gmail.com |
| 3 | * @Date: 2022-05-25 18:34:17 | 3 | * @Date: 2022-05-25 18:34:17 |
| 4 | * @LastEditors: hookehuyr hookehuyr@gmail.com | 4 | * @LastEditors: hookehuyr hookehuyr@gmail.com |
| 5 | - * @LastEditTime: 2022-06-02 21:14:14 | 5 | + * @LastEditTime: 2022-06-08 21:07:19 |
| 6 | * @FilePath: /tswj/src/constant.js | 6 | * @FilePath: /tswj/src/constant.js |
| 7 | * @Description: | 7 | * @Description: |
| 8 | */ | 8 | */ |
| ... | @@ -17,3 +17,25 @@ export const styleColor = { | ... | @@ -17,3 +17,25 @@ export const styleColor = { |
| 17 | baseColor: '#11D2B1', | 17 | baseColor: '#11D2B1', |
| 18 | baseFontColor: '#FFFFFF' | 18 | baseFontColor: '#FFFFFF' |
| 19 | } | 19 | } |
| 20 | + | ||
| 21 | +/** | ||
| 22 | + * 客户端类型 | ||
| 23 | + * @param CLIENT 家长端 | ||
| 24 | + * @param BUSINESS 老师端 | ||
| 25 | + */ | ||
| 26 | +export const USER_ROLE = { | ||
| 27 | + CLIENT: 'C', | ||
| 28 | + BUSINESS: 'B', | ||
| 29 | +} | ||
| 30 | + | ||
| 31 | +/** | ||
| 32 | + * 用户身份 | ||
| 33 | + * @param CHILDREN 儿童 | ||
| 34 | + * @param VISIT 访客 | ||
| 35 | + * @param KINDERGARTEN 幼儿园 | ||
| 36 | + */ | ||
| 37 | +export const USER_TYPE = { | ||
| 38 | + CHILDREN: 'C', | ||
| 39 | + VISIT: 'V', | ||
| 40 | + KINDERGARTEN: 'K', | ||
| 41 | +} | ... | ... |
| ... | @@ -5,24 +5,8 @@ | ... | @@ -5,24 +5,8 @@ |
| 5 | <div v-if="kg_id" :class="[kgInfo.multi_name ? 'height3rem' : 'height3rem', 'belong-school']"> | 5 | <div v-if="kg_id" :class="[kgInfo.multi_name ? 'height3rem' : 'height3rem', 'belong-school']"> |
| 6 | <van-row align="center" justify="center" style="position: relative; top: 50%; transform: translateY(-50%)"> | 6 | <van-row align="center" justify="center" style="position: relative; top: 50%; transform: translateY(-50%)"> |
| 7 | <van-col span="2"> | 7 | <van-col span="2"> |
| 8 | - <van-image | 8 | + <van-image round width="3rem" height="3rem" lazy-load :src="kgInfo.logo ? kgInfo.logo : icon_logo" |
| 9 | - v-if="kgInfo.logo" round width="3rem" height="3rem" lazy-load | 9 | + style="vertical-align: text-bottom" /> |
| 10 | - :src="kgInfo.logo" | ||
| 11 | - style="vertical-align: text-bottom" | ||
| 12 | - > | ||
| 13 | - <template #error> | ||
| 14 | - 加载失败 | ||
| 15 | - </template> | ||
| 16 | - </van-image> | ||
| 17 | - <van-image | ||
| 18 | - v-else round width="3rem" height="3rem" lazy-load | ||
| 19 | - :src="icon_logo" | ||
| 20 | - style="vertical-align: text-bottom" | ||
| 21 | - > | ||
| 22 | - <template #error> | ||
| 23 | - 加载失败 | ||
| 24 | - </template> | ||
| 25 | - </van-image> | ||
| 26 | </van-col> | 10 | </van-col> |
| 27 | <van-col span="22"> | 11 | <van-col span="22"> |
| 28 | <div v-if="kgInfo.multi_name" class="title"> | 12 | <div v-if="kgInfo.multi_name" class="title"> |
| ... | @@ -54,13 +38,13 @@ | ... | @@ -54,13 +38,13 @@ |
| 54 | </div> | 38 | </div> |
| 55 | <div class="book-list"> | 39 | <div class="book-list"> |
| 56 | <template v-for="(item, key) in kgInfo.book_list" :key="key"> | 40 | <template v-for="(item, key) in kgInfo.book_list" :key="key"> |
| 57 | - <book-card type="C" :item="item" @on-click="go('/client/bookDetail', { id: item.id, kg_id })" /> | 41 | + <book-card :type="USER_ROLE.CLIENT" :item="item" @on-click="go('/client/bookDetail', { id: item.id, kg_id })" /> |
| 58 | </template> | 42 | </template> |
| 59 | <van-empty v-if="emptyStatus" class="custom-image" :image="no_image" description="暂无书籍信息" /> | 43 | <van-empty v-if="emptyStatus" class="custom-image" :image="no_image" description="暂无书籍信息" /> |
| 60 | </div> | 44 | </div> |
| 61 | <div style="height: 5rem" /> | 45 | <div style="height: 5rem" /> |
| 62 | <donate-bar :donate-type="donateType">爱心助力</donate-bar> | 46 | <donate-bar :donate-type="donateType">爱心助力</donate-bar> |
| 63 | - <shortcut-fixed type="C" :item="shortcutItem" /> | 47 | + <shortcut-fixed :type="USER_ROLE.CLIENT" :item="shortcutItem" /> |
| 64 | </div> | 48 | </div> |
| 65 | </template> | 49 | </template> |
| 66 | 50 | ||
| ... | @@ -71,11 +55,12 @@ import { styleObject3 } from '@/settings/designSetting.js'; | ... | @@ -71,11 +55,12 @@ import { styleObject3 } from '@/settings/designSetting.js'; |
| 71 | import { useBookList, useShortcutBar } from '@/composables'; | 55 | import { useBookList, useShortcutBar } from '@/composables'; |
| 72 | import { useGo } from '@/hooks/useGo'; | 56 | import { useGo } from '@/hooks/useGo'; |
| 73 | import { killPages, store } from '@/hooks/useKeepAlive'; | 57 | import { killPages, store } from '@/hooks/useKeepAlive'; |
| 74 | -import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@/utils/generatePackage.js' | 58 | +import { Cookies } from '@/utils/generatePackage.js' |
| 75 | import { DonateBar } from '@/utils/generateModules.js' | 59 | import { DonateBar } from '@/utils/generateModules.js' |
| 76 | -import { ref, computed } from 'vue' | 60 | +import { computed } from 'vue' |
| 77 | -const go = useGo(); | 61 | +import { USER_ROLE, USER_TYPE } from '@/constant' |
| 78 | 62 | ||
| 63 | +const go = useGo(); | ||
| 79 | // 删除所有的 keep-alive 缓存 | 64 | // 删除所有的 keep-alive 缓存 |
| 80 | killPages(); | 65 | killPages(); |
| 81 | // 清空记录位置 | 66 | // 清空记录位置 |
| ... | @@ -87,7 +72,7 @@ const { shortcutItem } = useShortcutBar(); // 配置快捷跳转条 | ... | @@ -87,7 +72,7 @@ const { shortcutItem } = useShortcutBar(); // 配置快捷跳转条 |
| 87 | const userType = Cookies.get('userType') | 72 | const userType = Cookies.get('userType') |
| 88 | // 判断是访客进入还是幼儿园进入 | 73 | // 判断是访客进入还是幼儿园进入 |
| 89 | const donateType = computed(() => { | 74 | const donateType = computed(() => { |
| 90 | - return userType === 'client' ? 'K' : 'V'; | 75 | + return userType === 'client' ? USER_TYPE.KINDERGARTEN : USER_TYPE.VISIT; |
| 91 | }) | 76 | }) |
| 92 | </script> | 77 | </script> |
| 93 | 78 | ||
| ... | @@ -103,6 +88,7 @@ const donateType = computed(() => { | ... | @@ -103,6 +88,7 @@ const donateType = computed(() => { |
| 103 | .choose-book-page { | 88 | .choose-book-page { |
| 104 | .belong-school { | 89 | .belong-school { |
| 105 | padding: 1.5rem; | 90 | padding: 1.5rem; |
| 91 | + | ||
| 106 | .title { | 92 | .title { |
| 107 | color: #222222; | 93 | color: #222222; |
| 108 | display: inline-block; | 94 | display: inline-block; |
| ... | @@ -110,9 +96,11 @@ const donateType = computed(() => { | ... | @@ -110,9 +96,11 @@ const donateType = computed(() => { |
| 110 | margin-left: 2rem; | 96 | margin-left: 2rem; |
| 111 | } | 97 | } |
| 112 | } | 98 | } |
| 99 | + | ||
| 113 | .height3rem { | 100 | .height3rem { |
| 114 | height: 3rem; | 101 | height: 3rem; |
| 115 | } | 102 | } |
| 103 | + | ||
| 116 | .height6rem { | 104 | .height6rem { |
| 117 | height: 6rem; | 105 | height: 6rem; |
| 118 | } | 106 | } |
| ... | @@ -145,6 +133,7 @@ const donateType = computed(() => { | ... | @@ -145,6 +133,7 @@ const donateType = computed(() => { |
| 145 | right: 8rem; | 133 | right: 8rem; |
| 146 | } | 134 | } |
| 147 | } | 135 | } |
| 136 | + | ||
| 148 | .fix-btn { | 137 | .fix-btn { |
| 149 | position: fixed; | 138 | position: fixed; |
| 150 | bottom: 0; | 139 | bottom: 0; | ... | ... |
-
Please register or login to post a comment