Showing
9 changed files
with
77 additions
and
72 deletions
| ... | @@ -7,26 +7,15 @@ export {} | ... | @@ -7,26 +7,15 @@ export {} |
| 7 | 7 | ||
| 8 | declare module '@vue/runtime-core' { | 8 | declare module '@vue/runtime-core' { |
| 9 | export interface GlobalComponents { | 9 | export interface GlobalComponents { |
| 10 | - BookingCode: typeof import('./src/components/bookingCode.vue')['default'] | ||
| 11 | QrCode: typeof import('./src/components/qrCode.vue')['default'] | 10 | QrCode: typeof import('./src/components/qrCode.vue')['default'] |
| 12 | RouterLink: typeof import('vue-router')['RouterLink'] | 11 | RouterLink: typeof import('vue-router')['RouterLink'] |
| 13 | RouterView: typeof import('vue-router')['RouterView'] | 12 | RouterView: typeof import('vue-router')['RouterView'] |
| 14 | - VanButton: typeof import('vant/es')['Button'] | ||
| 15 | - VanCalendar: typeof import('vant/es')['Calendar'] | ||
| 16 | VanCheckbox: typeof import('vant/es')['Checkbox'] | 13 | VanCheckbox: typeof import('vant/es')['Checkbox'] |
| 17 | VanCheckboxGroup: typeof import('vant/es')['CheckboxGroup'] | 14 | VanCheckboxGroup: typeof import('vant/es')['CheckboxGroup'] |
| 18 | - VanCol: typeof import('vant/es')['Col'] | ||
| 19 | VanDatePicker: typeof import('vant/es')['DatePicker'] | 15 | VanDatePicker: typeof import('vant/es')['DatePicker'] |
| 20 | - VanDialog: typeof import('vant/es')['Dialog'] | ||
| 21 | - VanEmpty: typeof import('vant/es')['Empty'] | ||
| 22 | - VanField: typeof import('vant/es')['Field'] | ||
| 23 | - VanForm: typeof import('vant/es')['Form'] | ||
| 24 | VanIcon: typeof import('vant/es')['Icon'] | 16 | VanIcon: typeof import('vant/es')['Icon'] |
| 25 | VanPicker: typeof import('vant/es')['Picker'] | 17 | VanPicker: typeof import('vant/es')['Picker'] |
| 26 | VanPopup: typeof import('vant/es')['Popup'] | 18 | VanPopup: typeof import('vant/es')['Popup'] |
| 27 | - VanRadio: typeof import('vant/es')['Radio'] | ||
| 28 | - VanRadioGroup: typeof import('vant/es')['RadioGroup'] | ||
| 29 | - VanRow: typeof import('vant/es')['Row'] | ||
| 30 | VanSwipe: typeof import('vant/es')['Swipe'] | 19 | VanSwipe: typeof import('vant/es')['Swipe'] |
| 31 | VanSwipeItem: typeof import('vant/es')['SwipeItem'] | 20 | VanSwipeItem: typeof import('vant/es')['SwipeItem'] |
| 32 | VanToast: typeof import('vant/es')['Toast'] | 21 | VanToast: typeof import('vant/es')['Toast'] | ... | ... |
| ... | @@ -12,6 +12,7 @@ | ... | @@ -12,6 +12,7 @@ |
| 12 | "cypress:open": "cypress open" | 12 | "cypress:open": "cypress open" |
| 13 | }, | 13 | }, |
| 14 | "dependencies": { | 14 | "dependencies": { |
| 15 | + "@code-ts/cin": "^0.0.2", | ||
| 15 | "@vant/area-data": "^1.3.1", | 16 | "@vant/area-data": "^1.3.1", |
| 16 | "@vant/touch-emulator": "^1.4.0", | 17 | "@vant/touch-emulator": "^1.4.0", |
| 17 | "@vitejs/plugin-legacy": "^1.8.2", | 18 | "@vitejs/plugin-legacy": "^1.8.2", | ... | ... |
| 1 | /* | 1 | /* |
| 2 | * @Date: 2023-08-24 09:42:27 | 2 | * @Date: 2023-08-24 09:42:27 |
| 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com | 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com |
| 4 | - * @LastEditTime: 2024-01-17 17:37:48 | 4 | + * @LastEditTime: 2024-01-18 10:31:15 |
| 5 | * @FilePath: /xysBooking/src/api/index.js | 5 | * @FilePath: /xysBooking/src/api/index.js |
| 6 | * @Description: 文件描述 | 6 | * @Description: 文件描述 |
| 7 | */ | 7 | */ |
| ... | @@ -10,6 +10,9 @@ import { fn, fetch } from '@/api/fn'; | ... | @@ -10,6 +10,9 @@ import { fn, fetch } from '@/api/fn'; |
| 10 | const Api = { | 10 | const Api = { |
| 11 | CAN_RESERVE_DATE_LIST: '/srv/?a=api&t=can_reserve_date_list', | 11 | CAN_RESERVE_DATE_LIST: '/srv/?a=api&t=can_reserve_date_list', |
| 12 | CAN_RESERVE_TIME_LIST: '/srv/?a=api&t=can_reserve_time_list', | 12 | CAN_RESERVE_TIME_LIST: '/srv/?a=api&t=can_reserve_time_list', |
| 13 | + PERSON_LIST: '/srv/?a=api&t=person_list', | ||
| 14 | + ADD_PERSON: '/srv/?a=api&t=add_person', | ||
| 15 | + DEL_PERSON: '/srv/?a=api&t=del_person', | ||
| 13 | }; | 16 | }; |
| 14 | 17 | ||
| 15 | /** | 18 | /** |
| ... | @@ -27,8 +30,26 @@ export const canReserveDateListAPI = (params) => fn(fetch.get(Api.CAN_RESERVE_DA | ... | @@ -27,8 +30,26 @@ export const canReserveDateListAPI = (params) => fn(fetch.get(Api.CAN_RESERVE_DA |
| 27 | export const canReserveTimeListAPI = (params) => fn(fetch.get(Api.CAN_RESERVE_TIME_LIST, params)); | 30 | export const canReserveTimeListAPI = (params) => fn(fetch.get(Api.CAN_RESERVE_TIME_LIST, params)); |
| 28 | 31 | ||
| 29 | /** | 32 | /** |
| 30 | - * @description: 取消预约 | 33 | + * @description: 参观者列表 |
| 31 | - * @param {String} id 预约订单的ID | 34 | + * @param {String} reserve_date 预约日期,格式 yyyy-mm-dd,没有传入则不查询指定日期是否已预约 |
| 35 | + * @param {String} begin_time 时段开始时间,格式 hh:mm | ||
| 36 | + * @param {String} end_time 时段结束时间,格式 hh:mm | ||
| 32 | * @returns | 37 | * @returns |
| 33 | */ | 38 | */ |
| 34 | -// export const orderCancelAPI = (params) => fn(fetch.post(Api.ORDER_CANCEL, params)); | 39 | +export const personListAPI = (params) => fn(fetch.get(Api.PERSON_LIST, params)); |
| 40 | + | ||
| 41 | +/** | ||
| 42 | + * @description: 添加参观者 | ||
| 43 | + * @param {String} name 参观者姓名 | ||
| 44 | + * @param {String} id_type 证件类型,1=身份证,3=其他 | ||
| 45 | + * @param {String} id_number 证件号 | ||
| 46 | + * @returns | ||
| 47 | + */ | ||
| 48 | +export const addPersonAPI = (params) => fn(fetch.post(Api.ADD_PERSON, params)); | ||
| 49 | + | ||
| 50 | +/** | ||
| 51 | + * @description: 删除参观者 | ||
| 52 | + * @param {String} person_id 参观者id | ||
| 53 | + * @returns | ||
| 54 | + */ | ||
| 55 | +export const delPersonAPI = (params) => fn(fetch.post(Api.DEL_PERSON, params)); | ... | ... |
| 1 | <!-- | 1 | <!-- |
| 2 | * @Date: 2024-01-16 10:06:47 | 2 | * @Date: 2024-01-16 10:06:47 |
| 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com | 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com |
| 4 | - * @LastEditTime: 2024-01-16 17:06:21 | 4 | + * @LastEditTime: 2024-01-18 10:36:53 |
| 5 | * @FilePath: /xysBooking/src/components/qrCode.vue | 5 | * @FilePath: /xysBooking/src/components/qrCode.vue |
| 6 | * @Description: 文件描述 | 6 | * @Description: 文件描述 |
| 7 | --> | 7 | --> |
| ... | @@ -49,7 +49,6 @@ | ... | @@ -49,7 +49,6 @@ |
| 49 | <script setup> | 49 | <script setup> |
| 50 | import { ref } from 'vue' | 50 | import { ref } from 'vue' |
| 51 | import { useRoute, useRouter } from 'vue-router' | 51 | import { useRoute, useRouter } from 'vue-router' |
| 52 | -import xctcCheck from "xctc-check" | ||
| 53 | import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@/utils/generatePackage.js' | 52 | import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@/utils/generatePackage.js' |
| 54 | //import { } from '@/utils/generateModules.js' | 53 | //import { } from '@/utils/generateModules.js' |
| 55 | //import { } from '@/utils/generateIcons.js' | 54 | //import { } from '@/utils/generateIcons.js' |
| ... | @@ -134,11 +133,7 @@ const nextCode = () => { | ... | @@ -134,11 +133,7 @@ const nextCode = () => { |
| 134 | } | 133 | } |
| 135 | 134 | ||
| 136 | const formatId = (id) => { | 135 | const formatId = (id) => { |
| 137 | - if (id.length === 15) { | 136 | + return replaceMiddleCharacters(id); |
| 138 | - return replaceMiddleCharacters(id); | ||
| 139 | - } else { | ||
| 140 | - return xctcCheck.formatInfoHide(id) | ||
| 141 | - } | ||
| 142 | }; | 137 | }; |
| 143 | 138 | ||
| 144 | const userinfo = computed(() => { | 139 | const userinfo = computed(() => { | ... | ... |
| 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:25:22 | 4 | + * @LastEditTime: 2024-01-18 10:23:30 |
| 5 | * @FilePath: /xysBooking/src/views/addVisitor.vue | 5 | * @FilePath: /xysBooking/src/views/addVisitor.vue |
| 6 | * @Description: 文件描述 | 6 | * @Description: 文件描述 |
| 7 | --> | 7 | --> |
| ... | @@ -51,13 +51,15 @@ | ... | @@ -51,13 +51,15 @@ |
| 51 | <script setup> | 51 | <script setup> |
| 52 | import { ref } from 'vue' | 52 | import { ref } from 'vue' |
| 53 | import { useRoute, useRouter } from 'vue-router' | 53 | import { useRoute, useRouter } from 'vue-router' |
| 54 | -import xctcCheck from "xctc-check" | 54 | +import { validateCIN } from '@code-ts/cin' |
| 55 | import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@/utils/generatePackage.js' | 55 | import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@/utils/generatePackage.js' |
| 56 | //import { } from '@/utils/generateModules.js' | 56 | //import { } from '@/utils/generateModules.js' |
| 57 | //import { } from '@/utils/generateIcons.js' | 57 | //import { } from '@/utils/generateIcons.js' |
| 58 | //import { } from '@/composables' | 58 | //import { } from '@/composables' |
| 59 | import { showSuccessToast, showFailToast } from 'vant'; | 59 | import { showSuccessToast, showFailToast } from 'vant'; |
| 60 | import { useGo } from '@/hooks/useGo' | 60 | import { useGo } from '@/hooks/useGo' |
| 61 | +import { addPersonAPI } from '@/api/index' | ||
| 62 | + | ||
| 61 | const $route = useRoute(); | 63 | const $route = useRoute(); |
| 62 | const $router = useRouter(); | 64 | const $router = useRouter(); |
| 63 | useTitle($route.meta.title); | 65 | useTitle($route.meta.title); |
| ... | @@ -81,29 +83,28 @@ const checkUsername = () => { | ... | @@ -81,29 +83,28 @@ const checkUsername = () => { |
| 81 | return flag; | 83 | return flag; |
| 82 | } | 84 | } |
| 83 | const checkIdCode = () => { | 85 | const checkIdCode = () => { |
| 84 | - const res = xctcCheck.checkIdCard(idCode.value); | ||
| 85 | let flag = true; | 86 | let flag = true; |
| 86 | if (idCode.value.length === 15) { // 15位身份证号码不校验 | 87 | if (idCode.value.length === 15) { // 15位身份证号码不校验 |
| 87 | flag = true; | 88 | flag = true; |
| 88 | } else { | 89 | } else { |
| 89 | - if (res.status) { | 90 | + if (validateCIN(idCode.value)) { |
| 90 | 91 | ||
| 91 | } else { | 92 | } else { |
| 92 | show_error.value = true; | 93 | show_error.value = true; |
| 93 | - error_message.value = res.msg; | 94 | + error_message.value = '请检查身份证号码'; |
| 94 | flag = false; | 95 | flag = false; |
| 95 | } | 96 | } |
| 96 | } | 97 | } |
| 97 | return flag; | 98 | return flag; |
| 98 | } | 99 | } |
| 99 | 100 | ||
| 100 | -const addVisitor = () => { | 101 | +const addVisitor = async () => { |
| 101 | - // TODO:保存用户信息 | 102 | + // 保存用户信息 |
| 102 | if (checkUsername() && checkIdCode()) { | 103 | if (checkUsername() && checkIdCode()) { |
| 103 | - $router.go(-1); | 104 | + const { code, data } = await addPersonAPI({ name: username.value, id_type: id_type.value, id_number: idCode.value }); |
| 104 | - console.warn(username.value); | 105 | + if (code) { |
| 105 | - console.warn(idCode.value); | 106 | + $router.go(-1); |
| 106 | - console.warn(fieldValue.value); | 107 | + } |
| 107 | } | 108 | } |
| 108 | } | 109 | } |
| 109 | 110 | ||
| ... | @@ -112,14 +113,17 @@ const idTypeChange = () => { | ... | @@ -112,14 +113,17 @@ const idTypeChange = () => { |
| 112 | showPicker.value = !showPicker.value; | 113 | showPicker.value = !showPicker.value; |
| 113 | } | 114 | } |
| 114 | const columns = [ | 115 | const columns = [ |
| 115 | - { text: '身份证', value: '0' }, | 116 | + { text: '身份证', value: '1' }, |
| 116 | - { text: '其他证件', value: '1' }, | 117 | + { text: '其他证件', value: '3' }, |
| 117 | ]; | 118 | ]; |
| 118 | const fieldValue = ref('身份证'); | 119 | const fieldValue = ref('身份证'); |
| 120 | +const id_type = ref('1'); | ||
| 119 | 121 | ||
| 120 | const onConfirm = ({ selectedOptions }) => { | 122 | const onConfirm = ({ selectedOptions }) => { |
| 121 | showPicker.value = false; | 123 | showPicker.value = false; |
| 124 | + // | ||
| 122 | fieldValue.value = selectedOptions[0].text; | 125 | fieldValue.value = selectedOptions[0].text; |
| 126 | + id_type.value = selectedOptions[0].value; | ||
| 123 | }; | 127 | }; |
| 124 | </script> | 128 | </script> |
| 125 | 129 | ... | ... |
| ... | @@ -18,7 +18,6 @@ | ... | @@ -18,7 +18,6 @@ |
| 18 | <script setup> | 18 | <script setup> |
| 19 | import { ref } from 'vue' | 19 | import { ref } from 'vue' |
| 20 | import { useRoute, useRouter } from 'vue-router' | 20 | import { useRoute, useRouter } from 'vue-router' |
| 21 | -import xctcCheck from "xctc-check" | ||
| 22 | import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@/utils/generatePackage.js' | 21 | import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@/utils/generatePackage.js' |
| 23 | //import { } from '@/utils/generateModules.js' | 22 | //import { } from '@/utils/generateModules.js' |
| 24 | //import { } from '@/utils/generateIcons.js' | 23 | //import { } from '@/utils/generateIcons.js' | ... | ... |
| 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-17 07:03:58 | 4 | + * @LastEditTime: 2024-01-18 10:36:04 |
| 5 | * @FilePath: /xysBooking/src/views/me.vue | 5 | * @FilePath: /xysBooking/src/views/me.vue |
| 6 | * @Description: 文件描述 | 6 | * @Description: 文件描述 |
| 7 | --> | 7 | --> |
| ... | @@ -17,7 +17,7 @@ | ... | @@ -17,7 +17,7 @@ |
| 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;">{{ item.name }}</p> | 19 | <p style="color: #A67939;">{{ item.name }}</p> |
| 20 | - <p>证件号:{{ formatId(item.idCard) }}</p> | 20 | + <p>证件号:{{ formatId(item.id_number) }}</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" /> |
| ... | @@ -35,13 +35,13 @@ | ... | @@ -35,13 +35,13 @@ |
| 35 | import { ref } from 'vue' | 35 | import { ref } from 'vue' |
| 36 | import { useRoute, useRouter } from 'vue-router' | 36 | import { useRoute, useRouter } from 'vue-router' |
| 37 | import { useGo } from '@/hooks/useGo' | 37 | import { useGo } from '@/hooks/useGo' |
| 38 | -import xctcCheck from "xctc-check" | ||
| 39 | import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@/utils/generatePackage.js' | 38 | import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@/utils/generatePackage.js' |
| 40 | //import { } from '@/utils/generateModules.js' | 39 | //import { } from '@/utils/generateModules.js' |
| 41 | //import { } from '@/utils/generateIcons.js' | 40 | //import { } from '@/utils/generateIcons.js' |
| 42 | //import { } from '@/composables' | 41 | //import { } from '@/composables' |
| 43 | import { showConfirmDialog } from 'vant'; | 42 | import { showConfirmDialog } from 'vant'; |
| 44 | import { showSuccessToast, showFailToast } from 'vant'; | 43 | import { showSuccessToast, showFailToast } from 'vant'; |
| 44 | +import { personListAPI, delPersonAPI } from '@/api/index' | ||
| 45 | const go = useGo(); | 45 | const go = useGo(); |
| 46 | const $route = useRoute(); | 46 | const $route = useRoute(); |
| 47 | const $router = useRouter(); | 47 | const $router = useRouter(); |
| ... | @@ -68,11 +68,7 @@ function replaceMiddleCharacters(inputString) { | ... | @@ -68,11 +68,7 @@ function replaceMiddleCharacters(inputString) { |
| 68 | } | 68 | } |
| 69 | 69 | ||
| 70 | const formatId = (id) => { | 70 | const formatId = (id) => { |
| 71 | - if (id.length === 15) { | 71 | + return replaceMiddleCharacters(id); |
| 72 | - return replaceMiddleCharacters(id); | ||
| 73 | - } else { | ||
| 74 | - return xctcCheck.formatInfoHide(id) | ||
| 75 | - } | ||
| 76 | }; | 72 | }; |
| 77 | 73 | ||
| 78 | const removeItem = (item) => { | 74 | const removeItem = (item) => { |
| ... | @@ -82,23 +78,24 @@ const removeItem = (item) => { | ... | @@ -82,23 +78,24 @@ const removeItem = (item) => { |
| 82 | confirmButtonColor: '#A67939', | 78 | confirmButtonColor: '#A67939', |
| 83 | width: '80vw' | 79 | width: '80vw' |
| 84 | }) | 80 | }) |
| 85 | - .then(() => { | 81 | + .then(async () => { |
| 86 | // on confirm | 82 | // on confirm |
| 87 | - showSuccessToast('删除成功'); | 83 | + const { code, data } = await delPersonAPI({ person_id: item.id }); |
| 88 | - visitorList.value = visitorList.value.filter((v) => v.id !== item.id); | 84 | + if (code) { |
| 85 | + showSuccessToast('删除成功'); | ||
| 86 | + visitorList.value = visitorList.value.filter((v) => v.id !== item.id); | ||
| 87 | + } | ||
| 89 | }) | 88 | }) |
| 90 | .catch(() => { | 89 | .catch(() => { |
| 91 | // on cancel | 90 | // on cancel |
| 92 | }); | 91 | }); |
| 93 | } | 92 | } |
| 94 | 93 | ||
| 95 | -onMounted(() => { | 94 | +onMounted(async () => { |
| 96 | - visitorList.value = [ | 95 | + const { code, data } = await personListAPI(); |
| 97 | - { id: '1', name: '张雨燕1', idCard: '311522190103214', today: false }, | 96 | + if (code) { |
| 98 | - { id: '2', name: '张雨燕2', idCard: '311522190103214279', today: true }, | 97 | + visitorList.value = data; |
| 99 | - { id: '3',name: '张雨燕3', idCard: '311522190103214279', today: false }, | 98 | + } |
| 100 | - { id: '4',name: '张雨燕4', idCard: '311522190103214279', today: false } | ||
| 101 | - ]; | ||
| 102 | }) | 99 | }) |
| 103 | </script> | 100 | </script> |
| 104 | 101 | ... | ... |
| 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 18:19:12 | 4 | + * @LastEditTime: 2024-01-18 10:36:40 |
| 5 | * @FilePath: /xysBooking/src/views/submit.vue | 5 | * @FilePath: /xysBooking/src/views/submit.vue |
| 6 | - * @Description: 文件描述 | 6 | + * @Description: 预约人员信息 |
| 7 | --> | 7 | --> |
| 8 | <template> | 8 | <template> |
| 9 | <div class="submit-page"> | 9 | <div class="submit-page"> |
| ... | @@ -22,8 +22,8 @@ | ... | @@ -22,8 +22,8 @@ |
| 22 | </div> | 22 | </div> |
| 23 | <div> | 23 | <div> |
| 24 | <p style="color: #A67939;">{{ item.name }}</p> | 24 | <p style="color: #A67939;">{{ item.name }}</p> |
| 25 | - <p>证件号:{{ formatId(item.idCard) }}</p> | 25 | + <p>证件号:{{ formatId(item.id_number) }}</p> |
| 26 | - <p v-if="item.today" style="color: #9C9A9A; font-size: 0.8rem;">*已预约过2024-01-10参观,请不要重复预约</p> | 26 | + <p v-if="item.is_reserve === '1'" style="color: #9C9A9A; font-size: 0.8rem;">*已预约过{{ date }}参观,请不要重复预约</p> |
| 27 | </div> | 27 | </div> |
| 28 | </div> | 28 | </div> |
| 29 | </div> | 29 | </div> |
| ... | @@ -46,7 +46,6 @@ | ... | @@ -46,7 +46,6 @@ |
| 46 | <script setup> | 46 | <script setup> |
| 47 | import { ref } from 'vue' | 47 | import { ref } from 'vue' |
| 48 | import { useRoute, useRouter } from 'vue-router' | 48 | import { useRoute, useRouter } from 'vue-router' |
| 49 | -import xctcCheck from "xctc-check" | ||
| 50 | import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@/utils/generatePackage.js' | 49 | import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@/utils/generatePackage.js' |
| 51 | //import { } from '@/utils/generateModules.js' | 50 | //import { } from '@/utils/generateModules.js' |
| 52 | //import { } from '@/utils/generateIcons.js' | 51 | //import { } from '@/utils/generateIcons.js' |
| ... | @@ -55,6 +54,7 @@ import { useGo } from '@/hooks/useGo' | ... | @@ -55,6 +54,7 @@ import { useGo } from '@/hooks/useGo' |
| 55 | import { showSuccessToast, showFailToast, showToast } from 'vant'; | 54 | import { showSuccessToast, showFailToast, showToast } from 'vant'; |
| 56 | import icon_check1 from '@/assets/images/多选01@2x.png' | 55 | import icon_check1 from '@/assets/images/多选01@2x.png' |
| 57 | import icon_check2 from '@/assets/images/多选02@2x.png' | 56 | import icon_check2 from '@/assets/images/多选02@2x.png' |
| 57 | +import { personListAPI } from '@/api/index' | ||
| 58 | const $route = useRoute(); | 58 | const $route = useRoute(); |
| 59 | const $router = useRouter(); | 59 | const $router = useRouter(); |
| 60 | useTitle($route.meta.title); | 60 | useTitle($route.meta.title); |
| ... | @@ -82,16 +82,12 @@ function replaceMiddleCharacters(inputString) { | ... | @@ -82,16 +82,12 @@ function replaceMiddleCharacters(inputString) { |
| 82 | } | 82 | } |
| 83 | 83 | ||
| 84 | const formatId = (id) => { | 84 | const formatId = (id) => { |
| 85 | - if (id.length === 15) { | 85 | + return replaceMiddleCharacters(id); |
| 86 | - return replaceMiddleCharacters(id); | ||
| 87 | - } else { | ||
| 88 | - return xctcCheck.formatInfoHide(id) | ||
| 89 | - } | ||
| 90 | }; | 86 | }; |
| 91 | 87 | ||
| 92 | const checked_visitors = ref([]); | 88 | const checked_visitors = ref([]); |
| 93 | const addVisitor = (item) => { | 89 | const addVisitor = (item) => { |
| 94 | - if (item.today) { // 今天已经预约 | 90 | + if (item.is_reserve === '1') { // 今天已经预约 |
| 95 | showToast('已预约过参观,请不要重复预约!') | 91 | showToast('已预约过参观,请不要重复预约!') |
| 96 | return; | 92 | return; |
| 97 | } | 93 | } |
| ... | @@ -126,13 +122,11 @@ const submitBtn = () => { | ... | @@ -126,13 +122,11 @@ const submitBtn = () => { |
| 126 | } | 122 | } |
| 127 | } | 123 | } |
| 128 | 124 | ||
| 129 | -onMounted(() => { | 125 | +onMounted(async () => { |
| 130 | - visitorList.value = [ | 126 | + const { code, data } = await personListAPI({ reserve_date: date, begin_time: time.split('-')[0], end_time: time.split('-')[1] }); |
| 131 | - { id: '1', name: '张雨燕1', idCard: '311522190103214', today: false }, | 127 | + if (code) { |
| 132 | - { id: '2', name: '张雨燕2', idCard: '311522190103214279', today: true }, | 128 | + visitorList.value = data; |
| 133 | - { id: '3',name: '张雨燕3', idCard: '311522190103214279', today: false }, | 129 | + } |
| 134 | - { id: '4',name: '张雨燕4', idCard: '311522190103214279', today: false } | ||
| 135 | - ]; | ||
| 136 | }); | 130 | }); |
| 137 | </script> | 131 | </script> |
| 138 | 132 | ... | ... |
| ... | @@ -213,6 +213,11 @@ | ... | @@ -213,6 +213,11 @@ |
| 213 | "@babel/helper-validator-identifier" "^7.22.5" | 213 | "@babel/helper-validator-identifier" "^7.22.5" |
| 214 | to-fast-properties "^2.0.0" | 214 | to-fast-properties "^2.0.0" |
| 215 | 215 | ||
| 216 | +"@code-ts/cin@^0.0.2": | ||
| 217 | + version "0.0.2" | ||
| 218 | + resolved "https://mirrors.cloud.tencent.com/npm/@code-ts/cin/-/cin-0.0.2.tgz#574a64df3e55a180ae5f12d33830e62fa6c0ccb2" | ||
| 219 | + integrity sha512-ZFIcwfxnYeBKAJSInmvKk3ogblkQTUUZDA1biqiEoukiAFsX3ldlQp+ZHooFIMeSYuR/32pGSNtFtgDl8TwyXQ== | ||
| 220 | + | ||
| 216 | "@colors/colors@1.5.0": | 221 | "@colors/colors@1.5.0": |
| 217 | version "1.5.0" | 222 | version "1.5.0" |
| 218 | resolved "https://mirrors.cloud.tencent.com/npm/@colors/colors/-/colors-1.5.0.tgz" | 223 | resolved "https://mirrors.cloud.tencent.com/npm/@colors/colors/-/colors-1.5.0.tgz" | ... | ... |
-
Please register or login to post a comment