no message
Showing
9 changed files
with
2345 additions
and
358 deletions
.eslintignore
0 → 100644
.eslintrc.js
0 → 100644
| 1 | // Eslint 检查配置 | ||
| 2 | module.exports = { | ||
| 3 | root: true, | ||
| 4 | parserOptions: { | ||
| 5 | parser: 'babel-eslint', | ||
| 6 | sourceType: 'module' | ||
| 7 | }, | ||
| 8 | env: { | ||
| 9 | browser: true, | ||
| 10 | node: true, | ||
| 11 | es6: true, | ||
| 12 | 'vue/setup-compiler-macros': true | ||
| 13 | }, | ||
| 14 | extends: [ | ||
| 15 | // 'eslint:recommended', | ||
| 16 | // 'plugin:vue/vue3-essential', | ||
| 17 | 'plugin:vue/vue3-recommended' | ||
| 18 | ], | ||
| 19 | plugins: [ | ||
| 20 | 'vue', | ||
| 21 | 'html' | ||
| 22 | ], | ||
| 23 | // add your custom rules here | ||
| 24 | // it is base on https://github.com/vuejs/eslint-config-vue | ||
| 25 | rules: { | ||
| 26 | // vue 中 script 的缩进 | ||
| 27 | // 'vue/script-indent': [ | ||
| 28 | // 'error', | ||
| 29 | // 2, | ||
| 30 | // { | ||
| 31 | // baseIndent: 0, | ||
| 32 | // switchCase: 1, | ||
| 33 | // ignores: [] | ||
| 34 | // } | ||
| 35 | // ], | ||
| 36 | // vue 中 template 的空格 | ||
| 37 | 'vue/html-indent': [ | ||
| 38 | 'error', | ||
| 39 | 2, | ||
| 40 | { | ||
| 41 | attribute: 1, | ||
| 42 | baseIndent: 1, | ||
| 43 | closeBracket: 0, | ||
| 44 | alignAttributesVertically: true, | ||
| 45 | ignores: [] | ||
| 46 | } | ||
| 47 | ], | ||
| 48 | 'vue/max-attributes-per-line': [2, { | ||
| 49 | singleline: { max: 5 }, | ||
| 50 | multiline: { max: 5 } | ||
| 51 | }], // 一行5个属性 | ||
| 52 | 'vue/singleline-html-element-content-newline': 'off', | ||
| 53 | 'vue/multiline-html-element-content-newline': 'off', | ||
| 54 | 'vue/name-property-casing': ['error', 'PascalCase'], | ||
| 55 | 'vue/no-v-html': 'off', | ||
| 56 | 'accessor-pairs': 2, | ||
| 57 | 'arrow-spacing': [2, { | ||
| 58 | 'before': true, | ||
| 59 | 'after': true | ||
| 60 | }], | ||
| 61 | 'block-spacing': [2, 'always'], | ||
| 62 | 'brace-style': [2, '1tbs', { | ||
| 63 | 'allowSingleLine': true | ||
| 64 | }], | ||
| 65 | 'camelcase': [0, { | ||
| 66 | 'properties': 'always' | ||
| 67 | }], | ||
| 68 | 'comma-dangle': [1, 'never'], // 对象的最后一个元素是否加逗号 | ||
| 69 | 'comma-spacing': [2, { | ||
| 70 | 'before': false, | ||
| 71 | 'after': true | ||
| 72 | }], | ||
| 73 | 'comma-style': [2, 'last'], | ||
| 74 | 'constructor-super': 2, | ||
| 75 | 'curly': [2, 'multi-line'], | ||
| 76 | 'dot-location': [2, 'property'], | ||
| 77 | 'eol-last': 2, | ||
| 78 | 'eqeqeq': ['off'], | ||
| 79 | 'generator-star-spacing': [2, { | ||
| 80 | 'before': true, | ||
| 81 | 'after': true | ||
| 82 | }], | ||
| 83 | 'handle-callback-err': [2, '^(err|error)$'], | ||
| 84 | 'indent': [2, 2, { | ||
| 85 | 'SwitchCase': 1 | ||
| 86 | }], | ||
| 87 | 'jsx-quotes': [2, 'prefer-single'], | ||
| 88 | 'key-spacing': [2, { | ||
| 89 | 'beforeColon': false, | ||
| 90 | 'afterColon': true | ||
| 91 | }], | ||
| 92 | 'keyword-spacing': [2, { | ||
| 93 | 'before': true, | ||
| 94 | 'after': true | ||
| 95 | }], | ||
| 96 | 'new-cap': [2, { | ||
| 97 | 'newIsCap': true, | ||
| 98 | 'capIsNew': false | ||
| 99 | }], | ||
| 100 | 'new-parens': 2, | ||
| 101 | 'no-array-constructor': 2, | ||
| 102 | 'no-caller': 2, | ||
| 103 | 'no-console': 'off', | ||
| 104 | 'no-class-assign': 2, | ||
| 105 | 'no-cond-assign': 2, | ||
| 106 | 'no-const-assign': 2, | ||
| 107 | 'no-control-regex': 0, | ||
| 108 | 'no-delete-var': 2, | ||
| 109 | 'no-dupe-args': 2, | ||
| 110 | 'no-dupe-class-members': 2, | ||
| 111 | 'no-dupe-keys': 2, | ||
| 112 | 'no-duplicate-case': 2, | ||
| 113 | 'no-empty-character-class': 2, | ||
| 114 | 'no-empty-pattern': 2, | ||
| 115 | 'no-eval': 2, | ||
| 116 | 'no-ex-assign': 2, | ||
| 117 | 'no-extend-native': 1, | ||
| 118 | 'no-extra-bind': 2, | ||
| 119 | 'no-extra-boolean-cast': 2, | ||
| 120 | 'no-extra-parens': [2, 'functions'], | ||
| 121 | 'no-fallthrough': 2, | ||
| 122 | 'no-floating-decimal': 2, | ||
| 123 | 'no-func-assign': 2, | ||
| 124 | 'no-implied-eval': 2, | ||
| 125 | 'no-inner-declarations': [2, 'functions'], | ||
| 126 | 'no-invalid-regexp': 2, | ||
| 127 | 'no-irregular-whitespace': 2, | ||
| 128 | 'no-iterator': 2, | ||
| 129 | 'no-label-var': 2, | ||
| 130 | 'no-labels': [2, { | ||
| 131 | 'allowLoop': false, | ||
| 132 | 'allowSwitch': false | ||
| 133 | }], | ||
| 134 | 'no-lone-blocks': 2, | ||
| 135 | 'no-mixed-spaces-and-tabs': 2, // 不能空格与tab混用 | ||
| 136 | 'no-multi-spaces': 2, | ||
| 137 | 'no-multi-str': 2, | ||
| 138 | 'no-multiple-empty-lines': [2, { | ||
| 139 | 'max': 2 | ||
| 140 | }], // 空行最多不能超过2行 | ||
| 141 | 'no-native-reassign': 2, | ||
| 142 | 'no-negated-in-lhs': 2, | ||
| 143 | 'no-new-object': 2, | ||
| 144 | 'no-new-require': 2, | ||
| 145 | 'no-new-symbol': 2, | ||
| 146 | 'no-new-wrappers': 2, | ||
| 147 | 'no-obj-calls': 2, | ||
| 148 | 'no-octal': 2, | ||
| 149 | 'no-octal-escape': 2, | ||
| 150 | 'no-path-concat': 2, | ||
| 151 | 'no-proto': 2, | ||
| 152 | 'no-redeclare': 2, | ||
| 153 | 'no-regex-spaces': 2, | ||
| 154 | 'no-return-assign': [2, 'except-parens'], | ||
| 155 | 'no-self-assign': 2, | ||
| 156 | 'no-self-compare': 2, | ||
| 157 | 'no-sequences': 2, | ||
| 158 | 'no-shadow-restricted-names': 2, | ||
| 159 | 'no-spaced-func': 2, | ||
| 160 | 'no-sparse-arrays': 2, | ||
| 161 | 'no-this-before-super': 2, | ||
| 162 | 'no-throw-literal': 2, | ||
| 163 | 'no-trailing-spaces': 0, // 一行结束后面不要有空格 | ||
| 164 | 'no-undef': 2, // 未定义 | ||
| 165 | 'no-undef-init': 2, | ||
| 166 | 'no-unexpected-multiline': 2, | ||
| 167 | 'no-unmodified-loop-condition': 2, | ||
| 168 | 'no-unneeded-ternary': [2, { | ||
| 169 | 'defaultAssignment': false | ||
| 170 | }], | ||
| 171 | 'no-unreachable': 2, | ||
| 172 | 'no-unsafe-finally': 2, | ||
| 173 | 'no-unused-vars': [2, { | ||
| 174 | 'vars': 'all', | ||
| 175 | 'args': 'none' | ||
| 176 | }], | ||
| 177 | 'no-useless-call': 2, | ||
| 178 | 'no-useless-computed-key': 2, | ||
| 179 | 'no-useless-constructor': 2, | ||
| 180 | 'no-useless-escape': 0, | ||
| 181 | 'no-whitespace-before-property': 2, | ||
| 182 | 'no-with': 2, | ||
| 183 | 'one-var': [2, { | ||
| 184 | 'initialized': 'never' | ||
| 185 | }], // 连续声明 | ||
| 186 | 'operator-linebreak': [2, 'after', { | ||
| 187 | 'overrides': { | ||
| 188 | '?': 'before', | ||
| 189 | ':': 'before' | ||
| 190 | } | ||
| 191 | }], | ||
| 192 | 'padded-blocks': [2, 'never'], // 块语句内行首行尾是否要空行 | ||
| 193 | 'quotes': [1, 'single', { | ||
| 194 | 'avoidEscape': true, | ||
| 195 | 'allowTemplateLiterals': true | ||
| 196 | }], // 单引号 | ||
| 197 | 'semi': [1, 'never'], // 语句强制分号结尾 always | ||
| 198 | 'semi-spacing': [2, { | ||
| 199 | 'before': false, | ||
| 200 | 'after': true | ||
| 201 | }], // 分号前后空格 | ||
| 202 | 'space-after-keywords': [0, 'always'], // 关键字后面是否要空一格 | ||
| 203 | 'space-before-blocks': [2, 'always'], // 不以新行开始的块{前面要不要有空格 | ||
| 204 | 'space-before-function-paren': [2, 'never'], // 函数定义时括号前面要不要有空格 | ||
| 205 | 'space-in-parens': [2, 'never'], // 小括号里面要不要有空格 | ||
| 206 | 'space-infix-ops': 2, // 中缀操作符周围要不要有空格 | ||
| 207 | 'space-unary-ops': [2, { | ||
| 208 | 'words': true, | ||
| 209 | 'nonwords': false | ||
| 210 | }], | ||
| 211 | 'spaced-comment': [2, 'always', { | ||
| 212 | 'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ',', '#region', '#endregion'] | ||
| 213 | }], | ||
| 214 | 'template-curly-spacing': [2, 'never'], | ||
| 215 | 'use-isnan': 2, | ||
| 216 | 'valid-typeof': 2, | ||
| 217 | 'wrap-iife': [2, 'any'], | ||
| 218 | 'yield-star-spacing': [2, 'both'], | ||
| 219 | 'yoda': [2, 'never'], | ||
| 220 | 'prefer-const': 2, | ||
| 221 | 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, | ||
| 222 | 'object-curly-spacing': [2, 'always', { | ||
| 223 | objectsInObjects: false | ||
| 224 | }], | ||
| 225 | 'array-bracket-spacing': [2, 'never'], | ||
| 226 | 'vue/multi-word-component-names': 'off' | ||
| 227 | }, | ||
| 228 | globals: { | ||
| 229 | // 'defineEmits': 'readonly' | ||
| 230 | '__DEV__': true, | ||
| 231 | 'If': true, | ||
| 232 | 'For': true, | ||
| 233 | 'POBrowser': true | ||
| 234 | } | ||
| 235 | } |
| ... | @@ -18,6 +18,7 @@ | ... | @@ -18,6 +18,7 @@ |
| 18 | "@vueuse/core": "^10.1.2", | 18 | "@vueuse/core": "^10.1.2", |
| 19 | "axios": "0.27.2", | 19 | "axios": "0.27.2", |
| 20 | "crypto-js": "^4.1.1", | 20 | "crypto-js": "^4.1.1", |
| 21 | "dayjs": "^1.11.13", | ||
| 21 | "echarts": "5.4.0", | 22 | "echarts": "5.4.0", |
| 22 | "echarts-wordcloud": "^2.1.0", | 23 | "echarts-wordcloud": "^2.1.0", |
| 23 | "element-plus": "2.6.1", | 24 | "element-plus": "2.6.1", | ... | ... |
| ... | @@ -14,82 +14,38 @@ | ... | @@ -14,82 +14,38 @@ |
| 14 | </div> | 14 | </div> |
| 15 | </div> | 15 | </div> |
| 16 | <div v-loading="loading" class="box"> | 16 | <div v-loading="loading" class="box"> |
| 17 | <el-collapse v-model="activeName" accordion style="--el-collapse-header-height:'auto'"> | 17 | <div v-for="(h,index) in list" :key="index"> |
| 18 | <el-collapse-item v-for="(h,index) in list" :name="index" class="hotel"> | ||
| 19 | <template #title> | ||
| 20 | <el-row :gutter="20" align="middle" class="w100"> | 18 | <el-row :gutter="20" align="middle" class="w100"> |
| 21 | <el-col :span="4"> | 19 | <el-col :span="4"> |
| 22 | <div class="index">{{ language == 0 ? '路线' : 'Route' }}{{ index + 1 }} | 20 | <div class="index">{{ language == 0 ? '路线' : 'Route' }}{{ index + 1 }} |
| 23 | <img src="@/assets/booking/arrow.png"/> | ||
| 24 | </div> | 21 | </div> |
| 25 | </el-col> | 22 | </el-col> |
| 26 | <el-col :span="7"> | 23 | <el-col :span="6"> |
| 27 | <p class="esp">{{ h.checkIn }}</p> | 24 | <p class="esp">{{ h.checkIn }}</p> |
| 28 | </el-col> | 25 | </el-col> |
| 29 | <el-col :span="4" class="text-center"> | 26 | <el-col :span="4" class="text-center"> |
| 30 | <img class="mauto w40px" src="@/assets/booking/wf.png"/> | 27 | <img class="mauto w40px" src="@/assets/booking/wf.png"/> |
| 31 | </el-col> | 28 | </el-col> |
| 32 | <el-col :span="7"> | 29 | <el-col :span="6"> |
| 33 | <p class="esp ">{{ h.checkOut }}</p> | 30 | <p class="esp ">{{ h.checkOut }}</p> |
| 34 | </el-col> | 31 | </el-col> |
| 35 | </el-row> | 32 | <el-col :span="2"> |
| 36 | </template> | 33 | <div v-if="language==0" class="price">¥ |
| 37 | 34 | <span>{{h.upPrice}}</span> | |
| 38 | <!-- <div class="plr20">--> | 35 | </div> |
| 39 | <!-- <div v-for="(r,index) in h.carVoList" :key="index" class="room">--> | 36 | <div v-else class="price"> |
| 40 | <!-- <el-row :gutter="30" align="middle">--> | 37 | € |
| 41 | <!-- <el-col :span="4">--> | 38 | <span>{{h.upPriceEn}}</span> |
| 42 | <!-- <div class="roomImg">--> | 39 | </div> |
| 43 | <!-- <img :src="fillImgUrl(r.photos?.split(',')[0])">--> | ||
| 44 | <!-- </div>--> | ||
| 45 | <!-- </el-col>--> | ||
| 46 | <!-- <el-col :span="14">--> | ||
| 47 | <!-- <h3 class="name flex">{{ r.carType }}--> | ||
| 48 | <!-- <div class="tagbox">--> | ||
| 49 | <!-- <span class="tag">{{ r.carColor }}</span>--> | ||
| 50 | <!-- <span v-show="r.checkOut==1" class="tag">{{ language == 0 ? '可送车' : 'drop-off' }}</span>--> | ||
| 51 | <!-- <span v-show="r.checkIn==1" class="tag">{{ language == 0 ? '可接车' : 'pick-up' }}</span>--> | ||
| 52 | <!-- </div>--> | ||
| 53 | <!-- </h3>--> | ||
| 54 | <!-- <div class="text-gray mt20">--> | ||
| 55 | <!-- <span class="mr20">{{ language == 0 ? '座位数' : 'Seats' }}: {{ r.carSeat }}</span>--> | ||
| 56 | <!-- <span class="mr20">|</span>--> | ||
| 57 | <!-- <span :span="8">{{--> | ||
| 58 | <!-- language == 0 ? '运营时间' : 'Servers Time'--> | ||
| 59 | <!-- }}: {{ r.operStart }} ~ {{ r.operEnd }}</span>--> | ||
| 60 | <!-- </div>--> | ||
| 61 | <!-- </el-col>--> | ||
| 62 | <!-- <el-col :span="3">--> | ||
| 63 | <!-- <div v-if="language==0" class="price">¥--> | ||
| 64 | <!-- <span--> | ||
| 65 | <!-- v-if="r.outPrice&&r.inPrice">{{ Number(r.inPrice) > Number(r.outPrice) ? r.outPrice : r.inPrice }}</span>--> | ||
| 66 | <!-- <span v-else-if="r.inPrice>0">{{ r.inPrice }}</span>--> | ||
| 67 | <!-- <span v-else>{{ r.outPrice }}</span>--> | ||
| 68 | <!-- 起--> | ||
| 69 | <!-- </div>--> | ||
| 70 | <!-- <div v-else class="price">--> | ||
| 71 | <!-- €--> | ||
| 72 | <!-- <span--> | ||
| 73 | <!-- v-if="r.outPriceEn&&r.inPriceEn">{{ (Number(r.inPriceEn) || 0) > Number(r.outPriceEn) ? r.outPriceEn : r.inPriceEn }}</span>--> | ||
| 74 | <!-- <span v-else-if="r.inPriceEn>0">{{ r.inPriceEn }}</span>--> | ||
| 75 | <!-- <span v-else>{{ r.outPriceEn }}</span>--> | ||
| 76 | <!-- </div>--> | ||
| 77 | |||
| 78 | <!-- </el-col>--> | ||
| 79 | <!-- <el-col :span="3">--> | ||
| 80 | <!-- <el-button class="btn-lineG w100" round type="primary" @click="goOrder(h,r)">--> | ||
| 81 | <!-- {{ language == 0 ? '我要预订' : 'Select' }}--> | ||
| 82 | <!-- </el-button>--> | ||
| 83 | <!-- </el-col>--> | ||
| 84 | <!-- </el-row>--> | ||
| 85 | <!-- </div>--> | ||
| 86 | |||
| 87 | <!-- <el-empty v-if="h.carVoList.length == 0" :image="`/img/order_no.png`" :image-size="228" description=""/>--> | ||
| 88 | <!-- </div>--> | ||
| 89 | |||
| 90 | </el-collapse-item> | ||
| 91 | </el-collapse> | ||
| 92 | 40 | ||
| 41 | </el-col> | ||
| 42 | <el-col :span="2"> | ||
| 43 | <el-button class="btn-lineG w100" round type="primary" @click="goOrder(h)"> | ||
| 44 | {{ language == 0 ? '我要预订' : 'Select' }} | ||
| 45 | </el-button> | ||
| 46 | </el-col> | ||
| 47 | </el-row> | ||
| 48 | </div> | ||
| 93 | 49 | ||
| 94 | <el-empty v-show="!loading&&list.length==0" :image="`/img/order_no.png`" :image-size="228" description=""/> | 50 | <el-empty v-show="!loading&&list.length==0" :image="`/img/order_no.png`" :image-size="228" description=""/> |
| 95 | <div style="height: 50px"></div> | 51 | <div style="height: 50px"></div> |
| ... | @@ -144,8 +100,7 @@ function goOrder(item, car) { | ... | @@ -144,8 +100,7 @@ function goOrder(item, car) { |
| 144 | id: item.id, | 100 | id: item.id, |
| 145 | }, | 101 | }, |
| 146 | query: { | 102 | query: { |
| 147 | item: encodeURIComponent(JSON.stringify(item)), | 103 | item: encodeURIComponent(JSON.stringify(item)) |
| 148 | car: encodeURIComponent(JSON.stringify(car)), | ||
| 149 | } | 104 | } |
| 150 | }) | 105 | }) |
| 151 | } | 106 | } | ... | ... |
| ... | @@ -2,148 +2,73 @@ | ... | @@ -2,148 +2,73 @@ |
| 2 | <div> | 2 | <div> |
| 3 | <div class="box"> | 3 | <div class="box"> |
| 4 | <el-card :body-style="{ padding: '0px' }" class="mt20"> | 4 | <el-card :body-style="{ padding: '0px' }" class="mt20"> |
| 5 | <div slot="header"> | 5 | <template #header> |
| 6 | <div class="bg-lineg uppercase">{{ | 6 | <div class="bg-lineg uppercase">{{ |
| 7 | language == 0 ? '车辆预约下单' : 'TRANSPORTATION RESERVATION order' | 7 | language == 0 ? '车辆预约下单' : 'TRANSPORTATION RESERVATION order' |
| 8 | }} | 8 | }} |
| 9 | </div> | 9 | </div> |
| 10 | </div> | 10 | </template> |
| 11 | <el-row :gutter="20" class="pd20"> | 11 | <el-row :gutter="20" class="pd20"> |
| 12 | <el-col :span="14"> | 12 | <el-col :span="14"> |
| 13 | <div class="border-info"> | 13 | <div class="border-info"> |
| 14 | <div class="flex aic"> | 14 | <div class="flex aic"> |
| 15 | <h3 class="esp">{{ item.checkIn }}</h3> | 15 | <h3 class="esp">{{ item.checkIn }}</h3> |
| 16 | <img class="w40px mlr20 " src="@/assets/booking/wf.png" style="height: 40px;"/> | 16 | <img class="w40px mlr20 " src="@/assets/booking/wf.png" style="height: 40px;"> |
| 17 | <h3 class="esp">{{ item.checkOut }}</h3> | 17 | <h3 class="esp">{{ item.checkOut }}</h3> |
| 18 | </div> | 18 | </div> |
| 19 | <div class="flex"> | ||
| 20 | <el-image :src="fillImgUrl(car.photos?.split(',')[0])" class="w150px br10 as16_9" fit="cover"/> | ||
| 21 | <div class="ml20"> | ||
| 22 | <div class="roomType">{{ car.carType }}</div> | ||
| 23 | <div class="tagbox"> | ||
| 24 | <span class="tag">{{ car.carColor }}</span> | ||
| 25 | <span v-show="car.checkOut==1" class="tag">{{ language == 0 ? '可送车' : 'Can send car' }}</span> | ||
| 26 | <span v-show="car.checkIn==1" class="tag">{{ language == 0 ? '可接车' : 'Can pick up' }}</span> | ||
| 27 | </div> | ||
| 28 | <div class="room"> | ||
| 29 | <span>{{ language == 0 ? '座位数' : 'Seats' }}: {{ car.carSeat }}</span> | ||
| 30 | <span> | {{ | ||
| 31 | language == 0 ? '运营时间' : 'Servers Time' | ||
| 32 | }}: {{ car.operStart }} ~ {{ car.operEnd }}</span> | ||
| 33 | </div> | ||
| 34 | </div> | ||
| 35 | </div> | ||
| 36 | |||
| 37 | </div> | 19 | </div> |
| 38 | 20 | ||
| 39 | <div class="leftboderTT">{{ language == 0 ? '预约信息' : 'Reservation information' }}</div> | 21 | <div class="leftboderTT">{{ language == 0 ? '预约信息' : 'Reservation information' }}</div> |
| 40 | <div class="border-rr mt20 pd20"> | 22 | <div class="border-rr mt20 pd20"> |
| 41 | <el-form ref="formRef" :label-width="language == 0 ?'120':'200'" :model="form" :rules="rules"> | 23 | <el-form ref="formRef" :label-width="language == 0 ?'120':'200'" :model="form" :rules="rules"> |
| 42 | <el-form-item :label="language==0?'车辆数量':'cars'" prop="num" required> | 24 | <el-form-item :label="language==0?'人数':'Person Count'" required> |
| 43 | <el-input-number v-model="form.num" :min="1" @change="changecarNum"/> | 25 | <el-input-number v-model="form.pickUpBo.count" type="text" @change="changecarNum" /> |
| 44 | </el-form-item> | ||
| 45 | <el-form-item :label="language==0?'是否接送':'use Type'" prop="useType" required> | ||
| 46 | <el-checkbox-group v-model="form.useType" @change="changeUseType"> | ||
| 47 | <el-checkbox v-if="car.checkIn == 1" value="0"> | ||
| 48 | {{ language == 0 ? '接站' : 'Pick up' }} | ||
| 49 | </el-checkbox> | ||
| 50 | <el-checkbox v-if="car.checkOut == 1" value="1">{{ language == 0 ? '送站' : 'Drop off' }} | ||
| 51 | </el-checkbox> | ||
| 52 | </el-checkbox-group> | ||
| 53 | </el-form-item> | 26 | </el-form-item> |
| 54 | |||
| 55 | <div v-show="form.useType?.indexOf('0')> -1"> | ||
| 56 | <h3 class="afterLine">{{ language == 0 ? '接站信息' : 'Pick up information' }}</h3> | ||
| 57 | <el-form-item :label="language==0?'用车日期':'Date'" required> | 27 | <el-form-item :label="language==0?'用车日期':'Date'" required> |
| 58 | <el-date-picker v-model="date1" :disabled-date="disabledDate" | 28 | <el-date-picker |
| 29 | v-model="date1" :disabled-date="disabledDate" | ||
| 59 | :placeholder="language==0?'选择日期':'Select date'" | 30 | :placeholder="language==0?'选择日期':'Select date'" |
| 60 | format="YYYY-MM-DD" type="date" | 31 | format="YYYY-MM-DD" type="date" |
| 61 | value-format="YYYY-MM-DD"/> | 32 | value-format="YYYY-MM-DD" |
| 62 | <!-- :picker-options="pickerOptions"--> | 33 | /> |
| 63 | </el-form-item> | 34 | </el-form-item> |
| 64 | <el-form-item :label="language==0?'用车时间':'Time'" required> | 35 | <el-form-item :label="language==0?'用车时间':'Time'" required> |
| 65 | <el-time-picker | 36 | <el-time-picker v-model="revTime1" format="HH:mm" value-format="HH:mm" @change="bindTimeChange" /> |
| 66 | v-model="revTime1" :end="car.operEnd" :start="car.operStart" | ||
| 67 | format="HH:mm" value-format="HH:mm" @change="bindTimeChange" | ||
| 68 | /> | ||
| 69 | </el-form-item> | 37 | </el-form-item> |
| 70 | <el-form-item :label="language==0?'联系人':'Contacts'" required> | 38 | <el-form-item :label="language==0?'联系人':'Contacts'" required> |
| 71 | <el-input v-model="form.pickUpBo.contacts" type="text"/> | 39 | <el-input v-model="form.pickUpBo.contacts" type="text" /> |
| 72 | </el-form-item> | 40 | </el-form-item> |
| 73 | <el-form-item :label="language==0?'联系电话':'Phone'" required> | 41 | <el-form-item :label="language==0?'联系电话':'Phone'" required> |
| 74 | <el-input v-model="form.pickUpBo.phone" type="text"/> | 42 | <el-input v-model="form.pickUpBo.phone" type="text" /> |
| 75 | </el-form-item> | ||
| 76 | <el-form-item :label="language==0?'人数':'Person Count'" required> | ||
| 77 | <el-input-number v-model="form.pickUpBo.count" type="text"/> | ||
| 78 | </el-form-item> | 43 | </el-form-item> |
| 79 | <el-form-item :label="language==0?'航班/火车班次:':'Flight/Train No'" required> | 44 | <el-form-item :label="language==0?'航班/火车班次:':'Flight/Train No'" required> |
| 80 | <el-input v-model="form.pickUpBo.no" type="text"/> | 45 | <el-input v-model="form.pickUpBo.no" type="text" /> |
| 81 | </el-form-item> | 46 | </el-form-item> |
| 82 | <el-form-item :label="language==0?'接机/接站地点':'Pick up/Drop off Address'" required> | 47 | <el-form-item :label="language==0?'接机/接站地点':'Pick up/Drop off Address'" required> |
| 83 | <el-input v-model="form.pickUpBo.noAddress" type="text"/> | 48 | <el-input v-model="form.pickUpBo.noAddress" type="text" /> |
| 84 | </el-form-item> | 49 | </el-form-item> |
| 85 | <el-form-item :label="language==0?'送达地点':'Delivery Address'" required> | 50 | <el-form-item :label="language==0?'送达地点':'Delivery Address'" required> |
| 86 | <el-input v-model="form.pickUpBo.deliveryAddress" type="text"/> | 51 | <el-input v-model="form.pickUpBo.deliveryAddress" type="text" /> |
| 87 | </el-form-item> | 52 | </el-form-item> |
| 88 | <el-form-item :label="language==0?'备注':'Remarks'"> | 53 | <el-form-item :label="language==0?'备注':'Remarks'"> |
| 89 | <el-input v-model="form.pickUpBo.remarks" rows="3" type="textarea"/> | 54 | <el-input v-model="form.pickUpBo.remarks" rows="3" type="textarea" /> |
| 90 | </el-form-item> | ||
| 91 | </div> | ||
| 92 | <div v-show="form.useType?.indexOf('1')> -1"> | ||
| 93 | <h3 class="afterLine">{{ language == 0 ? '送站信息' : 'Drop off information' }}</h3> | ||
| 94 | <el-form-item :label="language==0?'用车日期':'Date'" required> | ||
| 95 | <el-date-picker v-model="date2" :disabled-date="disabledDate" | ||
| 96 | :placeholder="language==0?'选择日期':'Select date'" | ||
| 97 | format="YYYY-MM-DD" type="date" | ||
| 98 | value-format="YYYY-MM-DD"/> | ||
| 99 | <!-- :picker-options="pickerOptions"--> | ||
| 100 | </el-form-item> | ||
| 101 | <el-form-item :label="language==0?'用车时间':'Time'" required> | ||
| 102 | <el-time-picker | ||
| 103 | v-model="revTime2" :end="car.operEnd" :start="car.operStart" | ||
| 104 | format="HH:mm" value-format="HH:mm" @change="bindTimeChange2" | ||
| 105 | /> | ||
| 106 | </el-form-item> | ||
| 107 | <el-form-item :label="language==0?'联系人':'Contacts'" required> | ||
| 108 | <el-input v-model="form.dropOffBo.contacts" type="text"/> | ||
| 109 | </el-form-item> | ||
| 110 | <el-form-item :label="language==0?'联系电话':'Phone'" required> | ||
| 111 | <el-input v-model="form.dropOffBo.phone" type="text"/> | ||
| 112 | </el-form-item> | ||
| 113 | <el-form-item label="人数" required> | ||
| 114 | <el-input v-model="form.dropOffBo.count" type="text"/> | ||
| 115 | </el-form-item> | ||
| 116 | <el-form-item label="送达地点" required> | ||
| 117 | <el-input v-model="form.dropOffBo.deliveryAddress" type="text"/> | ||
| 118 | </el-form-item> | 55 | </el-form-item> |
| 119 | <el-form-item :label="language==0?'备注':'Remarks'"> | ||
| 120 | <el-input v-model="form.dropOffBo.remarks" rows="3" type="textarea"/> | ||
| 121 | </el-form-item> | ||
| 122 | </div> | ||
| 123 | </el-form> | 56 | </el-form> |
| 124 | </div> | 57 | </div> |
| 125 | </el-col> | 58 | </el-col> |
| 126 | <el-col :span="10"> | 59 | <el-col :span="10"> |
| 127 | <div class="leftboderTT">{{ language == 0 ? '订单明细' : 'Order details' }}</div> | 60 | <div class="leftboderTT">{{ language == 0 ? '订单明细' : 'Order details' }}</div> |
| 128 | <div class="border-rr mt20 pd20 ccitemBox"> | 61 | <div class="border-rr mt20 pd20 ccitemBox"> |
| 129 | <label v-show="form.useType.indexOf('0')>-1"> {{ language == 0 ? '接站车辆费' : 'Room fee' }} | 62 | <label> {{ language == 0 ? '单价' : 'Price' }} |
| 130 | <span class="fr">{{ language == 0 ? '¥' : '€' }}{{ form.pickUpBo.total }}</span> | 63 | <span class="fr">{{ language == 0 ? '¥' : '€' }}{{ language == 0 ? item.upPrice: item.upPriceEn }}</span> |
| 131 | </label> | 64 | </label> |
| 132 | <div v-show="form.useType.indexOf('0')>-1" class="ccitem"> | 65 | <div class="ccitem"> |
| 133 | {{ car.name }} | 66 | <span>{{ form.pickUpBo.count }} *{{ language == 0 ? '¥' : '€' }}{{ language == 0 ? item.upPrice: item.upPriceEn }}</span> |
| 134 | <span>{{ form.num }} *{{ language == 0 ? '¥' : '€' }}{{ car.inPrice }}</span> | ||
| 135 | </div> | ||
| 136 | <label v-show="form.useType.indexOf('1')>-1">{{ language == 0 ? '送站车辆费' : 'Extra bed fee' }} | ||
| 137 | <span class="fr">{{ language == 0 ? '¥' : '€' }}{{ form.dropOffBo.total }}</span> | ||
| 138 | </label> | ||
| 139 | |||
| 140 | <div v-show="form.useType.indexOf('1')>-1" class="ccitem"> | ||
| 141 | {{ car.name }} | ||
| 142 | <span>{{ form.num }}*{{ language == 0 ? '¥' : '€' }}{{ car.outPrice }}</span> | ||
| 143 | </div> | 67 | </div> |
| 144 | 68 | ||
| 145 | <label>{{ language == 0 ? '共计' : 'Total' }}<span | 69 | <label>{{ language == 0 ? '共计' : 'Total' }}<span |
| 146 | class="fr bigMoney">{{ language == 0 ? '¥' : '€' }}{{ money }}</span></label> | 70 | class="fr bigMoney" |
| 71 | >{{ language == 0 ? '¥' : '€' }}{{ money }}</span></label> | ||
| 147 | 72 | ||
| 148 | </div> | 73 | </div> |
| 149 | </el-col> | 74 | </el-col> |
| ... | @@ -160,25 +85,28 @@ | ... | @@ -160,25 +85,28 @@ |
| 160 | </label> | 85 | </label> |
| 161 | </el-col> | 86 | </el-col> |
| 162 | <el-col :span="12" class="text-right"> | 87 | <el-col :span="12" class="text-right"> |
| 163 | <el-button :loading="payLoading" class="btn-lineG w200px" round type="primary" @click="submit"> | 88 | <el-button |
| 89 | :loading="payLoading" :disabled="money<=0" class="btn-lineG w200px" round type="primary" | ||
| 90 | @click="submit" | ||
| 91 | > | ||
| 164 | {{ language == 0 ? '确认付款' : 'Pay' }} | 92 | {{ language == 0 ? '确认付款' : 'Pay' }} |
| 165 | </el-button> | 93 | </el-button> |
| 166 | </el-col> | 94 | </el-col> |
| 167 | </el-row> | 95 | </el-row> |
| 168 | </el-card> | 96 | </el-card> |
| 169 | <div style="height: 60px;"></div> | 97 | <div style="height: 60px;" /> |
| 170 | </div> | 98 | </div> |
| 171 | </div> | 99 | </div> |
| 172 | </template> | 100 | </template> |
| 173 | 101 | ||
| 174 | <script setup> | 102 | <script setup> |
| 175 | import {useRouter, useRoute} from "vue-router"; | 103 | import { useRouter, useRoute } from 'vue-router' |
| 176 | import {ref, reactive, onMounted} from "vue"; | 104 | import { ref, onMounted, watch } from 'vue' |
| 177 | import {useStorage} from "@vueuse/core/index"; | 105 | import { useStorage } from '@vueuse/core/index' |
| 178 | import {checkResidueRoom, getBaseInfoByActiveId, newsSubmitOrderHotel, submitOrderCar} from "@/apiPc/booking" | 106 | import { getBaseInfoByActiveId, submitOrderCar } from '@/apiPc/booking' |
| 179 | import dayjs from 'dayjs' | 107 | import dayjs from 'dayjs' |
| 180 | import {ElMessage, ElMessageBox} from "element-plus"; | 108 | import { ElMessage, ElMessageBox } from 'element-plus' |
| 181 | import useUserStore from "@/store/modules/user"; | 109 | import useUserStore from '@/store/modules/user' |
| 182 | 110 | ||
| 183 | const payLoading = ref(false) | 111 | const payLoading = ref(false) |
| 184 | const user = useUserStore().user | 112 | const user = useUserStore().user |
| ... | @@ -186,76 +114,32 @@ const language = useStorage('language', 0) | ... | @@ -186,76 +114,32 @@ const language = useStorage('language', 0) |
| 186 | const router = useRouter() | 114 | const router = useRouter() |
| 187 | const route = useRoute() | 115 | const route = useRoute() |
| 188 | const item = ref({}) | 116 | const item = ref({}) |
| 189 | const car = ref({}) | ||
| 190 | const revTime1 = ref('') | 117 | const revTime1 = ref('') |
| 191 | const revTime2 = ref('') | ||
| 192 | const date1 = ref('') | 118 | const date1 = ref('') |
| 193 | const date2 = ref('') | ||
| 194 | const form = ref({ | 119 | const form = ref({ |
| 195 | num: 1, | ||
| 196 | pickUpBo: { | 120 | pickUpBo: { |
| 197 | carsList: [], | 121 | count: 1 |
| 198 | total: 0 | 122 | } |
| 199 | }, | ||
| 200 | dropOffBo: { | ||
| 201 | carsList: [], | ||
| 202 | total: 0 | ||
| 203 | }, | ||
| 204 | useType: [] | ||
| 205 | }) | 123 | }) |
| 206 | const rzRange = ref([]) | 124 | |
| 207 | const rzUserArr = ref([]) | ||
| 208 | const money = ref(0) | 125 | const money = ref(0) |
| 209 | const choseRooms = ref([]) | ||
| 210 | const rules = ref({}) | 126 | const rules = ref({}) |
| 211 | const lform = ref({}) | 127 | const lform = ref({}) |
| 212 | 128 | ||
| 213 | 129 | ||
| 214 | onMounted(() => { | 130 | onMounted(() => { |
| 215 | item.value = JSON.parse(decodeURIComponent(route.query.item)) | 131 | item.value = JSON.parse(decodeURIComponent(route.query.item)) |
| 216 | car.value = JSON.parse(decodeURIComponent(route.query.car)) | ||
| 217 | money.value = 0 | 132 | money.value = 0 |
| 218 | console.log(item.value, car.value) | 133 | changecarNum() |
| 219 | initDays() | 134 | initDays() |
| 220 | }) | 135 | }) |
| 221 | 136 | ||
| 222 | function changeUseType(e) { | 137 | function changecarNum() { |
| 223 | console.log(form.value.useType) | 138 | money.value = (form.value.pickUpBo.count * (language.value == 0 ? item.value.upPrice : item.value.upPriceEn)).toFixed(2) |
| 224 | changecarNum() | ||
| 225 | console.log(form.value) | ||
| 226 | } | ||
| 227 | |||
| 228 | function changecarNum(e) { | ||
| 229 | var m1 = 0 | ||
| 230 | var m2 = 0 | ||
| 231 | if (form.value.useType.indexOf('0') > -1) { | ||
| 232 | if (language.value == 0) { | ||
| 233 | m1 = form.value.num * car.value.inPrice | ||
| 234 | } else { | ||
| 235 | m1 = form.value.num * car.value.inPriceEn | ||
| 236 | } | ||
| 237 | } | ||
| 238 | if (form.value.useType.indexOf('1') > -1) { | ||
| 239 | if (language.value == 0) { | ||
| 240 | m2 = form.value.num * car.value.outPrice | ||
| 241 | } else { | ||
| 242 | m2 = form.value.num * car.value.outPriceEn | ||
| 243 | |||
| 244 | } | ||
| 245 | } | ||
| 246 | form.value.pickUpBo.total = m1.toFixed(2) | ||
| 247 | form.value.dropOffBo.total = m2.toFixed(2) | ||
| 248 | console.log(form.value.num, m1, m2) | ||
| 249 | money.value = (m1 + m2).toFixed(2) | ||
| 250 | } | 139 | } |
| 251 | 140 | ||
| 252 | function bindTimeChange(e) { | 141 | function bindTimeChange(e) { |
| 253 | revTime1.value = e | 142 | revTime1.value = e |
| 254 | console.log(e) | ||
| 255 | } | ||
| 256 | |||
| 257 | function bindTimeChange2(e) { | ||
| 258 | revTime2.value = e | ||
| 259 | } | 143 | } |
| 260 | 144 | ||
| 261 | function initDays() { | 145 | function initDays() { |
| ... | @@ -267,10 +151,8 @@ function initDays() { | ... | @@ -267,10 +151,8 @@ function initDays() { |
| 267 | } | 151 | } |
| 268 | 152 | ||
| 269 | function disabledDate(date) { | 153 | function disabledDate(date) { |
| 270 | // const today = dayjs().format('YYYY-MM-DD') | ||
| 271 | if (lform.value.carStart) { | 154 | if (lform.value.carStart) { |
| 272 | return (date.getTime() < dayjs(lform.value.carStart).valueOf()) || (date.getTime() > dayjs(lform.value.carEnd).valueOf()) | 155 | return (date.getTime() < dayjs(lform.value.carStart).valueOf()) || (date.getTime() > dayjs(lform.value.carEnd).valueOf()) |
| 273 | |||
| 274 | } | 156 | } |
| 275 | return true | 157 | return true |
| 276 | } | 158 | } |
| ... | @@ -280,8 +162,8 @@ function submit() { | ... | @@ -280,8 +162,8 @@ function submit() { |
| 280 | useUserStore().setReLogin() | 162 | useUserStore().setReLogin() |
| 281 | return | 163 | return |
| 282 | } | 164 | } |
| 283 | if (money.value == 0) { | 165 | if (money.value <= 0) { |
| 284 | ElMessage.error(language.value == 0 ? '请选择接站/送站' : 'Please select pickup/drop off') | 166 | // ElMessage.error(language.value == 0 ? '请选择接站/送站' : 'Please select pickup/drop off') |
| 285 | return | 167 | return |
| 286 | } | 168 | } |
| 287 | // 提交确认 | 169 | // 提交确认 |
| ... | @@ -296,38 +178,7 @@ function submit() { | ... | @@ -296,38 +178,7 @@ function submit() { |
| 296 | 178 | ||
| 297 | function pushFrom() { | 179 | function pushFrom() { |
| 298 | payLoading.value = true | 180 | payLoading.value = true |
| 299 | var obj = { | ||
| 300 | avcId: car.value.id, | ||
| 301 | num: form.value.num, | ||
| 302 | price: car.value.inPrice, | ||
| 303 | carSeat: car.value.carSeat, | ||
| 304 | carColor: car.value.carColor, | ||
| 305 | typeName: "接站", | ||
| 306 | name: car.value.carType, | ||
| 307 | checkIn: car.value.checkIn, | ||
| 308 | checkOut: car.value.checkOut, | ||
| 309 | total: (form.value.num * car.value.inPrice).toFixed(2) | ||
| 310 | } | ||
| 311 | var obj2 = { | ||
| 312 | avcId: car.value.id, | ||
| 313 | num: form.value.num, | ||
| 314 | price: car.value.outPrice, | ||
| 315 | carSeat: car.value.carSeat, | ||
| 316 | carColor: car.value.carColor, | ||
| 317 | typeName: "送站", | ||
| 318 | name: car.value.carType, | ||
| 319 | checkIn: car.value.checkIn, | ||
| 320 | checkOut: car.value.checkOut, | ||
| 321 | total: (form.value.num * car.value.outPrice).toFixed(2) | ||
| 322 | } | ||
| 323 | if (form.value.useType.indexOf('0') > -1) { | ||
| 324 | form.value.pickUpBo.carsList.push(obj) | ||
| 325 | form.value.pickUpBo.revTime = date1.value + ' ' + revTime1.value | 181 | form.value.pickUpBo.revTime = date1.value + ' ' + revTime1.value |
| 326 | } | ||
| 327 | if (form.value.useType.indexOf('1') > -1) { | ||
| 328 | form.value.dropOffBo.carsList.push(obj2) | ||
| 329 | form.value.dropOffBo.revTime = date2.value + ' ' + revTime2.value | ||
| 330 | } | ||
| 331 | form.value.activeId = item.value.activityId | 182 | form.value.activeId = item.value.activityId |
| 332 | form.value.lavId = item.value.id | 183 | form.value.lavId = item.value.id |
| 333 | form.value.checkIn = item.value.checkIn | 184 | form.value.checkIn = item.value.checkIn | ... | ... |
src/viewsPc/booking/carOrder_old.vue
0 → 100644
| 1 | <template> | ||
| 2 | <div> | ||
| 3 | <div class="box"> | ||
| 4 | <el-card :body-style="{ padding: '0px' }" class="mt20"> | ||
| 5 | <div slot="header"> | ||
| 6 | <div class="bg-lineg uppercase">{{ | ||
| 7 | language == 0 ? '车辆预约下单' : 'TRANSPORTATION RESERVATION order' | ||
| 8 | }} | ||
| 9 | </div> | ||
| 10 | </div> | ||
| 11 | <el-row :gutter="20" class="pd20"> | ||
| 12 | <el-col :span="14"> | ||
| 13 | <div class="border-info"> | ||
| 14 | <div class="flex aic"> | ||
| 15 | <h3 class="esp">{{ item.checkIn }}</h3> | ||
| 16 | <img class="w40px mlr20 " src="@/assets/booking/wf.png" style="height: 40px;"/> | ||
| 17 | <h3 class="esp">{{ item.checkOut }}</h3> | ||
| 18 | </div> | ||
| 19 | <div class="flex"> | ||
| 20 | <el-image :src="fillImgUrl(car.photos?.split(',')[0])" class="w150px br10 as16_9" fit="cover"/> | ||
| 21 | <div class="ml20"> | ||
| 22 | <div class="roomType">{{ car.carType }}</div> | ||
| 23 | <div class="tagbox"> | ||
| 24 | <span class="tag">{{ car.carColor }}</span> | ||
| 25 | <span v-show="car.checkOut==1" class="tag">{{ language == 0 ? '可送车' : 'Can send car' }}</span> | ||
| 26 | <span v-show="car.checkIn==1" class="tag">{{ language == 0 ? '可接车' : 'Can pick up' }}</span> | ||
| 27 | </div> | ||
| 28 | <div class="room"> | ||
| 29 | <span>{{ language == 0 ? '座位数' : 'Seats' }}: {{ car.carSeat }}</span> | ||
| 30 | <span> | {{ | ||
| 31 | language == 0 ? '运营时间' : 'Servers Time' | ||
| 32 | }}: {{ car.operStart }} ~ {{ car.operEnd }}</span> | ||
| 33 | </div> | ||
| 34 | </div> | ||
| 35 | </div> | ||
| 36 | |||
| 37 | </div> | ||
| 38 | |||
| 39 | <div class="leftboderTT">{{ language == 0 ? '预约信息' : 'Reservation information' }}</div> | ||
| 40 | <div class="border-rr mt20 pd20"> | ||
| 41 | <el-form ref="formRef" :label-width="language == 0 ?'120':'200'" :model="form" :rules="rules"> | ||
| 42 | <el-form-item :label="language==0?'车辆数量':'cars'" prop="num" required> | ||
| 43 | <el-input-number v-model="form.num" :min="1" @change="changecarNum"/> | ||
| 44 | </el-form-item> | ||
| 45 | <el-form-item :label="language==0?'是否接送':'use Type'" prop="useType" required> | ||
| 46 | <el-checkbox-group v-model="form.useType" @change="changeUseType"> | ||
| 47 | <el-checkbox v-if="car.checkIn == 1" value="0"> | ||
| 48 | {{ language == 0 ? '接站' : 'Pick up' }} | ||
| 49 | </el-checkbox> | ||
| 50 | <el-checkbox v-if="car.checkOut == 1" value="1">{{ language == 0 ? '送站' : 'Drop off' }} | ||
| 51 | </el-checkbox> | ||
| 52 | </el-checkbox-group> | ||
| 53 | </el-form-item> | ||
| 54 | |||
| 55 | <div v-show="form.useType?.indexOf('0')> -1"> | ||
| 56 | <h3 class="afterLine">{{ language == 0 ? '接站信息' : 'Pick up information' }}</h3> | ||
| 57 | <el-form-item :label="language==0?'用车日期':'Date'" required> | ||
| 58 | <el-date-picker v-model="date1" :disabled-date="disabledDate" | ||
| 59 | :placeholder="language==0?'选择日期':'Select date'" | ||
| 60 | format="YYYY-MM-DD" type="date" | ||
| 61 | value-format="YYYY-MM-DD"/> | ||
| 62 | <!-- :picker-options="pickerOptions"--> | ||
| 63 | </el-form-item> | ||
| 64 | <el-form-item :label="language==0?'用车时间':'Time'" required> | ||
| 65 | <el-time-picker | ||
| 66 | v-model="revTime1" :end="car.operEnd" :start="car.operStart" | ||
| 67 | format="HH:mm" value-format="HH:mm" @change="bindTimeChange" | ||
| 68 | /> | ||
| 69 | </el-form-item> | ||
| 70 | <el-form-item :label="language==0?'联系人':'Contacts'" required> | ||
| 71 | <el-input v-model="form.pickUpBo.contacts" type="text"/> | ||
| 72 | </el-form-item> | ||
| 73 | <el-form-item :label="language==0?'联系电话':'Phone'" required> | ||
| 74 | <el-input v-model="form.pickUpBo.phone" type="text"/> | ||
| 75 | </el-form-item> | ||
| 76 | <el-form-item :label="language==0?'人数':'Person Count'" required> | ||
| 77 | <el-input-number v-model="form.pickUpBo.count" type="text"/> | ||
| 78 | </el-form-item> | ||
| 79 | <el-form-item :label="language==0?'航班/火车班次:':'Flight/Train No'" required> | ||
| 80 | <el-input v-model="form.pickUpBo.no" type="text"/> | ||
| 81 | </el-form-item> | ||
| 82 | <el-form-item :label="language==0?'接机/接站地点':'Pick up/Drop off Address'" required> | ||
| 83 | <el-input v-model="form.pickUpBo.noAddress" type="text"/> | ||
| 84 | </el-form-item> | ||
| 85 | <el-form-item :label="language==0?'送达地点':'Delivery Address'" required> | ||
| 86 | <el-input v-model="form.pickUpBo.deliveryAddress" type="text"/> | ||
| 87 | </el-form-item> | ||
| 88 | <el-form-item :label="language==0?'备注':'Remarks'"> | ||
| 89 | <el-input v-model="form.pickUpBo.remarks" rows="3" type="textarea"/> | ||
| 90 | </el-form-item> | ||
| 91 | </div> | ||
| 92 | <div v-show="form.useType?.indexOf('1')> -1"> | ||
| 93 | <h3 class="afterLine">{{ language == 0 ? '送站信息' : 'Drop off information' }}</h3> | ||
| 94 | <el-form-item :label="language==0?'用车日期':'Date'" required> | ||
| 95 | <el-date-picker v-model="date2" :disabled-date="disabledDate" | ||
| 96 | :placeholder="language==0?'选择日期':'Select date'" | ||
| 97 | format="YYYY-MM-DD" type="date" | ||
| 98 | value-format="YYYY-MM-DD"/> | ||
| 99 | <!-- :picker-options="pickerOptions"--> | ||
| 100 | </el-form-item> | ||
| 101 | <el-form-item :label="language==0?'用车时间':'Time'" required> | ||
| 102 | <el-time-picker | ||
| 103 | v-model="revTime2" :end="car.operEnd" :start="car.operStart" | ||
| 104 | format="HH:mm" value-format="HH:mm" @change="bindTimeChange2" | ||
| 105 | /> | ||
| 106 | </el-form-item> | ||
| 107 | <el-form-item :label="language==0?'联系人':'Contacts'" required> | ||
| 108 | <el-input v-model="form.dropOffBo.contacts" type="text"/> | ||
| 109 | </el-form-item> | ||
| 110 | <el-form-item :label="language==0?'联系电话':'Phone'" required> | ||
| 111 | <el-input v-model="form.dropOffBo.phone" type="text"/> | ||
| 112 | </el-form-item> | ||
| 113 | <el-form-item label="人数" required> | ||
| 114 | <el-input v-model="form.dropOffBo.count" type="text"/> | ||
| 115 | </el-form-item> | ||
| 116 | <el-form-item label="送达地点" required> | ||
| 117 | <el-input v-model="form.dropOffBo.deliveryAddress" type="text"/> | ||
| 118 | </el-form-item> | ||
| 119 | <el-form-item :label="language==0?'备注':'Remarks'"> | ||
| 120 | <el-input v-model="form.dropOffBo.remarks" rows="3" type="textarea"/> | ||
| 121 | </el-form-item> | ||
| 122 | </div> | ||
| 123 | </el-form> | ||
| 124 | </div> | ||
| 125 | </el-col> | ||
| 126 | <el-col :span="10"> | ||
| 127 | <div class="leftboderTT">{{ language == 0 ? '订单明细' : 'Order details' }}</div> | ||
| 128 | <div class="border-rr mt20 pd20 ccitemBox"> | ||
| 129 | <label v-show="form.useType.indexOf('0')>-1"> {{ language == 0 ? '接站车辆费' : 'Room fee' }} | ||
| 130 | <span class="fr">{{ language == 0 ? '¥' : '€' }}{{ form.pickUpBo.total }}</span> | ||
| 131 | </label> | ||
| 132 | <div v-show="form.useType.indexOf('0')>-1" class="ccitem"> | ||
| 133 | {{ car.name }} | ||
| 134 | <span>{{ form.num }} *{{ language == 0 ? '¥' : '€' }}{{ car.inPrice }}</span> | ||
| 135 | </div> | ||
| 136 | <label v-show="form.useType.indexOf('1')>-1">{{ language == 0 ? '送站车辆费' : 'Extra bed fee' }} | ||
| 137 | <span class="fr">{{ language == 0 ? '¥' : '€' }}{{ form.dropOffBo.total }}</span> | ||
| 138 | </label> | ||
| 139 | |||
| 140 | <div v-show="form.useType.indexOf('1')>-1" class="ccitem"> | ||
| 141 | {{ car.name }} | ||
| 142 | <span>{{ form.num }}*{{ language == 0 ? '¥' : '€' }}{{ car.outPrice }}</span> | ||
| 143 | </div> | ||
| 144 | |||
| 145 | <label>{{ language == 0 ? '共计' : 'Total' }}<span | ||
| 146 | class="fr bigMoney">{{ language == 0 ? '¥' : '€' }}{{ money }}</span></label> | ||
| 147 | |||
| 148 | </div> | ||
| 149 | </el-col> | ||
| 150 | </el-row> | ||
| 151 | </el-card> | ||
| 152 | |||
| 153 | <el-card class="mt30"> | ||
| 154 | <el-row align="middle" justify="space-between"> | ||
| 155 | <el-col :span="12"> | ||
| 156 | <label>{{ language == 0 ? '共计金额' : 'Total' }}: | ||
| 157 | <span class=" text-warning"> {{ language == 0 ? '¥' : '€' }}<span class="bigMoney">{{ | ||
| 158 | money | ||
| 159 | }}</span></span> | ||
| 160 | </label> | ||
| 161 | </el-col> | ||
| 162 | <el-col :span="12" class="text-right"> | ||
| 163 | <el-button :loading="payLoading" class="btn-lineG w200px" round type="primary" @click="submit"> | ||
| 164 | {{ language == 0 ? '确认付款' : 'Pay' }} | ||
| 165 | </el-button> | ||
| 166 | </el-col> | ||
| 167 | </el-row> | ||
| 168 | </el-card> | ||
| 169 | <div style="height: 60px;"></div> | ||
| 170 | </div> | ||
| 171 | </div> | ||
| 172 | </template> | ||
| 173 | |||
| 174 | <script setup> | ||
| 175 | import {useRouter, useRoute} from "vue-router"; | ||
| 176 | import {ref, reactive, onMounted} from "vue"; | ||
| 177 | import {useStorage} from "@vueuse/core/index"; | ||
| 178 | import {checkResidueRoom, getBaseInfoByActiveId, newsSubmitOrderHotel, submitOrderCar} from "@/apiPc/booking" | ||
| 179 | import dayjs from 'dayjs' | ||
| 180 | import {ElMessage, ElMessageBox} from "element-plus"; | ||
| 181 | import useUserStore from "@/store/modules/user"; | ||
| 182 | |||
| 183 | const payLoading = ref(false) | ||
| 184 | const user = useUserStore().user | ||
| 185 | const language = useStorage('language', 0) | ||
| 186 | const router = useRouter() | ||
| 187 | const route = useRoute() | ||
| 188 | const item = ref({}) | ||
| 189 | const car = ref({}) | ||
| 190 | const revTime1 = ref('') | ||
| 191 | const revTime2 = ref('') | ||
| 192 | const date1 = ref('') | ||
| 193 | const date2 = ref('') | ||
| 194 | const form = ref({ | ||
| 195 | num: 1, | ||
| 196 | pickUpBo: { | ||
| 197 | carsList: [], | ||
| 198 | total: 0 | ||
| 199 | }, | ||
| 200 | dropOffBo: { | ||
| 201 | carsList: [], | ||
| 202 | total: 0 | ||
| 203 | }, | ||
| 204 | useType: [] | ||
| 205 | }) | ||
| 206 | const rzRange = ref([]) | ||
| 207 | const rzUserArr = ref([]) | ||
| 208 | const money = ref(0) | ||
| 209 | const choseRooms = ref([]) | ||
| 210 | const rules = ref({}) | ||
| 211 | const lform = ref({}) | ||
| 212 | |||
| 213 | |||
| 214 | onMounted(() => { | ||
| 215 | item.value = JSON.parse(decodeURIComponent(route.query.item)) | ||
| 216 | car.value = JSON.parse(decodeURIComponent(route.query.car)) | ||
| 217 | money.value = 0 | ||
| 218 | console.log(item.value, car.value) | ||
| 219 | initDays() | ||
| 220 | }) | ||
| 221 | |||
| 222 | function changeUseType(e) { | ||
| 223 | console.log(form.value.useType) | ||
| 224 | changecarNum() | ||
| 225 | console.log(form.value) | ||
| 226 | } | ||
| 227 | |||
| 228 | function changecarNum(e) { | ||
| 229 | var m1 = 0 | ||
| 230 | var m2 = 0 | ||
| 231 | if (form.value.useType.indexOf('0') > -1) { | ||
| 232 | if (language.value == 0) { | ||
| 233 | m1 = form.value.num * car.value.inPrice | ||
| 234 | } else { | ||
| 235 | m1 = form.value.num * car.value.inPriceEn | ||
| 236 | } | ||
| 237 | } | ||
| 238 | if (form.value.useType.indexOf('1') > -1) { | ||
| 239 | if (language.value == 0) { | ||
| 240 | m2 = form.value.num * car.value.outPrice | ||
| 241 | } else { | ||
| 242 | m2 = form.value.num * car.value.outPriceEn | ||
| 243 | |||
| 244 | } | ||
| 245 | } | ||
| 246 | form.value.pickUpBo.total = m1.toFixed(2) | ||
| 247 | form.value.dropOffBo.total = m2.toFixed(2) | ||
| 248 | console.log(form.value.num, m1, m2) | ||
| 249 | money.value = (m1 + m2).toFixed(2) | ||
| 250 | } | ||
| 251 | |||
| 252 | function bindTimeChange(e) { | ||
| 253 | revTime1.value = e | ||
| 254 | console.log(e) | ||
| 255 | } | ||
| 256 | |||
| 257 | function bindTimeChange2(e) { | ||
| 258 | revTime2.value = e | ||
| 259 | } | ||
| 260 | |||
| 261 | function initDays() { | ||
| 262 | getBaseInfoByActiveId(route.params.cptId).then(res => { | ||
| 263 | lform.value = res.data | ||
| 264 | }).catch(err => { | ||
| 265 | console.log(err) | ||
| 266 | }) | ||
| 267 | } | ||
| 268 | |||
| 269 | function disabledDate(date) { | ||
| 270 | // const today = dayjs().format('YYYY-MM-DD') | ||
| 271 | if (lform.value.carStart) { | ||
| 272 | return (date.getTime() < dayjs(lform.value.carStart).valueOf()) || (date.getTime() > dayjs(lform.value.carEnd).valueOf()) | ||
| 273 | |||
| 274 | } | ||
| 275 | return true | ||
| 276 | } | ||
| 277 | |||
| 278 | function submit() { | ||
| 279 | if (!user) { | ||
| 280 | useUserStore().setReLogin() | ||
| 281 | return | ||
| 282 | } | ||
| 283 | if (money.value == 0) { | ||
| 284 | ElMessage.error(language.value == 0 ? '请选择接站/送站' : 'Please select pickup/drop off') | ||
| 285 | return | ||
| 286 | } | ||
| 287 | // 提交确认 | ||
| 288 | ElMessageBox.confirm(language.value == 0 ? '确认提交订单吗?' : 'Confirm to submit the order?', { | ||
| 289 | confirmButtonText: language.value == 0 ? '确定' : 'Confirm', | ||
| 290 | cancelButtonText: language.value == 0 ? '取消' : 'Cancel', | ||
| 291 | type: 'warning' | ||
| 292 | }).then(() => { | ||
| 293 | pushFrom() | ||
| 294 | }) | ||
| 295 | } | ||
| 296 | |||
| 297 | function pushFrom() { | ||
| 298 | payLoading.value = true | ||
| 299 | var obj = { | ||
| 300 | avcId: car.value.id, | ||
| 301 | num: form.value.num, | ||
| 302 | price: car.value.inPrice, | ||
| 303 | carSeat: car.value.carSeat, | ||
| 304 | carColor: car.value.carColor, | ||
| 305 | typeName: "接站", | ||
| 306 | name: car.value.carType, | ||
| 307 | checkIn: car.value.checkIn, | ||
| 308 | checkOut: car.value.checkOut, | ||
| 309 | total: (form.value.num * car.value.inPrice).toFixed(2) | ||
| 310 | } | ||
| 311 | var obj2 = { | ||
| 312 | avcId: car.value.id, | ||
| 313 | num: form.value.num, | ||
| 314 | price: car.value.outPrice, | ||
| 315 | carSeat: car.value.carSeat, | ||
| 316 | carColor: car.value.carColor, | ||
| 317 | typeName: "送站", | ||
| 318 | name: car.value.carType, | ||
| 319 | checkIn: car.value.checkIn, | ||
| 320 | checkOut: car.value.checkOut, | ||
| 321 | total: (form.value.num * car.value.outPrice).toFixed(2) | ||
| 322 | } | ||
| 323 | if (form.value.useType.indexOf('0') > -1) { | ||
| 324 | form.value.pickUpBo.carsList.push(obj) | ||
| 325 | form.value.pickUpBo.revTime = date1.value + ' ' + revTime1.value | ||
| 326 | } | ||
| 327 | if (form.value.useType.indexOf('1') > -1) { | ||
| 328 | form.value.dropOffBo.carsList.push(obj2) | ||
| 329 | form.value.dropOffBo.revTime = date2.value + ' ' + revTime2.value | ||
| 330 | } | ||
| 331 | form.value.activeId = item.value.activityId | ||
| 332 | form.value.lavId = item.value.id | ||
| 333 | form.value.checkIn = item.value.checkIn | ||
| 334 | form.value.checkOut = item.value.checkOut | ||
| 335 | submitOrderCar(form.value).then(res => { | ||
| 336 | payLoading.value = false | ||
| 337 | if (res.data && res.data.total != -100) { | ||
| 338 | router.push({ | ||
| 339 | name: 'bookingPay', | ||
| 340 | query: { | ||
| 341 | orderId: res.data.orderId, | ||
| 342 | money: res.data.total, | ||
| 343 | type: 'car' | ||
| 344 | } | ||
| 345 | }) | ||
| 346 | } else { | ||
| 347 | ElMessage.warning(language.value == 0 ? '下单失败,稍后重试' : 'Order failed, please try again later') | ||
| 348 | } | ||
| 349 | }) | ||
| 350 | } | ||
| 351 | </script> | ||
| 352 | |||
| 353 | <style lang="scss" scoped> | ||
| 354 | .bigMoney { | ||
| 355 | font-size: 36px !important; | ||
| 356 | font-family: 'DIN Alternate'; | ||
| 357 | font-weight: bold; | ||
| 358 | } | ||
| 359 | |||
| 360 | .bg-lineg { | ||
| 361 | height: 40px; | ||
| 362 | line-height: 40px; | ||
| 363 | font-size: 18px; | ||
| 364 | text-align: center; | ||
| 365 | } | ||
| 366 | |||
| 367 | .leftboderTT { | ||
| 368 | font-weight: 600; | ||
| 369 | font-size: 16px; | ||
| 370 | color: #453DEA; | ||
| 371 | } | ||
| 372 | |||
| 373 | .border-rr { | ||
| 374 | border-radius: 5px; | ||
| 375 | border: 1px solid #DCDFE6; | ||
| 376 | } | ||
| 377 | |||
| 378 | .room { | ||
| 379 | font-weight: 400; | ||
| 380 | font-size: 14px; | ||
| 381 | color: #929AA0; | ||
| 382 | } | ||
| 383 | |||
| 384 | .ccitemBox { | ||
| 385 | overflow: auto; | ||
| 386 | |||
| 387 | label { | ||
| 388 | margin: 10px 0; | ||
| 389 | display: block; | ||
| 390 | font-weight: 600; | ||
| 391 | min-height: 30px; | ||
| 392 | |||
| 393 | span { | ||
| 394 | color: #FF8124; | ||
| 395 | font-family: DIN Alternate; | ||
| 396 | font-size: 24px; | ||
| 397 | } | ||
| 398 | } | ||
| 399 | } | ||
| 400 | |||
| 401 | .ccitem { | ||
| 402 | display: flex; | ||
| 403 | justify-content: space-between; | ||
| 404 | font-size: 15px; | ||
| 405 | color: #666; | ||
| 406 | margin: 5px 0 10px; | ||
| 407 | |||
| 408 | label { | ||
| 409 | font-size: 16px; | ||
| 410 | color: #000; | ||
| 411 | } | ||
| 412 | |||
| 413 | span { | ||
| 414 | font-size: 13px; | ||
| 415 | } | ||
| 416 | } | ||
| 417 | |||
| 418 | .red { | ||
| 419 | color: #FF8124; | ||
| 420 | } | ||
| 421 | |||
| 422 | .tip { | ||
| 423 | font-size: 14px; | ||
| 424 | color: #666; | ||
| 425 | padding: 0 10px; | ||
| 426 | } | ||
| 427 | |||
| 428 | .tagbox { | ||
| 429 | margin: 15px 0; | ||
| 430 | |||
| 431 | a { | ||
| 432 | color: #AFB5B9; | ||
| 433 | font-size: 12px; | ||
| 434 | } | ||
| 435 | |||
| 436 | span { | ||
| 437 | border-radius: 13px; | ||
| 438 | font-size: 12px; | ||
| 439 | padding: 4px 10px; | ||
| 440 | margin-right: 10px; | ||
| 441 | font-weight: 400; | ||
| 442 | } | ||
| 443 | |||
| 444 | span:nth-child(4n) { | ||
| 445 | background: rgba(50, 177, 108, 0.2); | ||
| 446 | color: rgba(50, 177, 108, 1); | ||
| 447 | } | ||
| 448 | |||
| 449 | span:nth-child(4n+1) { | ||
| 450 | background: rgba(243, 152, 0, 0.2); | ||
| 451 | color: rgba(243, 152, 0, 1); | ||
| 452 | } | ||
| 453 | |||
| 454 | span:nth-child(4n+2) { | ||
| 455 | background: rgba(0, 160, 233, 0.2); | ||
| 456 | color: rgba(0, 160, 233, 1); | ||
| 457 | } | ||
| 458 | |||
| 459 | span:nth-child(4n+3) { | ||
| 460 | background: rgba(247, 64, 166, 0.2); | ||
| 461 | color: rgba(247, 64, 166, 1); | ||
| 462 | } | ||
| 463 | } | ||
| 464 | </style> |
src/viewsPc/booking/car_old.vue
0 → 100644
| 1 | <template> | ||
| 2 | <div> | ||
| 3 | <div class="banner"> | ||
| 4 | <img v-if="language==0" src="@/assets/booking/cl_text_c.png"> | ||
| 5 | <img v-else src="@/assets/booking/cl_text_e.png"> | ||
| 6 | </div> | ||
| 7 | <div class="box"> | ||
| 8 | <div class="searchBar"> | ||
| 9 | <el-input v-model="query.name" :placeholder="language==0?'请输入关键字搜索':'Search'" class="no-border"> | ||
| 10 | </el-input> | ||
| 11 | <el-button class="btn-lineG" icon="search" size="large" type="primary" @click="getList"> | ||
| 12 | {{ language == 0 ? '搜索' : 'Search' }} | ||
| 13 | </el-button> | ||
| 14 | </div> | ||
| 15 | </div> | ||
| 16 | <div v-loading="loading" class="box"> | ||
| 17 | <el-collapse v-model="activeName" accordion style="--el-collapse-header-height:'auto'"> | ||
| 18 | <el-collapse-item v-for="(h,index) in list" :name="index" class="hotel"> | ||
| 19 | <template #title> | ||
| 20 | <el-row :gutter="20" align="middle" class="w100"> | ||
| 21 | <el-col :span="4"> | ||
| 22 | <div class="index">{{ language == 0 ? '路线' : 'Route' }}{{ index + 1 }} | ||
| 23 | <img src="@/assets/booking/arrow.png"/> | ||
| 24 | </div> | ||
| 25 | </el-col> | ||
| 26 | <el-col :span="7"> | ||
| 27 | <p class="esp">{{ h.checkIn }}</p> | ||
| 28 | </el-col> | ||
| 29 | <el-col :span="4" class="text-center"> | ||
| 30 | <img class="mauto w40px" src="@/assets/booking/wf.png"/> | ||
| 31 | </el-col> | ||
| 32 | <el-col :span="7"> | ||
| 33 | <p class="esp ">{{ h.checkOut }}</p> | ||
| 34 | </el-col> | ||
| 35 | </el-row> | ||
| 36 | </template> | ||
| 37 | |||
| 38 | <div class="plr20"> | ||
| 39 | <div v-for="(r,index) in h.carVoList" :key="index" class="room"> | ||
| 40 | <el-row :gutter="30" align="middle"> | ||
| 41 | <el-col :span="4"> | ||
| 42 | <div class="roomImg"> | ||
| 43 | <img :src="fillImgUrl(r.photos?.split(',')[0])"> | ||
| 44 | </div> | ||
| 45 | </el-col> | ||
| 46 | <el-col :span="14"> | ||
| 47 | <h3 class="name flex">{{ r.carType }} | ||
| 48 | <div class="tagbox"> | ||
| 49 | <span class="tag">{{ r.carColor }}</span> | ||
| 50 | <span v-show="r.checkOut==1" class="tag">{{ language == 0 ? '可送车' : 'drop-off' }}</span> | ||
| 51 | <span v-show="r.checkIn==1" class="tag">{{ language == 0 ? '可接车' : 'pick-up' }}</span> | ||
| 52 | </div> | ||
| 53 | </h3> | ||
| 54 | <div class="text-gray mt20"> | ||
| 55 | <span class="mr20">{{ language == 0 ? '座位数' : 'Seats' }}: {{ r.carSeat }}</span> | ||
| 56 | <span class="mr20">|</span> | ||
| 57 | <span :span="8">{{ | ||
| 58 | language == 0 ? '运营时间' : 'Servers Time' | ||
| 59 | }}: {{ r.operStart }} ~ {{ r.operEnd }}</span> | ||
| 60 | </div> | ||
| 61 | </el-col> | ||
| 62 | <el-col :span="3"> | ||
| 63 | <div v-if="language==0" class="price">¥ | ||
| 64 | <span | ||
| 65 | v-if="r.outPrice&&r.inPrice">{{ Number(r.inPrice) > Number(r.outPrice) ? r.outPrice : r.inPrice }}</span> | ||
| 66 | <span v-else-if="r.inPrice>0">{{ r.inPrice }}</span> | ||
| 67 | <span v-else>{{ r.outPrice }}</span> | ||
| 68 | 起 | ||
| 69 | </div> | ||
| 70 | <div v-else class="price"> | ||
| 71 | € | ||
| 72 | <span | ||
| 73 | v-if="r.outPriceEn&&r.inPriceEn">{{ (Number(r.inPriceEn) || 0) > Number(r.outPriceEn) ? r.outPriceEn : r.inPriceEn }}</span> | ||
| 74 | <span v-else-if="r.inPriceEn>0">{{ r.inPriceEn }}</span> | ||
| 75 | <span v-else>{{ r.outPriceEn }}</span> | ||
| 76 | </div> | ||
| 77 | |||
| 78 | </el-col> | ||
| 79 | <el-col :span="3"> | ||
| 80 | <el-button class="btn-lineG w100" round type="primary" @click="goOrder(h,r)"> | ||
| 81 | {{ language == 0 ? '我要预订' : 'Select' }} | ||
| 82 | </el-button> | ||
| 83 | </el-col> | ||
| 84 | </el-row> | ||
| 85 | </div> | ||
| 86 | |||
| 87 | <el-empty v-if="h.carVoList.length == 0" :image="`/img/order_no.png`" :image-size="228" description=""/> | ||
| 88 | </div> | ||
| 89 | |||
| 90 | </el-collapse-item> | ||
| 91 | </el-collapse> | ||
| 92 | |||
| 93 | |||
| 94 | <el-empty v-show="!loading&&list.length==0" :image="`/img/order_no.png`" :image-size="228" description=""/> | ||
| 95 | <div style="height: 50px"></div> | ||
| 96 | </div> | ||
| 97 | |||
| 98 | </div> | ||
| 99 | </template> | ||
| 100 | |||
| 101 | <script setup> | ||
| 102 | import {onMounted} from "@vue/runtime-core" | ||
| 103 | import * as booking from "@/apiPc/booking" | ||
| 104 | import {useRouter, useRoute} from "vue-router"; | ||
| 105 | import {useStorage} from "@vueuse/core/index"; | ||
| 106 | import useUserStore from "@/store/modules/user"; | ||
| 107 | |||
| 108 | const user = useUserStore().user | ||
| 109 | const router = useRouter() | ||
| 110 | const route = useRoute() | ||
| 111 | const language = useStorage('language', 0) | ||
| 112 | const query = ref({ | ||
| 113 | name: '' | ||
| 114 | }) | ||
| 115 | const activeName = ref(0) | ||
| 116 | const cptId = ref('') | ||
| 117 | const list = ref([]) | ||
| 118 | const loading = ref(false) | ||
| 119 | onMounted(() => { | ||
| 120 | query.value.activityId = route.params.cptId | ||
| 121 | // if (language.value==0) | ||
| 122 | getList() | ||
| 123 | }) | ||
| 124 | |||
| 125 | function getList() { | ||
| 126 | // if (language.value!=0)return | ||
| 127 | loading.value = true | ||
| 128 | booking.getActivityCarList(query.value).then(res => { | ||
| 129 | list.value = res.rows | ||
| 130 | loading.value = false | ||
| 131 | }).catch(e => { | ||
| 132 | loading.value = false | ||
| 133 | }) | ||
| 134 | } | ||
| 135 | |||
| 136 | function goOrder(item, car) { | ||
| 137 | if (!user) { | ||
| 138 | useUserStore().setReLogin() | ||
| 139 | return | ||
| 140 | } | ||
| 141 | router.push({ | ||
| 142 | name: 'carOrder', | ||
| 143 | params: { | ||
| 144 | id: item.id, | ||
| 145 | }, | ||
| 146 | query: { | ||
| 147 | item: encodeURIComponent(JSON.stringify(item)), | ||
| 148 | car: encodeURIComponent(JSON.stringify(car)), | ||
| 149 | } | ||
| 150 | }) | ||
| 151 | } | ||
| 152 | </script> | ||
| 153 | |||
| 154 | <style lang="scss" scoped> | ||
| 155 | |||
| 156 | .hotel { | ||
| 157 | margin-bottom: 20px; | ||
| 158 | cursor: pointer; | ||
| 159 | |||
| 160 | .index { | ||
| 161 | display: flex; | ||
| 162 | font-weight: 500; | ||
| 163 | padding-left: 20px; | ||
| 164 | font-size: 18px; | ||
| 165 | align-items: center; | ||
| 166 | |||
| 167 | img { | ||
| 168 | margin-left: 15px; | ||
| 169 | } | ||
| 170 | } | ||
| 171 | |||
| 172 | p { | ||
| 173 | font-weight: 500; | ||
| 174 | font-size: 24px; | ||
| 175 | color: #000000; | ||
| 176 | } | ||
| 177 | |||
| 178 | &:hover .el-card { | ||
| 179 | box-shadow: 0 0 10px #aaa; | ||
| 180 | } | ||
| 181 | } | ||
| 182 | |||
| 183 | .hotel:nth-child(7n) .index { | ||
| 184 | color: #009E96; | ||
| 185 | } | ||
| 186 | |||
| 187 | .hotel:nth-child(7n+1) .index { | ||
| 188 | color: #FF8124; | ||
| 189 | } | ||
| 190 | |||
| 191 | .hotel:nth-child(7n+2) .index { | ||
| 192 | color: #E4007F; | ||
| 193 | } | ||
| 194 | |||
| 195 | .hotel:nth-child(7n+3) .index { | ||
| 196 | color: #0068B7; | ||
| 197 | } | ||
| 198 | |||
| 199 | .hotel:nth-child(7n+4) .index { | ||
| 200 | color: #32B16C; | ||
| 201 | } | ||
| 202 | |||
| 203 | .hotel:nth-child(7n+5) .index { | ||
| 204 | color: #920783; | ||
| 205 | } | ||
| 206 | |||
| 207 | .hotel:nth-child(7n+6) .index { | ||
| 208 | color: #00B7EE; | ||
| 209 | } | ||
| 210 | |||
| 211 | .banner { | ||
| 212 | height: 140px; | ||
| 213 | background-size: cover; | ||
| 214 | text-align: center; | ||
| 215 | background: url("@/assets/booking/cl_bg.png") center; | ||
| 216 | display: flex; | ||
| 217 | align-items: center; | ||
| 218 | justify-content: center; | ||
| 219 | |||
| 220 | img { | ||
| 221 | display: block; | ||
| 222 | margin: -30px auto 0; | ||
| 223 | width: auto; | ||
| 224 | } | ||
| 225 | } | ||
| 226 | |||
| 227 | .searchBar { | ||
| 228 | position: relative; | ||
| 229 | top: -30px; | ||
| 230 | background: #FFFFFF; | ||
| 231 | display: flex; | ||
| 232 | padding: 20px; | ||
| 233 | border-radius: 10px; | ||
| 234 | } | ||
| 235 | |||
| 236 | .no-border { | ||
| 237 | border: none; | ||
| 238 | background: #F5F7F9; | ||
| 239 | |||
| 240 | :deep(.el-input__wrapper) { | ||
| 241 | border: none; | ||
| 242 | box-shadow: none; | ||
| 243 | background: #F5F7F9; | ||
| 244 | } | ||
| 245 | } | ||
| 246 | |||
| 247 | .starBox { | ||
| 248 | img { | ||
| 249 | display: inline-block; | ||
| 250 | margin-right: 4px | ||
| 251 | } | ||
| 252 | } | ||
| 253 | |||
| 254 | .tagbox { | ||
| 255 | margin: 15px 0; | ||
| 256 | |||
| 257 | a { | ||
| 258 | color: #AFB5B9; | ||
| 259 | font-size: 12px; | ||
| 260 | } | ||
| 261 | |||
| 262 | span { | ||
| 263 | border-radius: 13px; | ||
| 264 | font-size: 12px; | ||
| 265 | padding: 4px 10px; | ||
| 266 | margin-right: 10px; | ||
| 267 | font-weight: 400; | ||
| 268 | } | ||
| 269 | |||
| 270 | span:nth-child(4n) { | ||
| 271 | background: rgba(50, 177, 108, 0.2); | ||
| 272 | color: rgba(50, 177, 108, 1); | ||
| 273 | } | ||
| 274 | |||
| 275 | span:nth-child(4n+1) { | ||
| 276 | background: rgba(243, 152, 0, 0.2); | ||
| 277 | color: rgba(243, 152, 0, 1); | ||
| 278 | } | ||
| 279 | |||
| 280 | span:nth-child(4n+2) { | ||
| 281 | background: rgba(0, 160, 233, 0.2); | ||
| 282 | color: rgba(0, 160, 233, 1); | ||
| 283 | } | ||
| 284 | |||
| 285 | span:nth-child(4n+3) { | ||
| 286 | background: rgba(247, 64, 166, 0.2); | ||
| 287 | color: rgba(247, 64, 166, 1); | ||
| 288 | } | ||
| 289 | } | ||
| 290 | |||
| 291 | .name.flex { | ||
| 292 | align-items: center; | ||
| 293 | } | ||
| 294 | |||
| 295 | .name .tagbox { | ||
| 296 | margin: 0 0 0 15px; | ||
| 297 | } | ||
| 298 | |||
| 299 | .room { | ||
| 300 | background: #FAFBFD; | ||
| 301 | margin: 20px 0 0; | ||
| 302 | padding: 20px; | ||
| 303 | border: 1px solid #E5E5E5; | ||
| 304 | |||
| 305 | .name { | ||
| 306 | font-size: 20px; | ||
| 307 | margin: 0 0 10px; | ||
| 308 | } | ||
| 309 | |||
| 310 | .roomImg { | ||
| 311 | aspect-ratio: 16/9; | ||
| 312 | border-radius: 10px; | ||
| 313 | overflow: hidden; | ||
| 314 | |||
| 315 | img { | ||
| 316 | width: 100%; | ||
| 317 | object-fit: cover; | ||
| 318 | object-position: center; | ||
| 319 | height: 100%; | ||
| 320 | } | ||
| 321 | } | ||
| 322 | |||
| 323 | .price { | ||
| 324 | color: #FF8124; | ||
| 325 | font-size: 24px; | ||
| 326 | |||
| 327 | span { | ||
| 328 | font-size: 36px; | ||
| 329 | font-family: "DIN Alternate" | ||
| 330 | } | ||
| 331 | } | ||
| 332 | |||
| 333 | .bg-lineg { | ||
| 334 | margin: auto; | ||
| 335 | border-radius: 10px; | ||
| 336 | text-align: center; | ||
| 337 | padding: 7px 2px 2px; | ||
| 338 | font-size: 24px; | ||
| 339 | width: 66px; | ||
| 340 | cursor: pointer; | ||
| 341 | |||
| 342 | div { | ||
| 343 | background: #fff; | ||
| 344 | font-size: 13px; | ||
| 345 | border-radius: 20px; | ||
| 346 | padding: 0 10px; | ||
| 347 | color: #453DEA; | ||
| 348 | font-weight: 500; | ||
| 349 | } | ||
| 350 | } | ||
| 351 | } | ||
| 352 | |||
| 353 | </style> |
| ... | @@ -33,7 +33,7 @@ | ... | @@ -33,7 +33,7 @@ |
| 33 | <div class="border-info mt20"> | 33 | <div class="border-info mt20"> |
| 34 | <div class="flex aic"> | 34 | <div class="flex aic"> |
| 35 | <h3 class="esp">{{ form.checkIn }}</h3> | 35 | <h3 class="esp">{{ form.checkIn }}</h3> |
| 36 | <img class="w40px mlr20 " src="@/assets/booking/wf.png" style="height: 40px;"/> | 36 | <img class="w40px mlr20 " src="@/assets/booking/wf.png" style="height: 40px;"> |
| 37 | <h3 class="esp">{{ form.checkOut }}</h3> | 37 | <h3 class="esp">{{ form.checkOut }}</h3> |
| 38 | </div> | 38 | </div> |
| 39 | </div> | 39 | </div> |
| ... | @@ -67,8 +67,10 @@ | ... | @@ -67,8 +67,10 @@ |
| 67 | </el-col> | 67 | </el-col> |
| 68 | <el-col> | 68 | <el-col> |
| 69 | {{ language == 0 ? '套餐' : 'Package' }}:{{ formInfo.mealName }} <span | 69 | {{ language == 0 ? '套餐' : 'Package' }}:{{ formInfo.mealName }} <span |
| 70 | style="margin-left: 40px">{{ language == 0 ? '价格' : 'Price' }}</span><span | 70 | style="margin-left: 40px" |
| 71 | class="price">{{ language == 0 ? '¥' + formInfo.mealPrice : '€' + formInfo.mealPriceEn }}</span> | 71 | >{{ language == 0 ? '价格' : 'Price' }}</span><span |
| 72 | class="price" | ||
| 73 | >{{ language == 0 ? '¥' + formInfo.mealPrice : '€' + formInfo.mealPriceEn }}</span> | ||
| 72 | <span style="margin-left: 40px">{{ | 74 | <span style="margin-left: 40px">{{ |
| 73 | language == 0 ? '工作室电话' : 'Studio phone number' | 75 | language == 0 ? '工作室电话' : 'Studio phone number' |
| 74 | }}:{{ formInfo.contact }}</span> | 76 | }}:{{ formInfo.contact }}</span> |
| ... | @@ -101,8 +103,10 @@ | ... | @@ -101,8 +103,10 @@ |
| 101 | </el-col> | 103 | </el-col> |
| 102 | <el-col> | 104 | <el-col> |
| 103 | {{ language == 0 ? '套餐' : 'Package' }}:{{ formInfo.photoName }} <span | 105 | {{ language == 0 ? '套餐' : 'Package' }}:{{ formInfo.photoName }} <span |
| 104 | style="margin-left: 40px">{{ language == 0 ? '价格' : 'Price' }}</span><span | 106 | style="margin-left: 40px" |
| 105 | class="price">{{ language == 0 ? '¥' + formInfo.photoPrice : '€' + formInfo.photoPriceEn }}</span> | 107 | >{{ language == 0 ? '价格' : 'Price' }}</span><span |
| 108 | class="price" | ||
| 109 | >{{ language == 0 ? '¥' + formInfo.photoPrice : '€' + formInfo.photoPriceEn }}</span> | ||
| 106 | </el-col> | 110 | </el-col> |
| 107 | <el-col> | 111 | <el-col> |
| 108 | {{ language == 0 ? '套餐说明' : 'Package Description' }}:{{ formInfo.introduction }} | 112 | {{ language == 0 ? '套餐说明' : 'Package Description' }}:{{ formInfo.introduction }} |
| ... | @@ -171,24 +175,23 @@ | ... | @@ -171,24 +175,23 @@ |
| 171 | language == 0 ? '联系方式' : 'Contact Information' | 175 | language == 0 ? '联系方式' : 'Contact Information' |
| 172 | }}:{{ form.phone }} | 176 | }}:{{ form.phone }} |
| 173 | </el-col> | 177 | </el-col> |
| 174 | <el-col :lg="8" :md="12" :sm="12" :xs="24"></el-col> | 178 | <el-col :lg="8" :md="12" :sm="12" :xs="24" /> |
| 175 | </el-row> | 179 | </el-row> |
| 176 | <el-row v-if="type == 'car'"> | 180 | <el-row v-if="type == 'car'"> |
| 177 | <el-col v-if="form.pickUpBo?.revTime" :lg="12" :md="12" :sm="12" :xs="24"> | 181 | <el-col :lg="12" :md="12" :sm="12" :xs="24"> |
| 178 | <h4>{{ language == 0 ? '接站信息' : 'Pick-up Information' }}</h4> | ||
| 179 | <div class="st-info"> | 182 | <div class="st-info"> |
| 180 | <div>{{ language == 0 ? '用车时间' : 'Delivery Time' }}:{{ form.pickUpBo.revTime }}</div> | 183 | <div>{{ language == 0 ? '用车时间' : 'Delivery Time' }}:{{ form.pickUpBo?.revTime }}</div> |
| 181 | <div v-for="(car,index) in form.pickUpBo.carsList" :key="index" class="carLine"> | 184 | <!-- <div v-for="(car,index) in form.pickUpBo.carsList" :key="index" class="carLine">--> |
| 182 | <div v-if="car.num > 0"> | 185 | <!-- <div v-if="car.num > 0">--> |
| 183 | <label>{{ car.name }}</label> | 186 | <!-- <label>{{ car.name }}</label>--> |
| 184 | <el-tag class="mr10">{{ car.carSeat }} {{ language == 0 ? '座 ' : 'Sets' }}</el-tag> | 187 | <!-- <el-tag class="mr10">{{ car.carSeat }} {{ language == 0 ? '座 ' : 'Sets' }}</el-tag>--> |
| 185 | <el-tag>{{ car.carColor }}</el-tag> | 188 | <!-- <el-tag>{{ car.carColor }}</el-tag>--> |
| 186 | </div> | 189 | <!-- </div>--> |
| 187 | 190 | ||
| 188 | <span v-if="car.num > 0"> {{ car.num }}{{ | 191 | <!-- <span v-if="car.num > 0"> {{ car.num }}{{--> |
| 189 | language == 0 ? '辆' : 'Cars' | 192 | <!-- language == 0 ? '辆' : 'Cars'--> |
| 190 | }} * {{ language == 0 ? '¥' : '€' }}{{ car.price }}</span> | 193 | <!-- }} * {{ language == 0 ? '¥' : '€' }}{{ car.price }}</span>--> |
| 191 | </div> | 194 | <!-- </div>--> |
| 192 | 195 | ||
| 193 | <div>{{ language == 0 ? '人数' : 'People' }}: {{ form.pickUpBo.count }}</div> | 196 | <div>{{ language == 0 ? '人数' : 'People' }}: {{ form.pickUpBo.count }}</div> |
| 194 | <div>{{ language == 0 ? '航班/火车班次' : 'Flight/Train' }}: {{ form.pickUpBo.no }}</div> | 197 | <div>{{ language == 0 ? '航班/火车班次' : 'Flight/Train' }}: {{ form.pickUpBo.no }}</div> |
| ... | @@ -201,27 +204,6 @@ | ... | @@ -201,27 +204,6 @@ |
| 201 | <div>{{ language == 0 ? '备注' : 'Remarks' }}:{{ form.pickUpBo.remarks || '-' }}</div> | 204 | <div>{{ language == 0 ? '备注' : 'Remarks' }}:{{ form.pickUpBo.remarks || '-' }}</div> |
| 202 | </div> | 205 | </div> |
| 203 | </el-col> | 206 | </el-col> |
| 204 | <el-col v-if="form.dropOffBo?.revTime" :lg="12" :md="12" :sm="12" :xs="24"> | ||
| 205 | <h4>{{ language == 0 ? '送站信息' : 'Drop-off Information' }}</h4> | ||
| 206 | <div class="st-info"> | ||
| 207 | <div>{{ language == 0 ? '用车时间' : 'Delivery Time' }}:{{ form.dropOffBo.revTime }}</div> | ||
| 208 | <div v-for="(car,index) in form.dropOffBo.carsList" :key="index" class="carLine"> | ||
| 209 | <div v-if="car.num > 0"> | ||
| 210 | <label>{{ car.name }}</label> | ||
| 211 | <el-tag class="mr10">{{ car.carSeat }} {{ language == 0 ? '座 ' : 'Sets' }}</el-tag> | ||
| 212 | <el-tag>{{ car.carColor }}</el-tag> | ||
| 213 | </div> | ||
| 214 | |||
| 215 | <span v-if="car.num > 0"> {{ car.num }}{{ | ||
| 216 | language == 0 ? '辆' : 'Cars' | ||
| 217 | }} * {{ language == 0 ? '¥' : '€' }}{{ car.price }}</span> | ||
| 218 | </div> | ||
| 219 | <div>{{ language == 0 ? '人数' : 'Counts' }}:{{ form.dropOffBo.count }}</div> | ||
| 220 | <div>{{ language == 0 ? '联系人' : 'Contact Person' }}:{{ form.dropOffBo.contacts }}</div> | ||
| 221 | <div>{{ language == 0 ? '联系电话' : 'Contact Phone' }}:{{ form.dropOffBo.phone }}</div> | ||
| 222 | <div>{{ language == 0 ? '备注' : 'Remarks' }}:{{ form.dropOffBo.remarks || '-' }}</div> | ||
| 223 | </div> | ||
| 224 | </el-col> | ||
| 225 | </el-row> | 207 | </el-row> |
| 226 | <el-row v-if="type == 'food'"> | 208 | <el-row v-if="type == 'food'"> |
| 227 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | 209 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> |
| ... | @@ -261,7 +243,7 @@ | ... | @@ -261,7 +243,7 @@ |
| 261 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | 243 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> |
| 262 | <div class="mb10">{{ language == 0 ? '联系人' : 'Contact Person' }}:{{ form.contacts }}</div> | 244 | <div class="mb10">{{ language == 0 ? '联系人' : 'Contact Person' }}:{{ form.contacts }}</div> |
| 263 | </el-col> | 245 | </el-col> |
| 264 | <el-col :lg=12 :md="12" :sm="12" :xs="24"> | 246 | <el-col :lg="12" :md="12" :sm="12" :xs="24"> |
| 265 | <div class="mb10"> | 247 | <div class="mb10"> |
| 266 | {{ language == 0 ? '联系方式' : 'Contact Phone' }}:{{ form.phone }} | 248 | {{ language == 0 ? '联系方式' : 'Contact Phone' }}:{{ form.phone }} |
| 267 | </div> | 249 | </div> |
| ... | @@ -377,12 +359,14 @@ | ... | @@ -377,12 +359,14 @@ |
| 377 | </el-col> | 359 | </el-col> |
| 378 | <el-col :lg="24"> | 360 | <el-col :lg="24"> |
| 379 | <div class="text-center"> | 361 | <div class="text-center"> |
| 380 | <el-button v-if="(form.viewStatus=='1'||form.viewStatus=='5')&&type == 'hotel'" class="mt20 btn-lineG" | 362 | <el-button |
| 363 | v-if="(form.viewStatus=='1'||form.viewStatus=='5')&&type == 'hotel'" class="mt20 btn-lineG" | ||
| 381 | round | 364 | round |
| 382 | size="large" type="primary" | 365 | size="large" type="primary" |
| 383 | @click="exportPdf"> | 366 | @click="exportPdf" |
| 367 | > | ||
| 384 | <el-icon> | 368 | <el-icon> |
| 385 | <Upload/> | 369 | <Upload /> |
| 386 | </el-icon> | 370 | </el-icon> |
| 387 | {{ language == 0 ? '导出酒店预订单' : 'Export PDF' }} | 371 | {{ language == 0 ? '导出酒店预订单' : 'Export PDF' }} |
| 388 | </el-button> | 372 | </el-button> |
| ... | @@ -391,9 +375,10 @@ | ... | @@ -391,9 +375,10 @@ |
| 391 | class="mt20 btn-lineG" round | 375 | class="mt20 btn-lineG" round |
| 392 | size="large" | 376 | size="large" |
| 393 | type="primary" | 377 | type="primary" |
| 394 | @click="downInvoice"> | 378 | @click="downInvoice" |
| 379 | > | ||
| 395 | <el-icon> | 380 | <el-icon> |
| 396 | <Download/> | 381 | <Download /> |
| 397 | </el-icon> | 382 | </el-icon> |
| 398 | {{ language == 0 ? '下载收据' : 'DownLoad Invoice' }} | 383 | {{ language == 0 ? '下载收据' : 'DownLoad Invoice' }} |
| 399 | </el-button> | 384 | </el-button> |
| ... | @@ -403,9 +388,11 @@ | ... | @@ -403,9 +388,11 @@ |
| 403 | </div> | 388 | </div> |
| 404 | </div> | 389 | </div> |
| 405 | <div v-else class="pd20 skeletonBox"> | 390 | <div v-else class="pd20 skeletonBox"> |
| 406 | <el-skeleton :rows="8"/> | 391 | <el-skeleton :rows="8" /> |
| 407 | <el-button :style="language == 0 ?'width:200px':'width:400px'" class="btn-lineG" round size="large" | 392 | <el-button |
| 408 | type="primary" @click="showLogin"> | 393 | :style="language == 0 ?'width:200px':'width:400px'" class="btn-lineG" round size="large" |
| 394 | type="primary" @click="showLogin" | ||
| 395 | > | ||
| 409 | {{ language == 0 ? '登录后查看明细' : 'View detailed information after logging in' }} | 396 | {{ language == 0 ? '登录后查看明细' : 'View detailed information after logging in' }} |
| 410 | </el-button> | 397 | </el-button> |
| 411 | </div> | 398 | </div> |
| ... | @@ -417,55 +404,69 @@ | ... | @@ -417,55 +404,69 @@ |
| 417 | <el-radio-group v-model="payType"> | 404 | <el-radio-group v-model="payType"> |
| 418 | <el-radio v-if="language==0" border value="2"> | 405 | <el-radio v-if="language==0" border value="2"> |
| 419 | <!-- 微信--> | 406 | <!-- 微信--> |
| 420 | <svg class="icon" height="40" p-id="24747" t="1709002960407" | 407 | <svg |
| 421 | version="1.1" viewBox="0 0 3152 1024" width="94" xmlns="http://www.w3.org/2000/svg"> | 408 | class="icon" height="40" p-id="24747" t="1709002960407" |
| 409 | version="1.1" viewBox="0 0 3152 1024" width="94" xmlns="http://www.w3.org/2000/svg" | ||
| 410 | > | ||
| 422 | <path | 411 | <path |
| 423 | d="M381.998922 630.960647c-4.416173 2.208086-8.832345 3.312129-14.352561 3.312129-12.144474 0-22.080863-7.17628-28.1531-17.66469l-2.208086-4.968194-87.771428-204.247978c-1.104043-2.208086-1.104043-4.416173-1.104043-6.624259 0-9.384367 6.624259-16.560647 15.456603-16.560647 3.312129 0 6.624259 1.104043 9.936388 3.312129l103.780054 78.387062c7.728302 4.968194 16.560647 8.280323 26.497035 8.280324 5.520216 0 11.040431-1.104043 16.560647-3.312129l486.330998-230.192992C819.752022 131.381132 676.226415 60.17035 513.380054 60.17035 248.409704 59.618329 32.017251 250.61779 32.017251 486.883019c0 128.069003 64.586523 244.545553 166.15849 322.932614 7.728302 6.072237 13.248518 16.560647 13.248518 27.601079 0 3.312129-1.104043 7.17628-2.208086 10.488409-7.728302 32.017251-20.976819 84.459299-20.97682 86.667386-1.104043 3.312129-2.208086 8.280323-2.208086 13.248517 0 9.384367 6.624259 16.560647 15.456604 16.560647 3.312129 0 6.624259-1.104043 8.832345-3.312129l104.884097-65.138545c7.728302-4.968194 16.560647-8.280323 25.392992-8.280323 4.416173 0 9.936388 1.104043 14.35256 2.208086 49.129919 15.456604 102.676011 23.736927 157.326146 23.736927 265.522372 0 481.362803-191.551482 481.362803-427.816711 0-71.210782-19.872776-139.109434-54.650135-198.175741L385.863073 628.752561l-3.864151 2.208086z" | 412 | d="M381.998922 630.960647c-4.416173 2.208086-8.832345 3.312129-14.352561 3.312129-12.144474 0-22.080863-7.17628-28.1531-17.66469l-2.208086-4.968194-87.771428-204.247978c-1.104043-2.208086-1.104043-4.416173-1.104043-6.624259 0-9.384367 6.624259-16.560647 15.456603-16.560647 3.312129 0 6.624259 1.104043 9.936388 3.312129l103.780054 78.387062c7.728302 4.968194 16.560647 8.280323 26.497035 8.280324 5.520216 0 11.040431-1.104043 16.560647-3.312129l486.330998-230.192992C819.752022 131.381132 676.226415 60.17035 513.380054 60.17035 248.409704 59.618329 32.017251 250.61779 32.017251 486.883019c0 128.069003 64.586523 244.545553 166.15849 322.932614 7.728302 6.072237 13.248518 16.560647 13.248518 27.601079 0 3.312129-1.104043 7.17628-2.208086 10.488409-7.728302 32.017251-20.976819 84.459299-20.97682 86.667386-1.104043 3.312129-2.208086 8.280323-2.208086 13.248517 0 9.384367 6.624259 16.560647 15.456604 16.560647 3.312129 0 6.624259-1.104043 8.832345-3.312129l104.884097-65.138545c7.728302-4.968194 16.560647-8.280323 25.392992-8.280323 4.416173 0 9.936388 1.104043 14.35256 2.208086 49.129919 15.456604 102.676011 23.736927 157.326146 23.736927 265.522372 0 481.362803-191.551482 481.362803-427.816711 0-71.210782-19.872776-139.109434-54.650135-198.175741L385.863073 628.752561l-3.864151 2.208086z" |
| 424 | fill="#09BB07" p-id="24748"></path> | 413 | fill="#09BB07" p-id="24748" |
| 414 | /> | ||
| 425 | <path | 415 | <path |
| 426 | d="M1398.822642 381.998922c-9.384367 19.320755-20.424798 38.641509-32.017251 57.962264v263.866307h-31.465229V485.226954c-13.248518 18.216712-27.049057 34.225337-40.297574 48.025876-3.864151-7.17628-14.352561-23.736927-20.424798-30.361186 34.777358-33.673315 71.210782-82.803235 93.843666-131.933153l30.361186 11.040431z m-8.280324-91.63558c-22.632884 36.985445-59.066307 78.939084-91.635579 105.98814-4.416173-7.17628-13.248518-19.320755-19.320755-25.945013 29.809164-23.736927 62.378437-61.274394 78.939083-92.187601l32.017251 12.144474z m181.615094 289.811321c1.656065 7.728302 6.072237 19.320755 8.832345 24.84097-55.754178 37.537466-66.242588 46.369811-72.866846 54.650135-1.656065-7.728302-8.280323-22.080863-12.696496-28.705121 4.968194-3.312129 12.696496-10.48841 12.696496-28.705121v-54.098114h-60.17035v27.049057c0 38.641509-7.728302 91.083558-42.505661 128.069003-4.416173-7.17628-16.560647-19.320755-22.632884-23.184906 29.809164-31.465229 34.225337-72.866846 34.225337-105.436119v-54.098113h118.684636v82.251213l36.433423-22.632884z m123.100809-176.094879c-9.384367 73.970889-23.184906 136.349326-48.025876 187.687332 16.560647 36.433423 39.193531 66.242588 67.346631 83.355256-7.17628 6.072237-17.112668 18.216712-22.632884 27.049057-25.945013-18.216712-46.369811-45.265768-62.930459-78.939084-20.424798 32.017251-45.81779 59.066307-78.939083 81.699191-3.864151-6.624259-13.248518-19.872776-19.872776-25.392992 36.985445-22.632884 64.034501-52.99407 83.907277-89.979514-12.696496-34.777358-22.080863-73.418868-28.705121-115.372507-4.968194 11.040431-10.48841 22.632884-16.560647 31.465229-3.864151-4.416173-10.48841-13.248518-17.112668-20.424798v5.520216h-154.014017v-29.809165h154.014017v9.384367c24.84097-49.129919 37.537466-118.684636 44.713746-191.551483l31.465229 4.968195c-3.864151 31.465229-8.280323 61.274394-13.800539 90.531536h96.051752v29.809164h-14.904582z m-142.973585 22.632884h-145.181671v-110.404312h24.84097v82.251213h35.32938V278.770889h26.497035v119.78868h33.673316V316.308356h25.392992v110.404312z m55.202156-22.632884c-1.656065 6.624259-3.312129 12.696496-4.416172 18.768734 6.072237 46.369811 14.904582 91.083558 28.1531 130.277088 16.560647-43.057682 26.497035-91.63558 32.569272-149.045822h-56.3062zM1882.393531 289.259299c-10.48841 31.465229-24.288949 62.378437-39.193531 91.63558v324.036657h-32.017251V437.201078c-13.800539 22.632884-29.257143 42.50566-44.161725 60.170351-3.312129-7.728302-13.248518-24.288949-19.320754-32.017251 41.953639-45.265768 80.043127-114.820485 103.780053-184.927224l30.913208 8.832345z m288.707278 65.690566v29.257143h-294.779515v-29.257143h294.779515z m-267.730459 199.831806h235.713208v147.941779h-30.913208v-16.560647h-174.438814v18.216712h-30.361186v-149.597844z m231.297035-104.332075H1909.994609v-28.1531h224.672776v28.1531zM1909.994609 486.883019h224.672776v28.1531H1909.994609v-28.1531z m23.736927 96.603773V656.90566h174.438814v-73.418868h-174.438814z m81.699192-231.297035c-6.072237-16.560647-20.424798-43.057682-32.017251-61.826415l29.257143-12.144474c13.248518 19.320755 27.601078 44.161725 34.225337 60.722372l-31.465229 13.248517zM2586.221024 468.114286c-26.497035 63.48248-69.002695 111.508356-122.548787 147.941779 50.785984 25.945013 110.956334 43.609704 180.511051 52.442048-7.728302 8.280323-16.560647 23.184906-21.528841 33.673316-75.074933-11.592453-139.661456-32.569272-192.655525-64.034502-57.962264 32.017251-125.308895 52.99407-195.415634 66.794609-3.312129-9.384367-12.696496-25.392992-19.320754-33.121293 66.242588-10.48841 129.173046-28.1531 183.271159-55.202157-44.161725-32.017251-78.939084-72.866846-103.780054-123.65283l10.48841-3.864151h-49.12992v-34.225337h155.670081V383.654987h-176.6469v-34.225337h176.6469V278.770889h35.32938v70.658761h177.750944v34.225337h-177.750944v71.210781H2555.859838l7.176281-1.656064 23.184905 14.904582z m-255.033962 20.976819c23.184906 43.609704 56.858221 80.043127 100.467925 108.748248 44.161725-28.1531 80.043127-63.48248 104.332075-108.748248h-204.8zM2834.630728 292.571429c-13.800539 34.777358-30.361186 69.554717-49.129919 101.571967v308.580054h-34.225337V447.689488c-14.904582 20.976819-31.465229 40.297574-46.921833 56.306199-4.416173-7.728302-14.904582-25.945013-21.528841-34.225337 47.473854-45.265768 91.63558-115.924528 118.132614-188.239353l33.673316 11.040432z m270.490566 123.65283h-58.514286v240.12938c0 25.945013-7.728302 36.985445-24.84097 41.953639-18.216712 5.520216-49.129919 6.072237-99.915903 5.520215-1.656065-8.832345-8.280323-24.84097-13.248518-34.225337 39.193531 1.656065 77.283019 1.656065 88.32345 1.104043 10.48841-1.104043 14.352561-3.864151 14.352561-14.35256V416.224259h-187.687332v-34.225337h187.687332V283.739084h34.777359v97.707816h58.514285v34.777359z m-184.375202 178.854986c-13.800539-28.705121-43.609704-78.939084-67.346631-115.924528l29.809164-13.800539c24.288949 35.881402 55.202156 84.459299 70.106739 112.612399l-32.569272 17.112668z" | 416 | d="M1398.822642 381.998922c-9.384367 19.320755-20.424798 38.641509-32.017251 57.962264v263.866307h-31.465229V485.226954c-13.248518 18.216712-27.049057 34.225337-40.297574 48.025876-3.864151-7.17628-14.352561-23.736927-20.424798-30.361186 34.777358-33.673315 71.210782-82.803235 93.843666-131.933153l30.361186 11.040431z m-8.280324-91.63558c-22.632884 36.985445-59.066307 78.939084-91.635579 105.98814-4.416173-7.17628-13.248518-19.320755-19.320755-25.945013 29.809164-23.736927 62.378437-61.274394 78.939083-92.187601l32.017251 12.144474z m181.615094 289.811321c1.656065 7.728302 6.072237 19.320755 8.832345 24.84097-55.754178 37.537466-66.242588 46.369811-72.866846 54.650135-1.656065-7.728302-8.280323-22.080863-12.696496-28.705121 4.968194-3.312129 12.696496-10.48841 12.696496-28.705121v-54.098114h-60.17035v27.049057c0 38.641509-7.728302 91.083558-42.505661 128.069003-4.416173-7.17628-16.560647-19.320755-22.632884-23.184906 29.809164-31.465229 34.225337-72.866846 34.225337-105.436119v-54.098113h118.684636v82.251213l36.433423-22.632884z m123.100809-176.094879c-9.384367 73.970889-23.184906 136.349326-48.025876 187.687332 16.560647 36.433423 39.193531 66.242588 67.346631 83.355256-7.17628 6.072237-17.112668 18.216712-22.632884 27.049057-25.945013-18.216712-46.369811-45.265768-62.930459-78.939084-20.424798 32.017251-45.81779 59.066307-78.939083 81.699191-3.864151-6.624259-13.248518-19.872776-19.872776-25.392992 36.985445-22.632884 64.034501-52.99407 83.907277-89.979514-12.696496-34.777358-22.080863-73.418868-28.705121-115.372507-4.968194 11.040431-10.48841 22.632884-16.560647 31.465229-3.864151-4.416173-10.48841-13.248518-17.112668-20.424798v5.520216h-154.014017v-29.809165h154.014017v9.384367c24.84097-49.129919 37.537466-118.684636 44.713746-191.551483l31.465229 4.968195c-3.864151 31.465229-8.280323 61.274394-13.800539 90.531536h96.051752v29.809164h-14.904582z m-142.973585 22.632884h-145.181671v-110.404312h24.84097v82.251213h35.32938V278.770889h26.497035v119.78868h33.673316V316.308356h25.392992v110.404312z m55.202156-22.632884c-1.656065 6.624259-3.312129 12.696496-4.416172 18.768734 6.072237 46.369811 14.904582 91.083558 28.1531 130.277088 16.560647-43.057682 26.497035-91.63558 32.569272-149.045822h-56.3062zM1882.393531 289.259299c-10.48841 31.465229-24.288949 62.378437-39.193531 91.63558v324.036657h-32.017251V437.201078c-13.800539 22.632884-29.257143 42.50566-44.161725 60.170351-3.312129-7.728302-13.248518-24.288949-19.320754-32.017251 41.953639-45.265768 80.043127-114.820485 103.780053-184.927224l30.913208 8.832345z m288.707278 65.690566v29.257143h-294.779515v-29.257143h294.779515z m-267.730459 199.831806h235.713208v147.941779h-30.913208v-16.560647h-174.438814v18.216712h-30.361186v-149.597844z m231.297035-104.332075H1909.994609v-28.1531h224.672776v28.1531zM1909.994609 486.883019h224.672776v28.1531H1909.994609v-28.1531z m23.736927 96.603773V656.90566h174.438814v-73.418868h-174.438814z m81.699192-231.297035c-6.072237-16.560647-20.424798-43.057682-32.017251-61.826415l29.257143-12.144474c13.248518 19.320755 27.601078 44.161725 34.225337 60.722372l-31.465229 13.248517zM2586.221024 468.114286c-26.497035 63.48248-69.002695 111.508356-122.548787 147.941779 50.785984 25.945013 110.956334 43.609704 180.511051 52.442048-7.728302 8.280323-16.560647 23.184906-21.528841 33.673316-75.074933-11.592453-139.661456-32.569272-192.655525-64.034502-57.962264 32.017251-125.308895 52.99407-195.415634 66.794609-3.312129-9.384367-12.696496-25.392992-19.320754-33.121293 66.242588-10.48841 129.173046-28.1531 183.271159-55.202157-44.161725-32.017251-78.939084-72.866846-103.780054-123.65283l10.48841-3.864151h-49.12992v-34.225337h155.670081V383.654987h-176.6469v-34.225337h176.6469V278.770889h35.32938v70.658761h177.750944v34.225337h-177.750944v71.210781H2555.859838l7.176281-1.656064 23.184905 14.904582z m-255.033962 20.976819c23.184906 43.609704 56.858221 80.043127 100.467925 108.748248 44.161725-28.1531 80.043127-63.48248 104.332075-108.748248h-204.8zM2834.630728 292.571429c-13.800539 34.777358-30.361186 69.554717-49.129919 101.571967v308.580054h-34.225337V447.689488c-14.904582 20.976819-31.465229 40.297574-46.921833 56.306199-4.416173-7.728302-14.904582-25.945013-21.528841-34.225337 47.473854-45.265768 91.63558-115.924528 118.132614-188.239353l33.673316 11.040432z m270.490566 123.65283h-58.514286v240.12938c0 25.945013-7.728302 36.985445-24.84097 41.953639-18.216712 5.520216-49.129919 6.072237-99.915903 5.520215-1.656065-8.832345-8.280323-24.84097-13.248518-34.225337 39.193531 1.656065 77.283019 1.656065 88.32345 1.104043 10.48841-1.104043 14.352561-3.864151 14.352561-14.35256V416.224259h-187.687332v-34.225337h187.687332V283.739084h34.777359v97.707816h58.514285v34.777359z m-184.375202 178.854986c-13.800539-28.705121-43.609704-78.939084-67.346631-115.924528l29.809164-13.800539c24.288949 35.881402 55.202156 84.459299 70.106739 112.612399l-32.569272 17.112668z" |
| 427 | fill="#595757" p-id="24749"></path> | 417 | fill="#595757" p-id="24749" |
| 418 | /> | ||
| 428 | </svg> | 419 | </svg> |
| 429 | </el-radio> | 420 | </el-radio> |
| 430 | <el-radio v-if="language==1" border value="3"> | 421 | <el-radio v-if="language==1" border value="3"> |
| 431 | <!--paypal--> | 422 | <!--paypal--> |
| 432 | <svg class="icon" height="40" p-id="22654" t="1709002828937" | 423 | <svg |
| 433 | version="1.1" viewBox="0 0 4220 1024" width="94" xmlns="http://www.w3.org/2000/svg"> | 424 | class="icon" height="40" p-id="22654" t="1709002828937" |
| 425 | version="1.1" viewBox="0 0 4220 1024" width="94" xmlns="http://www.w3.org/2000/svg" | ||
| 426 | > | ||
| 434 | <path | 427 | <path |
| 435 | d="M3249.722604 229.409369h-232.537679c-15.641548 0-29.197556 11.470468-32.325865 27.112016l-93.849287 595.421589c-2.08554 11.470468 7.299389 21.898167 18.769857 21.898167h118.875764c11.470468 0 20.855397-8.342159 21.898167-18.769858l27.112016-168.928717c2.08554-15.641548 15.641548-27.112016 32.325866-27.112016h72.99389c153.287169 0 240.879837-74.03666 263.820774-221.06721 10.427699-63.608961 0-114.704684-29.197556-150.158859-31.283096-38.582485-89.678208-58.395112-167.885947-58.395112z m27.112016 216.89613c-12.513238 83.421589-76.1222 83.421589-137.645621 83.421589h-35.454175l25.026476-155.372709c1.04277-9.384929 9.384929-16.684318 18.769858-16.684318h15.641547c41.710794 0 81.336049 0 102.191447 23.983707 12.513238 14.598778 15.641548 35.454175 11.470468 64.651731z" | 428 | d="M3249.722604 229.409369h-232.537679c-15.641548 0-29.197556 11.470468-32.325865 27.112016l-93.849287 595.421589c-2.08554 11.470468 7.299389 21.898167 18.769857 21.898167h118.875764c11.470468 0 20.855397-8.342159 21.898167-18.769858l27.112016-168.928717c2.08554-15.641548 15.641548-27.112016 32.325866-27.112016h72.99389c153.287169 0 240.879837-74.03666 263.820774-221.06721 10.427699-63.608961 0-114.704684-29.197556-150.158859-31.283096-38.582485-89.678208-58.395112-167.885947-58.395112z m27.112016 216.89613c-12.513238 83.421589-76.1222 83.421589-137.645621 83.421589h-35.454175l25.026476-155.372709c1.04277-9.384929 9.384929-16.684318 18.769858-16.684318h15.641547c41.710794 0 81.336049 0 102.191447 23.983707 12.513238 14.598778 15.641548 35.454175 11.470468 64.651731z" |
| 436 | fill="#009CDE" p-id="22655"></path> | 429 | fill="#009CDE" p-id="22655" |
| 430 | /> | ||
| 437 | <path | 431 | <path |
| 438 | d="M1594.84684 229.409369h-232.537678c-15.641548 0-29.197556 11.470468-32.325866 27.112016l-93.849287 595.421589c-2.08554 11.470468 7.299389 21.898167 18.769857 21.898167h110.533605c15.641548 0 29.197556-11.470468 32.325866-27.112017l25.026476-160.586558c2.08554-15.641548 15.641548-27.112016 32.325866-27.112016h72.99389c153.287169 0 240.879837-74.03666 263.820774-221.06721 10.427699-63.608961 0-114.704684-29.197556-150.158859-31.283096-38.582485-89.678208-58.395112-167.885947-58.395112z m27.112016 216.89613c-12.513238 83.421589-76.1222 83.421589-137.645621 83.421589h-35.454175l25.026476-155.372709c1.04277-9.384929 9.384929-16.684318 18.769858-16.684318h15.641548c41.710794 0 81.336049 0 102.191446 23.983707 12.513238 14.598778 15.641548 35.454175 11.470468 64.651731zM2288.288795 443.177189h-111.576375c-9.384929 0-17.727088 7.299389-18.769857 16.684318l-5.213849 31.283096-7.299389-11.470469c-23.983707-34.411405-77.164969-46.924644-131.389002-46.924643-123.046843 0-227.323829 92.806517-248.179226 223.152749-10.427699 64.651731 4.171079 127.217923 41.710794 171.014257 34.411405 39.625255 82.378819 56.309572 139.731161 56.309572 99.063136 0 153.287169-63.608961 153.287169-63.608961l-5.21385 31.283096c-2.08554 11.470468 7.299389 21.898167 18.769858 21.898167h100.105906c15.641548 0 29.197556-11.470468 32.325866-27.112017l60.480652-380.610998c2.08554-10.427699-6.256619-21.898167-18.769858-21.898167z m-154.329939 216.896131c-10.427699 63.608961-61.523422 106.362525-125.132383 106.362525-32.325866 0-58.395112-10.427699-75.079429-30.240326-16.684318-19.812627-22.940937-46.924644-17.727088-78.207739 10.427699-62.566191 61.523422-107.405295 124.089613-107.405295 31.283096 0 57.352342 10.427699 74.03666 30.240326 17.727088 20.855397 25.026477 47.967413 19.812627 79.250509z" | 432 | d="M1594.84684 229.409369h-232.537678c-15.641548 0-29.197556 11.470468-32.325866 27.112016l-93.849287 595.421589c-2.08554 11.470468 7.299389 21.898167 18.769857 21.898167h110.533605c15.641548 0 29.197556-11.470468 32.325866-27.112017l25.026476-160.586558c2.08554-15.641548 15.641548-27.112016 32.325866-27.112016h72.99389c153.287169 0 240.879837-74.03666 263.820774-221.06721 10.427699-63.608961 0-114.704684-29.197556-150.158859-31.283096-38.582485-89.678208-58.395112-167.885947-58.395112z m27.112016 216.89613c-12.513238 83.421589-76.1222 83.421589-137.645621 83.421589h-35.454175l25.026476-155.372709c1.04277-9.384929 9.384929-16.684318 18.769858-16.684318h15.641548c41.710794 0 81.336049 0 102.191446 23.983707 12.513238 14.598778 15.641548 35.454175 11.470468 64.651731zM2288.288795 443.177189h-111.576375c-9.384929 0-17.727088 7.299389-18.769857 16.684318l-5.213849 31.283096-7.299389-11.470469c-23.983707-34.411405-77.164969-46.924644-131.389002-46.924643-123.046843 0-227.323829 92.806517-248.179226 223.152749-10.427699 64.651731 4.171079 127.217923 41.710794 171.014257 34.411405 39.625255 82.378819 56.309572 139.731161 56.309572 99.063136 0 153.287169-63.608961 153.287169-63.608961l-5.21385 31.283096c-2.08554 11.470468 7.299389 21.898167 18.769858 21.898167h100.105906c15.641548 0 29.197556-11.470468 32.325866-27.112017l60.480652-380.610998c2.08554-10.427699-6.256619-21.898167-18.769858-21.898167z m-154.329939 216.896131c-10.427699 63.608961-61.523422 106.362525-125.132383 106.362525-32.325866 0-58.395112-10.427699-75.079429-30.240326-16.684318-19.812627-22.940937-46.924644-17.727088-78.207739 10.427699-62.566191 61.523422-107.405295 124.089613-107.405295 31.283096 0 57.352342 10.427699 74.03666 30.240326 17.727088 20.855397 25.026477 47.967413 19.812627 79.250509z" |
| 439 | fill="#003087" p-id="22656"></path> | 433 | fill="#003087" p-id="22656" |
| 434 | /> | ||
| 440 | <path | 435 | <path |
| 441 | d="M3943.164559 443.177189h-111.576375c-9.384929 0-17.727088 7.299389-18.769857 16.684318l-5.21385 31.283096-7.299389-11.470469c-23.983707-34.411405-77.164969-46.924644-131.389002-46.924643-123.046843 0-227.323829 92.806517-248.179226 223.152749-10.427699 64.651731 4.171079 127.217923 41.710795 171.014257 34.411405 39.625255 82.378819 56.309572 139.73116 56.309572 99.063136 0 153.287169-63.608961 153.28717-63.608961l-5.21385 31.283096c-2.08554 11.470468 7.299389 21.898167 18.769858 21.898167h100.105906c15.641548 0 29.197556-11.470468 32.325866-27.112017l60.480651-380.610998c2.08554-10.427699-6.256619-21.898167-18.769857-21.898167z m-154.329939 216.896131c-10.427699 63.608961-61.523422 106.362525-125.132383 106.362525-32.325866 0-58.395112-10.427699-75.07943-30.240326-16.684318-19.812627-22.940937-46.924644-17.727087-78.207739 10.427699-62.566191 61.523422-107.405295 124.089613-107.405295 31.283096 0 57.352342 10.427699 74.03666 30.240326 17.727088 20.855397 25.026477 47.967413 19.812627 79.250509z" | 436 | d="M3943.164559 443.177189h-111.576375c-9.384929 0-17.727088 7.299389-18.769857 16.684318l-5.21385 31.283096-7.299389-11.470469c-23.983707-34.411405-77.164969-46.924644-131.389002-46.924643-123.046843 0-227.323829 92.806517-248.179226 223.152749-10.427699 64.651731 4.171079 127.217923 41.710795 171.014257 34.411405 39.625255 82.378819 56.309572 139.73116 56.309572 99.063136 0 153.287169-63.608961 153.28717-63.608961l-5.21385 31.283096c-2.08554 11.470468 7.299389 21.898167 18.769858 21.898167h100.105906c15.641548 0 29.197556-11.470468 32.325866-27.112017l60.480651-380.610998c2.08554-10.427699-6.256619-21.898167-18.769857-21.898167z m-154.329939 216.896131c-10.427699 63.608961-61.523422 106.362525-125.132383 106.362525-32.325866 0-58.395112-10.427699-75.07943-30.240326-16.684318-19.812627-22.940937-46.924644-17.727087-78.207739 10.427699-62.566191 61.523422-107.405295 124.089613-107.405295 31.283096 0 57.352342 10.427699 74.03666 30.240326 17.727088 20.855397 25.026477 47.967413 19.812627 79.250509z" |
| 442 | fill="#009CDE" p-id="22657"></path> | 437 | fill="#009CDE" p-id="22657" |
| 438 | /> | ||
| 443 | <path | 439 | <path |
| 444 | d="M2880.582074 443.177189h-111.576375c-10.427699 0-20.855397 5.213849-27.112016 14.598778l-154.329939 227.323829-65.694501-217.9389c-4.171079-13.556008-16.684318-22.940937-31.283096-22.940937h-109.490835c-13.556008 0-22.940937 13.556008-18.769857 26.069247l123.046843 360.79837-115.747454 162.672098c-9.384929 12.513238 0 30.240326 15.641548 30.240326h111.576375c10.427699 0 20.855397-5.213849 26.069246-13.556008l371.226069-535.983707c11.470468-13.556008 2.08554-31.283096-13.556008-31.283096z" | 440 | d="M2880.582074 443.177189h-111.576375c-10.427699 0-20.855397 5.213849-27.112016 14.598778l-154.329939 227.323829-65.694501-217.9389c-4.171079-13.556008-16.684318-22.940937-31.283096-22.940937h-109.490835c-13.556008 0-22.940937 13.556008-18.769857 26.069247l123.046843 360.79837-115.747454 162.672098c-9.384929 12.513238 0 30.240326 15.641548 30.240326h111.576375c10.427699 0 20.855397-5.213849 26.069246-13.556008l371.226069-535.983707c11.470468-13.556008 2.08554-31.283096-13.556008-31.283096z" |
| 445 | fill="#003087" p-id="22658"></path> | 441 | fill="#003087" p-id="22658" |
| 442 | /> | ||
| 446 | <path | 443 | <path |
| 447 | d="M4074.553561 245.050916l-94.892057 605.849288c-2.08554 11.470468 7.299389 21.898167 18.769857 21.898167h95.934827c15.641548 0 29.197556-11.470468 32.325866-27.112017l93.849287-595.421588c2.08554-11.470468-7.299389-21.898167-18.769857-21.898167h-107.405296c-10.427699 1.04277-18.769857 7.299389-19.812627 16.684317z" | 444 | d="M4074.553561 245.050916l-94.892057 605.849288c-2.08554 11.470468 7.299389 21.898167 18.769857 21.898167h95.934827c15.641548 0 29.197556-11.470468 32.325866-27.112017l93.849287-595.421588c2.08554-11.470468-7.299389-21.898167-18.769857-21.898167h-107.405296c-10.427699 1.04277-18.769857 7.299389-19.812627 16.684317z" |
| 448 | fill="#009CDE" p-id="22659"></path> | 445 | fill="#009CDE" p-id="22659" |
| 446 | /> | ||
| 449 | <path | 447 | <path |
| 450 | d="M782.529121 259.649695c12.513238-79.250509 0-133.474542-42.753564-182.484726C691.808143 22.940937 606.301015 0 496.81018 0H178.765374c-21.898167 0-41.710794 16.684318-44.839104 38.582485L0.451728 879.05499c-3.12831 16.684318 10.427699 31.283096 27.112016 31.283096h196.040733l-13.556008 85.507128c-2.08554 14.598778 9.384929 27.112016 23.983707 27.112016h165.800407c19.812627 0 36.496945-14.598778 39.625255-33.368635l2.08554-8.342159 31.283095-198.126273 2.08554-10.427699c3.12831-19.812627 19.812627-33.368635 39.625255-33.368635h25.026476c160.586558 0 285.718941-64.651731 322.215886-253.393075 15.641548-79.250509 7.299389-144.94501-33.368635-190.826884-12.513238-13.556008-28.154786-26.069246-45.881874-35.454175" | 448 | d="M782.529121 259.649695c12.513238-79.250509 0-133.474542-42.753564-182.484726C691.808143 22.940937 606.301015 0 496.81018 0H178.765374c-21.898167 0-41.710794 16.684318-44.839104 38.582485L0.451728 879.05499c-3.12831 16.684318 10.427699 31.283096 27.112016 31.283096h196.040733l-13.556008 85.507128c-2.08554 14.598778 9.384929 27.112016 23.983707 27.112016h165.800407c19.812627 0 36.496945-14.598778 39.625255-33.368635l2.08554-8.342159 31.283095-198.126273 2.08554-10.427699c3.12831-19.812627 19.812627-33.368635 39.625255-33.368635h25.026476c160.586558 0 285.718941-64.651731 322.215886-253.393075 15.641548-79.250509 7.299389-144.94501-33.368635-190.826884-12.513238-13.556008-28.154786-26.069246-45.881874-35.454175" |
| 451 | fill="#009CDE" p-id="22660"></path> | 449 | fill="#009CDE" p-id="22660" |
| 450 | /> | ||
| 452 | <path | 451 | <path |
| 453 | d="M782.529121 259.649695c12.513238-79.250509 0-133.474542-42.753564-182.484726C691.808143 22.940937 606.301015 0 496.81018 0H178.765374c-21.898167 0-41.710794 16.684318-44.839104 38.582485L0.451728 879.05499c-3.12831 16.684318 10.427699 31.283096 27.112016 31.283096h196.040733l49.010184-312.830958-1.04277 9.384929c3.12831-21.898167 21.898167-38.582485 44.839104-38.582485h93.849287c183.527495 0 327.429735-74.03666 369.140529-289.89002l3.12831-18.769857" | 452 | d="M782.529121 259.649695c12.513238-79.250509 0-133.474542-42.753564-182.484726C691.808143 22.940937 606.301015 0 496.81018 0H178.765374c-21.898167 0-41.710794 16.684318-44.839104 38.582485L0.451728 879.05499c-3.12831 16.684318 10.427699 31.283096 27.112016 31.283096h196.040733l49.010184-312.830958-1.04277 9.384929c3.12831-21.898167 21.898167-38.582485 44.839104-38.582485h93.849287c183.527495 0 327.429735-74.03666 369.140529-289.89002l3.12831-18.769857" |
| 454 | fill="#012169" p-id="22661"></path> | 453 | fill="#012169" p-id="22661" |
| 454 | /> | ||
| 455 | <path | 455 | <path |
| 456 | d="M326.838693 260.692464c2.08554-13.556008 10.427699-23.983707 21.898167-30.240326 5.213849-2.08554 11.470468-4.171079 16.684318-4.171079h250.264766c29.197556 0 57.352342 2.08554 82.378819 6.256619 7.299389 1.04277 14.598778 2.08554 20.855397 4.17108 7.299389 1.04277 13.556008 3.12831 19.812627 5.213849l9.384929 3.128309c12.513238 4.171079 23.983707 9.384929 34.411405 14.598779 12.513238-79.250509 0-133.474542-42.753564-182.484726C691.808143 22.940937 606.301015 0 496.81018 0H178.765374c-21.898167 0-41.710794 16.684318-44.839104 38.582485L0.451728 879.05499c-3.12831 16.684318 10.427699 31.283096 27.112016 31.283096h196.040733l49.010184-312.830958L326.838693 260.692464z" | 456 | d="M326.838693 260.692464c2.08554-13.556008 10.427699-23.983707 21.898167-30.240326 5.213849-2.08554 11.470468-4.171079 16.684318-4.171079h250.264766c29.197556 0 57.352342 2.08554 82.378819 6.256619 7.299389 1.04277 14.598778 2.08554 20.855397 4.17108 7.299389 1.04277 13.556008 3.12831 19.812627 5.213849l9.384929 3.128309c12.513238 4.171079 23.983707 9.384929 34.411405 14.598779 12.513238-79.250509 0-133.474542-42.753564-182.484726C691.808143 22.940937 606.301015 0 496.81018 0H178.765374c-21.898167 0-41.710794 16.684318-44.839104 38.582485L0.451728 879.05499c-3.12831 16.684318 10.427699 31.283096 27.112016 31.283096h196.040733l49.010184-312.830958L326.838693 260.692464z" |
| 457 | fill="#003087" p-id="22662"></path> | 457 | fill="#003087" p-id="22662" |
| 458 | /> | ||
| 458 | </svg> | 459 | </svg> |
| 459 | </el-radio> | 460 | </el-radio> |
| 460 | </el-radio-group> | 461 | </el-radio-group> |
| 461 | <div v-if="payType == '2'&&wePayCodeUrl"> | 462 | <div v-if="payType == '2'&&wePayCodeUrl"> |
| 462 | <div class="payImgbox flexCenter"> | 463 | <div class="payImgbox flexCenter"> |
| 463 | <div> | 464 | <div> |
| 464 | <img :src="wePayCodeUrl" class="border" width="260"/> | 465 | <img :src="wePayCodeUrl" class="border" width="260"> |
| 465 | <img class="mt20" src="@/assets/img/sm.png"/> | 466 | <img class="mt20" src="@/assets/img/sm.png"> |
| 466 | </div> | 467 | </div> |
| 467 | <div class="ml20"> | 468 | <div class="ml20"> |
| 468 | <img height="360" src="@/assets/img/rr.jpg"/> | 469 | <img height="360" src="@/assets/img/rr.jpg"> |
| 469 | </div> | 470 | </div> |
| 470 | </div> | 471 | </div> |
| 471 | <div v-if="language==0" class="tip text-center text-danger"> | 472 | <div v-if="language==0" class="tip text-center text-danger"> |
| ... | @@ -474,7 +475,7 @@ | ... | @@ -474,7 +475,7 @@ |
| 474 | </div> | 475 | </div> |
| 475 | <div v-else class="tip text-center text-danger"> | 476 | <div v-else class="tip text-center text-danger"> |
| 476 | After payment, do not close this window and wait for confirmation of successful payment. | 477 | After payment, do not close this window and wait for confirmation of successful payment. |
| 477 | <br/> | 478 | <br> |
| 478 | If you have not received a notification of successful payment for a long time, | 479 | If you have not received a notification of successful payment for a long time, |
| 479 | please refresh the page | 480 | please refresh the page |
| 480 | </div> | 481 | </div> |
| ... | @@ -483,8 +484,10 @@ | ... | @@ -483,8 +484,10 @@ |
| 483 | </div> | 484 | </div> |
| 484 | <el-row align="middle" class="mt20 mb60" justify="center"> | 485 | <el-row align="middle" class="mt20 mb60" justify="center"> |
| 485 | <el-col :span="24" class="text-center"> | 486 | <el-col :span="24" class="text-center"> |
| 486 | <el-button v-if="!hideconfirmbtn&&form.viewStatus == '0'" class="btn-lineG w200px" round type="primary" | 487 | <el-button |
| 487 | @click="goPay"> | 488 | v-if="!hideconfirmbtn&&form.viewStatus == '0'" class="btn-lineG w200px" round type="primary" |
| 489 | @click="goPay" | ||
| 490 | > | ||
| 488 | {{ language == 0 ? '确定' : 'Submit' }} | 491 | {{ language == 0 ? '确定' : 'Submit' }} |
| 489 | </el-button> | 492 | </el-button> |
| 490 | <el-button v-if="form.viewStatus == '5'" round @click="unsubscribe"> | 493 | <el-button v-if="form.viewStatus == '5'" round @click="unsubscribe"> |
| ... | @@ -499,7 +502,7 @@ | ... | @@ -499,7 +502,7 @@ |
| 499 | <div v-if="form.payDate&&form.viewStatus=='1'"> | 502 | <div v-if="form.payDate&&form.viewStatus=='1'"> |
| 500 | <div class="text-center"> | 503 | <div class="text-center"> |
| 501 | <el-icon color="#32B16C" size="80"> | 504 | <el-icon color="#32B16C" size="80"> |
| 502 | <SuccessFilled/> | 505 | <SuccessFilled /> |
| 503 | </el-icon> | 506 | </el-icon> |
| 504 | <p class="text-success">{{ language == 0 ? '支付成功' : 'successful!' }}</p> | 507 | <p class="text-success">{{ language == 0 ? '支付成功' : 'successful!' }}</p> |
| 505 | <h3 class="wePrice">{{ language == 0 ? '¥' : '€' }}{{ totalFee || 0 }}</h3> | 508 | <h3 class="wePrice">{{ language == 0 ? '¥' : '€' }}{{ totalFee || 0 }}</h3> |
| ... | @@ -521,14 +524,16 @@ | ... | @@ -521,14 +524,16 @@ |
| 521 | </template> | 524 | </template> |
| 522 | </el-result> | 525 | </el-result> |
| 523 | </div> | 526 | </div> |
| 524 | <Dialog ref="DialogRef"/> | 527 | <Dialog ref="DialogRef" /> |
| 525 | 528 | ||
| 526 | <el-dialog v-model="showSJDialog" :close-on-click-modal="false" :close-on-press-escape="false" | 529 | <el-dialog |
| 527 | :title="language==0?'开收据':'Issue a receipt'" width="460px"> | 530 | v-model="showSJDialog" :close-on-click-modal="false" :close-on-press-escape="false" |
| 531 | :title="language==0?'开收据':'Issue a receipt'" width="460px" | ||
| 532 | > | ||
| 528 | <div class="flex"> | 533 | <div class="flex"> |
| 529 | <el-form-item :label="language==0?'开票人':'Name'"> | 534 | <el-form-item :label="language==0?'开票人':'Name'"> |
| 530 | <div class="flex"> | 535 | <div class="flex"> |
| 531 | <el-input v-model="lpName" :placeholder="language==0?'请输入开票人':'Please enter your name'"></el-input> | 536 | <el-input v-model="lpName" :placeholder="language==0?'请输入开票人':'Please enter your name'" /> |
| 532 | <el-button type="primary" @click="submitSJ">{{ language == 0 ? '提交并下载' : 'Submit' }}</el-button> | 537 | <el-button type="primary" @click="submitSJ">{{ language == 0 ? '提交并下载' : 'Submit' }}</el-button> |
| 533 | </div> | 538 | </div> |
| 534 | </el-form-item> | 539 | </el-form-item> |
| ... | @@ -544,16 +549,16 @@ | ... | @@ -544,16 +549,16 @@ |
| 544 | </template> | 549 | </template> |
| 545 | 550 | ||
| 546 | <script setup> | 551 | <script setup> |
| 547 | import {Search} from "@element-plus/icons-vue" | 552 | import { Search } from '@element-plus/icons-vue' |
| 548 | import {getCurrentInstance, ref} from 'vue' | 553 | import { getCurrentInstance, ref } from 'vue' |
| 549 | import {onMounted} from "@vue/runtime-core" | 554 | import { onMounted } from '@vue/runtime-core' |
| 550 | import {useRoute, useRouter} from "vue-router" | 555 | import { useRoute, useRouter } from 'vue-router' |
| 551 | import * as booking from "@/apiPc/booking" | 556 | import * as booking from '@/apiPc/booking' |
| 552 | import Dialog from '@/viewsPc/booking/component/dailog.vue' | 557 | import Dialog from '@/viewsPc/booking/component/dailog.vue' |
| 553 | import MatchInfoRow from "@/viewsPc/match/components/matchInfo-row"; | 558 | import MatchInfoRow from '@/viewsPc/match/components/matchInfo-row' |
| 554 | 559 | ||
| 555 | 560 | ||
| 556 | const {proxy} = getCurrentInstance() | 561 | const { proxy } = getCurrentInstance() |
| 557 | const route = useRoute() | 562 | const route = useRoute() |
| 558 | const router = useRouter() | 563 | const router = useRouter() |
| 559 | const matchInfo = ref({}) | 564 | const matchInfo = ref({}) |
| ... | @@ -563,19 +568,19 @@ const payType = ref('2') | ... | @@ -563,19 +568,19 @@ const payType = ref('2') |
| 563 | const orderId = ref(route.query.orderId) | 568 | const orderId = ref(route.query.orderId) |
| 564 | const matchId = ref() | 569 | const matchId = ref() |
| 565 | const groupId = ref() | 570 | const groupId = ref() |
| 566 | import useUserStore from "@/store/modules/user"; | 571 | import useUserStore from '@/store/modules/user' |
| 567 | import FileUpload from "@/components/FileUpload"; | 572 | import FileUpload from '@/components/FileUpload' |
| 568 | import {useStorage} from "@vueuse/core/index"; | 573 | import { useStorage } from '@vueuse/core/index' |
| 569 | import {ElMessage, ElMessageBox} from "element-plus"; | 574 | import { ElMessage, ElMessageBox } from 'element-plus' |
| 570 | import { | 575 | import { |
| 571 | cancelOrder, | 576 | cancelOrder, |
| 572 | cancelOrder2, getBaseInfoByActiveId, | 577 | cancelOrder2, getBaseInfoByActiveId, |
| 573 | getCarBilldetailbyId, | 578 | getCarBilldetailbyId, |
| 574 | getFoodBilldetailbyId, | 579 | getFoodBilldetailbyId, |
| 575 | getMealOrderInfoByLogex, getPhotoOrderInfo, getPhotoOrderInfoByLogex, getTicketInfoByActivityId, getTicketOrderInfo, | 580 | getMealOrderInfoByLogex, getPhotoOrderInfo, getPhotoOrderInfoByLogex, getTicketInfoByActivityId, getTicketOrderInfo |
| 576 | } from "@/apiPc/booking"; | 581 | } from '@/apiPc/booking' |
| 577 | import dayjs from 'dayjs' | 582 | import dayjs from 'dayjs' |
| 578 | import {delPerson} from "@/api/exam/person"; | 583 | import { delPerson } from '@/api/exam/person' |
| 579 | 584 | ||
| 580 | const isLogin = ref(false) | 585 | const isLogin = ref(false) |
| 581 | const language = useStorage('language', 0) | 586 | const language = useStorage('language', 0) |
| ... | @@ -635,7 +640,10 @@ onMounted(() => { | ... | @@ -635,7 +640,10 @@ onMounted(() => { |
| 635 | 640 | ||
| 636 | function getData() { | 641 | function getData() { |
| 637 | if (type.value == 'car') { | 642 | if (type.value == 'car') { |
| 638 | return booking.getCarBilldetailbyId({orderId: orderId.value}).then(res => { | 643 | form.value = { |
| 644 | pickUpBo: {} | ||
| 645 | } | ||
| 646 | return booking.getCarBilldetailbyId({ orderId: orderId.value }).then(res => { | ||
| 639 | form.value = res.data | 647 | form.value = res.data |
| 640 | if (language.value == 0) { | 648 | if (language.value == 0) { |
| 641 | totalFee.value = res.data.total | 649 | totalFee.value = res.data.total |
| ... | @@ -648,7 +656,7 @@ function getData() { | ... | @@ -648,7 +656,7 @@ function getData() { |
| 648 | }) | 656 | }) |
| 649 | } | 657 | } |
| 650 | if (type.value == 'food') { | 658 | if (type.value == 'food') { |
| 651 | return booking.getFoodBilldetailbyId({orderId: orderId.value}).then(res => { | 659 | return booking.getFoodBilldetailbyId({ orderId: orderId.value }).then(res => { |
| 652 | if (language.value == 0) { | 660 | if (language.value == 0) { |
| 653 | totalFee.value = res.data.total | 661 | totalFee.value = res.data.total |
| 654 | } else { | 662 | } else { |
| ... | @@ -661,7 +669,7 @@ function getData() { | ... | @@ -661,7 +669,7 @@ function getData() { |
| 661 | }) | 669 | }) |
| 662 | } | 670 | } |
| 663 | if (type.value == 'hotel') { | 671 | if (type.value == 'hotel') { |
| 664 | return booking.getRoomBilldetailbyId({orderId: orderId.value}).then(res => { | 672 | return booking.getRoomBilldetailbyId({ orderId: orderId.value }).then(res => { |
| 665 | if (language.value == 0) { | 673 | if (language.value == 0) { |
| 666 | totalFee.value = res.data.total | 674 | totalFee.value = res.data.total |
| 667 | } else { | 675 | } else { |
| ... | @@ -692,7 +700,7 @@ function getData() { | ... | @@ -692,7 +700,7 @@ function getData() { |
| 692 | 700 | ||
| 693 | // 票务订单详情 | 701 | // 票务订单详情 |
| 694 | async function getTicketOrderInfoFN() { | 702 | async function getTicketOrderInfoFN() { |
| 695 | const res = await getTicketOrderInfo({orderId: orderId.value}) | 703 | const res = await getTicketOrderInfo({ orderId: orderId.value }) |
| 696 | form.value = res.data | 704 | form.value = res.data |
| 697 | form.value.extJson = JSON.parse(form.value.extJson) | 705 | form.value.extJson = JSON.parse(form.value.extJson) |
| 698 | try { | 706 | try { |
| ... | @@ -709,11 +717,10 @@ async function getTicketOrderInfoFN() { | ... | @@ -709,11 +717,10 @@ async function getTicketOrderInfoFN() { |
| 709 | 717 | ||
| 710 | } | 718 | } |
| 711 | console.log(form.value) | 719 | console.log(form.value) |
| 712 | |||
| 713 | } | 720 | } |
| 714 | 721 | ||
| 715 | async function getDetail(activeId) { | 722 | async function getDetail(activeId) { |
| 716 | const res = await getTicketInfoByActivityId({activityId: activeId}) | 723 | const res = await getTicketInfoByActivityId({ activityId: activeId }) |
| 717 | matchForm.value = res.data | 724 | matchForm.value = res.data |
| 718 | console.log(matchForm.value) | 725 | console.log(matchForm.value) |
| 719 | } | 726 | } |
| ... | @@ -725,14 +732,14 @@ function goHome() { | ... | @@ -725,14 +732,14 @@ function goHome() { |
| 725 | 732 | ||
| 726 | function goPay() { | 733 | function goPay() { |
| 727 | if (payType.value == '2') { | 734 | if (payType.value == '2') { |
| 728 | booking.createWePay({orderId: orderId.value}).then(res => { | 735 | booking.createWePay({ orderId: orderId.value }).then(res => { |
| 729 | wePayCodeUrl.value = res.data | 736 | wePayCodeUrl.value = res.data |
| 730 | hideconfirmbtn.value = true | 737 | hideconfirmbtn.value = true |
| 731 | startforGetData() | 738 | startforGetData() |
| 732 | }) | 739 | }) |
| 733 | } | 740 | } |
| 734 | if (payType.value == '3') { | 741 | if (payType.value == '3') { |
| 735 | booking.createPalPay({orderId: orderId.value}).then(res => { | 742 | booking.createPalPay({ orderId: orderId.value }).then(res => { |
| 736 | if (res.data) { | 743 | if (res.data) { |
| 737 | location.href = res.data | 744 | location.href = res.data |
| 738 | } | 745 | } |
| ... | @@ -740,7 +747,7 @@ function goPay() { | ... | @@ -740,7 +747,7 @@ function goPay() { |
| 740 | } | 747 | } |
| 741 | } | 748 | } |
| 742 | 749 | ||
| 743 | let handle; | 750 | let handle |
| 744 | 751 | ||
| 745 | function startforGetData() { | 752 | function startforGetData() { |
| 746 | handle = setTimeout(() => { | 753 | handle = setTimeout(() => { |
| ... | @@ -798,7 +805,7 @@ function showLogin() { | ... | @@ -798,7 +805,7 @@ function showLogin() { |
| 798 | 805 | ||
| 799 | 806 | ||
| 800 | function MakeUpOrder() { | 807 | function MakeUpOrder() { |
| 801 | return booking.getMealOrderInfo({orderId: orderId.value}).then(res => { | 808 | return booking.getMealOrderInfo({ orderId: orderId.value }).then(res => { |
| 802 | form.value = res.data | 809 | form.value = res.data |
| 803 | totalFee.value = language.value == 0 ? form.value.total : form.value.totalEn | 810 | totalFee.value = language.value == 0 ? form.value.total : form.value.totalEn |
| 804 | matchId.value = form.value.activeId | 811 | matchId.value = form.value.activeId |
| ... | @@ -811,7 +818,7 @@ function MakeUpOrder() { | ... | @@ -811,7 +818,7 @@ function MakeUpOrder() { |
| 811 | } | 818 | } |
| 812 | 819 | ||
| 813 | function MakeUpIno() { | 820 | function MakeUpIno() { |
| 814 | booking.getMealOrderInfoByLogex({asmId: form.value.asmId}).then(res => { | 821 | booking.getMealOrderInfoByLogex({ asmId: form.value.asmId }).then(res => { |
| 815 | formInfo.value = res.data | 822 | formInfo.value = res.data |
| 816 | console.log(res) | 823 | console.log(res) |
| 817 | }) | 824 | }) |
| ... | @@ -823,7 +830,7 @@ function MakeUpIno() { | ... | @@ -823,7 +830,7 @@ function MakeUpIno() { |
| 823 | 830 | ||
| 824 | 831 | ||
| 825 | function photographyOrder() { | 832 | function photographyOrder() { |
| 826 | return booking.getPhotoOrderInfo({orderId: orderId.value}).then(res => { | 833 | return booking.getPhotoOrderInfo({ orderId: orderId.value }).then(res => { |
| 827 | form.value = res.data | 834 | form.value = res.data |
| 828 | totalFee.value = language.value == 0 ? form.value.total : form.value.totalEn | 835 | totalFee.value = language.value == 0 ? form.value.total : form.value.totalEn |
| 829 | photographyInfo() | 836 | photographyInfo() |
| ... | @@ -834,7 +841,7 @@ function photographyOrder() { | ... | @@ -834,7 +841,7 @@ function photographyOrder() { |
| 834 | } | 841 | } |
| 835 | 842 | ||
| 836 | function photographyInfo() { | 843 | function photographyInfo() { |
| 837 | booking.getPhotoOrderInfoByLogex({aspId: form.value.aspId}).then(res => { | 844 | booking.getPhotoOrderInfoByLogex({ aspId: form.value.aspId }).then(res => { |
| 838 | formInfo.value = res.data | 845 | formInfo.value = res.data |
| 839 | }) | 846 | }) |
| 840 | // .catch((e) => { | 847 | // .catch((e) => { |
| ... | @@ -844,7 +851,7 @@ function photographyInfo() { | ... | @@ -844,7 +851,7 @@ function photographyInfo() { |
| 844 | } | 851 | } |
| 845 | 852 | ||
| 846 | const cancel = () => { | 853 | const cancel = () => { |
| 847 | //取消订单 | 854 | // 取消订单 |
| 848 | proxy.$modal.confirm(language.value == 0 ? '确定取消订单吗 ?' : `Are you sure to cancel the order?`).then(() => { | 855 | proxy.$modal.confirm(language.value == 0 ? '确定取消订单吗 ?' : `Are you sure to cancel the order?`).then(() => { |
| 849 | return cancelOrder2(orderId.value).then(res => { | 856 | return cancelOrder2(orderId.value).then(res => { |
| 850 | getData() | 857 | getData() |
| ... | @@ -880,7 +887,6 @@ function exportPdf() { | ... | @@ -880,7 +887,6 @@ function exportPdf() { |
| 880 | ...obj | 887 | ...obj |
| 881 | }, `Hotel Reservation.pdf`) | 888 | }, `Hotel Reservation.pdf`) |
| 882 | } | 889 | } |
| 883 | |||
| 884 | } | 890 | } |
| 885 | 891 | ||
| 886 | // 套餐详情 | 892 | // 套餐详情 | ... | ... |
src/viewsPc/booking/pay_old.vue
0 → 100644
| 1 | <template> | ||
| 2 | <div style="min-height: 100vh"> | ||
| 3 | <div v-if="!errorBox" class="box"> | ||
| 4 | <el-card :body-style="{ padding: '0px' }" class="mt20 mb60"> | ||
| 5 | <div slot="header"> | ||
| 6 | <div class="bg-lineg">{{ language == 0 ? '缴费清单' : 'Payment List' }}</div> | ||
| 7 | </div> | ||
| 8 | <div v-if="isLogin"> | ||
| 9 | <div class="pd20"> | ||
| 10 | <div v-if="type == 'hotel'"> | ||
| 11 | <div class="leftboderTT">{{ language == 0 ? '酒店信息' : 'Hotel Information' }}</div> | ||
| 12 | <div class="border-info mt20"> | ||
| 13 | <h3>{{ form.hotelName }}</h3> | ||
| 14 | <el-row> | ||
| 15 | <el-col> | ||
| 16 | {{ language == 0 ? '地址' : 'Address' }}: | ||
| 17 | <span v-if="language == 0">{{ form.provinceName }} {{ form.cityName }} {{ form.areaName }} </span> | ||
| 18 | {{ form.address }} | ||
| 19 | </el-col> | ||
| 20 | <el-col> | ||
| 21 | {{ language == 0 ? '入住信息' : 'Check-in&Check-out' }}:{{ form.messageObj?.roomStayDate }} | ||
| 22 | </el-col> | ||
| 23 | <el-col> | ||
| 24 | {{ language == 0 ? '房间信息' : 'Room Information' }}:{{ form.messageObj?.roomName }} | | ||
| 25 | {{ form.roomNum }} | ||
| 26 | {{ language == 0 ? '间' : 'rooms' }} | ||
| 27 | </el-col> | ||
| 28 | </el-row> | ||
| 29 | </div> | ||
| 30 | </div> | ||
| 31 | <div v-if="type == 'car'"> | ||
| 32 | <div class="leftboderTT">{{ language == 0 ? '路线信息' : 'Car Information' }}</div> | ||
| 33 | <div class="border-info mt20"> | ||
| 34 | <div class="flex aic"> | ||
| 35 | <h3 class="esp">{{ form.checkIn }}</h3> | ||
| 36 | <img class="w40px mlr20 " src="@/assets/booking/wf.png" style="height: 40px;"/> | ||
| 37 | <h3 class="esp">{{ form.checkOut }}</h3> | ||
| 38 | </div> | ||
| 39 | </div> | ||
| 40 | </div> | ||
| 41 | <div v-if="type == 'food'"> | ||
| 42 | <div class="leftboderTT">{{ language == 0 ? '饭店信息' : 'Restaurant Information' }}</div> | ||
| 43 | <div class="border-info mt20"> | ||
| 44 | <h3>{{ form.name }}</h3> | ||
| 45 | <!-- <p>{{ language == 0 ?'地址':'Address' }}:{{form.address}}</p>--> | ||
| 46 | <el-row> | ||
| 47 | <el-col :lg="12" :md="12" :sm="12" :xs="24"> | ||
| 48 | <div class="mb10">{{ language == 0 ? '送餐地址' : 'Delivery Address' }}:{{ | ||
| 49 | form.address || '-' | ||
| 50 | }} | ||
| 51 | </div> | ||
| 52 | </el-col> | ||
| 53 | <el-col :lg="12" :md="12" :sm="12" :xs="24"> | ||
| 54 | <div>{{ language == 0 ? '送餐时间' : 'Delivery Time' }}:{{ form.psStart }} ~ {{ form.psEnd }}</div> | ||
| 55 | </el-col> | ||
| 56 | </el-row> | ||
| 57 | </div> | ||
| 58 | </div> | ||
| 59 | <div v-if="type == 'makeUp'"> | ||
| 60 | <div class="leftboderTT">{{ language == 0 ? '化妆信息' : 'Hotel Information' }}</div> | ||
| 61 | <div class="border-info mt20"> | ||
| 62 | <h3>{{ formInfo.studioName }}</h3> | ||
| 63 | <el-row> | ||
| 64 | <el-col> | ||
| 65 | {{ language == 0 ? '地址' : 'Address' }}: | ||
| 66 | <span>{{ formInfo.remarks }} </span> | ||
| 67 | </el-col> | ||
| 68 | <el-col> | ||
| 69 | {{ language == 0 ? '套餐' : 'Package' }}:{{ formInfo.mealName }} <span | ||
| 70 | style="margin-left: 40px">{{ language == 0 ? '价格' : 'Price' }}</span><span | ||
| 71 | class="price">{{ language == 0 ? '¥' + formInfo.mealPrice : '€' + formInfo.mealPriceEn }}</span> | ||
| 72 | <span style="margin-left: 40px">{{ | ||
| 73 | language == 0 ? '工作室电话' : 'Studio phone number' | ||
| 74 | }}:{{ formInfo.contact }}</span> | ||
| 75 | </el-col> | ||
| 76 | <el-col> | ||
| 77 | <div class="esp_3 s" @click="handleView()"> | ||
| 78 | {{ language == 0 ? '套餐说明' : 'Package Description' }}:{{ formInfo.introduction }} | ||
| 79 | </div> | ||
| 80 | </el-col> | ||
| 81 | <!-- <el-col>--> | ||
| 82 | <!-- <div v-if="language == 0">--> | ||
| 83 | <!-- 套餐详情: <span v-html="form.details"></span>--> | ||
| 84 | <!-- </div>--> | ||
| 85 | <!-- <div v-else>--> | ||
| 86 | <!-- Package details:<span v-html="form.detailsEn"></span>--> | ||
| 87 | <!-- </div>--> | ||
| 88 | <!--<!– {{ language == 0 ?'套餐详情':'Package details' }}:{{ language == 0?form.details:form.detailsEn}}–>--> | ||
| 89 | <!-- </el-col>--> | ||
| 90 | </el-row> | ||
| 91 | </div> | ||
| 92 | </div> | ||
| 93 | <div v-if="type == 'photography'"> | ||
| 94 | <div class="leftboderTT">{{ language == 0 ? '拍摄信息' : 'Shooting Information' }}</div> | ||
| 95 | <div class="border-info mt20"> | ||
| 96 | <h3>{{ formInfo.shootName }}</h3> | ||
| 97 | <el-row> | ||
| 98 | <el-col> | ||
| 99 | {{ language == 0 ? '地址' : 'Address' }}: | ||
| 100 | <span>{{ formInfo.remarks }} </span> | ||
| 101 | </el-col> | ||
| 102 | <el-col> | ||
| 103 | {{ language == 0 ? '套餐' : 'Package' }}:{{ formInfo.photoName }} <span | ||
| 104 | style="margin-left: 40px">{{ language == 0 ? '价格' : 'Price' }}</span><span | ||
| 105 | class="price">{{ language == 0 ? '¥' + formInfo.photoPrice : '€' + formInfo.photoPriceEn }}</span> | ||
| 106 | </el-col> | ||
| 107 | <el-col> | ||
| 108 | {{ language == 0 ? '套餐说明' : 'Package Description' }}:{{ formInfo.introduction }} | ||
| 109 | </el-col> | ||
| 110 | </el-row> | ||
| 111 | </div> | ||
| 112 | </div> | ||
| 113 | <div v-if="type == 'ticket'"> | ||
| 114 | <div class="leftboderTT">{{ language == 0 ? '购票信息' : 'Ticket Information' }}</div> | ||
| 115 | <div class="border-info mt20"> | ||
| 116 | <h3>{{ matchForm.name }}</h3> | ||
| 117 | <el-row> | ||
| 118 | <el-col> | ||
| 119 | {{ language == 0 ? '地址' : 'Address' }}: | ||
| 120 | {{ matchForm.address }} | ||
| 121 | </el-col> | ||
| 122 | <el-col> | ||
| 123 | {{ | ||
| 124 | form?.extJson?.ticketType?.name | ||
| 125 | }}:{{ form?.extJson?.num }}{{ language == 0 ? '张' : 'Tickets' }} | ||
| 126 | </el-col> | ||
| 127 | <el-col> | ||
| 128 | {{ | ||
| 129 | language == 0 ? '时间' : 'Time' | ||
| 130 | }}:{{ | ||
| 131 | dayjs(form?.extJson?.ticketDate?.ticketStart).format('YYYY-MM-DD') | ||
| 132 | }}{{ | ||
| 133 | form.extJson?.ticketDate?.ticketType == 1 ? '~' + dayjs(form?.extJson?.ticketDate?.ticketEnd).format('YYYY-MM-DD') : '' | ||
| 134 | }} | ||
| 135 | </el-col> | ||
| 136 | <el-col v-if="form?.extJson?.ticketDate?.isCountSale==1"> | ||
| 137 | {{ | ||
| 138 | language == 0 ? `满${form?.extJson?.ticketDate.counts}人优惠` : `Discount for up to ${form?.extJson?.ticketDate.counts} people` | ||
| 139 | }}<span v-if="language == 0">{{ form?.extJson?.ticketDate.discount }}折</span> | ||
| 140 | <span v-else>{{ (10 - form?.extJson?.ticketDate.discount) * 10 + '%' }}off</span> | ||
| 141 | </el-col> | ||
| 142 | <!-- <el-col>--> | ||
| 143 | <!-- {{--> | ||
| 144 | <!-- language == 0 ? '原价票' : 'Cost Ticket'--> | ||
| 145 | <!-- }}:{{--> | ||
| 146 | <!-- language == 0 ? form?.extJson?.ticketDate?.price : form?.extJson?.ticketDate?.priceEn--> | ||
| 147 | <!-- }}{{ language == 0 ? '元' : 'Euro' }} x 1--> | ||
| 148 | <!-- {{ language == 0 ? '张' : 'Tickets' }}--> | ||
| 149 | <!-- </el-col>--> | ||
| 150 | <!-- <el-col>--> | ||
| 151 | <!-- {{--> | ||
| 152 | <!-- language == 0 ? '优惠票' : 'Concession Ticket'--> | ||
| 153 | <!-- }}:{{--> | ||
| 154 | <!-- language == 0 ? form?.extJson?.ticketDate?.rebatePrice : form?.extJson?.ticketDate?.rebatePriceEn--> | ||
| 155 | <!-- }}{{ language == 0 ? '元' : 'Euro' }} x 1--> | ||
| 156 | <!-- {{ language == 0 ? '张' : 'Tickets' }}--> | ||
| 157 | <!-- </el-col>--> | ||
| 158 | |||
| 159 | </el-row> | ||
| 160 | </div> | ||
| 161 | </div> | ||
| 162 | |||
| 163 | <div class="leftboderTT">{{ language == 0 ? '预订信息' : 'Booking information' }}</div> | ||
| 164 | |||
| 165 | <div class="border-info mt20"> | ||
| 166 | <el-row v-if="type == 'hotel'"> | ||
| 167 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | ||
| 168 | <div>{{ language == 0 ? '入住人' : 'Check-in Person' }}:{{ form.rzUsers }}</div> | ||
| 169 | </el-col> | ||
| 170 | <el-col :lg="8" :md="12" :sm="12" :xs="24">{{ | ||
| 171 | language == 0 ? '联系方式' : 'Contact Information' | ||
| 172 | }}:{{ form.phone }} | ||
| 173 | </el-col> | ||
| 174 | <el-col :lg="8" :md="12" :sm="12" :xs="24"></el-col> | ||
| 175 | </el-row> | ||
| 176 | <el-row v-if="type == 'car'"> | ||
| 177 | <el-col v-if="form.pickUpBo?.revTime" :lg="12" :md="12" :sm="12" :xs="24"> | ||
| 178 | <h4>{{ language == 0 ? '接站信息' : 'Pick-up Information' }}</h4> | ||
| 179 | <div class="st-info"> | ||
| 180 | <div>{{ language == 0 ? '用车时间' : 'Delivery Time' }}:{{ form.pickUpBo.revTime }}</div> | ||
| 181 | <div v-for="(car,index) in form.pickUpBo.carsList" :key="index" class="carLine"> | ||
| 182 | <div v-if="car.num > 0"> | ||
| 183 | <label>{{ car.name }}</label> | ||
| 184 | <el-tag class="mr10">{{ car.carSeat }} {{ language == 0 ? '座 ' : 'Sets' }}</el-tag> | ||
| 185 | <el-tag>{{ car.carColor }}</el-tag> | ||
| 186 | </div> | ||
| 187 | |||
| 188 | <span v-if="car.num > 0"> {{ car.num }}{{ | ||
| 189 | language == 0 ? '辆' : 'Cars' | ||
| 190 | }} * {{ language == 0 ? '¥' : '€' }}{{ car.price }}</span> | ||
| 191 | </div> | ||
| 192 | |||
| 193 | <div>{{ language == 0 ? '人数' : 'People' }}: {{ form.pickUpBo.count }}</div> | ||
| 194 | <div>{{ language == 0 ? '航班/火车班次' : 'Flight/Train' }}: {{ form.pickUpBo.no }}</div> | ||
| 195 | <div>{{ language == 0 ? '接机/接站地点' : 'Pick-up/Drop-off Place' }}: | ||
| 196 | {{ form.pickUpBo.noAddress }} | ||
| 197 | </div> | ||
| 198 | <div>{{ language == 0 ? '送达地点' : 'Delivery Place' }}: {{ form.pickUpBo.deliveryAddress }}</div> | ||
| 199 | <div>{{ language == 0 ? '联系人' : 'Contact Person' }}:{{ form.pickUpBo.contacts }}</div> | ||
| 200 | <div>{{ language == 0 ? '联系电话' : 'Contact Phone' }}:{{ form.pickUpBo.phone }}</div> | ||
| 201 | <div>{{ language == 0 ? '备注' : 'Remarks' }}:{{ form.pickUpBo.remarks || '-' }}</div> | ||
| 202 | </div> | ||
| 203 | </el-col> | ||
| 204 | <el-col v-if="form.dropOffBo?.revTime" :lg="12" :md="12" :sm="12" :xs="24"> | ||
| 205 | <h4>{{ language == 0 ? '送站信息' : 'Drop-off Information' }}</h4> | ||
| 206 | <div class="st-info"> | ||
| 207 | <div>{{ language == 0 ? '用车时间' : 'Delivery Time' }}:{{ form.dropOffBo.revTime }}</div> | ||
| 208 | <div v-for="(car,index) in form.dropOffBo.carsList" :key="index" class="carLine"> | ||
| 209 | <div v-if="car.num > 0"> | ||
| 210 | <label>{{ car.name }}</label> | ||
| 211 | <el-tag class="mr10">{{ car.carSeat }} {{ language == 0 ? '座 ' : 'Sets' }}</el-tag> | ||
| 212 | <el-tag>{{ car.carColor }}</el-tag> | ||
| 213 | </div> | ||
| 214 | |||
| 215 | <span v-if="car.num > 0"> {{ car.num }}{{ | ||
| 216 | language == 0 ? '辆' : 'Cars' | ||
| 217 | }} * {{ language == 0 ? '¥' : '€' }}{{ car.price }}</span> | ||
| 218 | </div> | ||
| 219 | <div>{{ language == 0 ? '人数' : 'Counts' }}:{{ form.dropOffBo.count }}</div> | ||
| 220 | <div>{{ language == 0 ? '联系人' : 'Contact Person' }}:{{ form.dropOffBo.contacts }}</div> | ||
| 221 | <div>{{ language == 0 ? '联系电话' : 'Contact Phone' }}:{{ form.dropOffBo.phone }}</div> | ||
| 222 | <div>{{ language == 0 ? '备注' : 'Remarks' }}:{{ form.dropOffBo.remarks || '-' }}</div> | ||
| 223 | </div> | ||
| 224 | </el-col> | ||
| 225 | </el-row> | ||
| 226 | <el-row v-if="type == 'food'"> | ||
| 227 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | ||
| 228 | <div v-for="f in form.messageObj?.foodsList"> | ||
| 229 | <span v-if="f.category==0">{{ language == 0 ? '早餐' : 'Breakfast' }}</span> | ||
| 230 | <span v-if="f.category==1">{{ language == 0 ? '午餐' : 'Lunch' }}</span> | ||
| 231 | <span v-if="f.category==2">{{ language == 0 ? '晚餐' : 'Dinner' }}</span> | ||
| 232 | : {{ f.name }} * {{ f.num }} {{ language == 0 ? '份' : 'pcs' }} | ||
| 233 | </div> | ||
| 234 | </el-col> | ||
| 235 | <el-col :lg="12" :md="12" :sm="12" :xs="24"> | ||
| 236 | <div class="mb10">{{ | ||
| 237 | language == 0 ? '订餐周期' : 'Check-in date' | ||
| 238 | }}:{{ form.extJsonObj?.dcStart || '-' }} ~ {{ form.extJsonObj?.dcEnd || '-' }} | ||
| 239 | </div> | ||
| 240 | </el-col> | ||
| 241 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | ||
| 242 | <div class="mb10">{{ language == 0 ? '联系人' : 'Contact Person' }}:{{ form.contacts }}</div> | ||
| 243 | </el-col> | ||
| 244 | <el-col :lg="8" :md="12" :sm="12" :xs="24">{{ | ||
| 245 | language == 0 ? '联系方式' : 'Contact Phone' | ||
| 246 | }}:{{ form.phone }} | ||
| 247 | </el-col> | ||
| 248 | <el-col :span="24">{{ language == 0 ? '备注' : 'Remarks' }}:{{ form.remarks || '-' }}</el-col> | ||
| 249 | </el-row> | ||
| 250 | <el-row v-if="type == 'makeUp'"> | ||
| 251 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | ||
| 252 | <div class="mb10">{{ language == 0 ? '化妆时间' : 'Makeup time' }}: | ||
| 253 | <!-- {{ dayjs(form.dcStart).format('YYYY-MM-DD') +' ' }} ~ {{dayjs(form.dcStart).format('YYYY-MM-DD') +' '}}--> | ||
| 254 | {{ dayjs(form.dcStart).format('YYYY-MM-DD') + ' ' + form.nameStart }} ~ | ||
| 255 | {{ dayjs(form.dcStart).format('YYYY-MM-DD') + ' ' + form.nameEnd }} | ||
| 256 | </div> | ||
| 257 | </el-col> | ||
| 258 | <el-col :lg="12" :md="12" :sm="12" :xs="24"> | ||
| 259 | <div class="mb10">{{ language == 0 ? '预约数' : 'Number of appointments' }}:{{ form.num }}</div> | ||
| 260 | </el-col> | ||
| 261 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | ||
| 262 | <div class="mb10">{{ language == 0 ? '联系人' : 'Contact Person' }}:{{ form.contacts }}</div> | ||
| 263 | </el-col> | ||
| 264 | <el-col :lg=12 :md="12" :sm="12" :xs="24"> | ||
| 265 | <div class="mb10"> | ||
| 266 | {{ language == 0 ? '联系方式' : 'Contact Phone' }}:{{ form.phone }} | ||
| 267 | </div> | ||
| 268 | </el-col> | ||
| 269 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | ||
| 270 | <div class="mb10"> | ||
| 271 | {{ language == 0 ? '备注' : 'Remarks' }}:{{ form.remarks }} | ||
| 272 | </div> | ||
| 273 | </el-col> | ||
| 274 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | ||
| 275 | <div class="mb10"> | ||
| 276 | {{ language == 0 ? '地点' : 'Address' }}:{{ language == 0 ? formInfo.address : formInfo.addressEn }} | ||
| 277 | </div> | ||
| 278 | </el-col> | ||
| 279 | </el-row> | ||
| 280 | <el-row v-if="type == 'photography'"> | ||
| 281 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | ||
| 282 | <div class="mb10">{{ language == 0 ? '拍摄时间' : 'Makeup time' }}: | ||
| 283 | {{ dayjs(form.dcStart).format('YYYY-MM-DD') + ' ' + form.nameStart }} ~ | ||
| 284 | {{ dayjs(form.dcStart).format('YYYY-MM-DD') + ' ' + form.nameEnd }} | ||
| 285 | </div> | ||
| 286 | </el-col> | ||
| 287 | <el-col :lg="12" :md="12" :sm="12" :xs="24"> | ||
| 288 | <div class="mb10">{{ language == 0 ? '预约数' : 'Number of appointments' }}:{{ form.num }}</div> | ||
| 289 | </el-col> | ||
| 290 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | ||
| 291 | <div class="mb10">{{ language == 0 ? '联系人' : 'Contact Person' }}:{{ form.contacts }}</div> | ||
| 292 | </el-col> | ||
| 293 | <el-col :lg="8" :md="12" :sm="12" :xs="24">{{ | ||
| 294 | language == 0 ? '联系方式' : 'Contact Phone' | ||
| 295 | }}:{{ form.phone }} | ||
| 296 | </el-col> | ||
| 297 | <el-col :span="24">{{ language == 0 ? '备注' : 'Remarks' }}:{{ form.remarks }}</el-col> | ||
| 298 | </el-row> | ||
| 299 | <el-row v-if="type == 'ticket'" style="width: 100%"> | ||
| 300 | <el-row v-for="v in form.extJson?.message" style="width: 100%"> | ||
| 301 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | ||
| 302 | <div>{{ v.name }} | ||
| 303 | </div> | ||
| 304 | </el-col> | ||
| 305 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | ||
| 306 | <!-- <div>{{--> | ||
| 307 | <!-- !v.discount ? language == 0 ? '原价票' : 'Cost Ticket' : language == 0 ? '优惠票' : 'Concession Ticket'--> | ||
| 308 | <!-- }}--> | ||
| 309 | <!-- </div>--> | ||
| 310 | <div>{{ v.idCard }} | ||
| 311 | </div> | ||
| 312 | </el-col> | ||
| 313 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | ||
| 314 | <div v-if="language == 0 "> | ||
| 315 | {{ language == 0 ? '¥' : '€' }} | ||
| 316 | {{ | ||
| 317 | !v.discount ? form.extJson?.ticketDate?.price : form.extJson?.ticketDate?.rebatePrice | ||
| 318 | }} | ||
| 319 | /{{ language == 0 ? '张' : 'Tickets' }} | ||
| 320 | </div> | ||
| 321 | <div v-else> | ||
| 322 | {{ language == 0 ? '¥' : '€' }} | ||
| 323 | {{ | ||
| 324 | !v.discount ? form.extJson?.ticketDate?.priceEn : form.extJson?.ticketDate?.rebatePriceEn | ||
| 325 | }} | ||
| 326 | /{{ language == 0 ? '张' : 'Tickets' }} | ||
| 327 | </div> | ||
| 328 | </el-col> | ||
| 329 | </el-row> | ||
| 330 | <el-row style="width: 100%"> | ||
| 331 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | ||
| 332 | <div>{{ | ||
| 333 | language == 0 ? '购票数量' : 'Number of tickets purchased' | ||
| 334 | }}:{{ form.num }}{{ language == 0 ? '张' : 'Tickets' }} | ||
| 335 | </div> | ||
| 336 | </el-col> | ||
| 337 | <el-col :lg="8" :md="12" :sm="12" :xs="24">{{ | ||
| 338 | language == 0 ? '联系方式' : 'Contact Information' | ||
| 339 | }}:{{ form.phone }} | ||
| 340 | </el-col> | ||
| 341 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | ||
| 342 | {{ language == 0 ? '共计' : 'total' }}:{{ | ||
| 343 | language == 0 ? '¥' : '€' | ||
| 344 | }}{{ Number(totalFee).toFixed(2) }} | ||
| 345 | </el-col> | ||
| 346 | </el-row> | ||
| 347 | |||
| 348 | </el-row> | ||
| 349 | |||
| 350 | </div> | ||
| 351 | |||
| 352 | <el-row align="middle" justify="space-between"> | ||
| 353 | <el-col :lg="12"> | ||
| 354 | <div v-if="form.payDate">{{ language == 0 ? '支付时间' : 'Payment Time' }}:{{ form.payDate }}</div> | ||
| 355 | <div v-if="form.payDate" class="mt10">{{ language == 0 ? '支付方式' : 'Payment Method' }}: | ||
| 356 | <span v-if="form.paymentType=='1'">{{ language == 0 ? '微信支付' : 'WePay' }}</span> | ||
| 357 | <span v-if="form.paymentType=='3'">PayPal</span> | ||
| 358 | </div> | ||
| 359 | </el-col> | ||
| 360 | <el-col :lg="12" class="result"> | ||
| 361 | <div v-if="form.viewStatus=='0'" class="priceb">{{ language == 0 ? '待支付金额' : 'Amount Due' }}: | ||
| 362 | <span class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span> | ||
| 363 | </div> | ||
| 364 | <div v-if="form.viewStatus=='1'||form.viewStatus=='5'" class="priceb"> | ||
| 365 | {{ language == 0 ? '已支付金额' : 'Amount Due' }}: | ||
| 366 | <span class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span> | ||
| 367 | </div> | ||
| 368 | <div v-if="form.viewStatus=='4'" class="priceb">{{ language == 0 ? '已退订' : 'Refunded' }}: | ||
| 369 | <span class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span> | ||
| 370 | </div> | ||
| 371 | <div v-if="form.viewStatus=='2'" class="priceb">{{ language == 0 ? '已取消' : 'Canceled' }}: | ||
| 372 | <span class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span> | ||
| 373 | </div> | ||
| 374 | <div v-if="form.viewStatus=='7'" class="priceb">{{ language == 0 ? '退款审核中' : 'Refund in review' }}: | ||
| 375 | <span class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span> | ||
| 376 | </div> | ||
| 377 | </el-col> | ||
| 378 | <el-col :lg="24"> | ||
| 379 | <div class="text-center"> | ||
| 380 | <el-button v-if="(form.viewStatus=='1'||form.viewStatus=='5')&&type == 'hotel'" class="mt20 btn-lineG" | ||
| 381 | round | ||
| 382 | size="large" type="primary" | ||
| 383 | @click="exportPdf"> | ||
| 384 | <el-icon> | ||
| 385 | <Upload/> | ||
| 386 | </el-icon> | ||
| 387 | {{ language == 0 ? '导出酒店预订单' : 'Export PDF' }} | ||
| 388 | </el-button> | ||
| 389 | <el-button | ||
| 390 | v-if="(form.viewStatus=='1'||form.viewStatus=='5')&&(type=='makeUp'||type=='hotel'||type=='ticket')" | ||
| 391 | class="mt20 btn-lineG" round | ||
| 392 | size="large" | ||
| 393 | type="primary" | ||
| 394 | @click="downInvoice"> | ||
| 395 | <el-icon> | ||
| 396 | <Download/> | ||
| 397 | </el-icon> | ||
| 398 | {{ language == 0 ? '下载收据' : 'DownLoad Invoice' }} | ||
| 399 | </el-button> | ||
| 400 | </div> | ||
| 401 | </el-col> | ||
| 402 | </el-row> | ||
| 403 | </div> | ||
| 404 | </div> | ||
| 405 | <div v-else class="pd20 skeletonBox"> | ||
| 406 | <el-skeleton :rows="8"/> | ||
| 407 | <el-button :style="language == 0 ?'width:200px':'width:400px'" class="btn-lineG" round size="large" | ||
| 408 | type="primary" @click="showLogin"> | ||
| 409 | {{ language == 0 ? '登录后查看明细' : 'View detailed information after logging in' }} | ||
| 410 | </el-button> | ||
| 411 | </div> | ||
| 412 | |||
| 413 | <div v-if="form.viewStatus == '0'&&(form.surplus!='0,0'&&form.surplus!='0')" class="pd20"> | ||
| 414 | |||
| 415 | <div class="leftboderTT">{{ language == 0 ? '选择支付方式' : 'Choose payment method' }}</div> | ||
| 416 | <div class="mt20"> | ||
| 417 | <el-radio-group v-model="payType"> | ||
| 418 | <el-radio v-if="language==0" border value="2"> | ||
| 419 | <!-- 微信--> | ||
| 420 | <svg class="icon" height="40" p-id="24747" t="1709002960407" | ||
| 421 | version="1.1" viewBox="0 0 3152 1024" width="94" xmlns="http://www.w3.org/2000/svg"> | ||
| 422 | <path | ||
| 423 | d="M381.998922 630.960647c-4.416173 2.208086-8.832345 3.312129-14.352561 3.312129-12.144474 0-22.080863-7.17628-28.1531-17.66469l-2.208086-4.968194-87.771428-204.247978c-1.104043-2.208086-1.104043-4.416173-1.104043-6.624259 0-9.384367 6.624259-16.560647 15.456603-16.560647 3.312129 0 6.624259 1.104043 9.936388 3.312129l103.780054 78.387062c7.728302 4.968194 16.560647 8.280323 26.497035 8.280324 5.520216 0 11.040431-1.104043 16.560647-3.312129l486.330998-230.192992C819.752022 131.381132 676.226415 60.17035 513.380054 60.17035 248.409704 59.618329 32.017251 250.61779 32.017251 486.883019c0 128.069003 64.586523 244.545553 166.15849 322.932614 7.728302 6.072237 13.248518 16.560647 13.248518 27.601079 0 3.312129-1.104043 7.17628-2.208086 10.488409-7.728302 32.017251-20.976819 84.459299-20.97682 86.667386-1.104043 3.312129-2.208086 8.280323-2.208086 13.248517 0 9.384367 6.624259 16.560647 15.456604 16.560647 3.312129 0 6.624259-1.104043 8.832345-3.312129l104.884097-65.138545c7.728302-4.968194 16.560647-8.280323 25.392992-8.280323 4.416173 0 9.936388 1.104043 14.35256 2.208086 49.129919 15.456604 102.676011 23.736927 157.326146 23.736927 265.522372 0 481.362803-191.551482 481.362803-427.816711 0-71.210782-19.872776-139.109434-54.650135-198.175741L385.863073 628.752561l-3.864151 2.208086z" | ||
| 424 | fill="#09BB07" p-id="24748"></path> | ||
| 425 | <path | ||
| 426 | d="M1398.822642 381.998922c-9.384367 19.320755-20.424798 38.641509-32.017251 57.962264v263.866307h-31.465229V485.226954c-13.248518 18.216712-27.049057 34.225337-40.297574 48.025876-3.864151-7.17628-14.352561-23.736927-20.424798-30.361186 34.777358-33.673315 71.210782-82.803235 93.843666-131.933153l30.361186 11.040431z m-8.280324-91.63558c-22.632884 36.985445-59.066307 78.939084-91.635579 105.98814-4.416173-7.17628-13.248518-19.320755-19.320755-25.945013 29.809164-23.736927 62.378437-61.274394 78.939083-92.187601l32.017251 12.144474z m181.615094 289.811321c1.656065 7.728302 6.072237 19.320755 8.832345 24.84097-55.754178 37.537466-66.242588 46.369811-72.866846 54.650135-1.656065-7.728302-8.280323-22.080863-12.696496-28.705121 4.968194-3.312129 12.696496-10.48841 12.696496-28.705121v-54.098114h-60.17035v27.049057c0 38.641509-7.728302 91.083558-42.505661 128.069003-4.416173-7.17628-16.560647-19.320755-22.632884-23.184906 29.809164-31.465229 34.225337-72.866846 34.225337-105.436119v-54.098113h118.684636v82.251213l36.433423-22.632884z m123.100809-176.094879c-9.384367 73.970889-23.184906 136.349326-48.025876 187.687332 16.560647 36.433423 39.193531 66.242588 67.346631 83.355256-7.17628 6.072237-17.112668 18.216712-22.632884 27.049057-25.945013-18.216712-46.369811-45.265768-62.930459-78.939084-20.424798 32.017251-45.81779 59.066307-78.939083 81.699191-3.864151-6.624259-13.248518-19.872776-19.872776-25.392992 36.985445-22.632884 64.034501-52.99407 83.907277-89.979514-12.696496-34.777358-22.080863-73.418868-28.705121-115.372507-4.968194 11.040431-10.48841 22.632884-16.560647 31.465229-3.864151-4.416173-10.48841-13.248518-17.112668-20.424798v5.520216h-154.014017v-29.809165h154.014017v9.384367c24.84097-49.129919 37.537466-118.684636 44.713746-191.551483l31.465229 4.968195c-3.864151 31.465229-8.280323 61.274394-13.800539 90.531536h96.051752v29.809164h-14.904582z m-142.973585 22.632884h-145.181671v-110.404312h24.84097v82.251213h35.32938V278.770889h26.497035v119.78868h33.673316V316.308356h25.392992v110.404312z m55.202156-22.632884c-1.656065 6.624259-3.312129 12.696496-4.416172 18.768734 6.072237 46.369811 14.904582 91.083558 28.1531 130.277088 16.560647-43.057682 26.497035-91.63558 32.569272-149.045822h-56.3062zM1882.393531 289.259299c-10.48841 31.465229-24.288949 62.378437-39.193531 91.63558v324.036657h-32.017251V437.201078c-13.800539 22.632884-29.257143 42.50566-44.161725 60.170351-3.312129-7.728302-13.248518-24.288949-19.320754-32.017251 41.953639-45.265768 80.043127-114.820485 103.780053-184.927224l30.913208 8.832345z m288.707278 65.690566v29.257143h-294.779515v-29.257143h294.779515z m-267.730459 199.831806h235.713208v147.941779h-30.913208v-16.560647h-174.438814v18.216712h-30.361186v-149.597844z m231.297035-104.332075H1909.994609v-28.1531h224.672776v28.1531zM1909.994609 486.883019h224.672776v28.1531H1909.994609v-28.1531z m23.736927 96.603773V656.90566h174.438814v-73.418868h-174.438814z m81.699192-231.297035c-6.072237-16.560647-20.424798-43.057682-32.017251-61.826415l29.257143-12.144474c13.248518 19.320755 27.601078 44.161725 34.225337 60.722372l-31.465229 13.248517zM2586.221024 468.114286c-26.497035 63.48248-69.002695 111.508356-122.548787 147.941779 50.785984 25.945013 110.956334 43.609704 180.511051 52.442048-7.728302 8.280323-16.560647 23.184906-21.528841 33.673316-75.074933-11.592453-139.661456-32.569272-192.655525-64.034502-57.962264 32.017251-125.308895 52.99407-195.415634 66.794609-3.312129-9.384367-12.696496-25.392992-19.320754-33.121293 66.242588-10.48841 129.173046-28.1531 183.271159-55.202157-44.161725-32.017251-78.939084-72.866846-103.780054-123.65283l10.48841-3.864151h-49.12992v-34.225337h155.670081V383.654987h-176.6469v-34.225337h176.6469V278.770889h35.32938v70.658761h177.750944v34.225337h-177.750944v71.210781H2555.859838l7.176281-1.656064 23.184905 14.904582z m-255.033962 20.976819c23.184906 43.609704 56.858221 80.043127 100.467925 108.748248 44.161725-28.1531 80.043127-63.48248 104.332075-108.748248h-204.8zM2834.630728 292.571429c-13.800539 34.777358-30.361186 69.554717-49.129919 101.571967v308.580054h-34.225337V447.689488c-14.904582 20.976819-31.465229 40.297574-46.921833 56.306199-4.416173-7.728302-14.904582-25.945013-21.528841-34.225337 47.473854-45.265768 91.63558-115.924528 118.132614-188.239353l33.673316 11.040432z m270.490566 123.65283h-58.514286v240.12938c0 25.945013-7.728302 36.985445-24.84097 41.953639-18.216712 5.520216-49.129919 6.072237-99.915903 5.520215-1.656065-8.832345-8.280323-24.84097-13.248518-34.225337 39.193531 1.656065 77.283019 1.656065 88.32345 1.104043 10.48841-1.104043 14.352561-3.864151 14.352561-14.35256V416.224259h-187.687332v-34.225337h187.687332V283.739084h34.777359v97.707816h58.514285v34.777359z m-184.375202 178.854986c-13.800539-28.705121-43.609704-78.939084-67.346631-115.924528l29.809164-13.800539c24.288949 35.881402 55.202156 84.459299 70.106739 112.612399l-32.569272 17.112668z" | ||
| 427 | fill="#595757" p-id="24749"></path> | ||
| 428 | </svg> | ||
| 429 | </el-radio> | ||
| 430 | <el-radio v-if="language==1" border value="3"> | ||
| 431 | <!--paypal--> | ||
| 432 | <svg class="icon" height="40" p-id="22654" t="1709002828937" | ||
| 433 | version="1.1" viewBox="0 0 4220 1024" width="94" xmlns="http://www.w3.org/2000/svg"> | ||
| 434 | <path | ||
| 435 | d="M3249.722604 229.409369h-232.537679c-15.641548 0-29.197556 11.470468-32.325865 27.112016l-93.849287 595.421589c-2.08554 11.470468 7.299389 21.898167 18.769857 21.898167h118.875764c11.470468 0 20.855397-8.342159 21.898167-18.769858l27.112016-168.928717c2.08554-15.641548 15.641548-27.112016 32.325866-27.112016h72.99389c153.287169 0 240.879837-74.03666 263.820774-221.06721 10.427699-63.608961 0-114.704684-29.197556-150.158859-31.283096-38.582485-89.678208-58.395112-167.885947-58.395112z m27.112016 216.89613c-12.513238 83.421589-76.1222 83.421589-137.645621 83.421589h-35.454175l25.026476-155.372709c1.04277-9.384929 9.384929-16.684318 18.769858-16.684318h15.641547c41.710794 0 81.336049 0 102.191447 23.983707 12.513238 14.598778 15.641548 35.454175 11.470468 64.651731z" | ||
| 436 | fill="#009CDE" p-id="22655"></path> | ||
| 437 | <path | ||
| 438 | d="M1594.84684 229.409369h-232.537678c-15.641548 0-29.197556 11.470468-32.325866 27.112016l-93.849287 595.421589c-2.08554 11.470468 7.299389 21.898167 18.769857 21.898167h110.533605c15.641548 0 29.197556-11.470468 32.325866-27.112017l25.026476-160.586558c2.08554-15.641548 15.641548-27.112016 32.325866-27.112016h72.99389c153.287169 0 240.879837-74.03666 263.820774-221.06721 10.427699-63.608961 0-114.704684-29.197556-150.158859-31.283096-38.582485-89.678208-58.395112-167.885947-58.395112z m27.112016 216.89613c-12.513238 83.421589-76.1222 83.421589-137.645621 83.421589h-35.454175l25.026476-155.372709c1.04277-9.384929 9.384929-16.684318 18.769858-16.684318h15.641548c41.710794 0 81.336049 0 102.191446 23.983707 12.513238 14.598778 15.641548 35.454175 11.470468 64.651731zM2288.288795 443.177189h-111.576375c-9.384929 0-17.727088 7.299389-18.769857 16.684318l-5.213849 31.283096-7.299389-11.470469c-23.983707-34.411405-77.164969-46.924644-131.389002-46.924643-123.046843 0-227.323829 92.806517-248.179226 223.152749-10.427699 64.651731 4.171079 127.217923 41.710794 171.014257 34.411405 39.625255 82.378819 56.309572 139.731161 56.309572 99.063136 0 153.287169-63.608961 153.287169-63.608961l-5.21385 31.283096c-2.08554 11.470468 7.299389 21.898167 18.769858 21.898167h100.105906c15.641548 0 29.197556-11.470468 32.325866-27.112017l60.480652-380.610998c2.08554-10.427699-6.256619-21.898167-18.769858-21.898167z m-154.329939 216.896131c-10.427699 63.608961-61.523422 106.362525-125.132383 106.362525-32.325866 0-58.395112-10.427699-75.079429-30.240326-16.684318-19.812627-22.940937-46.924644-17.727088-78.207739 10.427699-62.566191 61.523422-107.405295 124.089613-107.405295 31.283096 0 57.352342 10.427699 74.03666 30.240326 17.727088 20.855397 25.026477 47.967413 19.812627 79.250509z" | ||
| 439 | fill="#003087" p-id="22656"></path> | ||
| 440 | <path | ||
| 441 | d="M3943.164559 443.177189h-111.576375c-9.384929 0-17.727088 7.299389-18.769857 16.684318l-5.21385 31.283096-7.299389-11.470469c-23.983707-34.411405-77.164969-46.924644-131.389002-46.924643-123.046843 0-227.323829 92.806517-248.179226 223.152749-10.427699 64.651731 4.171079 127.217923 41.710795 171.014257 34.411405 39.625255 82.378819 56.309572 139.73116 56.309572 99.063136 0 153.287169-63.608961 153.28717-63.608961l-5.21385 31.283096c-2.08554 11.470468 7.299389 21.898167 18.769858 21.898167h100.105906c15.641548 0 29.197556-11.470468 32.325866-27.112017l60.480651-380.610998c2.08554-10.427699-6.256619-21.898167-18.769857-21.898167z m-154.329939 216.896131c-10.427699 63.608961-61.523422 106.362525-125.132383 106.362525-32.325866 0-58.395112-10.427699-75.07943-30.240326-16.684318-19.812627-22.940937-46.924644-17.727087-78.207739 10.427699-62.566191 61.523422-107.405295 124.089613-107.405295 31.283096 0 57.352342 10.427699 74.03666 30.240326 17.727088 20.855397 25.026477 47.967413 19.812627 79.250509z" | ||
| 442 | fill="#009CDE" p-id="22657"></path> | ||
| 443 | <path | ||
| 444 | d="M2880.582074 443.177189h-111.576375c-10.427699 0-20.855397 5.213849-27.112016 14.598778l-154.329939 227.323829-65.694501-217.9389c-4.171079-13.556008-16.684318-22.940937-31.283096-22.940937h-109.490835c-13.556008 0-22.940937 13.556008-18.769857 26.069247l123.046843 360.79837-115.747454 162.672098c-9.384929 12.513238 0 30.240326 15.641548 30.240326h111.576375c10.427699 0 20.855397-5.213849 26.069246-13.556008l371.226069-535.983707c11.470468-13.556008 2.08554-31.283096-13.556008-31.283096z" | ||
| 445 | fill="#003087" p-id="22658"></path> | ||
| 446 | <path | ||
| 447 | d="M4074.553561 245.050916l-94.892057 605.849288c-2.08554 11.470468 7.299389 21.898167 18.769857 21.898167h95.934827c15.641548 0 29.197556-11.470468 32.325866-27.112017l93.849287-595.421588c2.08554-11.470468-7.299389-21.898167-18.769857-21.898167h-107.405296c-10.427699 1.04277-18.769857 7.299389-19.812627 16.684317z" | ||
| 448 | fill="#009CDE" p-id="22659"></path> | ||
| 449 | <path | ||
| 450 | d="M782.529121 259.649695c12.513238-79.250509 0-133.474542-42.753564-182.484726C691.808143 22.940937 606.301015 0 496.81018 0H178.765374c-21.898167 0-41.710794 16.684318-44.839104 38.582485L0.451728 879.05499c-3.12831 16.684318 10.427699 31.283096 27.112016 31.283096h196.040733l-13.556008 85.507128c-2.08554 14.598778 9.384929 27.112016 23.983707 27.112016h165.800407c19.812627 0 36.496945-14.598778 39.625255-33.368635l2.08554-8.342159 31.283095-198.126273 2.08554-10.427699c3.12831-19.812627 19.812627-33.368635 39.625255-33.368635h25.026476c160.586558 0 285.718941-64.651731 322.215886-253.393075 15.641548-79.250509 7.299389-144.94501-33.368635-190.826884-12.513238-13.556008-28.154786-26.069246-45.881874-35.454175" | ||
| 451 | fill="#009CDE" p-id="22660"></path> | ||
| 452 | <path | ||
| 453 | d="M782.529121 259.649695c12.513238-79.250509 0-133.474542-42.753564-182.484726C691.808143 22.940937 606.301015 0 496.81018 0H178.765374c-21.898167 0-41.710794 16.684318-44.839104 38.582485L0.451728 879.05499c-3.12831 16.684318 10.427699 31.283096 27.112016 31.283096h196.040733l49.010184-312.830958-1.04277 9.384929c3.12831-21.898167 21.898167-38.582485 44.839104-38.582485h93.849287c183.527495 0 327.429735-74.03666 369.140529-289.89002l3.12831-18.769857" | ||
| 454 | fill="#012169" p-id="22661"></path> | ||
| 455 | <path | ||
| 456 | d="M326.838693 260.692464c2.08554-13.556008 10.427699-23.983707 21.898167-30.240326 5.213849-2.08554 11.470468-4.171079 16.684318-4.171079h250.264766c29.197556 0 57.352342 2.08554 82.378819 6.256619 7.299389 1.04277 14.598778 2.08554 20.855397 4.17108 7.299389 1.04277 13.556008 3.12831 19.812627 5.213849l9.384929 3.128309c12.513238 4.171079 23.983707 9.384929 34.411405 14.598779 12.513238-79.250509 0-133.474542-42.753564-182.484726C691.808143 22.940937 606.301015 0 496.81018 0H178.765374c-21.898167 0-41.710794 16.684318-44.839104 38.582485L0.451728 879.05499c-3.12831 16.684318 10.427699 31.283096 27.112016 31.283096h196.040733l49.010184-312.830958L326.838693 260.692464z" | ||
| 457 | fill="#003087" p-id="22662"></path> | ||
| 458 | </svg> | ||
| 459 | </el-radio> | ||
| 460 | </el-radio-group> | ||
| 461 | <div v-if="payType == '2'&&wePayCodeUrl"> | ||
| 462 | <div class="payImgbox flexCenter"> | ||
| 463 | <div> | ||
| 464 | <img :src="wePayCodeUrl" class="border" width="260"/> | ||
| 465 | <img class="mt20" src="@/assets/img/sm.png"/> | ||
| 466 | </div> | ||
| 467 | <div class="ml20"> | ||
| 468 | <img height="360" src="@/assets/img/rr.jpg"/> | ||
| 469 | </div> | ||
| 470 | </div> | ||
| 471 | <div v-if="language==0" class="tip text-center text-danger"> | ||
| 472 | 支付后不要关闭此窗口,等待确认支付成功. | ||
| 473 | 若长时间未收到支付成功提醒,请刷新页面 | ||
| 474 | </div> | ||
| 475 | <div v-else class="tip text-center text-danger"> | ||
| 476 | After payment, do not close this window and wait for confirmation of successful payment. | ||
| 477 | <br/> | ||
| 478 | If you have not received a notification of successful payment for a long time, | ||
| 479 | please refresh the page | ||
| 480 | </div> | ||
| 481 | </div> | ||
| 482 | </div> | ||
| 483 | </div> | ||
| 484 | <el-row align="middle" class="mt20 mb60" justify="center"> | ||
| 485 | <el-col :span="24" class="text-center"> | ||
| 486 | <el-button v-if="!hideconfirmbtn&&form.viewStatus == '0'" class="btn-lineG w200px" round type="primary" | ||
| 487 | @click="goPay"> | ||
| 488 | {{ language == 0 ? '确定' : 'Submit' }} | ||
| 489 | </el-button> | ||
| 490 | <el-button v-if="form.viewStatus == '5'" round @click="unsubscribe"> | ||
| 491 | {{ language == 0 ? '退订' : 'Unsubscribe' }} | ||
| 492 | </el-button> | ||
| 493 | <el-button v-if="form.viewStatus == '0'" class="underline" link @click="cancel"> | ||
| 494 | {{ language == 0 ? '取消订单' : 'Cancel Order' }} | ||
| 495 | </el-button> | ||
| 496 | </el-col> | ||
| 497 | </el-row> | ||
| 498 | |||
| 499 | <div v-if="form.payDate&&form.viewStatus=='1'"> | ||
| 500 | <div class="text-center"> | ||
| 501 | <el-icon color="#32B16C" size="80"> | ||
| 502 | <SuccessFilled/> | ||
| 503 | </el-icon> | ||
| 504 | <p class="text-success">{{ language == 0 ? '支付成功' : 'successful!' }}</p> | ||
| 505 | <h3 class="wePrice">{{ language == 0 ? '¥' : '€' }}{{ totalFee || 0 }}</h3> | ||
| 506 | </div> | ||
| 507 | </div> | ||
| 508 | </el-card> | ||
| 509 | </div> | ||
| 510 | |||
| 511 | <div v-if="errorBox" class="box"> | ||
| 512 | <el-result | ||
| 513 | :sub-title="language==0?'请确认订单号是否正确':'Please confirm if the order number is correct'" | ||
| 514 | :title="language==0?'未找到对应订单':'No corresponding order found'" | ||
| 515 | icon="error" | ||
| 516 | > | ||
| 517 | <template #extra> | ||
| 518 | <el-button class="btn-lineG w200px" round type="primary" @click="goHome"> | ||
| 519 | {{ language == 0 ? '返回首页' : 'Home' }} | ||
| 520 | </el-button> | ||
| 521 | </template> | ||
| 522 | </el-result> | ||
| 523 | </div> | ||
| 524 | <Dialog ref="DialogRef"/> | ||
| 525 | |||
| 526 | <el-dialog v-model="showSJDialog" :close-on-click-modal="false" :close-on-press-escape="false" | ||
| 527 | :title="language==0?'开收据':'Issue a receipt'" width="460px"> | ||
| 528 | <div class="flex"> | ||
| 529 | <el-form-item :label="language==0?'开票人':'Name'"> | ||
| 530 | <div class="flex"> | ||
| 531 | <el-input v-model="lpName" :placeholder="language==0?'请输入开票人':'Please enter your name'"></el-input> | ||
| 532 | <el-button type="primary" @click="submitSJ">{{ language == 0 ? '提交并下载' : 'Submit' }}</el-button> | ||
| 533 | </div> | ||
| 534 | </el-form-item> | ||
| 535 | </div> | ||
| 536 | <div v-if="remark" class="tip mt20"> | ||
| 537 | <label>{{ language == 0 ? '开电子收据须知' : 'Receipt notice' }}:</label> | ||
| 538 | <div class="pd10"> | ||
| 539 | {{ remark }} | ||
| 540 | </div> | ||
| 541 | </div> | ||
| 542 | </el-dialog> | ||
| 543 | </div> | ||
| 544 | </template> | ||
| 545 | |||
| 546 | <script setup> | ||
| 547 | import {Search} from "@element-plus/icons-vue" | ||
| 548 | import {getCurrentInstance, ref} from 'vue' | ||
| 549 | import {onMounted} from "@vue/runtime-core" | ||
| 550 | import {useRoute, useRouter} from "vue-router" | ||
| 551 | import * as booking from "@/apiPc/booking" | ||
| 552 | import Dialog from '@/viewsPc/booking/component/dailog.vue' | ||
| 553 | import MatchInfoRow from "@/viewsPc/match/components/matchInfo-row"; | ||
| 554 | |||
| 555 | |||
| 556 | const {proxy} = getCurrentInstance() | ||
| 557 | const route = useRoute() | ||
| 558 | const router = useRouter() | ||
| 559 | const matchInfo = ref({}) | ||
| 560 | const approved = ref(true) | ||
| 561 | const tableData = ref([]) | ||
| 562 | const payType = ref('2') | ||
| 563 | const orderId = ref(route.query.orderId) | ||
| 564 | const matchId = ref() | ||
| 565 | const groupId = ref() | ||
| 566 | import useUserStore from "@/store/modules/user"; | ||
| 567 | import FileUpload from "@/components/FileUpload"; | ||
| 568 | import {useStorage} from "@vueuse/core/index"; | ||
| 569 | import {ElMessage, ElMessageBox} from "element-plus"; | ||
| 570 | import { | ||
| 571 | cancelOrder, | ||
| 572 | cancelOrder2, getBaseInfoByActiveId, | ||
| 573 | getCarBilldetailbyId, | ||
| 574 | getFoodBilldetailbyId, | ||
| 575 | getMealOrderInfoByLogex, getPhotoOrderInfo, getPhotoOrderInfoByLogex, getTicketInfoByActivityId, getTicketOrderInfo, | ||
| 576 | } from "@/apiPc/booking"; | ||
| 577 | import dayjs from 'dayjs' | ||
| 578 | import {delPerson} from "@/api/exam/person"; | ||
| 579 | |||
| 580 | const isLogin = ref(false) | ||
| 581 | const language = useStorage('language', 0) | ||
| 582 | const totalFee = ref('') | ||
| 583 | const wePayCodeUrl = ref('') | ||
| 584 | const form = ref({}) | ||
| 585 | const formInfo = ref({}) | ||
| 586 | const type = ref('') | ||
| 587 | const errorBox = ref(false) | ||
| 588 | const hideconfirmbtn = ref(false) | ||
| 589 | const remark = ref('') | ||
| 590 | const showSJDialog = ref(false) | ||
| 591 | const loading = ref(false) | ||
| 592 | const lpName = ref('') | ||
| 593 | const matchForm = ref({}) | ||
| 594 | |||
| 595 | const user = useUserStore().user | ||
| 596 | if (useUserStore().user) { | ||
| 597 | isLogin.value = true | ||
| 598 | } | ||
| 599 | onMounted(() => { | ||
| 600 | if (language.value == 0) { | ||
| 601 | payType.value = '2' | ||
| 602 | } else { | ||
| 603 | payType.value = '3' | ||
| 604 | } | ||
| 605 | if (route.query.type) { | ||
| 606 | type.value = route.query.type | ||
| 607 | } | ||
| 608 | if (route.query.orderType) { | ||
| 609 | switch (route.query.orderType) { | ||
| 610 | case '0': | ||
| 611 | type.value = 'hotel' | ||
| 612 | break | ||
| 613 | case '1': | ||
| 614 | type.value = 'car' | ||
| 615 | break | ||
| 616 | case '2': | ||
| 617 | type.value = 'food' | ||
| 618 | break | ||
| 619 | case '3': | ||
| 620 | type.value = 'makeUp' | ||
| 621 | break | ||
| 622 | case '4': | ||
| 623 | type.value = 'photography' | ||
| 624 | break | ||
| 625 | case '5': | ||
| 626 | type.value = 'ticket' | ||
| 627 | break | ||
| 628 | } | ||
| 629 | } | ||
| 630 | if (route.query.matchId) { | ||
| 631 | matchId.value = route.query.matchId | ||
| 632 | } | ||
| 633 | getData() | ||
| 634 | }) | ||
| 635 | |||
| 636 | function getData() { | ||
| 637 | if (type.value == 'car') { | ||
| 638 | return booking.getCarBilldetailbyId({orderId: orderId.value}).then(res => { | ||
| 639 | form.value = res.data | ||
| 640 | if (language.value == 0) { | ||
| 641 | totalFee.value = res.data.total | ||
| 642 | } else { | ||
| 643 | totalFee.value = res.data.totalEn | ||
| 644 | } | ||
| 645 | }).catch(err => { | ||
| 646 | console.log(err) | ||
| 647 | errorBox.value = true | ||
| 648 | }) | ||
| 649 | } | ||
| 650 | if (type.value == 'food') { | ||
| 651 | return booking.getFoodBilldetailbyId({orderId: orderId.value}).then(res => { | ||
| 652 | if (language.value == 0) { | ||
| 653 | totalFee.value = res.data.total | ||
| 654 | } else { | ||
| 655 | totalFee.value = res.data.totalEn | ||
| 656 | } | ||
| 657 | form.value = res.data | ||
| 658 | form.value.messageObj = JSON.parse(form.value.message) | ||
| 659 | form.value.extJsonObj = JSON.parse(form.value.extJson) | ||
| 660 | console.log(form.value) | ||
| 661 | }) | ||
| 662 | } | ||
| 663 | if (type.value == 'hotel') { | ||
| 664 | return booking.getRoomBilldetailbyId({orderId: orderId.value}).then(res => { | ||
| 665 | if (language.value == 0) { | ||
| 666 | totalFee.value = res.data.total | ||
| 667 | } else { | ||
| 668 | totalFee.value = res.data.totalEn | ||
| 669 | } | ||
| 670 | form.value = res.data | ||
| 671 | form.value.messageObj = JSON.parse(form.value.message) || {} | ||
| 672 | form.value.extJsonObj = JSON.parse(form.value.extJson) || {} | ||
| 673 | matchId.value = form.value.extJsonObj?.activeId | ||
| 674 | }).catch(err => { | ||
| 675 | console.log(err) | ||
| 676 | errorBox.value = true | ||
| 677 | }) | ||
| 678 | } | ||
| 679 | if (type.value == 'makeUp') { | ||
| 680 | MakeUpOrder() | ||
| 681 | // MakeUpIno() | ||
| 682 | } | ||
| 683 | if (type.value == 'photography') { | ||
| 684 | photographyOrder() | ||
| 685 | // photographyInfo() | ||
| 686 | } | ||
| 687 | if (type.value == 'ticket') { | ||
| 688 | getTicketOrderInfoFN() | ||
| 689 | } | ||
| 690 | console.log(payType.value) | ||
| 691 | } | ||
| 692 | |||
| 693 | // 票务订单详情 | ||
| 694 | async function getTicketOrderInfoFN() { | ||
| 695 | const res = await getTicketOrderInfo({orderId: orderId.value}) | ||
| 696 | form.value = res.data | ||
| 697 | form.value.extJson = JSON.parse(form.value.extJson) | ||
| 698 | try { | ||
| 699 | form.value.extJson.ticketDate = JSON.parse(form.value.extJson.ticketDate) | ||
| 700 | form.value.extJson.ticketType = JSON.parse(form.value.extJson.ticketType) | ||
| 701 | form.value.extJson.message = JSON.parse(form.value.extJson.message) | ||
| 702 | await getDetail(form.value.extJson.ticketDate.activityId) | ||
| 703 | matchId.value = form.value.extJson.ticketDate.activityId | ||
| 704 | |||
| 705 | totalFee.value = language.value == 0 ? form.value.total : form.value.totalEn | ||
| 706 | } catch (e) { | ||
| 707 | console.log(e) | ||
| 708 | } finally { | ||
| 709 | |||
| 710 | } | ||
| 711 | console.log(form.value) | ||
| 712 | |||
| 713 | } | ||
| 714 | |||
| 715 | async function getDetail(activeId) { | ||
| 716 | const res = await getTicketInfoByActivityId({activityId: activeId}) | ||
| 717 | matchForm.value = res.data | ||
| 718 | console.log(matchForm.value) | ||
| 719 | } | ||
| 720 | |||
| 721 | |||
| 722 | function goHome() { | ||
| 723 | router.push('/') | ||
| 724 | } | ||
| 725 | |||
| 726 | function goPay() { | ||
| 727 | if (payType.value == '2') { | ||
| 728 | booking.createWePay({orderId: orderId.value}).then(res => { | ||
| 729 | wePayCodeUrl.value = res.data | ||
| 730 | hideconfirmbtn.value = true | ||
| 731 | startforGetData() | ||
| 732 | }) | ||
| 733 | } | ||
| 734 | if (payType.value == '3') { | ||
| 735 | booking.createPalPay({orderId: orderId.value}).then(res => { | ||
| 736 | if (res.data) { | ||
| 737 | location.href = res.data | ||
| 738 | } | ||
| 739 | }) | ||
| 740 | } | ||
| 741 | } | ||
| 742 | |||
| 743 | let handle; | ||
| 744 | |||
| 745 | function startforGetData() { | ||
| 746 | handle = setTimeout(() => { | ||
| 747 | if (type.value == 'photography') { | ||
| 748 | photographyOrder().then(res => { | ||
| 749 | if (form.value.payDate) { | ||
| 750 | if (handle) { | ||
| 751 | clearTimeout(handle) | ||
| 752 | handle = null | ||
| 753 | } | ||
| 754 | } else { | ||
| 755 | startforGetData() | ||
| 756 | } | ||
| 757 | }) | ||
| 758 | } else if (type.value == 'makeUp') { | ||
| 759 | MakeUpOrder().then(res => { | ||
| 760 | if (form.value.payDate) { | ||
| 761 | if (handle) { | ||
| 762 | clearTimeout(handle) | ||
| 763 | handle = null | ||
| 764 | } | ||
| 765 | } else { | ||
| 766 | startforGetData() | ||
| 767 | } | ||
| 768 | }) | ||
| 769 | } else if (type.value == 'ticket') { | ||
| 770 | getTicketOrderInfoFN().then(res => { | ||
| 771 | if (form.value.payDate) { | ||
| 772 | if (handle) { | ||
| 773 | clearTimeout(handle) | ||
| 774 | handle = null | ||
| 775 | } | ||
| 776 | } else { | ||
| 777 | startforGetData() | ||
| 778 | } | ||
| 779 | }) | ||
| 780 | } else { | ||
| 781 | getData().then(res => { | ||
| 782 | if (form.value.payDate) { | ||
| 783 | if (handle) { | ||
| 784 | clearTimeout(handle) | ||
| 785 | handle = null | ||
| 786 | } | ||
| 787 | } else { | ||
| 788 | startforGetData() | ||
| 789 | } | ||
| 790 | }) | ||
| 791 | } | ||
| 792 | }, 2000) | ||
| 793 | } | ||
| 794 | |||
| 795 | function showLogin() { | ||
| 796 | useUserStore().setReLogin() | ||
| 797 | } | ||
| 798 | |||
| 799 | |||
| 800 | function MakeUpOrder() { | ||
| 801 | return booking.getMealOrderInfo({orderId: orderId.value}).then(res => { | ||
| 802 | form.value = res.data | ||
| 803 | totalFee.value = language.value == 0 ? form.value.total : form.value.totalEn | ||
| 804 | matchId.value = form.value.activeId | ||
| 805 | MakeUpIno() | ||
| 806 | console.log(res) | ||
| 807 | }).catch(err => { | ||
| 808 | console.log(err) | ||
| 809 | errorBox.value = true | ||
| 810 | }) | ||
| 811 | } | ||
| 812 | |||
| 813 | function MakeUpIno() { | ||
| 814 | booking.getMealOrderInfoByLogex({asmId: form.value.asmId}).then(res => { | ||
| 815 | formInfo.value = res.data | ||
| 816 | console.log(res) | ||
| 817 | }) | ||
| 818 | .catch((e) => { | ||
| 819 | console.log(e) | ||
| 820 | errorBox.value = true | ||
| 821 | }) | ||
| 822 | } | ||
| 823 | |||
| 824 | |||
| 825 | function photographyOrder() { | ||
| 826 | return booking.getPhotoOrderInfo({orderId: orderId.value}).then(res => { | ||
| 827 | form.value = res.data | ||
| 828 | totalFee.value = language.value == 0 ? form.value.total : form.value.totalEn | ||
| 829 | photographyInfo() | ||
| 830 | }).catch(err => { | ||
| 831 | console.log(err) | ||
| 832 | errorBox.value = true | ||
| 833 | }) | ||
| 834 | } | ||
| 835 | |||
| 836 | function photographyInfo() { | ||
| 837 | booking.getPhotoOrderInfoByLogex({aspId: form.value.aspId}).then(res => { | ||
| 838 | formInfo.value = res.data | ||
| 839 | }) | ||
| 840 | // .catch((e) => { | ||
| 841 | // console.log(e) | ||
| 842 | // errorBox.value = true | ||
| 843 | // }) | ||
| 844 | } | ||
| 845 | |||
| 846 | const cancel = () => { | ||
| 847 | //取消订单 | ||
| 848 | proxy.$modal.confirm(language.value == 0 ? '确定取消订单吗 ?' : `Are you sure to cancel the order?`).then(() => { | ||
| 849 | return cancelOrder2(orderId.value).then(res => { | ||
| 850 | getData() | ||
| 851 | ElMessage({ | ||
| 852 | message: language.value == 0 ? '操作成功' : 'Successful operation!', | ||
| 853 | type: 'success' | ||
| 854 | }) | ||
| 855 | }) | ||
| 856 | }) | ||
| 857 | } | ||
| 858 | const unsubscribe = () => { | ||
| 859 | proxy.$modal.confirm(language.value == 0 ? `确定退款吗 ?` : 'Are you sure to refund?').then(() => { | ||
| 860 | return cancelOrder(orderId.value).then(res => { | ||
| 861 | getData() | ||
| 862 | ElMessage({ | ||
| 863 | message: language.value == 0 ? '已提交退款,请等待审核!' : 'Refund has been submitted, please wait for review!', | ||
| 864 | type: 'success' | ||
| 865 | }) | ||
| 866 | }) | ||
| 867 | }) | ||
| 868 | } | ||
| 869 | |||
| 870 | function exportPdf() { | ||
| 871 | var obj = { | ||
| 872 | orderId: orderId.value | ||
| 873 | } | ||
| 874 | if (language.value == 0) { | ||
| 875 | proxy.download('/ota/orderRoom/downRoomConfirmation', { | ||
| 876 | ...obj | ||
| 877 | }, `订房确认书.pdf`) | ||
| 878 | } else { | ||
| 879 | proxy.download('/ota/orderRoom/downRoomConfirmation', { | ||
| 880 | ...obj | ||
| 881 | }, `Hotel Reservation.pdf`) | ||
| 882 | } | ||
| 883 | |||
| 884 | } | ||
| 885 | |||
| 886 | // 套餐详情 | ||
| 887 | function handleView() { | ||
| 888 | console.log(form.value) | ||
| 889 | proxy.$refs['DialogRef'].open(language.value == 0 ? form.value.details : form.value.detailsEn) | ||
| 890 | } | ||
| 891 | |||
| 892 | function downInvoice() { | ||
| 893 | getremark() | ||
| 894 | if (form.value.receiptFlag == '0') { | ||
| 895 | showSJDialog.value = true | ||
| 896 | } else { | ||
| 897 | showSJ() | ||
| 898 | } | ||
| 899 | } | ||
| 900 | |||
| 901 | function getremark() { | ||
| 902 | getBaseInfoByActiveId(matchId.value).then(res => { | ||
| 903 | if (res.data) { | ||
| 904 | remark.value = res.data.remarks | ||
| 905 | } | ||
| 906 | }) | ||
| 907 | } | ||
| 908 | |||
| 909 | function submitSJ() { | ||
| 910 | if (!lpName.value) { | ||
| 911 | ElMessage.warning(language.value == 0 ? '请填写开票人' : 'Please fill in the invoice recipient') | ||
| 912 | return | ||
| 913 | } | ||
| 914 | loading.value = true | ||
| 915 | ElMessageBox.confirm(language.value == 0 ? '提交后无法修改开票人,确认提交吗?' : 'Confirm to submit ?', { | ||
| 916 | confirmButtonText: language.value == 0 ? '确定' : 'Confirm', | ||
| 917 | cancelButtonText: language.value == 0 ? '取消' : 'Cancel', | ||
| 918 | type: 'warning' | ||
| 919 | }).then(() => { | ||
| 920 | showSJ() | ||
| 921 | }) | ||
| 922 | } | ||
| 923 | |||
| 924 | const showSJ = () => { | ||
| 925 | // 查看电子收据预览信息 | ||
| 926 | var obj = { | ||
| 927 | orderId: orderId.value, | ||
| 928 | type: 1 | ||
| 929 | } | ||
| 930 | if (form.value.receiptFlag == '0') { | ||
| 931 | obj.receiptInfo = lpName.value | ||
| 932 | } | ||
| 933 | // // 报名 | ||
| 934 | // proxy.download(`/ota/norder/getReceipt/${obj.orderId}`, { | ||
| 935 | // ...obj | ||
| 936 | // }, `Receipt_${new Date().getTime()}.pdf`) | ||
| 937 | |||
| 938 | // 报名 | ||
| 939 | proxy.download(`/ota/norder/getReceipt/${obj.orderId}`, { | ||
| 940 | ...obj | ||
| 941 | }, `Receipt_${new Date().getTime()}.pdf`) | ||
| 942 | showSJDialog.value = false | ||
| 943 | getData() | ||
| 944 | } | ||
| 945 | </script> | ||
| 946 | |||
| 947 | <style lang="scss" scoped> | ||
| 948 | .st-info { | ||
| 949 | line-height: 2; | ||
| 950 | font-size: 14px; | ||
| 951 | } | ||
| 952 | |||
| 953 | .underline { | ||
| 954 | text-decoration: underline; | ||
| 955 | } | ||
| 956 | |||
| 957 | .wePrice { | ||
| 958 | font-size: 24px; | ||
| 959 | font-family: "DIN Alternate"; | ||
| 960 | font-weight: 400; | ||
| 961 | } | ||
| 962 | |||
| 963 | .el-radio.is-bordered { | ||
| 964 | height: 40px; | ||
| 965 | } | ||
| 966 | |||
| 967 | .border { | ||
| 968 | border: 1px solid #e1e1e1; | ||
| 969 | } | ||
| 970 | |||
| 971 | .leftboderTT { | ||
| 972 | font-weight: 600; | ||
| 973 | font-size: 16px; | ||
| 974 | color: #453DEA; | ||
| 975 | } | ||
| 976 | |||
| 977 | .bg-lineg { | ||
| 978 | height: 40px; | ||
| 979 | line-height: 40px; | ||
| 980 | font-size: 18px; | ||
| 981 | text-align: center; | ||
| 982 | } | ||
| 983 | |||
| 984 | .table { | ||
| 985 | width: 100%; | ||
| 986 | max-width: 1000px; | ||
| 987 | margin: 20px auto; | ||
| 988 | |||
| 989 | .head { | ||
| 990 | background: #EFF2F7; | ||
| 991 | height: 50px; | ||
| 992 | font-size: 16px; | ||
| 993 | font-weight: 400; | ||
| 994 | } | ||
| 995 | |||
| 996 | th { | ||
| 997 | background: #FAFBFD; | ||
| 998 | font-size: 14px; | ||
| 999 | border-bottom: 1px solid #E5E5E5; | ||
| 1000 | border-right: 1px solid #E5E5E5; | ||
| 1001 | } | ||
| 1002 | |||
| 1003 | td { | ||
| 1004 | border-bottom: 1px solid #E5E5E5; | ||
| 1005 | border-right: 1px solid #E5E5E5; | ||
| 1006 | padding: 10px; | ||
| 1007 | } | ||
| 1008 | |||
| 1009 | &.table-border { | ||
| 1010 | border-top: 1px solid #E5E5E5; | ||
| 1011 | border-left: 1px solid #E5E5E5; | ||
| 1012 | } | ||
| 1013 | } | ||
| 1014 | |||
| 1015 | .text-gray { | ||
| 1016 | font-weight: 400; | ||
| 1017 | font-size: 12px; | ||
| 1018 | color: #929AA0; | ||
| 1019 | } | ||
| 1020 | |||
| 1021 | .size12 { | ||
| 1022 | font-size: 12px; | ||
| 1023 | } | ||
| 1024 | |||
| 1025 | .result { | ||
| 1026 | font-size: 22px; | ||
| 1027 | |||
| 1028 | .flex { | ||
| 1029 | display: flex; | ||
| 1030 | align-items: center; | ||
| 1031 | font-weight: 500; | ||
| 1032 | |||
| 1033 | img { | ||
| 1034 | margin-right: 10px | ||
| 1035 | } | ||
| 1036 | } | ||
| 1037 | |||
| 1038 | .priceb { | ||
| 1039 | color: #7B7F83; | ||
| 1040 | font-size: 16px; | ||
| 1041 | text-align: right; | ||
| 1042 | line-height: 50px; | ||
| 1043 | |||
| 1044 | span { | ||
| 1045 | font-weight: bold; | ||
| 1046 | font-size: 22px; | ||
| 1047 | font-family: DIN Alternate; | ||
| 1048 | color: #EB6100; | ||
| 1049 | } | ||
| 1050 | } | ||
| 1051 | } | ||
| 1052 | |||
| 1053 | .skeletonBox { | ||
| 1054 | position: relative; | ||
| 1055 | overflow: hidden; | ||
| 1056 | |||
| 1057 | .btn-lineG { | ||
| 1058 | position: absolute; | ||
| 1059 | left: 0; | ||
| 1060 | right: 0; | ||
| 1061 | margin: auto; | ||
| 1062 | top: 0; | ||
| 1063 | bottom: 0; | ||
| 1064 | width: 200px; | ||
| 1065 | box-shadow: 0 0 1000px 500px rgba(255, 255, 255, 0.5); | ||
| 1066 | |||
| 1067 | } | ||
| 1068 | } | ||
| 1069 | |||
| 1070 | .payImgbox { | ||
| 1071 | text-align: center; | ||
| 1072 | border: 1px solid #fff; | ||
| 1073 | padding: 20px; | ||
| 1074 | } | ||
| 1075 | |||
| 1076 | .priceBar { | ||
| 1077 | padding: 0 0 20px; | ||
| 1078 | |||
| 1079 | .flex { | ||
| 1080 | display: flex; | ||
| 1081 | justify-content: right; | ||
| 1082 | align-items: baseline; | ||
| 1083 | |||
| 1084 | .item { | ||
| 1085 | font-size: 16px; | ||
| 1086 | margin-right: 15px; | ||
| 1087 | |||
| 1088 | label { | ||
| 1089 | color: #95A1A6; | ||
| 1090 | } | ||
| 1091 | |||
| 1092 | span { | ||
| 1093 | font-family: DIN Alternate; | ||
| 1094 | } | ||
| 1095 | } | ||
| 1096 | } | ||
| 1097 | |||
| 1098 | .size26 { | ||
| 1099 | font-size: 26px; | ||
| 1100 | } | ||
| 1101 | } | ||
| 1102 | |||
| 1103 | .rre { | ||
| 1104 | color: #333; | ||
| 1105 | font-size: 16px; | ||
| 1106 | margin-top: 10px | ||
| 1107 | } | ||
| 1108 | |||
| 1109 | .price { | ||
| 1110 | color: orange; | ||
| 1111 | } | ||
| 1112 | </style> |
-
Please register or sign in to post a comment