Showing
1 changed file
with
56 additions
and
35 deletions
| ... | @@ -2,12 +2,13 @@ | ... | @@ -2,12 +2,13 @@ |
| 2 | * @Author: hookehuyr hookehuyr@gmail.com | 2 | * @Author: hookehuyr hookehuyr@gmail.com |
| 3 | * @Date: 2022-05-31 22:09:58 | 3 | * @Date: 2022-05-31 22:09:58 |
| 4 | * @LastEditors: hookehuyr hookehuyr@gmail.com | 4 | * @LastEditors: hookehuyr hookehuyr@gmail.com |
| 5 | - * @LastEditTime: 2022-06-07 16:41:09 | 5 | + * @LastEditTime: 2022-06-09 00:43:28 |
| 6 | * @FilePath: /tswj/src/components/DonateFlower/index.vue | 6 | * @FilePath: /tswj/src/components/DonateFlower/index.vue |
| 7 | * @Description: 捐花组件 | 7 | * @Description: 捐花组件 |
| 8 | --> | 8 | --> |
| 9 | <template> | 9 | <template> |
| 10 | - <van-popup v-model:show="show" :close-on-click-overlay="false" round position="bottom" :style="{ height: popupHeight, zIndex: 3000 }"> | 10 | + <van-popup v-model:show="show" :close-on-click-overlay="false" round position="bottom" |
| 11 | + :style="{ height: popupHeight, zIndex: 3000 }"> | ||
| 11 | <div class="donate-wrapper"> | 12 | <div class="donate-wrapper"> |
| 12 | <div class="donate-title"> | 13 | <div class="donate-title"> |
| 13 | 您所有捐助的爱心 | 14 | 您所有捐助的爱心 |
| ... | @@ -16,8 +17,9 @@ | ... | @@ -16,8 +17,9 @@ |
| 16 | </div> | 17 | </div> |
| 17 | <div class="shortcut-choose-wrapper"> | 18 | <div class="shortcut-choose-wrapper"> |
| 18 | <van-row gutter="10"> | 19 | <van-row gutter="10"> |
| 19 | - <van-col v-for="(v, index) in checkList" :key="index" span="8"> | 20 | + <van-col v-for="(v, index) in defaultOptions" :key="index" span="8"> |
| 20 | - <div :class="['base-item', donate_number === +index ? 'checked-item' : 'uncheck-item']" @click="donate_number = +index"> | 21 | + <div :class="['base-item', donate_number === +index ? 'checked-item' : 'uncheck-item']" |
| 22 | + @click="donate_number = +index"> | ||
| 21 | {{ v }} | 23 | {{ v }} |
| 22 | </div> | 24 | </div> |
| 23 | </van-col> | 25 | </van-col> |
| ... | @@ -32,7 +34,7 @@ | ... | @@ -32,7 +34,7 @@ |
| 32 | </van-col> | 34 | </van-col> |
| 33 | </van-row> | 35 | </van-row> |
| 34 | </div> | 36 | </div> |
| 35 | - <div v-if="userType === 'C' || userType === 'K'" class="donate-name"> | 37 | + <div v-if="userType === USER_TYPE.CHILDREN || userType === USER_TYPE.KINDERGARTEN" class="donate-name"> |
| 36 | <van-row> | 38 | <van-row> |
| 37 | <van-col span="4" style="line-height: 2;">幼儿园</van-col> | 39 | <van-col span="4" style="line-height: 2;">幼儿园</van-col> |
| 38 | <van-col span="18"> | 40 | <van-col span="18"> |
| ... | @@ -40,7 +42,7 @@ | ... | @@ -40,7 +42,7 @@ |
| 40 | </van-col> | 42 | </van-col> |
| 41 | </van-row> | 43 | </van-row> |
| 42 | </div> | 44 | </div> |
| 43 | - <div v-if="userType === 'C'" class="donate-name"> | 45 | + <div v-if="userType === USER_TYPE.CHILDREN" class="donate-name"> |
| 44 | <van-row> | 46 | <van-row> |
| 45 | <van-col span="4" style="line-height: 2;">助力人</van-col> | 47 | <van-col span="4" style="line-height: 2;">助力人</van-col> |
| 46 | <van-col span="18"> | 48 | <van-col span="18"> |
| ... | @@ -63,7 +65,7 @@ | ... | @@ -63,7 +65,7 @@ |
| 63 | <van-checkbox v-model="agreed" checked-color="#ee0a24">同意 </van-checkbox> | 65 | <van-checkbox v-model="agreed" checked-color="#ee0a24">同意 </van-checkbox> |
| 64 | </div> | 66 | </div> |
| 65 | <div class="text"> | 67 | <div class="text"> |
| 66 | - <span @click="handleDA">捐赠协议</span> | 68 | + <span @click="showDA=true">捐赠协议</span> |
| 67 | </div> | 69 | </div> |
| 68 | </div> | 70 | </div> |
| 69 | </van-col> | 71 | </van-col> |
| ... | @@ -81,8 +83,8 @@ | ... | @@ -81,8 +83,8 @@ |
| 81 | </van-popup> | 83 | </van-popup> |
| 82 | <div class="popup-wrapper"> | 84 | <div class="popup-wrapper"> |
| 83 | <van-popup v-model:show="showDA" position="bottom" :style="{ height: '100%', zIndex: 4000 }"> | 85 | <van-popup v-model:show="showDA" position="bottom" :style="{ height: '100%', zIndex: 4000 }"> |
| 84 | - <div class="agreementHtml" v-html="agreementHtml"></div> | 86 | + <div class="agreementHtml" v-html="agreementHtml" /> |
| 85 | - <div class="bottom-btn" @click="closeDA"> | 87 | + <div class="bottom-btn" @click="showDA=false"> |
| 86 | <div class="text">关闭</div> | 88 | <div class="text">关闭</div> |
| 87 | </div> | 89 | </div> |
| 88 | </van-popup> | 90 | </van-popup> |
| ... | @@ -97,6 +99,7 @@ import { useRouter } from 'vue-router' | ... | @@ -97,6 +99,7 @@ import { useRouter } from 'vue-router' |
| 97 | import { $, Toast } from '@/utils/generatePackage' | 99 | import { $, Toast } from '@/utils/generatePackage' |
| 98 | import { addDonateAPI } from '@/api/C/donate.js' | 100 | import { addDonateAPI } from '@/api/C/donate.js' |
| 99 | import agreementHtml from './agreement' | 101 | import agreementHtml from './agreement' |
| 102 | +import { USER_TYPE } from '@/constant' | ||
| 100 | 103 | ||
| 101 | const $router = useRouter(); | 104 | const $router = useRouter(); |
| 102 | const props = defineProps({ | 105 | const props = defineProps({ |
| ... | @@ -107,26 +110,35 @@ const props = defineProps({ | ... | @@ -107,26 +110,35 @@ const props = defineProps({ |
| 107 | const emit = defineEmits(['on-close']); | 110 | const emit = defineEmits(['on-close']); |
| 108 | 111 | ||
| 109 | let donate_number = ref(1); | 112 | let donate_number = ref(1); |
| 110 | -const donateFlower = async () => { | 113 | +const donateFlower = () => { |
| 111 | if (!agreed.value) { | 114 | if (!agreed.value) { |
| 112 | Toast.fail('请选勾选同意按钮!'); | 115 | Toast.fail('请选勾选同意按钮!'); |
| 113 | return false; | 116 | return false; |
| 114 | } | 117 | } |
| 115 | // 捐钱接口 | 118 | // 捐钱接口 |
| 116 | // 根据类型过滤提交数据 | 119 | // 根据类型过滤提交数据 |
| 117 | - // C 儿童: 提交 perf_id,kg_id | 120 | + // 儿童: 提交 perf_id,kg_id |
| 118 | - // K 幼儿园: 提交 kg_id | 121 | + // 幼儿园: 提交 kg_id |
| 119 | - // V 访客: 不提交 perf_id,kg_id | 122 | + // 访客 |
| 120 | let params = { | 123 | let params = { |
| 121 | - qty: donate_number.value, | 124 | + qty: donate_number.value, |
| 122 | donate_name: props.item.donate_name, | 125 | donate_name: props.item.donate_name, |
| 123 | }; | 126 | }; |
| 124 | - if (props.userType === 'C') { // 助力TA | 127 | + switch (props.userType) { |
| 125 | - params.perf_id = props.item.perf_id; | 128 | + case USER_TYPE.CHILDREN: |
| 126 | - params.kg_id = props.item.kg_id; | 129 | + params.perf_id = props.item.perf_id; |
| 127 | - } else if (props.userType === 'K') { | 130 | + params.kg_id = props.item.kg_id; |
| 128 | - params.kg_id = props.item.kg_id; | 131 | + break; |
| 132 | + case USER_TYPE.KINDERGARTEN: | ||
| 133 | + params.kg_id = props.item.kg_id; | ||
| 134 | + break; | ||
| 135 | + case USER_TYPE.VISIT: | ||
| 136 | + break; | ||
| 129 | } | 137 | } |
| 138 | + addDonate(params); | ||
| 139 | +} | ||
| 140 | + | ||
| 141 | +const addDonate = async (params) => { | ||
| 130 | const { data } = await addDonateAPI(params); | 142 | const { data } = await addDonateAPI(params); |
| 131 | if (data.id) { | 143 | if (data.id) { |
| 132 | closeBtn(); | 144 | closeBtn(); |
| ... | @@ -190,7 +202,7 @@ onMounted(() => { | ... | @@ -190,7 +202,7 @@ onMounted(() => { |
| 190 | 202 | ||
| 191 | }) | 203 | }) |
| 192 | // 选择捐赠数量 | 204 | // 选择捐赠数量 |
| 193 | -const checkList = ref({ | 205 | +const defaultOptions = ref({ |
| 194 | 1: '1朵金花', | 206 | 1: '1朵金花', |
| 195 | 2: '2朵金花', | 207 | 2: '2朵金花', |
| 196 | 3: '3朵金花', | 208 | 3: '3朵金花', |
| ... | @@ -199,21 +211,16 @@ const checkList = ref({ | ... | @@ -199,21 +211,16 @@ const checkList = ref({ |
| 199 | const agreed = ref(false); | 211 | const agreed = ref(false); |
| 200 | // 显示捐赠协议弹框 | 212 | // 显示捐赠协议弹框 |
| 201 | const showDA = ref(false); | 213 | const showDA = ref(false); |
| 202 | -const handleDA = () => { | ||
| 203 | - showDA.value = true | ||
| 204 | -} | ||
| 205 | -const closeDA = () => { | ||
| 206 | - showDA.value = false | ||
| 207 | -} | ||
| 208 | </script> | 214 | </script> |
| 209 | 215 | ||
| 210 | <style lang="less" scoped> | 216 | <style lang="less" scoped> |
| 211 | .donate-wrapper { | 217 | .donate-wrapper { |
| 212 | .donate-title { | 218 | .donate-title { |
| 213 | - padding: 1rem 1rem 0 1rem; | 219 | + padding: 1rem 1rem 0 1rem; |
| 214 | - color: #999999; | 220 | + color: #999999; |
| 215 | text-align: center; | 221 | text-align: center; |
| 216 | } | 222 | } |
| 223 | + | ||
| 217 | .shortcut-choose-wrapper { | 224 | .shortcut-choose-wrapper { |
| 218 | padding: 1rem; | 225 | padding: 1rem; |
| 219 | 226 | ||
| ... | @@ -241,12 +248,13 @@ const closeDA = () => { | ... | @@ -241,12 +248,13 @@ const closeDA = () => { |
| 241 | padding: 1rem; | 248 | padding: 1rem; |
| 242 | 249 | ||
| 243 | .donate-text { | 250 | .donate-text { |
| 244 | - background: #F4F4F4; | 251 | + background: #F4F4F4; |
| 245 | border-radius: 3px; | 252 | border-radius: 3px; |
| 246 | - padding: 0.5rem; | 253 | + padding: 0.5rem; |
| 247 | - margin-left: 5%; | 254 | + margin-left: 5%; |
| 248 | width: 95%; | 255 | width: 95%; |
| 249 | } | 256 | } |
| 257 | + | ||
| 250 | .donate-input { | 258 | .donate-input { |
| 251 | border: 1px solid #B9B9B9; | 259 | border: 1px solid #B9B9B9; |
| 252 | border-radius: 5px; | 260 | border-radius: 5px; |
| ... | @@ -254,17 +262,29 @@ const closeDA = () => { | ... | @@ -254,17 +262,29 @@ const closeDA = () => { |
| 254 | margin-left: 1rem; | 262 | margin-left: 1rem; |
| 255 | } | 263 | } |
| 256 | } | 264 | } |
| 265 | + | ||
| 257 | .agree-wrapper { | 266 | .agree-wrapper { |
| 258 | margin: 1rem 0; | 267 | margin: 1rem 0; |
| 268 | + | ||
| 259 | .agree-content { | 269 | .agree-content { |
| 260 | - display: flex;align-items: center; box-sizing: content-box; | 270 | + display: flex; |
| 271 | + align-items: center; | ||
| 272 | + box-sizing: content-box; | ||
| 273 | + | ||
| 261 | .btn { | 274 | .btn { |
| 262 | - display: flex; flex-direction: column; justify-content: center; | 275 | + display: flex; |
| 276 | + flex-direction: column; | ||
| 277 | + justify-content: center; | ||
| 263 | } | 278 | } |
| 279 | + | ||
| 264 | .text { | 280 | .text { |
| 265 | - display: flex; flex-direction: column; justify-content: center; | 281 | + display: flex; |
| 282 | + flex-direction: column; | ||
| 283 | + justify-content: center; | ||
| 284 | + | ||
| 266 | span { | 285 | span { |
| 267 | - text-decoration: underline; color: #11D2B1; | 286 | + text-decoration: underline; |
| 287 | + color: #11D2B1; | ||
| 268 | } | 288 | } |
| 269 | } | 289 | } |
| 270 | } | 290 | } |
| ... | @@ -304,6 +324,7 @@ const closeDA = () => { | ... | @@ -304,6 +324,7 @@ const closeDA = () => { |
| 304 | right: 0; | 324 | right: 0; |
| 305 | background-color: white; | 325 | background-color: white; |
| 306 | box-shadow: 0px -2px 4px 0px rgba(0, 0, 0, 0.07); | 326 | box-shadow: 0px -2px 4px 0px rgba(0, 0, 0, 0.07); |
| 327 | + | ||
| 307 | .text { | 328 | .text { |
| 308 | text-align: center; | 329 | text-align: center; |
| 309 | padding: 0.7rem; | 330 | padding: 0.7rem; | ... | ... |
-
Please register or login to post a comment