Showing
6 changed files
with
109 additions
and
27 deletions
| 1 | <!-- | 1 | <!-- |
| 2 | * @Date: 2024-01-15 17:39:29 | 2 | * @Date: 2024-01-15 17:39:29 |
| 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com | 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com |
| 4 | - * @LastEditTime: 2024-01-16 17:08:33 | 4 | + * @LastEditTime: 2024-01-16 17:25:22 |
| 5 | * @FilePath: /xysBooking/src/views/addVisitor.vue | 5 | * @FilePath: /xysBooking/src/views/addVisitor.vue |
| 6 | * @Description: 文件描述 | 6 | * @Description: 文件描述 |
| 7 | --> | 7 | --> | ... | ... |
| 1 | <!-- | 1 | <!-- |
| 2 | * @Date: 2024-01-15 13:35:51 | 2 | * @Date: 2024-01-15 13:35:51 |
| 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com | 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com |
| 4 | - * @LastEditTime: 2024-01-16 16:29:11 | 4 | + * @LastEditTime: 2024-01-16 17:44:34 |
| 5 | * @FilePath: /xysBooking/src/views/booking.vue | 5 | * @FilePath: /xysBooking/src/views/booking.vue |
| 6 | * @Description: 预约页面 | 6 | * @Description: 预约页面 |
| 7 | * @Version: 1.0.0 | 7 | * @Version: 1.0.0 |
| ... | @@ -40,8 +40,8 @@ | ... | @@ -40,8 +40,8 @@ |
| 40 | :class="['time', !item.num ? 'disabled' : '']" | 40 | :class="['time', !item.num ? 'disabled' : '']" |
| 41 | > | 41 | > |
| 42 | <div class="left"> | 42 | <div class="left"> |
| 43 | - <van-icon v-if="checked_time !== index" name="https://cdn.ipadbiz.cn/xys/booking/%E5%8D%95%E9%80%8901@2x.png" /> | 43 | + <van-icon v-if="checked_time !== index" :name="icon_select1" /> |
| 44 | - <van-icon v-else name="https://cdn.ipadbiz.cn/xys/booking/%E5%8D%95%E9%80%8902@2x.png" /> | 44 | + <van-icon v-else :name="icon_select2" /> |
| 45 | {{ item.left }} | 45 | {{ item.left }} |
| 46 | </div> | 46 | </div> |
| 47 | <div class="right"> | 47 | <div class="right"> |
| ... | @@ -86,6 +86,8 @@ import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@ | ... | @@ -86,6 +86,8 @@ import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@ |
| 86 | //import { } from '@/utils/generateIcons.js' | 86 | //import { } from '@/utils/generateIcons.js' |
| 87 | //import { } from '@/composables' | 87 | //import { } from '@/composables' |
| 88 | import { useGo } from '@/hooks/useGo' | 88 | import { useGo } from '@/hooks/useGo' |
| 89 | +import icon_select1 from '@/assets/images/单选01@2x.png' | ||
| 90 | +import icon_select2 from '@/assets/images/单选02@2x.png' | ||
| 89 | 91 | ||
| 90 | const $route = useRoute(); | 92 | const $route = useRoute(); |
| 91 | const $router = useRouter(); | 93 | const $router = useRouter(); | ... | ... |
| 1 | <!-- | 1 | <!-- |
| 2 | * @Date: 2023-06-21 10:23:09 | 2 | * @Date: 2023-06-21 10:23:09 |
| 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com | 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com |
| 4 | - * @LastEditTime: 2024-01-16 16:15:12 | 4 | + * @LastEditTime: 2024-01-16 18:04:39 |
| 5 | * @FilePath: /xysBooking/src/views/index.vue | 5 | * @FilePath: /xysBooking/src/views/index.vue |
| 6 | * @Description: 预约页首页 | 6 | * @Description: 预约页首页 |
| 7 | --> | 7 | --> |
| ... | @@ -17,11 +17,11 @@ | ... | @@ -17,11 +17,11 @@ |
| 17 | </div> | 17 | </div> |
| 18 | <div class="index-control"> | 18 | <div class="index-control"> |
| 19 | <div class="booking" @click="toBooking"> | 19 | <div class="booking" @click="toBooking"> |
| 20 | - <van-icon size="1.5rem" color="#FFFFFF" name="https://cdn.ipadbiz.cn/xys/booking/%E7%AB%8B%E5%8D%B3%E9%A2%84%E7%BA%A6@2x.png" /> | 20 | + <van-icon size="1.5rem" color="#FFFFFF" :name="icon_1" /> |
| 21 | 立即预约 | 21 | 立即预约 |
| 22 | </div> | 22 | </div> |
| 23 | <div class="record" @click="toRecord"> | 23 | <div class="record" @click="toRecord"> |
| 24 | - <van-icon size="1.5rem" color="#A67939" name="https://cdn.ipadbiz.cn/xys/booking/%E9%A2%84%E7%BA%A6%E8%AE%B0%E5%BD%95@2x.png" /> | 24 | + <van-icon size="1.5rem" color="#A67939" :name="icon_2" /> |
| 25 | 预约记录 | 25 | 预约记录 |
| 26 | </div> | 26 | </div> |
| 27 | </div> | 27 | </div> |
| ... | @@ -29,16 +29,16 @@ | ... | @@ -29,16 +29,16 @@ |
| 29 | </div> | 29 | </div> |
| 30 | <div class="index-nav"> | 30 | <div class="index-nav"> |
| 31 | <div class="nav-logo"> | 31 | <div class="nav-logo"> |
| 32 | - <van-icon size="1.5rem" name="https://cdn.ipadbiz.cn/xys/booking/%E9%A6%96%E9%A1%B502@2x.png" color="#A67939" /> | 32 | + <van-icon size="1.5rem" :name="icon_3" color="#A67939" /> |
| 33 | 首页 | 33 | 首页 |
| 34 | </div> | 34 | </div> |
| 35 | <div class="nav-logo" @click="toCode"> | 35 | <div class="nav-logo" @click="toCode"> |
| 36 | - <van-icon size="5rem" name="https://cdn.ipadbiz.cn/xys/booking/%E4%BA%8C%E7%BB%B4%E7%A0%81@2x%20(1).png" color="#A67939" style="position: absolute; top: -4rem;" /> | 36 | + <van-icon size="5rem" :name="icon_4" color="#A67939" style="position: absolute; top: -4rem;" /> |
| 37 | <van-icon size="1.5rem" name="wap-home" color="#FFF" style="opacity: 0;" /> | 37 | <van-icon size="1.5rem" name="wap-home" color="#FFF" style="opacity: 0;" /> |
| 38 | 预约码 | 38 | 预约码 |
| 39 | </div> | 39 | </div> |
| 40 | <div class="nav-logo" @click="toMy"> | 40 | <div class="nav-logo" @click="toMy"> |
| 41 | - <van-icon size="1.5rem" name="https://cdn.ipadbiz.cn/xys/booking/%E6%88%91%E7%9A%8401@2x.png" color="#A67939" /> | 41 | + <van-icon size="1.5rem" :name="icon_5" color="#A67939" /> |
| 42 | 我的 | 42 | 我的 |
| 43 | </div> | 43 | </div> |
| 44 | </div> | 44 | </div> |
| ... | @@ -55,6 +55,11 @@ import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@ | ... | @@ -55,6 +55,11 @@ import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@ |
| 55 | //import { } from '@/composables' | 55 | //import { } from '@/composables' |
| 56 | import { showSuccessToast, showFailToast } from 'vant'; | 56 | import { showSuccessToast, showFailToast } from 'vant'; |
| 57 | import { useGo } from '@/hooks/useGo' | 57 | import { useGo } from '@/hooks/useGo' |
| 58 | +import icon_1 from '@/assets/images/立即预约@2x.png' | ||
| 59 | +import icon_2 from '@/assets/images/预约记录@2x.png' | ||
| 60 | +import icon_3 from '@/assets/images/首页02@2x.png' | ||
| 61 | +import icon_4 from '@/assets/images/二维码icon.png' | ||
| 62 | +import icon_5 from '@/assets/images/我的01@2x.png' | ||
| 58 | const $route = useRoute(); | 63 | const $route = useRoute(); |
| 59 | const $router = useRouter(); | 64 | const $router = useRouter(); |
| 60 | useTitle($route.meta.title); | 65 | useTitle($route.meta.title); | ... | ... |
| 1 | <!-- | 1 | <!-- |
| 2 | * @Date: 2024-01-16 13:33:36 | 2 | * @Date: 2024-01-16 13:33:36 |
| 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com | 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com |
| 4 | - * @LastEditTime: 2024-01-16 17:13:07 | 4 | + * @LastEditTime: 2024-01-17 07:03:58 |
| 5 | * @FilePath: /xysBooking/src/views/me.vue | 5 | * @FilePath: /xysBooking/src/views/me.vue |
| 6 | * @Description: 文件描述 | 6 | * @Description: 文件描述 |
| 7 | --> | 7 | --> |
| ... | @@ -13,17 +13,21 @@ | ... | @@ -13,17 +13,21 @@ |
| 13 | <div @click="() => { go('/addVisitor') }" class="add-visitors"> | 13 | <div @click="() => { go('/addVisitor') }" class="add-visitors"> |
| 14 | <div><van-icon name="plus" /> 添加参观者</div> | 14 | <div><van-icon name="plus" /> 添加参观者</div> |
| 15 | </div> | 15 | </div> |
| 16 | - <div class="visitors-list"> | 16 | + <div v-if="visitorList.length" class="visitors-list"> |
| 17 | <div v-for="(item, index) in visitorList" :key="index" class="visitor-item"> | 17 | <div v-for="(item, index) in visitorList" :key="index" class="visitor-item"> |
| 18 | <div> | 18 | <div> |
| 19 | - <p style="color: #A67939;">张雨燕</p> | 19 | + <p style="color: #A67939;">{{ item.name }}</p> |
| 20 | - <p>证件号:3101******234</p> | 20 | + <p>证件号:{{ formatId(item.idCard) }}</p> |
| 21 | </div> | 21 | </div> |
| 22 | <div @click="removeItem(item)" style="margin-left: 1rem;"> | 22 | <div @click="removeItem(item)" style="margin-left: 1rem;"> |
| 23 | <van-icon name="https://cdn.ipadbiz.cn/xys/booking/%E5%88%A0%E9%99%A4@2x.png" /> | 23 | <van-icon name="https://cdn.ipadbiz.cn/xys/booking/%E5%88%A0%E9%99%A4@2x.png" /> |
| 24 | </div> | 24 | </div> |
| 25 | </div> | 25 | </div> |
| 26 | </div> | 26 | </div> |
| 27 | + <div v-else class="no-visitors-list"> | ||
| 28 | + <img src="https://cdn.ipadbiz.cn/xys/booking/%E6%9A%82%E6%97%A0@2x.png" style="width: 10rem;"> | ||
| 29 | + <div class="no-visitors-list-title">您还没有添加过参观者</div> | ||
| 30 | + </div> | ||
| 27 | </div> | 31 | </div> |
| 28 | </template> | 32 | </template> |
| 29 | 33 | ||
| ... | @@ -31,7 +35,7 @@ | ... | @@ -31,7 +35,7 @@ |
| 31 | import { ref } from 'vue' | 35 | import { ref } from 'vue' |
| 32 | import { useRoute, useRouter } from 'vue-router' | 36 | import { useRoute, useRouter } from 'vue-router' |
| 33 | import { useGo } from '@/hooks/useGo' | 37 | import { useGo } from '@/hooks/useGo' |
| 34 | - | 38 | +import xctcCheck from "xctc-check" |
| 35 | import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@/utils/generatePackage.js' | 39 | import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@/utils/generatePackage.js' |
| 36 | //import { } from '@/utils/generateModules.js' | 40 | //import { } from '@/utils/generateModules.js' |
| 37 | //import { } from '@/utils/generateIcons.js' | 41 | //import { } from '@/utils/generateIcons.js' |
| ... | @@ -43,7 +47,33 @@ const $route = useRoute(); | ... | @@ -43,7 +47,33 @@ const $route = useRoute(); |
| 43 | const $router = useRouter(); | 47 | const $router = useRouter(); |
| 44 | useTitle($route.meta.title); | 48 | useTitle($route.meta.title); |
| 45 | 49 | ||
| 46 | -const visitorList = ref([{ id: '1', name: '张雨燕1', idCard: '3101******234' }, { id: '2', name: '张雨燕2', idCard: '3101******234' }, { id: '3',name: '张雨燕3', idCard: '3101******234' }, { id: '4',name: '张雨燕4', idCard: '3101******234' }]); | 50 | +const visitorList = ref([]); |
| 51 | + | ||
| 52 | +/** | ||
| 53 | + * 生成15位身份证号中间8位替换为*号 | ||
| 54 | + * @param {*} inputString | ||
| 55 | + */ | ||
| 56 | +function replaceMiddleCharacters(inputString) { | ||
| 57 | + if (inputString.length < 15) { | ||
| 58 | + return inputString; // 字符串长度不足,不进行替换 | ||
| 59 | + } | ||
| 60 | + | ||
| 61 | + const start = Math.floor((inputString.length - 8) / 2); // 开始替换的索引位置 | ||
| 62 | + const end = start + 8; // 结束替换的索引位置 | ||
| 63 | + | ||
| 64 | + const replacement = '*'.repeat(8); // 生成包含8个*号的字符串 | ||
| 65 | + | ||
| 66 | + const replacedString = inputString.substring(0, start) + replacement + inputString.substring(end); | ||
| 67 | + return replacedString; | ||
| 68 | +} | ||
| 69 | + | ||
| 70 | +const formatId = (id) => { | ||
| 71 | + if (id.length === 15) { | ||
| 72 | + return replaceMiddleCharacters(id); | ||
| 73 | + } else { | ||
| 74 | + return xctcCheck.formatInfoHide(id) | ||
| 75 | + } | ||
| 76 | +}; | ||
| 47 | 77 | ||
| 48 | const removeItem = (item) => { | 78 | const removeItem = (item) => { |
| 49 | showConfirmDialog({ | 79 | showConfirmDialog({ |
| ... | @@ -61,6 +91,15 @@ const removeItem = (item) => { | ... | @@ -61,6 +91,15 @@ const removeItem = (item) => { |
| 61 | // on cancel | 91 | // on cancel |
| 62 | }); | 92 | }); |
| 63 | } | 93 | } |
| 94 | + | ||
| 95 | +onMounted(() => { | ||
| 96 | + visitorList.value = [ | ||
| 97 | + { id: '1', name: '张雨燕1', idCard: '311522190103214', today: false }, | ||
| 98 | + { id: '2', name: '张雨燕2', idCard: '311522190103214279', today: true }, | ||
| 99 | + { id: '3',name: '张雨燕3', idCard: '311522190103214279', today: false }, | ||
| 100 | + { id: '4',name: '张雨燕4', idCard: '311522190103214279', today: false } | ||
| 101 | + ]; | ||
| 102 | +}) | ||
| 64 | </script> | 103 | </script> |
| 65 | 104 | ||
| 66 | <style lang="less" scoped> | 105 | <style lang="less" scoped> |
| ... | @@ -108,5 +147,20 @@ const removeItem = (item) => { | ... | @@ -108,5 +147,20 @@ const removeItem = (item) => { |
| 108 | justify-content: space-between; | 147 | justify-content: space-between; |
| 109 | } | 148 | } |
| 110 | } | 149 | } |
| 150 | + .no-visitors-list { | ||
| 151 | + display: flex; | ||
| 152 | + justify-content: center; | ||
| 153 | + align-items: center; | ||
| 154 | + flex-direction: column; | ||
| 155 | + img { | ||
| 156 | + margin-top: 1rem; | ||
| 157 | + margin-bottom: 1rem; | ||
| 158 | + width: 10rem; | ||
| 159 | + } | ||
| 160 | + .no-visitors-list-title { | ||
| 161 | + color: #A67939; | ||
| 162 | + font-size: 1.05rem; | ||
| 163 | + } | ||
| 164 | + } | ||
| 111 | } | 165 | } |
| 112 | </style> | 166 | </style> | ... | ... |
| 1 | <!-- | 1 | <!-- |
| 2 | * @Date: 2024-01-15 16:25:51 | 2 | * @Date: 2024-01-15 16:25:51 |
| 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com | 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com |
| 4 | - * @LastEditTime: 2024-01-16 16:53:24 | 4 | + * @LastEditTime: 2024-01-16 18:19:12 |
| 5 | * @FilePath: /xysBooking/src/views/submit.vue | 5 | * @FilePath: /xysBooking/src/views/submit.vue |
| 6 | * @Description: 文件描述 | 6 | * @Description: 文件描述 |
| 7 | --> | 7 | --> |
| ... | @@ -14,11 +14,11 @@ | ... | @@ -14,11 +14,11 @@ |
| 14 | <div @click="goToVisitor" class="add-visitors"> | 14 | <div @click="goToVisitor" class="add-visitors"> |
| 15 | <div><van-icon name="plus" /> 添加参观者</div> | 15 | <div><van-icon name="plus" /> 添加参观者</div> |
| 16 | </div> | 16 | </div> |
| 17 | - <div class="visitors-list"> | 17 | + <div v-if="visitorList.length" class="visitors-list"> |
| 18 | <div v-for="(item, index) in visitorList" :key="index" @click="addVisitor(item)" class="visitor-item"> | 18 | <div v-for="(item, index) in visitorList" :key="index" @click="addVisitor(item)" class="visitor-item"> |
| 19 | <div style="margin-right: 1rem;"> | 19 | <div style="margin-right: 1rem;"> |
| 20 | - <van-icon v-if="!checked_visitors.includes(item.id)" name="https://cdn.ipadbiz.cn/xys/booking/%E5%A4%9A%E9%80%8901@2x.png" /> | 20 | + <van-icon v-if="!checked_visitors.includes(item.id)" :name="icon_check1" /> |
| 21 | - <van-icon v-else name="https://cdn.ipadbiz.cn/xys/booking/%E5%A4%9A%E9%80%8902@2x.png" /> | 21 | + <van-icon v-else :name="icon_check2" /> |
| 22 | </div> | 22 | </div> |
| 23 | <div> | 23 | <div> |
| 24 | <p style="color: #A67939;">{{ item.name }}</p> | 24 | <p style="color: #A67939;">{{ item.name }}</p> |
| ... | @@ -27,6 +27,10 @@ | ... | @@ -27,6 +27,10 @@ |
| 27 | </div> | 27 | </div> |
| 28 | </div> | 28 | </div> |
| 29 | </div> | 29 | </div> |
| 30 | + <div v-else class="no-visitors-list"> | ||
| 31 | + <img src="https://cdn.ipadbiz.cn/xys/booking/%E6%9A%82%E6%97%A0@2x.png" style="width: 10rem;"> | ||
| 32 | + <div class="no-visitors-list-title">您还没有添加过参观者</div> | ||
| 33 | + </div> | ||
| 30 | <div style="height: 5rem;"></div> | 34 | <div style="height: 5rem;"></div> |
| 31 | <div class="submit-wrapper"> | 35 | <div class="submit-wrapper"> |
| 32 | <div class="left"> | 36 | <div class="left"> |
| ... | @@ -49,18 +53,15 @@ import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@ | ... | @@ -49,18 +53,15 @@ import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@ |
| 49 | //import { } from '@/composables' | 53 | //import { } from '@/composables' |
| 50 | import { useGo } from '@/hooks/useGo' | 54 | import { useGo } from '@/hooks/useGo' |
| 51 | import { showSuccessToast, showFailToast, showToast } from 'vant'; | 55 | import { showSuccessToast, showFailToast, showToast } from 'vant'; |
| 56 | +import icon_check1 from '@/assets/images/多选01@2x.png' | ||
| 57 | +import icon_check2 from '@/assets/images/多选02@2x.png' | ||
| 52 | const $route = useRoute(); | 58 | const $route = useRoute(); |
| 53 | const $router = useRouter(); | 59 | const $router = useRouter(); |
| 54 | useTitle($route.meta.title); | 60 | useTitle($route.meta.title); |
| 55 | 61 | ||
| 56 | const go = useGo(); | 62 | const go = useGo(); |
| 57 | 63 | ||
| 58 | -const visitorList = ref([ | 64 | +const visitorList = ref([]); |
| 59 | - { id: '1', name: '张雨燕1', idCard: '311522190103214', today: false }, | ||
| 60 | - { id: '2', name: '张雨燕2', idCard: '311522190103214279', today: true }, | ||
| 61 | - { id: '3',name: '张雨燕3', idCard: '311522190103214279', today: false }, | ||
| 62 | - { id: '4',name: '张雨燕4', idCard: '311522190103214279', today: false } | ||
| 63 | -]); | ||
| 64 | 65 | ||
| 65 | /** | 66 | /** |
| 66 | * 生成15位身份证号中间8位替换为*号 | 67 | * 生成15位身份证号中间8位替换为*号 |
| ... | @@ -126,7 +127,12 @@ const submitBtn = () => { | ... | @@ -126,7 +127,12 @@ const submitBtn = () => { |
| 126 | } | 127 | } |
| 127 | 128 | ||
| 128 | onMounted(() => { | 129 | onMounted(() => { |
| 129 | - | 130 | + visitorList.value = [ |
| 131 | + { id: '1', name: '张雨燕1', idCard: '311522190103214', today: false }, | ||
| 132 | + { id: '2', name: '张雨燕2', idCard: '311522190103214279', today: true }, | ||
| 133 | + { id: '3',name: '张雨燕3', idCard: '311522190103214279', today: false }, | ||
| 134 | + { id: '4',name: '张雨燕4', idCard: '311522190103214279', today: false } | ||
| 135 | + ]; | ||
| 130 | }); | 136 | }); |
| 131 | </script> | 137 | </script> |
| 132 | 138 | ||
| ... | @@ -161,6 +167,21 @@ onMounted(() => { | ... | @@ -161,6 +167,21 @@ onMounted(() => { |
| 161 | align-items: center; | 167 | align-items: center; |
| 162 | } | 168 | } |
| 163 | } | 169 | } |
| 170 | + .no-visitors-list { | ||
| 171 | + display: flex; | ||
| 172 | + justify-content: center; | ||
| 173 | + align-items: center; | ||
| 174 | + flex-direction: column; | ||
| 175 | + img { | ||
| 176 | + margin-top: 1rem; | ||
| 177 | + margin-bottom: 1rem; | ||
| 178 | + width: 10rem; | ||
| 179 | + } | ||
| 180 | + .no-visitors-list-title { | ||
| 181 | + color: #A67939; | ||
| 182 | + font-size: 1.05rem; | ||
| 183 | + } | ||
| 184 | + } | ||
| 164 | .submit-wrapper { | 185 | .submit-wrapper { |
| 165 | position: fixed; | 186 | position: fixed; |
| 166 | bottom: 0; | 187 | bottom: 0; | ... | ... |
-
Please register or login to post a comment