hookehuyr

新增提交预约页面

1 /* 1 /*
2 * @Date: 2023-06-13 13:26:46 2 * @Date: 2023-06-13 13:26:46
3 * @LastEditors: hookehuyr hookehuyr@gmail.com 3 * @LastEditors: hookehuyr hookehuyr@gmail.com
4 - * @LastEditTime: 2024-01-15 13:36:19 4 + * @LastEditTime: 2024-01-15 16:26:34
5 * @FilePath: /xysBooking/src/route.js 5 * @FilePath: /xysBooking/src/route.js
6 * @Description: 文件描述 6 * @Description: 文件描述
7 */ 7 */
...@@ -28,6 +28,13 @@ export default [ ...@@ -28,6 +28,13 @@ export default [
28 }, 28 },
29 }, 29 },
30 { 30 {
31 + path: '/submit',
32 + component: () => import('@/views/submit.vue'),
33 + meta: {
34 + title: '预约人员信息',
35 + },
36 + },
37 + {
31 path: '/auth', 38 path: '/auth',
32 component: () => import('@/views/auth.vue'), 39 component: () => import('@/views/auth.vue'),
33 meta: { 40 meta: {
......
1 +<!--
2 + * @Date: 2024-01-15 16:25:51
3 + * @LastEditors: hookehuyr hookehuyr@gmail.com
4 + * @LastEditTime: 2024-01-15 17:30:46
5 + * @FilePath: /xysBooking/src/views/submit.vue
6 + * @Description: 文件描述
7 +-->
8 +<template>
9 + <div class="submit-page">
10 + <div class="visit-time">
11 + <div>参访时间</div>
12 + <div>2024-01-10 05:00-08:00&nbsp;<van-icon name="arrow" /></div>
13 + </div>
14 + <div class="add-visitors">
15 + <div><van-icon name="plus" /> 添加参观者</div>
16 + </div>
17 + <div class="visitors-list">
18 + <div v-for="(item, index) in visitorList" :key="index" @click="addVisitor(item)" class="visitor-item">
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;
21 + <van-icon v-else name="https://cdn.ipadbiz.cn/xys/booking/%E5%A4%9A%E9%80%8902@2x.png" />&nbsp;
22 + </div>
23 + <div>
24 + <p style="color: #A67939;">张雨燕</p>
25 + <p>证件号:3101******234</p>
26 + <p style="color: #9C9A9A; font-size: 0.8rem;">*已预约过2024-01-10参观,请不要重复预约</p>
27 + </div>
28 + </div>
29 + </div>
30 + <div style="height: 5rem;"></div>
31 + <div class="submit-wrapper">
32 + <div class="left">
33 + <div style="margin-left: 1rem; display: flex;align-items: center;">
34 + 订单金额&nbsp;&nbsp;<div style="color: #FF1919;display: inline-block;">¥<div style="font-size: 1.5rem;display: inline-block;">50</div></div>
35 + </div>
36 + </div>
37 + <div class="right">提交订单</div>
38 + </div>
39 + </div>
40 +</template>
41 +
42 +<script setup>
43 +import { ref } from 'vue'
44 +import { useRoute, useRouter } from 'vue-router'
45 +
46 +import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@/utils/generatePackage.js'
47 +//import { } from '@/utils/generateModules.js'
48 +//import { } from '@/utils/generateIcons.js'
49 +//import { } from '@/composables'
50 +const $route = useRoute();
51 +const $router = useRouter();
52 +useTitle($route.meta.title);
53 +
54 +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' }]);
55 +
56 +const checked_visitors = ref([]);
57 +const addVisitor = (item) => {
58 + if (checked_visitors.value.includes(item.id)) {
59 + checked_visitors.value = checked_visitors.value.filter((v) => v !== item.id);
60 + } else {
61 + checked_visitors.value.push(item.id);
62 + }
63 +}
64 +</script>
65 +
66 +<style lang="less" scoped>
67 +.submit-page {
68 + margin: 1rem;
69 + position: relative;
70 + .visit-time {
71 + background-color: #FFF;
72 + display: flex;
73 + align-items: center;
74 + justify-content: space-between;
75 + padding: 0.75rem;
76 + border-radius: 8px;
77 + }
78 + .add-visitors {
79 + border: 1px dashed #A67939;
80 + color: #A67939;
81 + border-radius: 5px;
82 + text-align: center;
83 + padding: .65rem 0;
84 + margin: 1rem 0;
85 + font-size: 1.15rem;
86 + }
87 + .visitors-list {
88 + .visitor-item {
89 + background-color: #FFF;
90 + border-radius: 8px;
91 + padding: 1rem;
92 + margin-bottom: 1rem;
93 + display: flex;
94 + align-items: center;
95 + }
96 + }
97 + .submit-wrapper {
98 + position: fixed;
99 + bottom: 0;
100 + left: 0;
101 + width: 100vw;
102 + display: flex;
103 + background-color: #FFF;
104 + // padding: 1rem;
105 + justify-content: space-between;
106 + .left {
107 + display: flex;
108 + justify-content: center;
109 + align-items: center;
110 + }
111 + .right {
112 + background-color: #A67939;
113 + color: #FFF;
114 + margin: 1rem;
115 + padding: 0.8rem 3rem;
116 + border-radius: 5px;
117 + }
118 + }
119 +}
120 +</style>