旅游/票务- 修改
Showing
5 changed files
with
80 additions
and
55 deletions
| 1 | <template> | 1 | <template> |
| 2 | <el-dialog v-model="show" title="出行人信息" center append-to-body> | 2 | <el-dialog v-model="show" width="500" :title="languageFormat(language, '出行人信息', 'Travelers')" center append-to-body> |
| 3 | <el-button type="primary" plain @click="addPeopl">{{ languageFormat(language, "新增", "Add") }}</el-button> | 3 | <el-button type="primary" plain @click="addPeopl">{{ languageFormat(language, "新增", "Add") }}</el-button> |
| 4 | <el-radio-group v-model="personId"> | ||
| 5 | <div v-for="(it, index) in personList" :key="index" class="e_item"> | ||
| 6 | <el-radio border :value="it.id" :disabled="hasPersonIds?.indexOf(it.id)!=-1"> | ||
| 4 | 7 | ||
| 5 | <el-form> | 8 | <div class="name">{{ it.name }}</div> |
| 6 | <el-form-item prop="message"> | 9 | <div class="code"> |
| 7 | <div class="p_box"> | 10 | <span v-if="it.idcType==0">{{ language == 0 ? '身份证' : 'ID number' }}</span> |
| 8 | <div class="people"> | 11 | <span v-if="it.idcType==1">{{ language == 0 ? '护照' : 'Passport' }}</span> |
| 9 | <el-radio-group v-model="personId"> | 12 | <span v-if="it.idcType==2">{{ language == 0 ? '其他' : 'Other' }}</span> |
| 10 | <div | 13 | |
| 11 | v-for="(it, index) in personList" :key="index" class="e_item" | 14 | {{ it.idCard }} |
| 12 | > | ||
| 13 | <el-radio border :value="it.id" :disabled="hasPersonIds?.indexOf(it.id)!=-1"> | ||
| 14 | <div> | ||
| 15 | {{ it.name }} {{ it.idCard }} | ||
| 16 | </div> | ||
| 17 | </el-radio> | ||
| 18 | </div> | ||
| 19 | </el-radio-group> | ||
| 20 | </div> | 15 | </div> |
| 21 | </div> | 16 | |
| 22 | </el-form-item> | 17 | </el-radio> |
| 23 | </el-form> | 18 | </div> |
| 19 | </el-radio-group> | ||
| 24 | <template #footer> | 20 | <template #footer> |
| 25 | <div class="dialog-footer"> | 21 | <div class="dialog-footer"> |
| 26 | <el-button @click="show = false">取 消</el-button> | 22 | <el-button @click="show = false">{{ languageFormat(language, "取 消", "Cancel") }}</el-button> |
| 27 | <el-button type="primary" @click="addPerson">完成</el-button> | 23 | <el-button type="primary" @click="addPerson">{{ languageFormat(language, "完 成", "Ok") }}</el-button> |
| 28 | </div> | 24 | </div> |
| 29 | </template> | 25 | </template> |
| 30 | </el-dialog> | 26 | </el-dialog> |
| ... | @@ -32,21 +28,21 @@ | ... | @@ -32,21 +28,21 @@ |
| 32 | 28 | ||
| 33 | <el-dialog v-model="showAdd" title="新增出行人" center append-to-body> | 29 | <el-dialog v-model="showAdd" title="新增出行人" center append-to-body> |
| 34 | <el-form | 30 | <el-form |
| 35 | ref="formRef" :model="form" label-width="100px" size="large" | 31 | ref="formRef" :model="form" label-width="100px" size="large" |
| 36 | style="margin: 80px" | 32 | style="margin: 80px" |
| 37 | > | 33 | > |
| 38 | <el-form-item :label="language==0?'姓名':'name'" prop="name" required :show-message="false"> | 34 | <el-form-item :label="language==0?'姓名':'name'" prop="name" required :show-message="false"> |
| 39 | <el-input v-model="form.name" :placeholder="language==0?'请输入':'Please input'" /> | 35 | <el-input v-model="form.name" :placeholder="language==0?'请输入':'Please input'"/> |
| 40 | </el-form-item> | 36 | </el-form-item> |
| 41 | <el-form-item :label="language==0?'证件类型':'ID Type'" prop="idcType" required :show-message="false"> | 37 | <el-form-item :label="language==0?'证件类型':'ID Type'" prop="idcType" required :show-message="false"> |
| 42 | <el-select v-model="form.idcType" :placeholder="language==0?'请选择':'Please choose'"> | 38 | <el-select v-model="form.idcType" :placeholder="language==0?'请选择':'Please choose'"> |
| 43 | <el-option :label="language==0?'身份证':'Identity card'" value="0" /> | 39 | <el-option :label="language==0?'身份证':'Identity card'" value="0"/> |
| 44 | <el-option :label="language==0?'护照':'Passport'" value="1" /> | 40 | <el-option :label="language==0?'护照':'Passport'" value="1"/> |
| 45 | <el-option :label="language==0?'其他':'Other'" value="2" /> | 41 | <el-option :label="language==0?'其他':'Other'" value="2"/> |
| 46 | </el-select> | 42 | </el-select> |
| 47 | </el-form-item> | 43 | </el-form-item> |
| 48 | <el-form-item :label="language==0?'证件号':'ID number'" prop="idCard" required :show-message="false"> | 44 | <el-form-item :label="language==0?'证件号':'ID number'" prop="idCard" required :show-message="false"> |
| 49 | <el-input v-model="form.idCard" :placeholder="language==0?'请输入证件号':'Please enter the ID after ah'" /> | 45 | <el-input v-model="form.idCard" :placeholder="language==0?'请输入证件号':'Please enter the ID after ah'"/> |
| 50 | </el-form-item> | 46 | </el-form-item> |
| 51 | </el-form> | 47 | </el-form> |
| 52 | 48 | ||
| ... | @@ -61,15 +57,15 @@ | ... | @@ -61,15 +57,15 @@ |
| 61 | </template> | 57 | </template> |
| 62 | 58 | ||
| 63 | <script setup> | 59 | <script setup> |
| 64 | import { aadSceneCustomer, checkSceneCustomer, getMyFriends } from '/@/apiPc/booking' | 60 | import {aadSceneCustomer, checkSceneCustomer, getMyFriends} from '/@/apiPc/booking' |
| 65 | import { languageFormat } from '/@/viewsPc/seat/utils/language' | 61 | import {languageFormat} from '/@/viewsPc/seat/utils/language' |
| 66 | import { onMounted, ref } from 'vue' | 62 | import {onMounted, ref} from 'vue' |
| 67 | import { useStorage } from '@vueuse/core/index' | 63 | import {useStorage} from '@vueuse/core/index' |
| 68 | import _ from 'lodash' | 64 | import _ from 'lodash' |
| 69 | import { getCurrentInstance } from '@vue/runtime-core' | 65 | import {getCurrentInstance} from '@vue/runtime-core' |
| 70 | 66 | ||
| 71 | const emit = defineEmits(['addPerson']) | 67 | const emit = defineEmits(['addPerson']) |
| 72 | const { proxy } = getCurrentInstance() | 68 | const {proxy} = getCurrentInstance() |
| 73 | 69 | ||
| 74 | const show = ref(false) | 70 | const show = ref(false) |
| 75 | const showAdd = ref(false) | 71 | const showAdd = ref(false) |
| ... | @@ -104,11 +100,11 @@ const addPerson = () => { | ... | @@ -104,11 +100,11 @@ const addPerson = () => { |
| 104 | gateType: currParams.gateType | 100 | gateType: currParams.gateType |
| 105 | }).then((res) => { | 101 | }).then((res) => { |
| 106 | if (res.data == 201) { | 102 | if (res.data == 201) { |
| 107 | proxy.$modal.msgError('护照只能购买成人票') | 103 | proxy.$modal.msgError(language.value == 0 ? '护照只能购买成人票' : 'Passport can only buy adult tickets') |
| 108 | } else if (res.data == 202) { | 104 | } else if (res.data == 202) { |
| 109 | proxy.$modal.msgError('此身份证不能购买老人票') | 105 | proxy.$modal.msgError(language.value == 0 ? '此身份证不能购买老人票' : 'This ID cannot buy senior tickets') |
| 110 | } else if (res.data == 203) { | 106 | } else if (res.data == 203) { |
| 111 | proxy.$modal.msgError('此身份证不能购买儿童票') | 107 | proxy.$modal.msgError(language.value == 0 ? '此身份证不能购买儿童票' : 'This ID cannot buy child tickets') |
| 112 | } else { | 108 | } else { |
| 113 | show.value = false | 109 | show.value = false |
| 114 | emit('addPerson', Object.assign(currParams, { | 110 | emit('addPerson', Object.assign(currParams, { |
| ... | @@ -155,5 +151,28 @@ defineExpose({ | ... | @@ -155,5 +151,28 @@ defineExpose({ |
| 155 | </script> | 151 | </script> |
| 156 | 152 | ||
| 157 | <style scoped lang="scss"> | 153 | <style scoped lang="scss"> |
| 158 | .e_item{margin: 20px 20px 0 0;} | 154 | .el-radio-group { |
| 155 | display: block; | ||
| 156 | } | ||
| 157 | |||
| 158 | .e_item { | ||
| 159 | margin: 20px 0 0 0; | ||
| 160 | width: 100%; | ||
| 161 | |||
| 162 | .el-radio { | ||
| 163 | width: 100%; | ||
| 164 | height: auto; | ||
| 165 | padding: 10px; | ||
| 166 | } | ||
| 167 | |||
| 168 | .name { | ||
| 169 | font-size: 16px; | ||
| 170 | } | ||
| 171 | |||
| 172 | .code { | ||
| 173 | font-size: 14px; | ||
| 174 | margin: 4px 0 0; | ||
| 175 | color: #999; | ||
| 176 | } | ||
| 177 | } | ||
| 159 | </style> | 178 | </style> | ... | ... |
| ... | @@ -21,7 +21,7 @@ | ... | @@ -21,7 +21,7 @@ |
| 21 | | {{ TickForm2.ticketName }} | 21 | | {{ TickForm2.ticketName }} |
| 22 | </div> | 22 | </div> |
| 23 | 23 | ||
| 24 | <div v-if="TickForm2.ticketType=='0'" class="address">剩余数量: {{ leftCount }}</div> | 24 | <div v-if="TickForm2.ticketType=='0'" class="address">{{ language==0?'剩余数量':'Remaining Quantity' }}: {{ leftCount }}</div> |
| 25 | </div> | 25 | </div> |
| 26 | 26 | ||
| 27 | <div class="ticket_info mb20"> | 27 | <div class="ticket_info mb20"> | ... | ... |
| ... | @@ -58,22 +58,25 @@ | ... | @@ -58,22 +58,25 @@ |
| 58 | 58 | ||
| 59 | <!-- :picker-options="pickerOptions"--> | 59 | <!-- :picker-options="pickerOptions"--> |
| 60 | </el-form-item> | 60 | </el-form-item> |
| 61 | <el-form-item v-for="(n,i) in gateList" :key="i" :label="language==0? n.name:'Rooms'" prop="count"> | 61 | <el-form-item v-for="(n,i) in gateList" :key="i" :label="language==0? n.name:n.name" prop="count"> |
| 62 | <el-input-number v-model="n.count" :min="0" :max="n.leftNum" @change="changeNum(n)" /> | 62 | <el-input-number v-model="n.count" :min="0" :max="n.leftNum" @change="changeNum(n)" /> |
| 63 | <div class="red ml20"> | 63 | <div class="red ml20"> |
| 64 | <span v-if="language == 0">单价:{{ n.price }}</span> | 64 | <span v-if="language == 0">单价: ¥{{ n.price }}</span> |
| 65 | <span v-else>{{ n.priceEn }}</span> | 65 | <span v-else>€ {{ n.priceEn }} / Ticket</span> |
| 66 | </div> | 66 | </div> |
| 67 | <div class="red ml20"> | 67 | <div class="red ml20"> |
| 68 | <span v-if="language == 0">剩余票数:{{ n.leftNum }}</span> | 68 | <span v-if="language == 0">剩余票数:{{ n.leftNum }}</span> |
| 69 | <span v-else>{{ n.leftNum }} Remaining rooms</span> | 69 | <span v-else>{{ n.leftNum }} sheet remaining </span> |
| 70 | </div> | 70 | </div> |
| 71 | </el-form-item> | 71 | </el-form-item> |
| 72 | 72 | ||
| 73 | <div v-if="needPersonNum>0" class="fakeFormItem"> | 73 | <div v-if="needPersonNum>0" class="fakeFormItem"> |
| 74 | <label>需填写{{ needPersonNum }}位游客</label> | 74 | <label v-if="language == 0">需填写{{ needPersonNum }}位游客</label> |
| 75 | <label v-else>Need {{ needPersonNum }} visitors</label> | ||
| 75 | <div> | 76 | <div> |
| 76 | <label class="text-warning" v-show="needPersonNum > hasPersonNum">还需填写{{ needPersonNum-hasPersonNum }}位游客</label> | 77 | <label class="text-warning" v-show="needPersonNum > hasPersonNum && language==0"> |
| 78 | 还需填写{{ needPersonNum-hasPersonNum }}位游客 | ||
| 79 | </label> | ||
| 77 | </div> | 80 | </div> |
| 78 | </div> | 81 | </div> |
| 79 | <div v-for="(n,i) in gateList" :key="i"> | 82 | <div v-for="(n,i) in gateList" :key="i"> |
| ... | @@ -84,9 +87,12 @@ | ... | @@ -84,9 +87,12 @@ |
| 84 | </label> | 87 | </label> |
| 85 | <div v-if="p.name" class="mation"> | 88 | <div v-if="p.name" class="mation"> |
| 86 | <div>{{ p.name }}</div> | 89 | <div>{{ p.name }}</div> |
| 87 | 身份证:{{ p.idCard }} | 90 | <span v-if="p.idcType==0">{{language==0?'身份证':'ID number'}}</span> |
| 91 | <span v-if="p.idcType==1">{{language==0?'护照':'Passport'}}</span> | ||
| 92 | <span v-if="p.idcType==2">{{language==0?'其他':'Other'}}</span> | ||
| 93 | :{{ p.idCard }} | ||
| 88 | </div> | 94 | </div> |
| 89 | <el-icon @click="showAddPerson(n, j,p)"><Edit /></el-icon> | 95 | <el-icon @click="showAddPerson(n, j,p)" color="#453DEA"><Edit /></el-icon> |
| 90 | </div> | 96 | </div> |
| 91 | </div> | 97 | </div> |
| 92 | 98 | ||
| ... | @@ -107,13 +113,13 @@ | ... | @@ -107,13 +113,13 @@ |
| 107 | <div v-for="(c, index) in gateList" v-show="c.count>0" :key="index" class="ccitem"> | 113 | <div v-for="(c, index) in gateList" v-show="c.count>0" :key="index" class="ccitem"> |
| 108 | 114 | ||
| 109 | {{ c.name }} | 115 | {{ c.name }} |
| 110 | <span v-if="language==0">{{ c.count }}*{{ '¥' }}{{ c.price }}</span> | 116 | <span v-if="language==0">{{ c.count }} * {{ '¥' }}{{ c.price }}</span> |
| 111 | <span v-else>{{ c.count }}*{{ '€' }}{{ c.priceEn }}</span> | 117 | <span v-else>{{ c.count }} * {{ '€' }} {{ c.priceEn }}</span> |
| 112 | </div> | 118 | </div> |
| 113 | 119 | ||
| 114 | <label>{{ language == 0 ? '共计' : 'Total' }}<span | 120 | <label>{{ language == 0 ? '共计' : 'Total' }}<span |
| 115 | class="fr bigMoney" | 121 | class="fr bigMoney" |
| 116 | >{{ language == 0 ? '¥' : '€' }}{{ money }}</span></label> | 122 | >{{ language == 0 ? '¥' : '€' }} {{ money }}</span></label> |
| 117 | 123 | ||
| 118 | </div> | 124 | </div> |
| 119 | </el-col> | 125 | </el-col> |
| ... | @@ -457,7 +463,7 @@ function submit() { | ... | @@ -457,7 +463,7 @@ function submit() { |
| 457 | line-height: 32px;flex: 0 0 auto; | 463 | line-height: 32px;flex: 0 0 auto; |
| 458 | display: inline-flex; | 464 | display: inline-flex; |
| 459 | justify-content: flex-end; | 465 | justify-content: flex-end; |
| 460 | align-items: center;gap: 10px;} | 466 | align-items: center;gap: 10px;white-space: nowrap;} |
| 461 | } | 467 | } |
| 462 | .tip{font-size: 14px;color: #666;padding: 0 10px;} | 468 | .tip{font-size: 14px;color: #666;padding: 0 10px;} |
| 463 | .personIt{display: flex;align-items: center; | 469 | .personIt{display: flex;align-items: center; | ... | ... |
| ... | @@ -93,7 +93,7 @@ | ... | @@ -93,7 +93,7 @@ |
| 93 | </div> | 93 | </div> |
| 94 | <div v-if="b.orderType == 6"> | 94 | <div v-if="b.orderType == 6"> |
| 95 | <h3 class="name">{{ b.name }}</h3> | 95 | <h3 class="name">{{ b.name }}</h3> |
| 96 | <p>出行时间:{{ b.extJsonObj.dcStart }}</p> | 96 | <p>{{ language==0?'出行时间':'Travel Time' }}:{{ b.extJsonObj.dcStart }}</p> |
| 97 | <p v-for="t in b.extJsonObj.touristList">{{ t.gateName }}:{{ t.name }}</p> | 97 | <p v-for="t in b.extJsonObj.touristList">{{ t.gateName }}:{{ t.name }}</p> |
| 98 | </div> | 98 | </div> |
| 99 | </el-col> | 99 | </el-col> |
| ... | @@ -212,7 +212,7 @@ function getList() { | ... | @@ -212,7 +212,7 @@ function getList() { |
| 212 | } | 212 | } |
| 213 | } | 213 | } |
| 214 | if (b.surplus && b.status == '0' && (b.surplus != '0,0' && b.surplus != '0')) { | 214 | if (b.surplus && b.status == '0' && (b.surplus != '0,0' && b.surplus != '0')) { |
| 215 | b.countdown = dayjs().add(b.surplus.split(',')[0], 'minute').add(b.surplus.split(',')[1], 'second') | 215 | b.countdown = dayjs().add(b.surplus.split(',')[0], 'minute').add(b.surplus.split(',')[1], 'second') |
| 216 | } | 216 | } |
| 217 | } | 217 | } |
| 218 | }) | 218 | }) | ... | ... |
| ... | @@ -81,9 +81,9 @@ export default defineConfig(({ mode, command }) => { | ... | @@ -81,9 +81,9 @@ export default defineConfig(({ mode, command }) => { |
| 81 | rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '') | 81 | rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '') |
| 82 | }, | 82 | }, |
| 83 | '/dev-api': { | 83 | '/dev-api': { |
| 84 | // target: 'http://192.168.1.118:8081/', | 84 | target: 'http://192.168.1.118:8081/', |
| 85 | // target: 'http://192.168.1.243:8081', | 85 | // target: 'http://192.168.1.243:8081', |
| 86 | target: 'https://jijin.wtwuxicenter.com/stage-api', | 86 | // target: 'https://jijin.wtwuxicenter.com/stage-api', |
| 87 | // target: 'https://wdsfwuxicenter.com/stage-api/', | 87 | // target: 'https://wdsfwuxicenter.com/stage-api/', |
| 88 | changeOrigin: true, | 88 | changeOrigin: true, |
| 89 | rewrite: (p) => p.replace(/^\/dev-api/, '') | 89 | rewrite: (p) => p.replace(/^\/dev-api/, '') | ... | ... |
-
Please register or sign in to post a comment