choosePerson.vue
5.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
<template>
<el-dialog
v-model="show" :title="languageFormat(language, '出行人信息', 'Travelers')" append-to-body center
width="500"
>
<el-button plain type="primary" @click="addPeopl">{{ languageFormat(language, "新增", "Add") }}</el-button>
<el-radio-group v-model="personId">
<div v-for="(it, index) in personList" :key="index" class="e_item">
<el-radio :disabled="hasPersonIds?.indexOf(it.id)!=-1" :value="it.id" border>
<div class="name">{{ it.name }}</div>
<div class="code">
<span v-if="it.idcType==0">{{ language == 0 ? '身份证' : 'ID number' }}</span>
<span v-if="it.idcType==1">{{ language == 0 ? '护照' : 'Passport' }}</span>
<span v-if="it.idcType==2">{{ language == 0 ? '其他' : 'Other' }}</span>
{{ it.idCard }}
</div>
</el-radio>
</div>
</el-radio-group>
<template #footer>
<div class="dialog-footer">
<el-button @click="show = false">{{ languageFormat(language, "取 消", "Cancel") }}</el-button>
<el-button type="primary" @click="addPerson">{{ languageFormat(language, "完 成", "Ok") }}</el-button>
</div>
</template>
</el-dialog>
<el-dialog v-model="showAdd" :title="language ==0?'新增出行人':'Add traveler'" append-to-body center>
<el-form
ref="formRef" :model="form" label-width="100px" size="large"
style="margin: 80px"
>
<el-form-item :label="language==0?'姓名':'name'" :show-message="false" prop="name" required>
<el-input v-model="form.name" :placeholder="language==0?'请输入':'Please input'" />
</el-form-item>
<el-form-item :label="language==0?'证件类型':'ID Type'" :show-message="false" prop="idcType" required>
<el-select v-model="form.idcType" :placeholder="language==0?'请选择':'Please choose'">
<el-option :label="language==0?'身份证':'Identity card'" value="0" />
<el-option :label="language==0?'护照':'Passport'" value="1" />
<el-option :label="language==0?'其他':'Other'" value="2" />
</el-select>
</el-form-item>
<el-form-item :label="language==0?'证件号':'ID number'" :show-message="false" prop="idCard" required>
<el-input v-model="form.idCard" :placeholder="language==0?'请输入证件号':'Please enter the ID after ah'" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button class="can_pay" @click="showAdd = false">{{ language == 0 ? '取 消' : 'cancel' }}</el-button>
<el-button class="pay" type="primary" @click="submit">{{ language == 0 ? '确 定' : 'confirm' }}</el-button>
</div>
</template>
</el-dialog>
</template>
<script setup>
import { aadSceneCustomer, checkSceneCustomer, getMyFriends } from '/@/apiPc/booking'
import { languageFormat } from '/@/viewsPc/seat/utils/language'
import { onMounted, ref } from 'vue'
import { useStorage } from '@vueuse/core/index'
import _ from 'lodash'
import { getCurrentInstance } from '@vue/runtime-core'
const emit = defineEmits(['addPerson'])
const { proxy } = getCurrentInstance()
const show = ref(false)
const showAdd = ref(false)
const personList = ref([])
const personId = ref(null)
const hasPersonIds = ref(null)
const language = useStorage('language', 0)
const form = ref({})
const formRef = ref(null)
onMounted(() => {
getData()
})
const getData = () => {
getMyFriends().then((res) => {
personList.value = res.data
})
}
const addPeopl = () => {
formRef.value?.resetFields()
showAdd.value = true
}
const addPerson = () => {
const person = _.find(personList.value, (it) => it.id == personId.value)
show.value = false
emit('addPerson', Object.assign(currParams, {
customerId: person.id,
name: person.name,
idcType: person.idcType,
idCard: person.idCard
}))
// checkSceneCustomer({
// customerId: person.id,
// gateType: currParams.gateType
// }).then((res) => {
// if (res.data == 201) {
// proxy.$modal.msgError(language.value == 0 ? '护照只能购买成人票' : 'Passport can only buy adult tickets')
// } else if (res.data == 202) {
// proxy.$modal.msgError(language.value == 0 ? '此身份证不能购买老人票' : 'This ID cannot buy senior tickets')
// } else if (res.data == 203) {
// proxy.$modal.msgError(language.value == 0 ? '此身份证不能购买儿童票' : 'This ID cannot buy child tickets')
// } else {
// show.value = false
// emit('addPerson', Object.assign(currParams, {
// customerId: person.id,
// name: person.name,
// idcType: person.idcType,
// idCard: person.idCard
// }))
// }
// })
}
const submit = () => {
formRef.value.validate((valid) => {
if (valid) {
aadSceneCustomer(form.value).then(res => {
if (res.data == -100) {
proxy.$modal.msgError(language.value == 0 ? '人员信息已存在' : 'Person information already exists')
} else if (res.data == -101) {
proxy.$modal.msgError(language.value == 0 ? '实名认证未通过' : 'The real name authentication has not passed')
} else {
proxy.$modal.msgSuccess(language.value == 0 ? '添加成功' : 'successfully added')
showAdd.value = false
getData()
}
})
} else {
proxy.$modal.msgWarning(language.value == 0 ? '请完善信息' : 'Please complete the information')
}
})
}
let currParams
defineExpose({
open: (params) => {
currParams = params
personId.value = params.customerId
hasPersonIds.value = params.hasCustomerIds
show.value = true
}
})
</script>
<style lang="scss" scoped>
.el-radio-group {
display: block;
}
.e_item {
margin: 20px 0 0 0;
width: 100%;
.el-radio {
width: 100%;
height: auto;
padding: 10px;
}
.name {
font-size: 16px;
}
.code {
font-size: 14px;
margin: 4px 0 0;
color: #999;
}
}
</style>