hookehuyr

fix

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" />&nbsp; 43 + <van-icon v-if="checked_time !== index" :name="icon_select1" />&nbsp;
44 - <van-icon v-else name="https://cdn.ipadbiz.cn/xys/booking/%E5%8D%95%E9%80%8902@2x.png" />&nbsp; 44 + <van-icon v-else :name="icon_select2" />&nbsp;
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 &nbsp;立即预约 21 &nbsp;立即预约
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 &nbsp;预约记录 25 &nbsp;预约记录
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" />&nbsp; 20 + <van-icon v-if="!checked_visitors.includes(item.id)" :name="icon_check1" />&nbsp;
21 - <van-icon v-else name="https://cdn.ipadbiz.cn/xys/booking/%E5%A4%9A%E9%80%8902@2x.png" />&nbsp; 21 + <van-icon v-else :name="icon_check2" />&nbsp;
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;
......