Merge commit '231f1f81' into dev
Showing
10 changed files
with
632 additions
and
78 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"> | 18 | <el-row :gutter="20" align="middle" class="w100"> |
| 19 | <template #title> | 19 | <el-col :span="4"> |
| 20 | <el-row :gutter="20" align="middle" class="w100"> | 20 | <div class="index">{{ language == 0 ? '路线' : 'Route' }}{{ index + 1 }} |
| 21 | <el-col :span="4"> | 21 | </div> |
| 22 | <div class="index">{{ language == 0 ? '路线' : 'Route' }}{{ index + 1 }} | 22 | </el-col> |
| 23 | <img src="@/assets/booking/arrow.png"/> | 23 | <el-col :span="6"> |
| 24 | </div> | 24 | <p class="esp">{{ h.checkIn }}</p> |
| 25 | </el-col> | 25 | </el-col> |
| 26 | <el-col :span="7"> | 26 | <el-col :span="4" class="text-center"> |
| 27 | <p class="esp">{{ h.checkIn }}</p> | 27 | <img class="mauto w40px" src="@/assets/booking/wf.png"/> |
| 28 | </el-col> | 28 | </el-col> |
| 29 | <el-col :span="4" class="text-center"> | 29 | <el-col :span="6"> |
| 30 | <img class="mauto w40px" src="@/assets/booking/wf.png"/> | 30 | <p class="esp ">{{ h.checkOut }}</p> |
| 31 | </el-col> | 31 | </el-col> |
| 32 | <el-col :span="7"> | 32 | <el-col :span="2"> |
| 33 | <p class="esp ">{{ h.checkOut }}</p> | 33 | <div v-if="language==0" class="price">¥ |
| 34 | </el-col> | 34 | <span>{{h.upPrice}}</span> |
| 35 | </el-row> | 35 | </div> |
| 36 | </template> | 36 | <div v-else class="price"> |
| 37 | 37 | € | |
| 38 | <div class="plr20"> | 38 | <span>{{h.upPriceEn}}</span> |
| 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> | 39 | </div> |
| 89 | 40 | ||
| 90 | </el-collapse-item> | 41 | </el-col> |
| 91 | </el-collapse> | 42 | <el-col :span="2"> |
| 92 | 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 | } | ... | ... |
This diff is collapsed.
Click to expand it.
src/viewsPc/booking/carOrder_old.vue
0 → 100644
This diff is collapsed.
Click to expand it.
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> |
This diff is collapsed.
Click to expand it.
src/viewsPc/booking/pay_old.vue
0 → 100644
This diff is collapsed.
Click to expand it.
| ... | @@ -81,8 +81,8 @@ export default defineConfig(({ mode, command }) => { | ... | @@ -81,8 +81,8 @@ export default defineConfig(({ mode, command }) => { |
| 81 | rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '') | 81 | rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '') |
| 82 | }, | 82 | }, |
| 83 | '/dev-api': { | 83 | '/dev-api': { |
| 84 | // target: 'http://192.168.1.118:8081/', | 84 | target: 'http://192.168.1.118:8081/', |
| 85 | target: 'http://192.168.1.253:8081', | 85 | // target: 'http://192.168.1.253:8081', |
| 86 | // target: 'https://jijin.wtwuxicenter.com/stage-api', | 86 | // target: 'https://jijin.wtwuxicenter.com/stage-api', |
| 87 | // target: 'https://wdsfwuxicenter.com/stage-api/', | 87 | // target: 'https://wdsfwuxicenter.com/stage-api/', |
| 88 | changeOrigin: true, | 88 | changeOrigin: true, | ... | ... |
-
Please register or sign in to post a comment