Showing
57 changed files
with
2466 additions
and
1 deletions
.browserslistrc
0 → 100644
.eslintrc.js
0 → 100644
| 1 | +module.exports = { | ||
| 2 | + root: true, | ||
| 3 | + env: { | ||
| 4 | + node: true | ||
| 5 | + }, | ||
| 6 | + 'extends': [ | ||
| 7 | + 'plugin:vue/essential', | ||
| 8 | + 'eslint:recommended' | ||
| 9 | + ], | ||
| 10 | + parserOptions: { | ||
| 11 | + parser: '@babel/eslint-parser' | ||
| 12 | + }, | ||
| 13 | + rules: { | ||
| 14 | + 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', | ||
| 15 | + 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off' | ||
| 16 | + } | ||
| 17 | +} |
.gitignore
0 → 100644
| 1 | +.DS_Store | ||
| 2 | +node_modules | ||
| 3 | +/dist | ||
| 4 | + | ||
| 5 | + | ||
| 6 | +# local env files | ||
| 7 | +.env.local | ||
| 8 | +.env.*.local | ||
| 9 | + | ||
| 10 | +# Log files | ||
| 11 | +npm-debug.log* | ||
| 12 | +yarn-debug.log* | ||
| 13 | +yarn-error.log* | ||
| 14 | +pnpm-debug.log* | ||
| 15 | + | ||
| 16 | +# Editor directories and files | ||
| 17 | +.idea | ||
| 18 | +.vscode | ||
| 19 | +*.suo | ||
| 20 | +*.ntvs* | ||
| 21 | +*.njsproj | ||
| 22 | +*.sln | ||
| 23 | +*.sw? |
README.md
0 → 100644
| 1 | +# detection | ||
| 2 | + | ||
| 3 | +## Project setup | ||
| 4 | +``` | ||
| 5 | +npm install | ||
| 6 | +``` | ||
| 7 | + | ||
| 8 | +### Compiles and hot-reloads for development | ||
| 9 | +``` | ||
| 10 | +npm run serve | ||
| 11 | +``` | ||
| 12 | + | ||
| 13 | +### Compiles and minifies for production | ||
| 14 | +``` | ||
| 15 | +npm run build | ||
| 16 | +``` | ||
| 17 | + | ||
| 18 | +### Lints and fixes files | ||
| 19 | +``` | ||
| 20 | +npm run lint | ||
| 21 | +``` | ||
| 22 | + | ||
| 23 | +### Customize configuration | ||
| 24 | +See [Configuration Reference](https://cli.vuejs.org/config/). |
babel.config.js
0 → 100644
index.html
deleted
100644 → 0
| 1 | -test |
jsconfig.json
0 → 100644
package-lock.json
0 → 100644
This diff could not be displayed because it is too large.
package.json
0 → 100644
| 1 | +{ | ||
| 2 | + "name": "detection", | ||
| 3 | + "version": "0.1.0", | ||
| 4 | + "private": true, | ||
| 5 | + "scripts": { | ||
| 6 | + "serve": "vue-cli-service serve", | ||
| 7 | + "build": "vue-cli-service build", | ||
| 8 | + "lint": "vue-cli-service lint" | ||
| 9 | + }, | ||
| 10 | + "dependencies": { | ||
| 11 | + "axios": "^0.27.2", | ||
| 12 | + "clipboard": "^2.0.11", | ||
| 13 | + "core-js": "^3.8.3", | ||
| 14 | + "js-md5": "^0.7.3", | ||
| 15 | + "register-service-worker": "^1.7.2", | ||
| 16 | + "vant": "^2.12.49", | ||
| 17 | + "vconsole": "^3.14.6", | ||
| 18 | + "vue": "^2.6.14", | ||
| 19 | + "vue-router": "^3.5.1", | ||
| 20 | + "vuex": "^3.6.2" | ||
| 21 | + }, | ||
| 22 | + "devDependencies": { | ||
| 23 | + "@babel/core": "^7.12.16", | ||
| 24 | + "@babel/eslint-parser": "^7.12.16", | ||
| 25 | + "@vue/cli-plugin-babel": "~5.0.0", | ||
| 26 | + "@vue/cli-plugin-eslint": "~5.0.0", | ||
| 27 | + "@vue/cli-plugin-pwa": "^5.0.8", | ||
| 28 | + "@vue/cli-plugin-router": "~5.0.0", | ||
| 29 | + "@vue/cli-plugin-vuex": "~5.0.0", | ||
| 30 | + "@vue/cli-service": "~5.0.0", | ||
| 31 | + "babel-plugin-import": "^1.13.5", | ||
| 32 | + "eslint": "^7.32.0", | ||
| 33 | + "eslint-plugin-vue": "^8.0.3", | ||
| 34 | + "sass": "^1.32.7", | ||
| 35 | + "sass-loader": "^12.0.0", | ||
| 36 | + "vue-template-compiler": "^2.6.14" | ||
| 37 | + } | ||
| 38 | +} |
public/favicon.ico
0 → 100644
No preview for this file type
public/index.html
0 → 100644
| 1 | +<!DOCTYPE html> | ||
| 2 | +<html lang=""> | ||
| 3 | + <head> | ||
| 4 | + <meta charset="utf-8"> | ||
| 5 | + <meta http-equiv="X-UA-Compatible" content="IE=edge"> | ||
| 6 | + <meta name="viewport" content="width=device-width,initial-scale=1.0"> | ||
| 7 | + <link rel="icon" href="./favicon.ico" rel="external nofollow" type="image/x-icon" /> | ||
| 8 | + <link rel="shortcut icon" href="./favicon.ico" rel="external nofollow" type="image/x-icon" /> | ||
| 9 | + <title>微宝配对</title> | ||
| 10 | + </head> | ||
| 11 | + <body> | ||
| 12 | + <noscript> | ||
| 13 | + <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> | ||
| 14 | + </noscript> | ||
| 15 | + <div id="app"></div> | ||
| 16 | + <!-- built files will be auto injected --> | ||
| 17 | + </body> | ||
| 18 | +</html> |
public/robots.txt
0 → 100644
src/App.vue
0 → 100644
src/api/home/index.js
0 → 100644
| 1 | +//引入配置好的axios | ||
| 2 | +//@/就是当前的src/, vue默认配置的 | ||
| 3 | +import axios from "@/utils/_axios.js"; | ||
| 4 | + | ||
| 5 | + | ||
| 6 | +//首页 | ||
| 7 | +// 项目列表 | ||
| 8 | +export function homeList(){ | ||
| 9 | + return axios({ | ||
| 10 | + url:"promotes/", | ||
| 11 | + method:"GET", | ||
| 12 | + header:{isToken:false} | ||
| 13 | + }) | ||
| 14 | +} | ||
| 15 | + | ||
| 16 | +// 项目列表详细 | ||
| 17 | +export function detailed(data){ | ||
| 18 | + return axios({ | ||
| 19 | + url:"promote_detail/?id="+data, | ||
| 20 | + method:"GET", | ||
| 21 | + header:{isToken:false} | ||
| 22 | + }) | ||
| 23 | +} |
src/api/pay/index.js
0 → 100644
| 1 | +//引入配置好的axios | ||
| 2 | +//@/就是当前的src/, vue默认配置的 | ||
| 3 | +import axios from "@/utils/_axios.js"; | ||
| 4 | + | ||
| 5 | + | ||
| 6 | +//调起支付 | ||
| 7 | +// 支付宝 | ||
| 8 | +export function ZFBpay(data){ | ||
| 9 | + return axios({ | ||
| 10 | + url:"", | ||
| 11 | + method:"POST", | ||
| 12 | + data:{ | ||
| 13 | + | ||
| 14 | + } | ||
| 15 | + }) | ||
| 16 | +} | ||
| 17 | +// 配对成功数据 | ||
| 18 | +export function pair(data){ | ||
| 19 | + return axios({ | ||
| 20 | + url:"namelove/", | ||
| 21 | + method:"POST", | ||
| 22 | + data:{ | ||
| 23 | + boy:data.boy, | ||
| 24 | + girl:data.girl, | ||
| 25 | + key:data.key | ||
| 26 | + } | ||
| 27 | + }) | ||
| 28 | +} | ||
| 29 | + | ||
| 30 | +// 付款人列表 | ||
| 31 | +export function payList(data){ | ||
| 32 | + return axios({ | ||
| 33 | + url:"get_name_by_pay/?id="+data, | ||
| 34 | + method:"GET", | ||
| 35 | + header:{isToken:false} | ||
| 36 | + }) | ||
| 37 | +} | ||
| 38 | + | ||
| 39 | + | ||
| 40 | +// 微信支付 | ||
| 41 | +export function payWX(data){ | ||
| 42 | + return axios({ | ||
| 43 | + url:"addorderh5/", | ||
| 44 | + method:"POST", | ||
| 45 | + data:{ | ||
| 46 | + order_no:data.order_no, | ||
| 47 | + amount:"0.01" | ||
| 48 | + }, | ||
| 49 | + header:{isToken:false} | ||
| 50 | + }) | ||
| 51 | +} | ||
| 52 | + | ||
| 53 | +//支付后结果 | ||
| 54 | +export function payResult(data){ | ||
| 55 | + return axios({ | ||
| 56 | + url:"get_name_love/?order_no="+data, | ||
| 57 | + method:"GET", | ||
| 58 | + header:{isToken:false} | ||
| 59 | + }) | ||
| 60 | +} | ||
| 61 | + |
src/assets/logo.png
0 → 100644
6.69 KB
src/components/HelloWorld.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div class="hello"> | ||
| 3 | + <h1>{{ msg }}</h1> | ||
| 4 | + <p> | ||
| 5 | + For a guide and recipes on how to configure / customize this project,<br> | ||
| 6 | + check out the | ||
| 7 | + <a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>. | ||
| 8 | + </p> | ||
| 9 | + <h3>Installed CLI Plugins</h3> | ||
| 10 | + <ul> | ||
| 11 | + <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li> | ||
| 12 | + <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa" target="_blank" rel="noopener">pwa</a></li> | ||
| 13 | + <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-router" target="_blank" rel="noopener">router</a></li> | ||
| 14 | + <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-vuex" target="_blank" rel="noopener">vuex</a></li> | ||
| 15 | + <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint" target="_blank" rel="noopener">eslint</a></li> | ||
| 16 | + </ul> | ||
| 17 | + <h3>Essential Links</h3> | ||
| 18 | + <ul> | ||
| 19 | + <li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li> | ||
| 20 | + <li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li> | ||
| 21 | + <li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li> | ||
| 22 | + <li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li> | ||
| 23 | + <li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li> | ||
| 24 | + </ul> | ||
| 25 | + <h3>Ecosystem</h3> | ||
| 26 | + <ul> | ||
| 27 | + <li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li> | ||
| 28 | + <li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li> | ||
| 29 | + <li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li> | ||
| 30 | + <li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li> | ||
| 31 | + <li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li> | ||
| 32 | + </ul> | ||
| 33 | + </div> | ||
| 34 | +</template> | ||
| 35 | + | ||
| 36 | +<script> | ||
| 37 | +export default { | ||
| 38 | + name: 'HelloWorld', | ||
| 39 | + props: { | ||
| 40 | + msg: String | ||
| 41 | + } | ||
| 42 | +} | ||
| 43 | +</script> | ||
| 44 | + | ||
| 45 | +<!-- Add "scoped" attribute to limit CSS to this component only --> | ||
| 46 | +<style scoped lang="scss"> | ||
| 47 | +h3 { | ||
| 48 | + margin: 40px 0 0; | ||
| 49 | +} | ||
| 50 | +ul { | ||
| 51 | + list-style-type: none; | ||
| 52 | + padding: 0; | ||
| 53 | +} | ||
| 54 | +li { | ||
| 55 | + display: inline-block; | ||
| 56 | + margin: 0 10px; | ||
| 57 | +} | ||
| 58 | +a { | ||
| 59 | + color: #42b983; | ||
| 60 | +} | ||
| 61 | +</style> |
src/main.js
0 → 100644
| 1 | +import Vue from 'vue' | ||
| 2 | +import App from './App.vue' | ||
| 3 | +import './registerServiceWorker' | ||
| 4 | +import router from './router' | ||
| 5 | +import store from './store' | ||
| 6 | +// Vant UI | ||
| 7 | +import "./utils/Vant/index" | ||
| 8 | +Vue.config.productionTip = false | ||
| 9 | + | ||
| 10 | + | ||
| 11 | + | ||
| 12 | + | ||
| 13 | + | ||
| 14 | + | ||
| 15 | +// 手机端调试 | ||
| 16 | +// import Vconsole from 'vconsole' | ||
| 17 | + | ||
| 18 | +// let vConsole = new Vconsole() | ||
| 19 | + | ||
| 20 | +// Vue.use(vConsole); | ||
| 21 | + | ||
| 22 | +// Vue.config.productionTip = false | ||
| 23 | + | ||
| 24 | + | ||
| 25 | +// md5加密 | ||
| 26 | +import md5 from "js-md5" | ||
| 27 | +// 复制 | ||
| 28 | +import clipboard from 'clipboard' | ||
| 29 | + | ||
| 30 | +new Vue({ | ||
| 31 | + router, | ||
| 32 | + store, | ||
| 33 | + render: h => h(App) | ||
| 34 | +}).$mount('#app') | ||
| 35 | + | ||
| 36 | +Vue.prototype.$md5 = md5 | ||
| 37 | + | ||
| 38 | +Vue.prototype.ClipboardJS = clipboard; |
src/registerServiceWorker.js
0 → 100644
| 1 | +/* eslint-disable no-console */ | ||
| 2 | + | ||
| 3 | +import { register } from 'register-service-worker' | ||
| 4 | + | ||
| 5 | +if (process.env.NODE_ENV === 'production') { | ||
| 6 | + register(`${process.env.BASE_URL}service-worker.js`, { | ||
| 7 | + ready () { | ||
| 8 | + console.log( | ||
| 9 | + 'App is being served from cache by a service worker.\n' + | ||
| 10 | + 'For more details, visit https://goo.gl/AFskqB' | ||
| 11 | + ) | ||
| 12 | + }, | ||
| 13 | + registered () { | ||
| 14 | + console.log('Service worker has been registered.') | ||
| 15 | + }, | ||
| 16 | + cached () { | ||
| 17 | + console.log('Content has been cached for offline use.') | ||
| 18 | + }, | ||
| 19 | + updatefound () { | ||
| 20 | + console.log('New content is downloading.') | ||
| 21 | + }, | ||
| 22 | + updated () { | ||
| 23 | + console.log('New content is available; please refresh.') | ||
| 24 | + }, | ||
| 25 | + offline () { | ||
| 26 | + console.log('No internet connection found. App is running in offline mode.') | ||
| 27 | + }, | ||
| 28 | + error (error) { | ||
| 29 | + console.error('Error during service worker registration:', error) | ||
| 30 | + } | ||
| 31 | + }) | ||
| 32 | +} |
src/router/index.js
0 → 100644
| 1 | +import Vue from 'vue' | ||
| 2 | +import VueRouter from 'vue-router' | ||
| 3 | + | ||
| 4 | +Vue.use(VueRouter) | ||
| 5 | + | ||
| 6 | +const routes = [ | ||
| 7 | + // 首页 | ||
| 8 | + { | ||
| 9 | + path: '/home', | ||
| 10 | + name: 'Home', | ||
| 11 | + component: () => import('../views/home/home') | ||
| 12 | + }, | ||
| 13 | + // 第二页 | ||
| 14 | + { | ||
| 15 | + path: '/homeTwo', | ||
| 16 | + name: 'HomeTwo', | ||
| 17 | + component: () => import('../views/homeTwo/homeTwo') | ||
| 18 | + }, | ||
| 19 | + // 第三页 | ||
| 20 | + { | ||
| 21 | + path: '/pay', | ||
| 22 | + name: 'Pay', | ||
| 23 | + component: () => import('../views/pay/pay') | ||
| 24 | + }, | ||
| 25 | + // 结果页 | ||
| 26 | + { | ||
| 27 | + path: '/result', | ||
| 28 | + name: 'Result', | ||
| 29 | + component: () => import('../views/result/result') | ||
| 30 | + }, | ||
| 31 | + { | ||
| 32 | + path: '*', | ||
| 33 | + // 首页 | ||
| 34 | + redirect: { path: "/home" } | ||
| 35 | + // redirect: { path: "/home",query:{id:1} } | ||
| 36 | + | ||
| 37 | + }, | ||
| 38 | +] | ||
| 39 | + | ||
| 40 | +const router = new VueRouter({ | ||
| 41 | + mode: 'hash', | ||
| 42 | + base: process.env.BASE_URL, | ||
| 43 | + routes | ||
| 44 | +}) | ||
| 45 | +// //重写VueRouter.prototype身上的push方法 | ||
| 46 | +const originPush = VueRouter.prototype.push; | ||
| 47 | +// // const originReplace = VueRouter.prototype.replace; | ||
| 48 | +VueRouter.prototype.push = function push(location) { | ||
| 49 | + return originPush.call(this, location).catch(err => err) | ||
| 50 | +} | ||
| 51 | + | ||
| 52 | +//全局守卫:前置守卫(在路由跳转之间进行判断) | ||
| 53 | +router.beforeEach(async (to, from, next) => { | ||
| 54 | + next() | ||
| 55 | +}); | ||
| 56 | + | ||
| 57 | +export default router |
src/store/home.js
0 → 100644
| 1 | + | ||
| 2 | +import { homeList,detailed } from "@/api/home/index" | ||
| 3 | +// 首页列表 | ||
| 4 | + | ||
| 5 | + | ||
| 6 | +// 状态 | ||
| 7 | +const state = { | ||
| 8 | + // 首页内容 | ||
| 9 | + homeList:[], | ||
| 10 | + // 首页内容详情 | ||
| 11 | + detailed:[] | ||
| 12 | +} | ||
| 13 | + | ||
| 14 | +// 改变 | ||
| 15 | +const mutations = { | ||
| 16 | + // 保存首页信息 | ||
| 17 | + GAINHOMELIST(state,data){ | ||
| 18 | + state.homeList = data | ||
| 19 | + }, | ||
| 20 | + //保存首页详细信息 | ||
| 21 | + GAINHOMEDETAILED(state,data){ | ||
| 22 | + state.detailed = data | ||
| 23 | + } | ||
| 24 | + | ||
| 25 | +} | ||
| 26 | + | ||
| 27 | +// 行动 | ||
| 28 | +const actions = { | ||
| 29 | + // 首页信息 | ||
| 30 | + async gainHomeList({ commit }, data) { | ||
| 31 | + let result = await homeList(data) | ||
| 32 | + console.log(result); | ||
| 33 | + if(result.code==200){ | ||
| 34 | + commit("GAINHOMELIST",result.data) | ||
| 35 | + } | ||
| 36 | + }, | ||
| 37 | + // 首页详细信息 | ||
| 38 | + async gainHomeDetailed({ commit }, data) { | ||
| 39 | + let result = await detailed(data) | ||
| 40 | + console.log(result); | ||
| 41 | + if(result.code==200){ | ||
| 42 | + commit("GAINHOMEDETAILED",result.data) | ||
| 43 | + } | ||
| 44 | + } | ||
| 45 | +} | ||
| 46 | + | ||
| 47 | +// 简化 | ||
| 48 | +const getters = { | ||
| 49 | + | ||
| 50 | +} | ||
| 51 | + | ||
| 52 | +// 导出 | ||
| 53 | +export default { | ||
| 54 | + state, | ||
| 55 | + mutations, | ||
| 56 | + actions, | ||
| 57 | + getters | ||
| 58 | +} |
src/store/index.js
0 → 100644
src/store/pay.js
0 → 100644
| 1 | +import { pair, payList, payWX, payResult } from "../api/pay/index" | ||
| 2 | +// 支付 | ||
| 3 | + | ||
| 4 | + | ||
| 5 | +// 状态 | ||
| 6 | +const state = { | ||
| 7 | + // 配对信息 | ||
| 8 | + pairData: {}, | ||
| 9 | + // 付款人列表 | ||
| 10 | + paylist: [], | ||
| 11 | + // 微信跳转链接 | ||
| 12 | + WXurl: "", | ||
| 13 | + // 结果数据 | ||
| 14 | + resultDate:"", | ||
| 15 | +} | ||
| 16 | + | ||
| 17 | +// 改变 | ||
| 18 | +const mutations = { | ||
| 19 | + // 配对信息 | ||
| 20 | + GAINPAIR(state, data) { | ||
| 21 | + state.pairData = data | ||
| 22 | + }, | ||
| 23 | + // 付款人列表 | ||
| 24 | + GAINPAYLIST(state, data) { | ||
| 25 | + state.paylist = data | ||
| 26 | + }, | ||
| 27 | + // 微信支付 | ||
| 28 | + GAINPAYWX(state, data) { | ||
| 29 | + state.WXurl = data | ||
| 30 | + }, | ||
| 31 | + // 支付后结果 | ||
| 32 | + GAINPAYRESULT(state, data) { | ||
| 33 | + state.resultDate = data | ||
| 34 | + | ||
| 35 | + } | ||
| 36 | +} | ||
| 37 | + | ||
| 38 | +// 行动 | ||
| 39 | +const actions = { | ||
| 40 | + // 配对成功获取数据 | ||
| 41 | + async gainPair({ commit }, data) { | ||
| 42 | + let result = await pair(data) | ||
| 43 | + console.log(result); | ||
| 44 | + if (result.code == 200) { | ||
| 45 | + commit("GAINPAIR", result.data) | ||
| 46 | + } else { | ||
| 47 | + return Promise.reject(result.message) | ||
| 48 | + } | ||
| 49 | + }, | ||
| 50 | + // 付款人列表 | ||
| 51 | + async gainPayList({ commit }, data) { | ||
| 52 | + let result = await payList(data) | ||
| 53 | + console.log(result); | ||
| 54 | + if (result.code == 200) { | ||
| 55 | + commit("GAINPAYLIST", result.data) | ||
| 56 | + console.log(result.data); | ||
| 57 | + } | ||
| 58 | + }, | ||
| 59 | + // 微信支付 | ||
| 60 | + async gainPayWX({ commit }, data) { | ||
| 61 | + let result = await payWX(data) | ||
| 62 | + console.log(result); | ||
| 63 | + if (result.code == 200) { | ||
| 64 | + commit("GAINPAYWX", result.data) | ||
| 65 | + } | ||
| 66 | + }, | ||
| 67 | + // 支付后结果 | ||
| 68 | + async gainPayResult({ commit }, data) { | ||
| 69 | + let result = await payResult(data) | ||
| 70 | + console.log(result); | ||
| 71 | + if (result.code == 200) { | ||
| 72 | + commit("GAINPAYRESULT", result.data) | ||
| 73 | + } | ||
| 74 | + }, | ||
| 75 | + | ||
| 76 | +} | ||
| 77 | + | ||
| 78 | +// 简化 | ||
| 79 | +const getters = { | ||
| 80 | + | ||
| 81 | +} | ||
| 82 | + | ||
| 83 | +// 导出 | ||
| 84 | +export default { | ||
| 85 | + state, | ||
| 86 | + mutations, | ||
| 87 | + actions, | ||
| 88 | + getters | ||
| 89 | +} |
src/utils/Vant/index.js
0 → 100644
| 1 | +import Vue from 'vue'; | ||
| 2 | +// 单选框 | ||
| 3 | +import { Checkbox, CheckboxGroup } from 'vant'; | ||
| 4 | + | ||
| 5 | +import { RadioGroup, Radio } from 'vant'; | ||
| 6 | + | ||
| 7 | +// 轻提示 | ||
| 8 | +import { Toast } from 'vant'; | ||
| 9 | + | ||
| 10 | +// 弹出框提示 | ||
| 11 | +import { Dialog } from 'vant'; | ||
| 12 | + | ||
| 13 | +// 弹出层 | ||
| 14 | +import { Popup } from 'vant'; | ||
| 15 | + | ||
| 16 | +// 倒计时 | ||
| 17 | +import { CountDown } from 'vant'; | ||
| 18 | + | ||
| 19 | + | ||
| 20 | + | ||
| 21 | +// 单选框 | ||
| 22 | +Vue.use(Checkbox); | ||
| 23 | +Vue.use(CheckboxGroup); | ||
| 24 | + | ||
| 25 | +Vue.use(Radio); | ||
| 26 | +Vue.use(RadioGroup); | ||
| 27 | + | ||
| 28 | +// 轻提示 | ||
| 29 | +Vue.use(Toast); | ||
| 30 | + | ||
| 31 | +// 弹出框提示 | ||
| 32 | +Vue.use(Dialog); | ||
| 33 | + | ||
| 34 | +// 弹出层 | ||
| 35 | +Vue.use(Popup); | ||
| 36 | + | ||
| 37 | +// 倒计时 | ||
| 38 | +Vue.use(CountDown); |
src/utils/_axios.js
0 → 100644
| 1 | +//axios二次封装 | ||
| 2 | +//引入axios包 | ||
| 3 | +import axios from "axios"; | ||
| 4 | +//重新定义一个axios新实例 | ||
| 5 | +// create方法,创建一个 | ||
| 6 | +const request = axios.create({ | ||
| 7 | + | ||
| 8 | + // 内网穿透测试环境 | ||
| 9 | + // baseURL: "http://egg.free.idcfengye.com/api", | ||
| 10 | + | ||
| 11 | + // 正式环境 | ||
| 12 | + baseURL: "http://czapi.gzrkkj.cn/v1/", | ||
| 13 | + // baseURL: "http://czapi.gzrkkj.com/v1/", | ||
| 14 | + | ||
| 15 | + header: { isToken: true } | ||
| 16 | +}) | ||
| 17 | +//请求拦截器 | ||
| 18 | +request.interceptors.request.use((config) => { | ||
| 19 | + const token = localStorage.getItem("isToken") | ||
| 20 | + if (token && config.header.isToken) { | ||
| 21 | + // 设置请求头 | ||
| 22 | + config.headers.Authorization = token; | ||
| 23 | + } | ||
| 24 | + return config; | ||
| 25 | +}); | ||
| 26 | +//响应拦截器 | ||
| 27 | +request.interceptors.response.use((res) => { | ||
| 28 | + //成功的回调函数 | ||
| 29 | + return res.data; | ||
| 30 | +}, (error) => { | ||
| 31 | + //响应失败的回调函数 | ||
| 32 | +}); | ||
| 33 | + | ||
| 34 | +//导出自定义的新axios实例 | ||
| 35 | +export default request; |
src/views/home/home.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <!-- 首页 --> | ||
| 3 | + <div class="home"> | ||
| 4 | + <!-- 首页盒子内容 --> | ||
| 5 | + <div class="homebox" :style="dynamic"> | ||
| 6 | + <!-- 活动规则 --> | ||
| 7 | + <div class="activityRule" @click="ruleTips"></div> | ||
| 8 | + <!-- 左边男方字体 --> | ||
| 9 | + <img src="../image/nanfont.png" alt="" class="leftFont" /> | ||
| 10 | + <!-- 右边女方字体 --> | ||
| 11 | + <img src="../image/nvfont.png" alt="" class="rightFont" /> | ||
| 12 | + | ||
| 13 | + <!-- 输入内容--> | ||
| 14 | + <div class="homeContent"> | ||
| 15 | + <!-- 输入框 --> | ||
| 16 | + <div class="nameIptOne"> | ||
| 17 | + <input | ||
| 18 | + v-model="boy" | ||
| 19 | + class="nameIpt" | ||
| 20 | + type="text" | ||
| 21 | + placeholder="男孩姓名" | ||
| 22 | + /> | ||
| 23 | + </div> | ||
| 24 | + <div class="nameIptTwo"> | ||
| 25 | + <input | ||
| 26 | + v-model="girl" | ||
| 27 | + class="nameIpt" | ||
| 28 | + type="text" | ||
| 29 | + placeholder="女孩姓名" | ||
| 30 | + /> | ||
| 31 | + </div> | ||
| 32 | + <!-- 按钮 --> | ||
| 33 | + <div class="btnMatching" @click="navPay"></div> | ||
| 34 | + <!-- 字体 --> | ||
| 35 | + <p class="footerFont" v-if="homeData"> | ||
| 36 | + 已有<span class="fontRed">{{ homeData.total_num }}</span | ||
| 37 | + >人完成配对,并参与了领<span class="fontRed">{{ homeData.gift }}</span | ||
| 38 | + >活动提交视为您已同意《隐私协议》 | ||
| 39 | + </p> | ||
| 40 | + </div> | ||
| 41 | + </div> | ||
| 42 | + <!-- 玩法规则提示 --> | ||
| 43 | + <van-dialog v-model="showTips" title="规则说明" show-cancel-button> | ||
| 44 | + <!--每一个 --> | ||
| 45 | + <div class="every"> | ||
| 46 | + 1.用户在本平台使用幸运星球,应遵守本规则。 | ||
| 47 | + 用户开始使用及/或继续使用本服务,即视为用户同意并已经接受本规则中全部内容。 | ||
| 48 | + 此后用户不得以未阅读/未同意本规则内容或类似理由提出任何形式的抗辩。 | ||
| 49 | + </div> | ||
| 50 | + <div class="every"> | ||
| 51 | + 2.点击“立即抽奖”即可进行抽奖,抽中的结果为盲盒的购买资格,结果显示的商品为该盲盒里有概率中奖的商品; | ||
| 52 | + </div> | ||
| 53 | + <div class="every"> | ||
| 54 | + 3.转盘页面展示的商品均为有概率中奖的商品,除此外还有其它可抽中的商品, | ||
| 55 | + 具体可抽中商品清单及中奖概率请在支付页面点击“全部商品”进行查看; | ||
| 56 | + </div> | ||
| 57 | + <div class="every"> | ||
| 58 | + 4.付费前,请您务必了解,付款获得的是抽奖资格(盲盒),并非页面显示的当前商品; | ||
| 59 | + </div> | ||
| 60 | + <div class="every"> | ||
| 61 | + 5.“100%中奖”意为不设空盒,付费成功后您将获得可抽中商品清单里的任一商品; | ||
| 62 | + </div> | ||
| 63 | + <div class="every"> | ||
| 64 | + 6.该盲盒内商品类型概率:传说款:0.168%、史诗款:0.342%、尊贵款:8.723%、普通款:90.767%; | ||
| 65 | + </div> | ||
| 66 | + <div class="every">7.风险提示:商品抽奖存在概率性,付费请谨慎;</div> | ||
| 67 | + <div class="every">8.未成年人须在家长监督下进行购买;</div> | ||
| 68 | + <div class="every"> | ||
| 69 | + 9.本渠道抽中的所有商品包邮,以下偏远地区(内蒙古、宁夏、海南) | ||
| 70 | + 需补邮费差价25元,受疫情天气及物流公司安排等影响,以下偏远地区 | ||
| 71 | + (新疆、西藏、甘肃、青海) 暂不支持配送; | ||
| 72 | + </div> | ||
| 73 | + <div class="every"> | ||
| 74 | + 10.付费成功后,您需回到本页面,或下载“幸运星球”查看您的中奖商品, | ||
| 75 | + 填写您的收货地址,等待宝贝发出; | ||
| 76 | + </div> | ||
| 77 | + <div class="every"> | ||
| 78 | + 11.当您收到盲盒商品后,出现以下质量问题的,您可提供开箱图片或视频, | ||
| 79 | + 由本公司进行确认及受理:商品错发或者数量不符、商品在运输过程造成严重破损,商品做工存在明显瑕疵; | ||
| 80 | + </div> | ||
| 81 | + <div class="every"> | ||
| 82 | + 12.因工艺原因存在微瑕的商品,轻微盒损的商品,商品漆味重,均不属于质量问题; | ||
| 83 | + </div> | ||
| 84 | + <div class="every"> | ||
| 85 | + 13.如有疑问,可下载“幸运星球”APP,联系在线客服进行咨询。 | ||
| 86 | + </div> | ||
| 87 | + </van-dialog> | ||
| 88 | + </div> | ||
| 89 | +</template> | ||
| 90 | + | ||
| 91 | +<script> | ||
| 92 | +// 轻提示 | ||
| 93 | +import { Toast } from "vant"; | ||
| 94 | +export default { | ||
| 95 | + name: "Home", | ||
| 96 | + data() { | ||
| 97 | + return { | ||
| 98 | + // 输入框姓名 | ||
| 99 | + boy: "", | ||
| 100 | + girl: "", | ||
| 101 | + // 规则提示弹窗 | ||
| 102 | + showTips: false, | ||
| 103 | + // 动态背景颜色 | ||
| 104 | + dynamic: "", | ||
| 105 | + }; | ||
| 106 | + }, | ||
| 107 | + methods: { | ||
| 108 | + // 活动规则 | ||
| 109 | + ruleTips() { | ||
| 110 | + this.showTips = !this.showTips; | ||
| 111 | + }, | ||
| 112 | + // 跳转支付页 | ||
| 113 | + async navPay() { | ||
| 114 | + // 配对信息 | ||
| 115 | + try { | ||
| 116 | + await this.$store.dispatch("gainPair", { | ||
| 117 | + boy: this.boy, | ||
| 118 | + girl: this.girl, | ||
| 119 | + key: this.$md5(this.boy + this.girl + "cz321456").toUpperCase(), | ||
| 120 | + }); | ||
| 121 | + this.$router.push({ | ||
| 122 | + path: "/pay", | ||
| 123 | + query:{ | ||
| 124 | + boy: this.boy, | ||
| 125 | + girl: this.girl, | ||
| 126 | + }, | ||
| 127 | + }); | ||
| 128 | + } catch (error) { | ||
| 129 | + Toast(error); | ||
| 130 | + } | ||
| 131 | + }, | ||
| 132 | + }, | ||
| 133 | + async mounted() { | ||
| 134 | + // 首页信息列表 | ||
| 135 | + // await this.$store.dispatch("gainHomeList"); | ||
| 136 | + // 首页详细信息 | ||
| 137 | + await this.$store.dispatch("gainHomeDetailed", 1); | ||
| 138 | + | ||
| 139 | + // 背景图 | ||
| 140 | + this.dynamic = { | ||
| 141 | + background: `url('${this.homeData.photo}') 0 0 /100% no-repeat`, | ||
| 142 | + }; | ||
| 143 | + }, | ||
| 144 | + computed: { | ||
| 145 | + // 首页内容 | ||
| 146 | + homeData() { | ||
| 147 | + return this.$store.state.home.detailed; | ||
| 148 | + }, | ||
| 149 | + }, | ||
| 150 | +}; | ||
| 151 | +</script> | ||
| 152 | + | ||
| 153 | +<style lang="scss" scoped> | ||
| 154 | +// 适配函数计算 | ||
| 155 | +@function vw($px) { | ||
| 156 | + @return 100 * $px/720 + vw; | ||
| 157 | +} | ||
| 158 | +* { | ||
| 159 | + margin: 0; | ||
| 160 | + padding: 0; | ||
| 161 | +} | ||
| 162 | +// 动画 | ||
| 163 | + | ||
| 164 | +// 左边字体动画 | ||
| 165 | +@keyframes leftTop { | ||
| 166 | + 0% { | ||
| 167 | + top: vw(400); | ||
| 168 | + } | ||
| 169 | + 50% { | ||
| 170 | + top: vw(362); | ||
| 171 | + } | ||
| 172 | + 100% { | ||
| 173 | + top: vw(400); | ||
| 174 | + } | ||
| 175 | +} | ||
| 176 | +// 右边字体动画 | ||
| 177 | +@keyframes rightTop { | ||
| 178 | + 0% { | ||
| 179 | + top: vw(372); | ||
| 180 | + } | ||
| 181 | + 50% { | ||
| 182 | + top: vw(410); | ||
| 183 | + } | ||
| 184 | + 100% { | ||
| 185 | + top: vw(372); | ||
| 186 | + } | ||
| 187 | +} | ||
| 188 | +// 按钮动画 | ||
| 189 | +@keyframes bigSmall { | ||
| 190 | + 0% { | ||
| 191 | + transform: scale(1); | ||
| 192 | + } | ||
| 193 | + 50% { | ||
| 194 | + transform: scale(1.1); | ||
| 195 | + } | ||
| 196 | + 100% { | ||
| 197 | + transform: scale(1); | ||
| 198 | + } | ||
| 199 | +} | ||
| 200 | + | ||
| 201 | +// 首页 | ||
| 202 | +.home { | ||
| 203 | + width: vw(720); | ||
| 204 | + display: flex; | ||
| 205 | + flex-direction: column; | ||
| 206 | + align-items: center; | ||
| 207 | + // 首页盒子内容 | ||
| 208 | + .homebox { | ||
| 209 | + width: vw(720); | ||
| 210 | + height: vw(1392); | ||
| 211 | + display: flex; | ||
| 212 | + position: relative; | ||
| 213 | + flex-direction: column; | ||
| 214 | + align-items: center; | ||
| 215 | + | ||
| 216 | + // 活动规则 | ||
| 217 | + .activityRule { | ||
| 218 | + width: vw(40); | ||
| 219 | + height: vw(137); | ||
| 220 | + position: absolute; | ||
| 221 | + top: vw(68); | ||
| 222 | + right: vw(0); | ||
| 223 | + background: url("../image/rulePic.png") 0 0 /100% no-repeat; | ||
| 224 | + } | ||
| 225 | + // 左边男方字体 | ||
| 226 | + .leftFont { | ||
| 227 | + width: vw(207); | ||
| 228 | + height: vw(94); | ||
| 229 | + position: absolute; | ||
| 230 | + top: vw(400); | ||
| 231 | + left: vw(15); | ||
| 232 | + animation: leftTop 2.5s linear infinite; | ||
| 233 | + } | ||
| 234 | + // 右边女方字体 | ||
| 235 | + .rightFont { | ||
| 236 | + width: vw(207); | ||
| 237 | + height: vw(94); | ||
| 238 | + position: absolute; | ||
| 239 | + top: vw(372); | ||
| 240 | + right: vw(37); | ||
| 241 | + animation: rightTop 2.5s linear infinite; | ||
| 242 | + } | ||
| 243 | + // 输入内容 | ||
| 244 | + .homeContent { | ||
| 245 | + width: vw(720); | ||
| 246 | + height: vw(671); | ||
| 247 | + position: absolute; | ||
| 248 | + background: url("../image/homeBR.png") 0 0 /100% no-repeat; | ||
| 249 | + top: vw(680); | ||
| 250 | + display: flex; | ||
| 251 | + flex-direction: column; | ||
| 252 | + align-items: center; | ||
| 253 | + // 输入框 | ||
| 254 | + .nameIptOne { | ||
| 255 | + width: vw(620); | ||
| 256 | + height: vw(90); | ||
| 257 | + position: absolute; | ||
| 258 | + top: vw(177); | ||
| 259 | + display: flex; | ||
| 260 | + align-items: center; | ||
| 261 | + justify-content: flex-end; | ||
| 262 | + background: url("../image/nameIptO.png") 0 0 /100% no-repeat; | ||
| 263 | + ::placeholder { | ||
| 264 | + color: #808080; | ||
| 265 | + } | ||
| 266 | + } | ||
| 267 | + | ||
| 268 | + .nameIptTwo { | ||
| 269 | + width: vw(620); | ||
| 270 | + height: vw(90); | ||
| 271 | + position: absolute; | ||
| 272 | + top: vw(297); | ||
| 273 | + display: flex; | ||
| 274 | + align-items: center; | ||
| 275 | + justify-content: flex-end; | ||
| 276 | + background: url("../image/nameIptY.png") 0 0 /100% no-repeat; | ||
| 277 | + ::placeholder { | ||
| 278 | + color: #808080; | ||
| 279 | + } | ||
| 280 | + } | ||
| 281 | + .nameIpt { | ||
| 282 | + width: vw(520); | ||
| 283 | + height: vw(90); | ||
| 284 | + outline: none; | ||
| 285 | + border: none; | ||
| 286 | + font-size: vw(32); | ||
| 287 | + } | ||
| 288 | + // 按钮 | ||
| 289 | + .btnMatching { | ||
| 290 | + width: vw(620); | ||
| 291 | + height: vw(103); | ||
| 292 | + position: absolute; | ||
| 293 | + top: vw(417); | ||
| 294 | + animation: bigSmall 2.5s linear infinite; | ||
| 295 | + background: url("../image/btnMatching.png") 0 0 / 100% no-repeat; | ||
| 296 | + } | ||
| 297 | + // 字体 | ||
| 298 | + .footerFont { | ||
| 299 | + width: vw(558); | ||
| 300 | + font-size: vw(24); | ||
| 301 | + position: absolute; | ||
| 302 | + top: vw(530); | ||
| 303 | + color: #976773; | ||
| 304 | + text-align: center; | ||
| 305 | + line-height: vw(48); | ||
| 306 | + .fontRed { | ||
| 307 | + color: red; | ||
| 308 | + } | ||
| 309 | + } | ||
| 310 | + } | ||
| 311 | + } | ||
| 312 | + // 规则玩法提示 | ||
| 313 | + .van-dialog { | ||
| 314 | + width: vw(620); | ||
| 315 | + height: vw(800); | ||
| 316 | + display: flex; | ||
| 317 | + align-items: center; | ||
| 318 | + flex-direction: column; | ||
| 319 | + // 标题头 | ||
| 320 | + :deep(.van-dialog__header) { | ||
| 321 | + font-size: vw(38); | ||
| 322 | + font-weight: 700; | ||
| 323 | + } | ||
| 324 | + // 内容 | ||
| 325 | + :deep(.van-dialog__content) { | ||
| 326 | + width: vw(550); | ||
| 327 | + height: vw(600); | ||
| 328 | + overflow: scroll; | ||
| 329 | + margin-top: vw(20); | ||
| 330 | + // 每一条信息 | ||
| 331 | + .every { | ||
| 332 | + margin-bottom: vw(15); | ||
| 333 | + } | ||
| 334 | + } | ||
| 335 | + //底部按钮 | ||
| 336 | + :deep(.van-dialog__footer) { | ||
| 337 | + width: vw(550); | ||
| 338 | + display: flex; | ||
| 339 | + align-items: center; | ||
| 340 | + justify-content: space-between; | ||
| 341 | + } | ||
| 342 | + } | ||
| 343 | +} | ||
| 344 | +</style> |
src/views/homeTwo/homeTwo.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <!-- 第二页 --> | ||
| 3 | + <div class="homeTwo"> | ||
| 4 | + <!-- 第二页盒子内容 --> | ||
| 5 | + <div class="homeTwobox"> | ||
| 6 | + <!-- 情侣 --> | ||
| 7 | + <div class="lovers"> | ||
| 8 | + <span>{{ name[0] }}</span> | ||
| 9 | + <img class="love" src="../image/love.png" alt="" /> | ||
| 10 | + <span>{{ name[1] }}</span> | ||
| 11 | + </div> | ||
| 12 | + <!-- 高分 --> | ||
| 13 | + <div class="score">恋爱指数有机会99分</div> | ||
| 14 | + <!-- 免费 --> | ||
| 15 | + <div class="free" @click="popshowFn"></div> | ||
| 16 | + <!-- 价格 --> | ||
| 17 | + <div class="price">恋爱好运价:<span>9.9元</span></div> | ||
| 18 | + <!-- 有机会获得 --> | ||
| 19 | + <div class="opportunity"> | ||
| 20 | + 您将获得:恋爱指数报告&<span>免费领iphone</span> | ||
| 21 | + </div> | ||
| 22 | + <!-- 解锁按钮 --> | ||
| 23 | + <div class="btnUnlock" @click="payWXorZFB"></div> | ||
| 24 | + <!-- 微信支付 --> | ||
| 25 | + <div class="WXpay"> | ||
| 26 | + <div class="WXpayleft"> | ||
| 27 | + <div class="wxfont"> | ||
| 28 | + <img class="wxicon" src="../image/WXicon.png" alt="" /> | ||
| 29 | + <p>微信安全支付</p> | ||
| 30 | + </div> | ||
| 31 | + <div class="line"></div> | ||
| 32 | + <div class="zfbfont"> | ||
| 33 | + <img class="wxicon" src="../image/ZFBicon.png" alt="" /> | ||
| 34 | + <p>支付宝安全支付</p> | ||
| 35 | + </div> | ||
| 36 | + </div> | ||
| 37 | + <van-radio-group v-model="radio" class="btnright"> | ||
| 38 | + <van-radio name="1" checked-color="green"></van-radio> | ||
| 39 | + <van-radio name="2" checked-color="green"></van-radio> | ||
| 40 | + </van-radio-group> | ||
| 41 | + </div> | ||
| 42 | + </div> | ||
| 43 | + <!-- 弹窗 --> | ||
| 44 | + <van-popup class="popcontent" v-model="popshow"> | ||
| 45 | + <!-- 标题 --> | ||
| 46 | + <p class="title">离双方配对报告只差1步</p> | ||
| 47 | + <p class="titletwo">支付后查看契合度报告</p> | ||
| 48 | + <!-- 进度 --> | ||
| 49 | + <div class="progress"> | ||
| 50 | + <div class="progressTop"> | ||
| 51 | + <img class="tick tickbor" src="../image/true.png" alt="" /> | ||
| 52 | + <img class="tick" src="../image/true.png" alt="" /> | ||
| 53 | + <p>仅剩0.7%</p> | ||
| 54 | + </div> | ||
| 55 | + <img src="../image/line.png" alt="" /> | ||
| 56 | + <div class="bottomFont"> | ||
| 57 | + <p>信息提交</p> | ||
| 58 | + <p>生成报告</p> | ||
| 59 | + <p>查看契合度</p> | ||
| 60 | + </div> | ||
| 61 | + </div> | ||
| 62 | + <!-- 支付按钮 --> | ||
| 63 | + <div class="paybtn">立即支付</div> | ||
| 64 | + <!-- 优惠按钮 --> | ||
| 65 | + <div class="discount">领取优惠红包</div> | ||
| 66 | + <!-- 领取报告 --> | ||
| 67 | + <div class="report">已支付点击领取报告</div> | ||
| 68 | + <!-- 已有人数 --> | ||
| 69 | + <p class="footerFont">已有1386706人解锁姓名测试</p> | ||
| 70 | + <p class="footerFont bottomLine">姓名错误,需要重新填写></p> | ||
| 71 | + </van-popup> | ||
| 72 | + <!-- 付款人列表 --> | ||
| 73 | + <div class="payList" v-if="payListshow">{{ listdata }}</div> | ||
| 74 | + </div> | ||
| 75 | +</template> | ||
| 76 | + | ||
| 77 | +<script> | ||
| 78 | +export default { | ||
| 79 | + name: "homeTwo", | ||
| 80 | + data() { | ||
| 81 | + return { | ||
| 82 | + //支付单选框 | ||
| 83 | + radio: "1", | ||
| 84 | + // 情侣姓名 | ||
| 85 | + name: [], | ||
| 86 | + // 弹出层 | ||
| 87 | + popshow: false, | ||
| 88 | + // 付款人列表显示隐藏 | ||
| 89 | + payListshow: false, | ||
| 90 | + // 付款人信息 | ||
| 91 | + listdata: "", | ||
| 92 | + // 定时器 | ||
| 93 | + timer: "", | ||
| 94 | + }; | ||
| 95 | + }, | ||
| 96 | + methods: { | ||
| 97 | + // 支付宝,微信 | ||
| 98 | + payWXorZFB() { | ||
| 99 | + if (this.radio == "1") { | ||
| 100 | + console.log("微信支付"); | ||
| 101 | + this.$router.push("/result"); | ||
| 102 | + } else if (this.radio == "2") { | ||
| 103 | + this.$router.push("/result"); | ||
| 104 | + } | ||
| 105 | + }, | ||
| 106 | + popshowFn() { | ||
| 107 | + this.popshow = !this.popshow; | ||
| 108 | + }, | ||
| 109 | + }, | ||
| 110 | + async activated() { | ||
| 111 | + this.name = await JSON.parse(localStorage.getItem("name")); | ||
| 112 | + // 付款人列表 | ||
| 113 | + await this.$store.dispatch("gainPayList", 1); | ||
| 114 | + this.timer = setInterval(() => { | ||
| 115 | + if (!this.payListshow) { | ||
| 116 | + var num = Math.floor( | ||
| 117 | + Math.random() * (this.payListData.length - 1 - 0 + 1) + 0 | ||
| 118 | + ); | ||
| 119 | + console.log(num); | ||
| 120 | + this.listdata = this.payListData[num]; | ||
| 121 | + this.payListshow = !this.payListshow; | ||
| 122 | + } else if (this.payListshow) { | ||
| 123 | + this.payListshow = !this.payListshow; | ||
| 124 | + num += 1; | ||
| 125 | + } | ||
| 126 | + }, 4000); | ||
| 127 | + }, | ||
| 128 | + deactivated() { | ||
| 129 | + clearInterval(this.timer); | ||
| 130 | + this.payListshow = false; | ||
| 131 | + }, | ||
| 132 | + computed: { | ||
| 133 | + // 付款人列表 | ||
| 134 | + payListData() { | ||
| 135 | + return this.$store.state.pay.paylist; | ||
| 136 | + }, | ||
| 137 | + }, | ||
| 138 | +}; | ||
| 139 | +</script> | ||
| 140 | + | ||
| 141 | +<style lang="scss" scoped> | ||
| 142 | +// 适配函数计算 | ||
| 143 | +@function vw($px) { | ||
| 144 | + @return 100 * $px/720 + vw; | ||
| 145 | +} | ||
| 146 | +* { | ||
| 147 | + margin: 0; | ||
| 148 | + padding: 0; | ||
| 149 | +} | ||
| 150 | + | ||
| 151 | +// 动画 | ||
| 152 | +// 右边字体动画 | ||
| 153 | +@keyframes rightTop { | ||
| 154 | + 0% { | ||
| 155 | + top: vw(523); | ||
| 156 | + } | ||
| 157 | + 50% { | ||
| 158 | + top: vw(490); | ||
| 159 | + } | ||
| 160 | + 100% { | ||
| 161 | + top: vw(523); | ||
| 162 | + } | ||
| 163 | +} | ||
| 164 | + | ||
| 165 | +// 按钮动画 | ||
| 166 | +@keyframes bigSmall { | ||
| 167 | + 0% { | ||
| 168 | + transform: scale(1); | ||
| 169 | + } | ||
| 170 | + 50% { | ||
| 171 | + transform: scale(1.1); | ||
| 172 | + } | ||
| 173 | + 100% { | ||
| 174 | + transform: scale(1); | ||
| 175 | + } | ||
| 176 | +} | ||
| 177 | +// 第二页 | ||
| 178 | +.homeTwo { | ||
| 179 | + width: vw(720); | ||
| 180 | + display: flex; | ||
| 181 | + flex-direction: column; | ||
| 182 | + align-items: center; | ||
| 183 | + // 第二页盒子内容 | ||
| 184 | + .homeTwobox { | ||
| 185 | + width: vw(720); | ||
| 186 | + height: vw(1437); | ||
| 187 | + display: flex; | ||
| 188 | + position: relative; | ||
| 189 | + flex-direction: column; | ||
| 190 | + align-items: center; | ||
| 191 | + background: url("../image/homeTwoBG.png") 0 0 /100% no-repeat; | ||
| 192 | + // 情侣 | ||
| 193 | + .lovers { | ||
| 194 | + position: absolute; | ||
| 195 | + top: vw(180); | ||
| 196 | + left: vw(100); | ||
| 197 | + display: flex; | ||
| 198 | + align-items: center; | ||
| 199 | + justify-content: space-between; | ||
| 200 | + .love { | ||
| 201 | + width: vw(29); | ||
| 202 | + height: vw(24); | ||
| 203 | + display: block; | ||
| 204 | + margin: 0 vw(8); | ||
| 205 | + } | ||
| 206 | + span { | ||
| 207 | + display: block; | ||
| 208 | + font-size: vw(32); | ||
| 209 | + font-weight: 400; | ||
| 210 | + color: #333333; | ||
| 211 | + } | ||
| 212 | + } | ||
| 213 | + // 高分 | ||
| 214 | + .score { | ||
| 215 | + font-size: vw(32); | ||
| 216 | + font-weight: 600; | ||
| 217 | + color: #f23e79; | ||
| 218 | + position: absolute; | ||
| 219 | + top: vw(236); | ||
| 220 | + right: vw(80); | ||
| 221 | + } | ||
| 222 | + // 免费 | ||
| 223 | + .free { | ||
| 224 | + width: vw(197); | ||
| 225 | + height: vw(196); | ||
| 226 | + position: absolute; | ||
| 227 | + top: vw(523); | ||
| 228 | + left: vw(443); | ||
| 229 | + animation: rightTop 2.5s linear infinite; | ||
| 230 | + background: url("../image/freePic.png") 0 0 /100% no-repeat; | ||
| 231 | + } | ||
| 232 | + // 价格 | ||
| 233 | + .price { | ||
| 234 | + position: absolute; | ||
| 235 | + top: vw(855); | ||
| 236 | + left: vw(102); | ||
| 237 | + font-weight: 400; | ||
| 238 | + color: #333333; | ||
| 239 | + font-size: vw(28); | ||
| 240 | + span { | ||
| 241 | + color: #e55e8a; | ||
| 242 | + font-size: vw(30); | ||
| 243 | + } | ||
| 244 | + } | ||
| 245 | + // 有机会获得 | ||
| 246 | + .opportunity { | ||
| 247 | + position: absolute; | ||
| 248 | + top: vw(915); | ||
| 249 | + left: vw(102); | ||
| 250 | + font-weight: 400; | ||
| 251 | + color: #333333; | ||
| 252 | + font-size: vw(28); | ||
| 253 | + span { | ||
| 254 | + color: #e55e8a; | ||
| 255 | + font-size: vw(30); | ||
| 256 | + } | ||
| 257 | + } | ||
| 258 | + // 解锁按钮 | ||
| 259 | + .btnUnlock { | ||
| 260 | + width: vw(600); | ||
| 261 | + height: vw(148); | ||
| 262 | + position: absolute; | ||
| 263 | + top: vw(975); | ||
| 264 | + animation: bigSmall 2.5s linear infinite; | ||
| 265 | + background: url("../image/btnUnlock.png") 0 0 /100% no-repeat; | ||
| 266 | + } | ||
| 267 | + // 微信支付 | ||
| 268 | + .WXpay { | ||
| 269 | + width: vw(560); | ||
| 270 | + height: vw(139); | ||
| 271 | + position: absolute; | ||
| 272 | + top: vw(1127); | ||
| 273 | + display: flex; | ||
| 274 | + align-items: center; | ||
| 275 | + justify-content: space-between; | ||
| 276 | + .WXpayleft { | ||
| 277 | + width: vw(254); | ||
| 278 | + height: vw(139); | ||
| 279 | + font-weight: 400; | ||
| 280 | + color: #333333; | ||
| 281 | + font-size: vw(28); | ||
| 282 | + display: flex; | ||
| 283 | + flex-direction: column; | ||
| 284 | + justify-content: space-between; | ||
| 285 | + .wxfont { | ||
| 286 | + width: vw(226); | ||
| 287 | + height: vw(48); | ||
| 288 | + display: flex; | ||
| 289 | + align-items: center; | ||
| 290 | + justify-content: space-between; | ||
| 291 | + // border-bottom: vw(1) solid gainsboro; | ||
| 292 | + } | ||
| 293 | + .line { | ||
| 294 | + width: vw(560); | ||
| 295 | + height: vw(1); | ||
| 296 | + background: gainsboro; | ||
| 297 | + } | ||
| 298 | + .zfbfont { | ||
| 299 | + width: vw(254); | ||
| 300 | + height: vw(48); | ||
| 301 | + display: flex; | ||
| 302 | + align-items: center; | ||
| 303 | + justify-content: space-between; | ||
| 304 | + } | ||
| 305 | + .wxicon { | ||
| 306 | + width: vw(48); | ||
| 307 | + height: vw(48); | ||
| 308 | + } | ||
| 309 | + } | ||
| 310 | + .btnright { | ||
| 311 | + height: vw(127); | ||
| 312 | + display: flex; | ||
| 313 | + flex-direction: column; | ||
| 314 | + justify-content: space-between; | ||
| 315 | + } | ||
| 316 | + // 确认按钮 | ||
| 317 | + .affirm { | ||
| 318 | + width: vw(38); | ||
| 319 | + height: vw(38); | ||
| 320 | + } | ||
| 321 | + } | ||
| 322 | + } | ||
| 323 | + // 弹窗 | ||
| 324 | + .popcontent { | ||
| 325 | + width: vw(540); | ||
| 326 | + height: vw(868); | ||
| 327 | + background: #ffffff; | ||
| 328 | + border-radius: vw(20); | ||
| 329 | + display: flex; | ||
| 330 | + align-items: center; | ||
| 331 | + flex-direction: column; | ||
| 332 | + // 标题 | ||
| 333 | + .title { | ||
| 334 | + font-size: vw(40); | ||
| 335 | + font-weight: 600; | ||
| 336 | + color: #be061a; | ||
| 337 | + margin: vw(50) 0 vw(20) 0; | ||
| 338 | + } | ||
| 339 | + .titletwo { | ||
| 340 | + font-size: vw(40); | ||
| 341 | + font-weight: 600; | ||
| 342 | + color: #be061a; | ||
| 343 | + } | ||
| 344 | + // 进度 | ||
| 345 | + .progress { | ||
| 346 | + width: vw(403); | ||
| 347 | + height: vw(104); | ||
| 348 | + margin-top: vw(52); | ||
| 349 | + display: flex; | ||
| 350 | + flex-direction: column; | ||
| 351 | + justify-content: space-between; | ||
| 352 | + // background-color: red; | ||
| 353 | + .progressTop { | ||
| 354 | + width: vw(403); | ||
| 355 | + display: flex; | ||
| 356 | + align-items: center; | ||
| 357 | + justify-content: space-between; | ||
| 358 | + .tick { | ||
| 359 | + width: vw(35); | ||
| 360 | + height: vw(30); | ||
| 361 | + } | ||
| 362 | + .tickbor { | ||
| 363 | + padding: vw(5); | ||
| 364 | + border: vw(1) dashed gainsboro; | ||
| 365 | + } | ||
| 366 | + p { | ||
| 367 | + font-size: vw(22); | ||
| 368 | + font-weight: 500; | ||
| 369 | + color: #f4a525; | ||
| 370 | + } | ||
| 371 | + } | ||
| 372 | + img { | ||
| 373 | + width: vw(403); | ||
| 374 | + height: vw(22); | ||
| 375 | + } | ||
| 376 | + .bottomFont { | ||
| 377 | + width: vw(403); | ||
| 378 | + height: vw(30); | ||
| 379 | + display: flex; | ||
| 380 | + align-items: center; | ||
| 381 | + justify-content: space-between; | ||
| 382 | + p { | ||
| 383 | + font-size: vw(22); | ||
| 384 | + font-weight: 400; | ||
| 385 | + color: #333333; | ||
| 386 | + } | ||
| 387 | + } | ||
| 388 | + } | ||
| 389 | + %btnfont { | ||
| 390 | + width: vw(443); | ||
| 391 | + height: vw(90); | ||
| 392 | + border-radius: vw(50); | ||
| 393 | + display: flex; | ||
| 394 | + align-items: center; | ||
| 395 | + justify-content: center; | ||
| 396 | + font-size: vw(36); | ||
| 397 | + font-weight: 400; | ||
| 398 | + color: #ffffff; | ||
| 399 | + } | ||
| 400 | + // 支付按钮 | ||
| 401 | + .paybtn { | ||
| 402 | + background-color: #cf0316; | ||
| 403 | + margin: vw(46) 0 vw(30) 0; | ||
| 404 | + @extend %btnfont; | ||
| 405 | + } | ||
| 406 | + // 优惠按钮 | ||
| 407 | + .discount { | ||
| 408 | + background-color: #f4a525; | ||
| 409 | + @extend %btnfont; | ||
| 410 | + } | ||
| 411 | + // 领取报告 | ||
| 412 | + .report { | ||
| 413 | + border: vw(2) solid #e9ca8f; | ||
| 414 | + @extend %btnfont; | ||
| 415 | + color: black; | ||
| 416 | + margin: vw(30) 0 vw(30) 0; | ||
| 417 | + } | ||
| 418 | + // 已有人数 | ||
| 419 | + .footerFont { | ||
| 420 | + font-size: vw(30); | ||
| 421 | + font-weight: 400; | ||
| 422 | + color: #c75c5c; | ||
| 423 | + } | ||
| 424 | + .bottomLine { | ||
| 425 | + margin-top: vw(18); | ||
| 426 | + text-decoration: underline; | ||
| 427 | + } | ||
| 428 | + } | ||
| 429 | + // 付款人列表 | ||
| 430 | + .payList { | ||
| 431 | + width: vw(510); | ||
| 432 | + height: vw(72); | ||
| 433 | + background: #000000; | ||
| 434 | + border-radius: vw(14); | ||
| 435 | + opacity: 0.7; | ||
| 436 | + position: absolute; | ||
| 437 | + bottom: vw(90); | ||
| 438 | + font-size: vw(28); | ||
| 439 | + font-weight: 400; | ||
| 440 | + color: white; | ||
| 441 | + display: flex; | ||
| 442 | + align-items: center; | ||
| 443 | + justify-content: center; | ||
| 444 | + } | ||
| 445 | +} | ||
| 446 | +</style> |
src/views/image/WXicon.png
0 → 100644
436 Bytes
src/views/image/ZFBicon.png
0 → 100644
466 Bytes
src/views/image/bannerThree.png
0 → 100644
129 KB
src/views/image/btnMatching.png
0 → 100644
34.7 KB
src/views/image/btnUnlock.png
0 → 100644
68 KB
src/views/image/edge.png
0 → 100644
3.81 KB
src/views/image/freePic.png
0 → 100644
153 KB
src/views/image/homeBR.png
0 → 100644
282 KB
src/views/image/homeTwoBG.png
0 → 100644
465 KB
src/views/image/leftpic.png
0 → 100644
370 KB
src/views/image/line.png
0 → 100644
2.96 KB
src/views/image/lockUp.png
0 → 100644
8.58 KB
src/views/image/love.png
0 → 100644
1.52 KB
src/views/image/loveline.png
0 → 100644
3.37 KB
src/views/image/nameIptO.png
0 → 100644
32.2 KB
src/views/image/nameIptY.png
0 → 100644
35.6 KB
src/views/image/nanfont.png
0 → 100644
34.4 KB
src/views/image/navurl.png
0 → 100644
38.7 KB
src/views/image/nvfont.png
0 → 100644
31.2 KB
src/views/image/restitle.png
0 → 100644
9.27 KB
src/views/image/resultBC.png
0 → 100644
342 KB
src/views/image/returnTop.png
0 → 100644
1.51 KB
src/views/image/rightpic.png
0 → 100644
345 KB
src/views/image/rulePic.png
0 → 100644
28.1 KB
src/views/image/true.png
0 → 100644
1.79 KB
src/views/image/wxfont.png
0 → 100644
6 KB
src/views/image/zfbfont.png
0 → 100644
6.21 KB
src/views/pay/pay.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <!-- 第三页 --> | ||
| 3 | + <div class="pay"> | ||
| 4 | + <!-- 第三页盒子 --> | ||
| 5 | + <div class="paybox"> | ||
| 6 | + <!-- 横幅 --> | ||
| 7 | + <div class="banner"></div> | ||
| 8 | + <!-- 订单编号 --> | ||
| 9 | + <div class="orderId">订单编号:{{ pairResult.order_no }}</div> | ||
| 10 | + <!-- 支付 --> | ||
| 11 | + <div class="paycontent"> | ||
| 12 | + <!-- 人物 --> | ||
| 13 | + <div class="character"> | ||
| 14 | + <div class="leftcharacter"> | ||
| 15 | + <p class="nameTop">{{ $route.query.boy }}</p> | ||
| 16 | + <img src="../image/leftpic.png" alt="" /> | ||
| 17 | + <p class="timeFooter"></p> | ||
| 18 | + </div> | ||
| 19 | + <img class="loveline" src="../image//loveline.png" alt="" /> | ||
| 20 | + <div class="rightcharacter"> | ||
| 21 | + <p class="nameTop">{{ $route.query.girl }}</p> | ||
| 22 | + <img src="../image/rightpic.png" alt="" /> | ||
| 23 | + <p class="timeFooter"></p> | ||
| 24 | + </div> | ||
| 25 | + </div> | ||
| 26 | + <!-- 特价 --> | ||
| 27 | + <div class="special"> | ||
| 28 | + <p class="original">原价:¥168</p> | ||
| 29 | + <p class="luck">吉时特价:</p> | ||
| 30 | + <p class="nowpri">¥ 9.9</p> | ||
| 31 | + </div> | ||
| 32 | + <!-- 倒计时 --> | ||
| 33 | + <p class="count"> | ||
| 34 | + <span>倒计时:</span> | ||
| 35 | + <van-count-down | ||
| 36 | + class="timeCountDownmiao" | ||
| 37 | + :time="time" | ||
| 38 | + format="HH 小时 mm 分 ss 秒" | ||
| 39 | + /> | ||
| 40 | + </p> | ||
| 41 | + <!-- 微信支付 --> | ||
| 42 | + <div class="wxpaybtn" @click="payWX"> | ||
| 43 | + <img src="../image/wxfont.png" alt="" /> | ||
| 44 | + </div> | ||
| 45 | + <!-- 支付宝支付 --> | ||
| 46 | + <!-- <div class="zfbpaybtn"> | ||
| 47 | + <img src="../image/zfbfont.png" alt="" /> | ||
| 48 | + </div> --> | ||
| 49 | + </div> | ||
| 50 | + <!-- 支付完成 --> | ||
| 51 | + <div class="complete">支付完成后,将为您解锁其余八项重要内容:</div> | ||
| 52 | + <!-- 结果 --> | ||
| 53 | + <div class="result"> | ||
| 54 | + <div class="each"> | ||
| 55 | + <div class="eachtitle"> | ||
| 56 | + <img class="rotate" src="../image/edge.png" alt="" /> | ||
| 57 | + <p>第一:{{ $route.query.girl }}小姐的性格解析</p> | ||
| 58 | + <img src="../image/edge.png" alt="" /> | ||
| 59 | + </div> | ||
| 60 | + </div> | ||
| 61 | + <div class="each"> | ||
| 62 | + <div class="eachtitle"> | ||
| 63 | + <img class="rotate" src="../image/edge.png" alt="" /> | ||
| 64 | + <p>第二:{{ $route.query.boy }}先生的性格解析</p> | ||
| 65 | + <img src="../image/edge.png" alt="" /> | ||
| 66 | + </div> | ||
| 67 | + </div> | ||
| 68 | + <div class="each"> | ||
| 69 | + <div class="eachtitle"> | ||
| 70 | + <img class="rotate" src="../image/edge.png" alt="" /> | ||
| 71 | + <p>第三:配对分析</p> | ||
| 72 | + <img src="../image/edge.png" alt="" /> | ||
| 73 | + </div> | ||
| 74 | + <div class="resultcontent"> | ||
| 75 | + <div class="leftFont"> | ||
| 76 | + <p>你们一生的婚姻究竟会是怎样呢?</p> | ||
| 77 | + <p>相比于其他人来说,是好是坏?</p> | ||
| 78 | + <p>哪些因素会干扰你们的爱情?</p> | ||
| 79 | + </div> | ||
| 80 | + <div class="rightImg"> | ||
| 81 | + <img src="../image/lockUp.png" alt="" /> | ||
| 82 | + <p>解锁查看</p> | ||
| 83 | + </div> | ||
| 84 | + </div> | ||
| 85 | + </div> | ||
| 86 | + <div class="each"> | ||
| 87 | + <div class="eachtitle"> | ||
| 88 | + <img class="rotate" src="../image/edge.png" alt="" /> | ||
| 89 | + <p>第四:你们的爱情危机</p> | ||
| 90 | + <img src="../image/edge.png" alt="" /> | ||
| 91 | + </div> | ||
| 92 | + <div class="resultcontent"> | ||
| 93 | + <div class="leftFont"> | ||
| 94 | + <p>两人相处时会出现哪些危机?</p> | ||
| 95 | + <p>你们的幸福指数是多少?</p> | ||
| 96 | + <p>如何破解危机,守护爱情?</p> | ||
| 97 | + </div> | ||
| 98 | + <div class="rightImg"> | ||
| 99 | + <img src="../image/lockUp.png" alt="" /> | ||
| 100 | + <p>解锁查看</p> | ||
| 101 | + </div> | ||
| 102 | + </div> | ||
| 103 | + </div> | ||
| 104 | + <div class="each"> | ||
| 105 | + <div class="eachtitle"> | ||
| 106 | + <img class="rotate" src="../image/edge.png" alt="" /> | ||
| 107 | + <p>第五:婚前婚后变化</p> | ||
| 108 | + <img src="../image/edge.png" alt="" /> | ||
| 109 | + </div> | ||
| 110 | + <div class="resultcontent"> | ||
| 111 | + <div class="leftFont"> | ||
| 112 | + <p>你们是否是天生一对?</p> | ||
| 113 | + <p>在别人眼中你们的婚姻是怎样的?</p> | ||
| 114 | + <p>生活中你们是怎样和谐相处?</p> | ||
| 115 | + </div> | ||
| 116 | + <div class="rightImg"> | ||
| 117 | + <img src="../image/lockUp.png" alt="" /> | ||
| 118 | + <p>解锁查看</p> | ||
| 119 | + </div> | ||
| 120 | + </div> | ||
| 121 | + </div> | ||
| 122 | + <div class="each"> | ||
| 123 | + <div class="eachtitle"> | ||
| 124 | + <img class="rotate" src="../image/edge.png" alt="" /> | ||
| 125 | + <p>第六:(婚配指数)心有灵犀</p> | ||
| 126 | + <img src="../image/edge.png" alt="" /> | ||
| 127 | + </div> | ||
| 128 | + <div class="resultcontent"> | ||
| 129 | + <div class="leftFont"> | ||
| 130 | + <p>对方会是个温柔体贴的人吗?</p> | ||
| 131 | + <p>会屈就于你还是你只有听从的份?</p> | ||
| 132 | + <p>相处之中你们是否更具默契?</p> | ||
| 133 | + </div> | ||
| 134 | + <div class="rightImg"> | ||
| 135 | + <img src="../image/lockUp.png" alt="" /> | ||
| 136 | + <p>解锁查看</p> | ||
| 137 | + </div> | ||
| 138 | + </div> | ||
| 139 | + </div> | ||
| 140 | + <div class="each"> | ||
| 141 | + <div class="eachtitle"> | ||
| 142 | + <img class="rotate" src="../image/edge.png" alt="" /> | ||
| 143 | + <p>第七:(感情质量)相扶相旺</p> | ||
| 144 | + <img src="../image/edge.png" alt="" /> | ||
| 145 | + </div> | ||
| 146 | + <div class="resultcontent"> | ||
| 147 | + <div class="leftFont"> | ||
| 148 | + <p>配偶是得力助手还是对方的累赘?</p> | ||
| 149 | + <p>你对配偶是助旺还是助衰呢?</p> | ||
| 150 | + <p>你们能互相助旺、优势互补吗?</p> | ||
| 151 | + </div> | ||
| 152 | + <div class="rightImg"> | ||
| 153 | + <img src="../image/lockUp.png" alt="" /> | ||
| 154 | + <p>解锁查看</p> | ||
| 155 | + </div> | ||
| 156 | + </div> | ||
| 157 | + </div> | ||
| 158 | + <div class="each"> | ||
| 159 | + <div class="eachtitle"> | ||
| 160 | + <img class="rotate" src="../image/edge.png" alt="" /> | ||
| 161 | + <p>第八:爱情保卫</p> | ||
| 162 | + <img src="../image/edge.png" alt="" /> | ||
| 163 | + </div> | ||
| 164 | + <div class="resultcontent"> | ||
| 165 | + <div class="leftFont"> | ||
| 166 | + <p>你们的婚后生活稳定吗?</p> | ||
| 167 | + <p>婚姻生活中会遇到哪些危机?</p> | ||
| 168 | + <p>维系二人感情稳定的方法?</p> | ||
| 169 | + </div> | ||
| 170 | + <div class="rightImg"> | ||
| 171 | + <img src="../image/lockUp.png" alt="" /> | ||
| 172 | + <p>解锁查看</p> | ||
| 173 | + </div> | ||
| 174 | + </div> | ||
| 175 | + </div> | ||
| 176 | + <div class="each"> | ||
| 177 | + <div class="eachtitle"> | ||
| 178 | + <img class="rotate" src="../image/edge.png" alt="" /> | ||
| 179 | + <p>第九:(双方优点)魅力相吸</p> | ||
| 180 | + <img src="../image/edge.png" alt="" /> | ||
| 181 | + </div> | ||
| 182 | + <div class="resultcontent"> | ||
| 183 | + <div class="leftFont"> | ||
| 184 | + <p>你们的婚姻保质期有多久?</p> | ||
| 185 | + <p>另一半是否有出轨倾向?</p> | ||
| 186 | + <p>针对你们的爱情保鲜秘籍是什么?</p> | ||
| 187 | + </div> | ||
| 188 | + <div class="rightImg"> | ||
| 189 | + <img src="../image/lockUp.png" alt="" /> | ||
| 190 | + <p>解锁查看</p> | ||
| 191 | + </div> | ||
| 192 | + </div> | ||
| 193 | + </div> | ||
| 194 | + <div class="each"> | ||
| 195 | + <div class="eachtitle"> | ||
| 196 | + <img class="rotate" src="../image/edge.png" alt="" /> | ||
| 197 | + <p>第十:(婚后生活)子女同步</p> | ||
| 198 | + <img src="../image/edge.png" alt="" /> | ||
| 199 | + </div> | ||
| 200 | + <div class="resultcontent"> | ||
| 201 | + <div class="leftFont"> | ||
| 202 | + <p>孩子能让你们开心还是疲惫?</p> | ||
| 203 | + <p>孩子的到来会让婚姻变得更加稳固?</p> | ||
| 204 | + </div> | ||
| 205 | + <div class="rightImg"> | ||
| 206 | + <img src="../image/lockUp.png" alt="" /> | ||
| 207 | + <p>解锁查看</p> | ||
| 208 | + </div> | ||
| 209 | + </div> | ||
| 210 | + </div> | ||
| 211 | + </div> | ||
| 212 | + </div> | ||
| 213 | + <!-- 回到顶部 --> | ||
| 214 | + <div | ||
| 215 | + class="returnTop" | ||
| 216 | + :class="showTop ? 'showx' : ''" | ||
| 217 | + id="retTop" | ||
| 218 | + @click="returnTop" | ||
| 219 | + ></div> | ||
| 220 | + </div> | ||
| 221 | +</template> | ||
| 222 | + | ||
| 223 | +<script> | ||
| 224 | +export default { | ||
| 225 | + name: "pay", | ||
| 226 | + data() { | ||
| 227 | + return { | ||
| 228 | + // 返回顶部 | ||
| 229 | + showTop: true, | ||
| 230 | + // 倒计时 | ||
| 231 | + time: 1 * 60 * 60 * 1000, | ||
| 232 | + }; | ||
| 233 | + }, | ||
| 234 | + methods: { | ||
| 235 | + // 回到顶部 | ||
| 236 | + async returnTop() { | ||
| 237 | + //滚动条总路程 | ||
| 238 | + var gdt = document.documentElement.scrollTop; | ||
| 239 | + //滚动条速度 | ||
| 240 | + var gdtsudu = gdt / 20; | ||
| 241 | + var timer = setInterval(() => { | ||
| 242 | + document.documentElement.scrollTop -= gdtsudu; | ||
| 243 | + if (document.documentElement.scrollTop <= 0) { | ||
| 244 | + clearInterval(timer); | ||
| 245 | + this.showTop = true; | ||
| 246 | + } | ||
| 247 | + }, 10); | ||
| 248 | + }, | ||
| 249 | + // 微信支付 | ||
| 250 | + async payWX() { | ||
| 251 | + // this.$router.push({ | ||
| 252 | + // path: "/result", | ||
| 253 | + // query: { | ||
| 254 | + // order_no: this.pairResult.order_no, | ||
| 255 | + // }, | ||
| 256 | + // }); | ||
| 257 | + await this.$store.dispatch("gainPayWX", { | ||
| 258 | + order_no: this.pairResult.order_no, | ||
| 259 | + }); | ||
| 260 | + location.href = | ||
| 261 | + this.$store.state.pay.WXurl + | ||
| 262 | + "&redirect_url=" + | ||
| 263 | + encodeURIComponent( | ||
| 264 | + "http://estimate.gzrkkj.cn/#/result?order_no=" + | ||
| 265 | + this.pairResult.order_no | ||
| 266 | + ); | ||
| 267 | + }, | ||
| 268 | + }, | ||
| 269 | + mounted() { | ||
| 270 | + // 返回顶部显示 | ||
| 271 | + document.addEventListener("scroll", () => { | ||
| 272 | + if (document.documentElement.scrollTop > 350) { | ||
| 273 | + this.showTop = false; | ||
| 274 | + } | ||
| 275 | + }); | ||
| 276 | + }, | ||
| 277 | + computed: { | ||
| 278 | + // 配对信息 | ||
| 279 | + pairResult() { | ||
| 280 | + return this.$store.state.pay.pairData; | ||
| 281 | + }, | ||
| 282 | + }, | ||
| 283 | +}; | ||
| 284 | +</script> | ||
| 285 | + | ||
| 286 | +<style lang="scss" scoped> | ||
| 287 | +// 适配函数计算 | ||
| 288 | +@function vw($px) { | ||
| 289 | + @return 100 * $px/720 + vw; | ||
| 290 | +} | ||
| 291 | +* { | ||
| 292 | + margin: 0; | ||
| 293 | + padding: 0; | ||
| 294 | +} | ||
| 295 | +// 第三页 | ||
| 296 | +.pay { | ||
| 297 | + width: vw(720); | ||
| 298 | + display: flex; | ||
| 299 | + flex-direction: column; | ||
| 300 | + align-items: center; | ||
| 301 | + // 第三页盒子 | ||
| 302 | + .paybox { | ||
| 303 | + width: vw(720); | ||
| 304 | + display: flex; | ||
| 305 | + flex-direction: column; | ||
| 306 | + align-items: center; | ||
| 307 | + // 横幅 | ||
| 308 | + .banner { | ||
| 309 | + width: vw(720); | ||
| 310 | + height: vw(494); | ||
| 311 | + background: url("../image/bannerThree.png") 0 0 /100% no-repeat; | ||
| 312 | + } | ||
| 313 | + // 订单编号 | ||
| 314 | + .orderId { | ||
| 315 | + width: vw(720); | ||
| 316 | + height: vw(88); | ||
| 317 | + background: #ffffff; | ||
| 318 | + font-size: vw(28); | ||
| 319 | + font-weight: 400; | ||
| 320 | + color: #333333; | ||
| 321 | + line-height: vw(88); | ||
| 322 | + padding-left: vw(20); | ||
| 323 | + box-sizing: border-box; | ||
| 324 | + } | ||
| 325 | + // 支付 | ||
| 326 | + .paycontent { | ||
| 327 | + width: vw(720); | ||
| 328 | + height: vw(790); | ||
| 329 | + display: flex; | ||
| 330 | + flex-direction: column; | ||
| 331 | + align-items: center; | ||
| 332 | + border-bottom: vw(2) solid #e7d1c1; | ||
| 333 | + border-top: vw(2) solid #e7d1c1; | ||
| 334 | + | ||
| 335 | + // 人物 | ||
| 336 | + .character { | ||
| 337 | + width: vw(680); | ||
| 338 | + height: vw(456); | ||
| 339 | + display: flex; | ||
| 340 | + align-items: center; | ||
| 341 | + justify-content: space-between; | ||
| 342 | + margin: vw(20) 0 vw(26) 0; | ||
| 343 | + | ||
| 344 | + .leftcharacter { | ||
| 345 | + @extend %LorRpic; | ||
| 346 | + } | ||
| 347 | + .rightcharacter { | ||
| 348 | + @extend %LorRpic; | ||
| 349 | + } | ||
| 350 | + %LorRpic { | ||
| 351 | + width: vw(290); | ||
| 352 | + height: vw(456); | ||
| 353 | + border-radius: vw(16); | ||
| 354 | + display: flex; | ||
| 355 | + align-items: center; | ||
| 356 | + flex-direction: column; | ||
| 357 | + justify-content: space-between; | ||
| 358 | + background-color: #f0e6c2; | ||
| 359 | + img { | ||
| 360 | + width: vw(290); | ||
| 361 | + height: vw(320); | ||
| 362 | + } | ||
| 363 | + .nameTop { | ||
| 364 | + @extend %fontTorB; | ||
| 365 | + font-size: vw(32); | ||
| 366 | + } | ||
| 367 | + .timeFooter { | ||
| 368 | + @extend %fontTorB; | ||
| 369 | + font-size: vw(28); | ||
| 370 | + } | ||
| 371 | + %fontTorB { | ||
| 372 | + width: vw(290); | ||
| 373 | + height: vw(68); | ||
| 374 | + font-weight: 400; | ||
| 375 | + color: #333333; | ||
| 376 | + display: flex; | ||
| 377 | + justify-content: center; | ||
| 378 | + align-items: center; | ||
| 379 | + } | ||
| 380 | + } | ||
| 381 | + .loveline { | ||
| 382 | + width: vw(89); | ||
| 383 | + height: vw(55); | ||
| 384 | + } | ||
| 385 | + } | ||
| 386 | + // 特价 | ||
| 387 | + .special { | ||
| 388 | + width: vw(533); | ||
| 389 | + height: vw(62); | ||
| 390 | + display: flex; | ||
| 391 | + align-items: center; | ||
| 392 | + justify-content: space-between; | ||
| 393 | + | ||
| 394 | + .original { | ||
| 395 | + font-size: vw(32); | ||
| 396 | + font-weight: 500; | ||
| 397 | + color: #333333; | ||
| 398 | + text-decoration: line-through; | ||
| 399 | + } | ||
| 400 | + .luck { | ||
| 401 | + font-size: vw(44); | ||
| 402 | + font-weight: 600; | ||
| 403 | + color: #333333; | ||
| 404 | + } | ||
| 405 | + .nowpri { | ||
| 406 | + font-size: vw(44); | ||
| 407 | + font-weight: 500; | ||
| 408 | + color: #fe0000; | ||
| 409 | + } | ||
| 410 | + } | ||
| 411 | + // 倒计时 | ||
| 412 | + .count { | ||
| 413 | + height: vw(42); | ||
| 414 | + font-size: vw(30); | ||
| 415 | + font-weight: 400; | ||
| 416 | + color: #333333; | ||
| 417 | + margin: vw(9) 0 vw(23) 0; | ||
| 418 | + display: flex; | ||
| 419 | + align-items: center; | ||
| 420 | + .timeCountDownmiao { | ||
| 421 | + font-size: vw(30); | ||
| 422 | + display: flex; | ||
| 423 | + height: vw(42); | ||
| 424 | + align-items: center; | ||
| 425 | + } | ||
| 426 | + span { | ||
| 427 | + font-size: vw(32); | ||
| 428 | + display: flex; | ||
| 429 | + height: vw(42); | ||
| 430 | + align-items: center; | ||
| 431 | + } | ||
| 432 | + } | ||
| 433 | + // 微信支付 | ||
| 434 | + .wxpaybtn { | ||
| 435 | + width: vw(598); | ||
| 436 | + height: vw(88); | ||
| 437 | + background-color: #63ab35; | ||
| 438 | + border-radius: vw(44); | ||
| 439 | + display: flex; | ||
| 440 | + align-items: center; | ||
| 441 | + justify-content: center; | ||
| 442 | + img { | ||
| 443 | + width: vw(230); | ||
| 444 | + height: vw(50); | ||
| 445 | + } | ||
| 446 | + } | ||
| 447 | + // 支付宝支付 | ||
| 448 | + .zfbpaybtn { | ||
| 449 | + width: vw(598); | ||
| 450 | + height: vw(88); | ||
| 451 | + background-color: #198df4; | ||
| 452 | + border-radius: vw(44); | ||
| 453 | + margin: vw(20) 0 vw(61) 0; | ||
| 454 | + display: flex; | ||
| 455 | + align-items: center; | ||
| 456 | + justify-content: center; | ||
| 457 | + img { | ||
| 458 | + width: vw(270); | ||
| 459 | + height: vw(50); | ||
| 460 | + } | ||
| 461 | + } | ||
| 462 | + } | ||
| 463 | + // 完成 | ||
| 464 | + .complete { | ||
| 465 | + width: vw(720); | ||
| 466 | + height: vw(100); | ||
| 467 | + display: flex; | ||
| 468 | + justify-content: center; | ||
| 469 | + align-items: center; | ||
| 470 | + border-bottom: vw(2) solid #e7d1c1; | ||
| 471 | + border-top: vw(2) solid #e7d1c1; | ||
| 472 | + font-size: vw(32); | ||
| 473 | + font-weight: 500; | ||
| 474 | + color: #333333; | ||
| 475 | + margin: vw(10) 0 vw(30) 0; | ||
| 476 | + } | ||
| 477 | + // 结果 | ||
| 478 | + .result { | ||
| 479 | + width: vw(720); | ||
| 480 | + display: flex; | ||
| 481 | + flex-direction: column; | ||
| 482 | + align-items: center; | ||
| 483 | + margin-bottom: vw(50); | ||
| 484 | + .each { | ||
| 485 | + width: vw(720); | ||
| 486 | + display: flex; | ||
| 487 | + flex-direction: column; | ||
| 488 | + align-items: center; | ||
| 489 | + margin-bottom: vw(30); | ||
| 490 | + .eachtitle { | ||
| 491 | + width: vw(720); | ||
| 492 | + height: vw(76); | ||
| 493 | + display: flex; | ||
| 494 | + align-items: center; | ||
| 495 | + justify-content: space-between; | ||
| 496 | + p { | ||
| 497 | + width: vw(636); | ||
| 498 | + height: vw(76); | ||
| 499 | + line-height: vw(76); | ||
| 500 | + font-size: vw(30); | ||
| 501 | + font-weight: 400; | ||
| 502 | + color: #ffffff; | ||
| 503 | + background-color: #d23037; | ||
| 504 | + } | ||
| 505 | + img { | ||
| 506 | + width: vw(42); | ||
| 507 | + height: vw(76); | ||
| 508 | + } | ||
| 509 | + .rotate { | ||
| 510 | + transform: rotateZ(180deg); | ||
| 511 | + } | ||
| 512 | + } | ||
| 513 | + .resultcontent { | ||
| 514 | + width: vw(680); | ||
| 515 | + height: vw(194); | ||
| 516 | + display: flex; | ||
| 517 | + align-items: center; | ||
| 518 | + justify-content: space-between; | ||
| 519 | + .leftFont { | ||
| 520 | + width: vw(500); | ||
| 521 | + height: vw(154); | ||
| 522 | + display: flex; | ||
| 523 | + flex-direction: column; | ||
| 524 | + justify-content: flex-start; | ||
| 525 | + font-size: vw(30); | ||
| 526 | + font-weight: 400; | ||
| 527 | + color: #333333; | ||
| 528 | + p{ | ||
| 529 | + margin-bottom: vw(15); | ||
| 530 | + } | ||
| 531 | + } | ||
| 532 | + .rightImg { | ||
| 533 | + width: vw(128); | ||
| 534 | + height: vw(182); | ||
| 535 | + display: flex; | ||
| 536 | + flex-direction: column; | ||
| 537 | + align-items: center; | ||
| 538 | + justify-content: space-between; | ||
| 539 | + p { | ||
| 540 | + font-size: vw(30); | ||
| 541 | + font-weight: 500; | ||
| 542 | + color: #a9a9a9; | ||
| 543 | + } | ||
| 544 | + img { | ||
| 545 | + width: vw(128); | ||
| 546 | + height: vw(140); | ||
| 547 | + } | ||
| 548 | + } | ||
| 549 | + } | ||
| 550 | + } | ||
| 551 | + } | ||
| 552 | + } | ||
| 553 | + // 回到顶部 | ||
| 554 | + .returnTop { | ||
| 555 | + width: vw(70); | ||
| 556 | + height: vw(70); | ||
| 557 | + background: url("../image/returnTop.png") 0 0 /100% no-repeat; | ||
| 558 | + position: fixed; | ||
| 559 | + right: vw(20); | ||
| 560 | + top: vw(800); | ||
| 561 | + } | ||
| 562 | + .showx { | ||
| 563 | + display: none !important; | ||
| 564 | + } | ||
| 565 | +} | ||
| 566 | +</style> |
src/views/result/result.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <!-- 结果页 --> | ||
| 3 | + <div class="result"> | ||
| 4 | + <!-- 结果页盒子 --> | ||
| 5 | + <div class="resultbox" v-if="pairData"> | ||
| 6 | + <!-- 配对指数 --> | ||
| 7 | + <p class="num">{{ pairData.score }}</p> | ||
| 8 | + <!-- 情侣 --> | ||
| 9 | + <div class="lovers">{{pairData.title}}</div> | ||
| 10 | + <!-- 测试结果 --> | ||
| 11 | + <template v-if="pairData.detail_list"> | ||
| 12 | + <div | ||
| 13 | + class="testresult" | ||
| 14 | + v-for="(el, idx) in pairData.detail_list" | ||
| 15 | + :key="idx" | ||
| 16 | + > | ||
| 17 | + <!-- 标题 --> | ||
| 18 | + <div class="restitle">{{ el.title }}</div> | ||
| 19 | + <!-- 内容 --> | ||
| 20 | + <div class="rescontent" v-html="el.content"></div> | ||
| 21 | + </div> | ||
| 22 | + </template> | ||
| 23 | + </div> | ||
| 24 | + <!-- 跳转链接 --> | ||
| 25 | + <div class="navurl" @click="copyURL"></div> | ||
| 26 | + <!-- 底部提示 --> | ||
| 27 | + <div class="footerTips"> | ||
| 28 | + 复制链接后,可打开微信发送或保存链接,便于后期反复查阅 | ||
| 29 | + </div> | ||
| 30 | + <!-- 回到顶部 --> | ||
| 31 | + <div | ||
| 32 | + class="returnTop" | ||
| 33 | + :class="showTop ? 'showx' : ''" | ||
| 34 | + id="retTop" | ||
| 35 | + @click="returnTop" | ||
| 36 | + ></div> | ||
| 37 | + <!-- 弹窗重新支付 --> | ||
| 38 | + <div class="popcontentbox" v-if="notpay"> | ||
| 39 | + <div class="popcontent"> | ||
| 40 | + <!-- 标题 --> | ||
| 41 | + <p class="title">离双方配对报告只差1步</p> | ||
| 42 | + <p class="titletwo">支付后查看契合度报告</p> | ||
| 43 | + <!-- 进度 --> | ||
| 44 | + <div class="progress"> | ||
| 45 | + <div class="progressTop"> | ||
| 46 | + <img class="tick tickbor" src="../image/true.png" alt="" /> | ||
| 47 | + <img class="tick" src="../image/true.png" alt="" /> | ||
| 48 | + <p>仅剩0.7%</p> | ||
| 49 | + </div> | ||
| 50 | + <img src="../image/line.png" alt="" /> | ||
| 51 | + <div class="bottomFont"> | ||
| 52 | + <p>信息提交</p> | ||
| 53 | + <p>生成报告</p> | ||
| 54 | + <p>查看契合度</p> | ||
| 55 | + </div> | ||
| 56 | + </div> | ||
| 57 | + <!-- 支付按钮 --> | ||
| 58 | + <div class="paybtn" @click="againpay">重新支付</div> | ||
| 59 | + <!-- 优惠按钮 --> | ||
| 60 | + <!-- <div class="discount">领取优惠红包</div> --> | ||
| 61 | + <!-- 领取报告 --> | ||
| 62 | + <!-- <div class="report">已支付点击领取报告</div> --> | ||
| 63 | + <!-- 已有人数 --> | ||
| 64 | + <!-- <p class="footerFont">已有1386706人解锁姓名测试</p> --> | ||
| 65 | + <p class="footerFont bottomLine" @click="navhome"> | ||
| 66 | + 姓名错误,需要重新填写> | ||
| 67 | + </p> | ||
| 68 | + </div> | ||
| 69 | + </div> | ||
| 70 | + </div> | ||
| 71 | +</template> | ||
| 72 | + | ||
| 73 | +<script> | ||
| 74 | +import { Toast } from "vant"; | ||
| 75 | +export default { | ||
| 76 | + name: "Result", | ||
| 77 | + data() { | ||
| 78 | + return { | ||
| 79 | + // 返回顶部 | ||
| 80 | + showTop: true, | ||
| 81 | + // 情侣姓名 | ||
| 82 | + name: [], | ||
| 83 | + // 未支付 | ||
| 84 | + notpay: false, | ||
| 85 | + }; | ||
| 86 | + }, | ||
| 87 | + methods: { | ||
| 88 | + // 回到顶部 | ||
| 89 | + async returnTop() { | ||
| 90 | + //滚动条总路程 | ||
| 91 | + var gdt = document.documentElement.scrollTop; | ||
| 92 | + //滚动条速度 | ||
| 93 | + var gdtsudu = gdt / 20; | ||
| 94 | + var timer = setInterval(() => { | ||
| 95 | + document.documentElement.scrollTop -= gdtsudu; | ||
| 96 | + if (document.documentElement.scrollTop <= 0) { | ||
| 97 | + clearInterval(timer); | ||
| 98 | + this.showTop = true; | ||
| 99 | + } | ||
| 100 | + }, 10); | ||
| 101 | + }, | ||
| 102 | + // 复制链接 | ||
| 103 | + copyURL() { | ||
| 104 | + var _val = window.location.href; | ||
| 105 | + new this.ClipboardJS(".navurl", { | ||
| 106 | + text: () => { | ||
| 107 | + Toast("复制成功"); | ||
| 108 | + return _val; | ||
| 109 | + }, | ||
| 110 | + }); | ||
| 111 | + }, | ||
| 112 | + //返回首页 | ||
| 113 | + navhome() { | ||
| 114 | + this.$router.push("/home"); | ||
| 115 | + }, | ||
| 116 | + // 重新支付 | ||
| 117 | + async againpay() { | ||
| 118 | + await this.$store.dispatch("gainPayWX", { | ||
| 119 | + order_no: this.$route.query.order_no, | ||
| 120 | + }); | ||
| 121 | + location.href = | ||
| 122 | + this.$store.state.pay.WXurl + | ||
| 123 | + "&redirect_url=" + | ||
| 124 | + encodeURIComponent( | ||
| 125 | + "http://estimate.gzrkkj.cn/#/result?order_no=" + | ||
| 126 | + this.$route.query.order_no | ||
| 127 | + ); | ||
| 128 | + }, | ||
| 129 | + }, | ||
| 130 | + async activated() { | ||
| 131 | + // 姓名 | ||
| 132 | + // this.name = await JSON.parse(localStorage.getItem("name")); | ||
| 133 | + // 配对信息 | ||
| 134 | + // try { | ||
| 135 | + // await this.$store.dispatch("gainPair", { | ||
| 136 | + // boy: this.name[0], | ||
| 137 | + // girl: this.name[1], | ||
| 138 | + // key: this.$md5(this.name[0] + this.name[1] + "cz321456").toUpperCase(), | ||
| 139 | + // }); | ||
| 140 | + // } catch (error) { | ||
| 141 | + // console.log(error); | ||
| 142 | + // Toast(error); | ||
| 143 | + // } | ||
| 144 | + }, | ||
| 145 | + async mounted() { | ||
| 146 | + // 支付后数据 | ||
| 147 | + await this.$store.dispatch("gainPayResult", this.$route.query.order_no); | ||
| 148 | + // 未支付弹出重新支付框 | ||
| 149 | + if (this.$store.state.pay.resultDate.need_pay == 1) { | ||
| 150 | + this.notpay = true; | ||
| 151 | + } | ||
| 152 | + // 返回顶部显示 | ||
| 153 | + document.addEventListener("scroll", () => { | ||
| 154 | + if (document.documentElement.scrollTop > 350) { | ||
| 155 | + this.showTop = false; | ||
| 156 | + } | ||
| 157 | + }); | ||
| 158 | + }, | ||
| 159 | + computed: { | ||
| 160 | + // 支付结果数据 | ||
| 161 | + pairData() { | ||
| 162 | + return this.$store.state.pay.resultDate; | ||
| 163 | + }, | ||
| 164 | + }, | ||
| 165 | +}; | ||
| 166 | +</script> | ||
| 167 | + | ||
| 168 | +<style lang="scss" scoped> | ||
| 169 | +// 适配函数计算 | ||
| 170 | +@function vw($px) { | ||
| 171 | + @return 100 * $px/720 + vw; | ||
| 172 | +} | ||
| 173 | +* { | ||
| 174 | + margin: 0; | ||
| 175 | + padding: 0; | ||
| 176 | +} | ||
| 177 | +// 动画 | ||
| 178 | +// 按钮动画 | ||
| 179 | +@keyframes bigSmall { | ||
| 180 | + 0% { | ||
| 181 | + transform: scale(1); | ||
| 182 | + } | ||
| 183 | + 50% { | ||
| 184 | + transform: scale(1.1); | ||
| 185 | + } | ||
| 186 | + 100% { | ||
| 187 | + transform: scale(1); | ||
| 188 | + } | ||
| 189 | +} | ||
| 190 | +// 结果页 | ||
| 191 | +.result { | ||
| 192 | + width: vw(720); | ||
| 193 | + display: flex; | ||
| 194 | + flex-direction: column; | ||
| 195 | + align-items: center; | ||
| 196 | + // 结果页盒子 | ||
| 197 | + .resultbox { | ||
| 198 | + width: vw(720); | ||
| 199 | + display: flex; | ||
| 200 | + position: relative; | ||
| 201 | + flex-direction: column; | ||
| 202 | + align-items: center; | ||
| 203 | + background: url("../image/resultBC.png") 0 0 /100% no-repeat; | ||
| 204 | + background-color: #ffaaaf; | ||
| 205 | + padding-bottom: vw(29); | ||
| 206 | + box-sizing: border-box; | ||
| 207 | + // 配对指数 | ||
| 208 | + .num { | ||
| 209 | + position: absolute; | ||
| 210 | + top: vw(235); | ||
| 211 | + font-size: vw(44); | ||
| 212 | + color: white; | ||
| 213 | + } | ||
| 214 | + // 情侣 | ||
| 215 | + .lovers { | ||
| 216 | + font-size: vw(44); | ||
| 217 | + font-weight: 500; | ||
| 218 | + color: #ffffff; | ||
| 219 | + margin-top: vw(540); | ||
| 220 | + } | ||
| 221 | + // 测试结果 | ||
| 222 | + .testresult { | ||
| 223 | + margin-top: vw(40); | ||
| 224 | + width: vw(720); | ||
| 225 | + display: flex; | ||
| 226 | + flex-direction: column; | ||
| 227 | + align-items: center; | ||
| 228 | + // 标题 | ||
| 229 | + .restitle { | ||
| 230 | + width: vw(720); | ||
| 231 | + height: vw(76); | ||
| 232 | + display: flex; | ||
| 233 | + align-items: center; | ||
| 234 | + padding-left: vw(80); | ||
| 235 | + box-sizing: border-box; | ||
| 236 | + background: url("../image/restitle.png") 0 0 /100% no-repeat; | ||
| 237 | + } | ||
| 238 | + .rescontent { | ||
| 239 | + width: vw(680); | ||
| 240 | + font-size: vw(28); | ||
| 241 | + font-weight: 400; | ||
| 242 | + color: #222222; | ||
| 243 | + margin-top: vw(31); | ||
| 244 | + line-height: vw(48); | ||
| 245 | + } | ||
| 246 | + } | ||
| 247 | + } | ||
| 248 | + //跳转链接 | ||
| 249 | + .navurl { | ||
| 250 | + width: vw(429); | ||
| 251 | + height: vw(93); | ||
| 252 | + margin-top: vw(64); | ||
| 253 | + animation: bigSmall 2.5s linear infinite; | ||
| 254 | + background: url("../image/navurl.png") 0 0 /100% no-repeat; | ||
| 255 | + } | ||
| 256 | + // 底部提示 | ||
| 257 | + .footerTips { | ||
| 258 | + width: vw(720); | ||
| 259 | + height: vw(76); | ||
| 260 | + background-color: #f9ddda; | ||
| 261 | + margin-top: vw(15); | ||
| 262 | + display: flex; | ||
| 263 | + align-items: center; | ||
| 264 | + justify-content: center; | ||
| 265 | + font-weight: 600; | ||
| 266 | + color: #df454b; | ||
| 267 | + font-size: vw(24); | ||
| 268 | + } | ||
| 269 | + // 回到顶部 | ||
| 270 | + .returnTop { | ||
| 271 | + width: vw(70); | ||
| 272 | + height: vw(70); | ||
| 273 | + background: url("../image/returnTop.png") 0 0 /100% no-repeat; | ||
| 274 | + position: fixed; | ||
| 275 | + right: vw(20); | ||
| 276 | + top: vw(800); | ||
| 277 | + } | ||
| 278 | + // 弹窗 | ||
| 279 | + .popcontentbox { | ||
| 280 | + width: 100vw; | ||
| 281 | + height: 100vh; | ||
| 282 | + position: fixed; | ||
| 283 | + z-index: 1; | ||
| 284 | + top: 0; | ||
| 285 | + left: 0; | ||
| 286 | + background-color: rgba(85, 85, 85, 0.355); | ||
| 287 | + display: flex; | ||
| 288 | + align-items: center; | ||
| 289 | + justify-content: center; | ||
| 290 | + .popcontent { | ||
| 291 | + // height: vw(268); | ||
| 292 | + // justify-content: space-around; | ||
| 293 | + | ||
| 294 | + height: vw(628); | ||
| 295 | + | ||
| 296 | + width: vw(540); | ||
| 297 | + // height: vw(868); | ||
| 298 | + background: #ffffff; | ||
| 299 | + border-radius: vw(20); | ||
| 300 | + display: flex; | ||
| 301 | + align-items: center; | ||
| 302 | + flex-direction: column; | ||
| 303 | + | ||
| 304 | + // 标题 | ||
| 305 | + .title { | ||
| 306 | + font-size: vw(40); | ||
| 307 | + font-weight: 600; | ||
| 308 | + color: #be061a; | ||
| 309 | + margin: vw(50) 0 vw(20) 0; | ||
| 310 | + } | ||
| 311 | + .titletwo { | ||
| 312 | + font-size: vw(40); | ||
| 313 | + font-weight: 600; | ||
| 314 | + color: #be061a; | ||
| 315 | + } | ||
| 316 | + // 进度 | ||
| 317 | + .progress { | ||
| 318 | + width: vw(403); | ||
| 319 | + height: vw(104); | ||
| 320 | + margin-top: vw(52); | ||
| 321 | + display: flex; | ||
| 322 | + flex-direction: column; | ||
| 323 | + justify-content: space-between; | ||
| 324 | + // background-color: red; | ||
| 325 | + .progressTop { | ||
| 326 | + width: vw(403); | ||
| 327 | + display: flex; | ||
| 328 | + align-items: center; | ||
| 329 | + justify-content: space-between; | ||
| 330 | + .tick { | ||
| 331 | + width: vw(35); | ||
| 332 | + height: vw(30); | ||
| 333 | + } | ||
| 334 | + .tickbor { | ||
| 335 | + padding: vw(5); | ||
| 336 | + border: vw(1) dashed gainsboro; | ||
| 337 | + } | ||
| 338 | + p { | ||
| 339 | + font-size: vw(22); | ||
| 340 | + font-weight: 500; | ||
| 341 | + color: #f4a525; | ||
| 342 | + } | ||
| 343 | + } | ||
| 344 | + img { | ||
| 345 | + width: vw(403); | ||
| 346 | + height: vw(22); | ||
| 347 | + } | ||
| 348 | + .bottomFont { | ||
| 349 | + width: vw(403); | ||
| 350 | + height: vw(30); | ||
| 351 | + display: flex; | ||
| 352 | + align-items: center; | ||
| 353 | + justify-content: space-between; | ||
| 354 | + p { | ||
| 355 | + font-size: vw(22); | ||
| 356 | + font-weight: 400; | ||
| 357 | + color: #333333; | ||
| 358 | + } | ||
| 359 | + } | ||
| 360 | + } | ||
| 361 | + %btnfont { | ||
| 362 | + width: vw(443); | ||
| 363 | + height: vw(90); | ||
| 364 | + border-radius: vw(50); | ||
| 365 | + display: flex; | ||
| 366 | + align-items: center; | ||
| 367 | + justify-content: center; | ||
| 368 | + font-size: vw(36); | ||
| 369 | + font-weight: 400; | ||
| 370 | + color: #ffffff; | ||
| 371 | + } | ||
| 372 | + // 支付按钮 | ||
| 373 | + .paybtn { | ||
| 374 | + background-color: #cf0316; | ||
| 375 | + margin: vw(46) 0 vw(30) 0; | ||
| 376 | + @extend %btnfont; | ||
| 377 | + } | ||
| 378 | + // 优惠按钮 | ||
| 379 | + .discount { | ||
| 380 | + background-color: #f4a525; | ||
| 381 | + @extend %btnfont; | ||
| 382 | + } | ||
| 383 | + // 领取报告 | ||
| 384 | + .report { | ||
| 385 | + border: vw(2) solid #e9ca8f; | ||
| 386 | + @extend %btnfont; | ||
| 387 | + color: black; | ||
| 388 | + margin: vw(30) 0 vw(30) 0; | ||
| 389 | + } | ||
| 390 | + // 已有人数 | ||
| 391 | + .footerFont { | ||
| 392 | + font-size: vw(30); | ||
| 393 | + font-weight: 400; | ||
| 394 | + color: #c75c5c; | ||
| 395 | + } | ||
| 396 | + .bottomLine { | ||
| 397 | + margin-top: vw(18); | ||
| 398 | + text-decoration: underline; | ||
| 399 | + } | ||
| 400 | + } | ||
| 401 | + } | ||
| 402 | + | ||
| 403 | + // 回到顶部隐藏 | ||
| 404 | + .showx { | ||
| 405 | + display: none !important; | ||
| 406 | + } | ||
| 407 | +} | ||
| 408 | +</style> |
vue.config.js
0 → 100644
| 1 | +const { defineConfig } = require('@vue/cli-service') | ||
| 2 | +module.exports = defineConfig({ | ||
| 3 | + transpileDependencies: true, | ||
| 4 | + lintOnSave: false, | ||
| 5 | + publicPath: "./", | ||
| 6 | + pwa:{ | ||
| 7 | + iconpaths:{ | ||
| 8 | + favicon32:'favicon.ico', | ||
| 9 | + favicon16:'favicon.ico', | ||
| 10 | + appleToucIcon:'favicon.ico', | ||
| 11 | + maskIcon:'favicon.ico', | ||
| 12 | + msTileImage:'favicon.ico' | ||
| 13 | + } | ||
| 14 | + } | ||
| 15 | +}) |
-
Please register or login to post a comment