Commit fa6b5bd5 authored by linjw's avatar linjw

Merge branch 'master' of http://113.105.137.151:22280/lixy/vue-ssr

# Conflicts:
#	pages/campsiteDetails/_id.vue
#	pages/tourDetails/_id.vue
parents d487c3a7 80972b4d
......@@ -114,6 +114,12 @@ h2{
display: flex;
justify-content: space-between;
}
.flex-aic-jca{
display: flex;
justify-content: space-around;
align-items: center;
}
.wrap {
width: 1200px;
margin: 0 auto 30px auto;
......@@ -137,7 +143,7 @@ h2{
background: #fff;
padding: 20px;
}
.new-item:hover, .activity-item:hover, .content-new:hover, .vehicle-item:hover{
.new-item:hover, .activity-item:hover, .content-new:hover, .vehicle-item:hover, .item-c:hover{
box-shadow: 0 0 5px #ccc;
}
.total-div{
......
......@@ -143,17 +143,19 @@
background:#1bbb9f;
}
.status{
position:absolute;
bottom:20px;
width:100%;
height:40px;
text-align:Center;
display: flex;
position:absolute;
/*top:90%;*/
bottom: 30px;
width:100%;
height:40px;
text-align:Center;
display: flex;
justify-content: center;
}
.box{
position:relative;
height:500px;
min-height: 300px;
}
span{
display:block;
......
......@@ -3,7 +3,9 @@
<div class="box">
<ul>
<li v-for="(item, index) in list" :key="item.id" :class="index === current ? 'active' : ''" @click="bannerClick(index, item)">
<img :src= "item.banner" style="width:100%;height: auto" :alt="item.title"/>
<nuxt-link :to="'/activityList/'+item.id">
<img :src= "item.banner" style="width:100%;height: auto" :alt="item.title"/>
</nuxt-link>
</li>
</ul>
<div class="status">
......
......@@ -33,7 +33,6 @@
</template>
<script>
import axios from 'axios'
export default {
transition: 'bounce',
name: 'footerModal',
......@@ -49,7 +48,6 @@
<style scoped>
.footer-container {
width: 100%;
/*height: 423px;*/
height: 300px;
position: relative;
background:url("../assets/images/footer.jpg") no-repeat;
......
<template>
<div>
<div style="width: 100%;width: 100%;position: fixed;top: 0;z-index: 1000;border-bottom: 1px solid #eee;">
<div style="width: 100%;position: fixed;top: 0;z-index: 1000;border-bottom: 1px solid #eee;">
<div class="flex-aic-jcb" style="width: 1200px; margin: 0 auto;font-size:12px;height: 25px;">
<div>您好!欢迎进入欣新房车集团官方网站</div>
<div>服务热线: 400-0369-369</div>
......@@ -8,7 +8,15 @@
</div>
<div class="menu-container">
<div class="menu">
<nuxt-link to="/"><img :src="logo" style="width:200px;max-height: 100px;" alt="欣新房车,让生活更美好"></nuxt-link>
<nuxt-link to="/">
<div class="flex-aic" style="width: 135px;">
<img src="../assets/images/logo.png" style="width:35px;margin-right: 5px;" alt="欣新房车,让生活更美好">
<div>
<div class="logo-t">欣新房车</div>
<div class="logo-d">让生活更美好</div>
</div>
</div>
</nuxt-link>
<ul class="users">
<li v-for="menu in menuList" :key="menu.id">
<nuxt-link v-if="menu.link=='/'" :to="menu.link" :class="router== menu.link?'active':''">{{ menu.name }}</nuxt-link>
......@@ -18,11 +26,9 @@
</div>
</div>
</div>
</template>
<script>
import axios from 'axios'
export default {
transition: 'bounce',
name: 'menuModal',
......@@ -30,7 +36,6 @@
data () {
return {
router: "/",
logo: "https://xxfangche.com/upload/1/app/ab709954135a0f02a99d6a20aa95ea7.jpg",
menuList:[
{id: 1, name: "首页", link:"/"},
{id: 2, name: "房车租赁", link:"/vehicle"},
......@@ -60,19 +65,23 @@
display: flex;
justify-content: center;
}
.logo-t{
color: #333;
font-size: 16px;
}
.logo-d{
color: #9F9F9F;
font-size: 12px;
}
.menu {
font-family: sans-serif;
position: fixed;
top:0;
padding: 25px 0;
top:35px;
display: flex;
align-items: center;
width: 1200px;
margin: 0 auto;
}
/* li{
text-decoration: none;
} */
.users {
list-style-type: none;
display: flex;
......@@ -81,8 +90,6 @@
}
.users li a {
display: inline-block;
/* border: 1px #ddd solid; */
margin: 0 30px;
padding: 10px 0;
text-align: left;
......
......@@ -23,10 +23,10 @@ module.exports = {
loading: '~/components/loading.vue',
plugins: [
{ src: '~plugins/muse-ui.js', ssr: true }
{ src: '~plugins/muse-ui.js', ssr: true },
{ src: '~plugins/filters.js', srr: false }
],
build: {
extend(config, { isDev, isClient }) {
if (isDev && isClient) {
config.module.rules.push({
......@@ -50,10 +50,15 @@ module.exports = {
}
},
env: {
host:"https://dev.dfangche.com"
host:"https://xxtest.upyuns.com"
},
generate: {
routes: [
]
}
// ,
// server: {
// port: 3000, // default: 3000
// host: '10.1.37.172', // default: localhost
// }
}
......@@ -4,7 +4,12 @@
"description": "Nuxt.js project",
"author": "yutao <haiyan.xu.vip@gmail.com>",
"private": true,
"nuxt": {
"host": "10.1.37.172",
"port": "3000"
},
"scripts": {
"test": "nuxt --hostname 10.1.37.172 --port 3333",
"dev": "nuxt",
"build": "nuxt build",
"start": "nuxt start",
......
......@@ -2,32 +2,192 @@
<div>
<menu-modal></menu-modal>
<div class="main-container">
<div class="wrap">
<p>这里是关于欣新</p>
</div>
<vehicle-banner
:list = "bannerList"
:looptime="looptime"
:width="width"
:height="height"
:background="background"
:color="color"
:fontSize="fontSize"
@prev="prev"
@next="next"
@change="changeBanner"
@click="bannerClick"
class="mb-50">
</vehicle-banner>
</div>
<footer-modal></footer-modal>
</div>
</template>
<script>
import axios from 'axios'
import menuModal from "../components/menu"
import footerModal from "../components/footer"
import axios from '../plugins/axios'
import menuModal from "../components/menu";
import footerModal from "../components/footer";
import vehicleBanner from "../components/vehicleBanner"
export default {
transition: 'bounce',
transition: "bounce",
components: {
menuModal,
footerModal
footerModal,
vehicleBanner
},
// async asyncData() {
// const { data } = await axios.get('https://xxtest.upyuns.com/api/app/cofig/app/unauth/types?types=1');
// let cc = data.data;
// return { users: cc}
// },
head: {
title: '关于欣新'
}
}
data() {
return {
totalCount: "",
dataDetail: [],
bannerList: [],//关于欣新banner列表
listQuery: {
type: "",
pageNo: 1,
pageSize: 6
},
store: "",
curId: 0,
items1: {},
curId1: 0,
looptime: 4000, // 循环时间
width: 400,
height:200,
background: 'red',
color: '#fff',
fontSize: '70px',
};
},
created() {
this.getAll();
this.getBanner();
},
mounted() {
window.addEventListener("scroll", this.scrollHandle); // 绑定页面的滚动事件
},
methods: {
// 点击下一页回调
prev () {
},
// 点击下一页回调
next () {
},
// 鼠标移入状态点回调
changeBanner () {
},
bannerClick () {
},
/**
* 获取车型列表页banner
*/
async getBanner(){
//关于欣新banner
let tempBannerData = await axios.get( '/api/app/banner/app/unauth/findBannerlist?type=6&platform=1');
let banner = tempBannerData.data.data;
this.bannerList = banner;
},
chooseSelect(e) {
console.log(e.target.value);
this.listQuery.type = e.target.value;
this.getAll();
},
async getAll() {
let {
data: { data }
} = await axios.get(
`https://dev.dfangche.com/api/uccn/vehicleModel/app/unauth/findVehicleModelPage?page=1&limit=100`
);
// console.log(data);
this.totalCount = data.totalCount;
data.data.map(function(item){
// item.modelParam = JSON.parse( item.modelParam);
item.link = encodeURI('/vehicleList/' + item.id+'?name='+item.name);
item.link = encodeURI(item.link);
item.pictureList = item.picture.split(",");
item.coverPic = item.coverPic?item.coverPic: item.pictureList.length>0?item.pictureList[0]:'';
});
this.dataDetail = data.data;
// this.dataDetail = this.dataDetail.push(data.data);
},
mounted() {
window.addEventListener('scroll', this.scrollHandle); // 绑定页面的滚动事件
},
scrollHandle: function(e) {
//变量scrollTop是滚动条滚动时,距离顶部的距离
var scrollTop = document.documentElement.scrollTop||document.body.scrollTop;
//变量windowHeight是可视区的高度
var windowHeight = document.documentElement.clientHeight || document.body.clientHeight;
//变量scrollHeight是滚动条的总高度
var scrollHeight = document.documentElement.scrollHeight||document.body.scrollHeight;
//滚动条到底部的条件
if(scrollTop+windowHeight+0.7>scrollHeight){
//写后台加载数据的函数
//           console.log("距顶部"+scrollTop+"可视区高度"+windowHeight+"滚动条总高度"+scrollHeight);
// this.listQuery.pageNo++;
// this.getAll();
}
}
},
};
</script>
<style scoped>
.clearfix:after {
/*伪元素是行内元素 正常浏览器清除浮动方法*/
content: "";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.clearfix {
*zoom: 1; /*ie6清除浮动的方式 *号只有IE6-IE7执行,其他浏览器不执行*/
}
.wrap {
width: 1200px;
margin: 0 auto;
background: #fff;
}
.banner {
/* background-color: #fff; */
text-align: center;
}
.banner h2 {
font-size: 20px;
font-weight: 700;
padding-top: 40px;
}
.banner h3 {
font-size: 16px;
padding-top: 20px;
font-weight: 400;
padding-bottom: 40px;
}
.campsiteDetail {
padding: 0;
margin: 0;
list-style: none;
}
.campsiteDetail li {
list-style: none;
display: flex;
}
.toDetail {
font-size: 16px;
}
.buttonDetails {
width: 156px; /* 宽度 */
height: 35px; /* 高度 */
border-width: 0px; /* 边框宽度 */
background: #1bbb9f; /* 背景颜色 */
cursor: pointer; /* 鼠标移入按钮范围时出现手势 */
outline: none; /* 不显示轮廓线 */
font-family: Microsoft YaHei; /* 设置字体 */
color: white; /* 字体颜色 */
margin-left: 10px;
}
</style>
......@@ -26,7 +26,7 @@
<img :src="item.banner" alt style="width:438px;height: 100%; max-height: 238px;" />
<div style="margin-left:20px" class="active-r">
<h2 class="ellipsis2">{{item.title }}</h2>
<div>{{item.startTime}}~{{item.endTime}}</div>
<div>{{item.startTime | formatDate('yyyy-MM-dd hh:mm:ss')}}~{{item.endTime | formatDate('yyyy-MM-dd hh:mm:ss')}}</div>
<div class="ellipsis2">{{item.province}}{{item.city}}{{item.town}}{{item.address}}</div>
</div>
</nuxt-link>
......@@ -42,7 +42,7 @@
</template>
<script>
import axios from "axios";
import axios from '../plugins/axios'
import menuModal from "../components/menu";
import footerModal from "../components/footer";
import vehicleBanner from "../components/vehicleBanner"
......@@ -55,7 +55,6 @@
},
data() {
return {
typeId: "营地类型",
dataType: [],
totalCount: "",
dataDetail: [],
......@@ -101,7 +100,7 @@
*/
async getBanner(){
//首活动banner
let tempBannerData = await axios.get( 'https://dev.dfangche.com/api/app/banner/app/unauth/findBannerlist?type=4&platform=1');
let tempBannerData = await axios.get( '/api/app/banner/app/unauth/findBannerlist?type=4&platform=1');
let banner = tempBannerData.data.data;
this.bannerList = banner;
},
......@@ -116,17 +115,10 @@
async getAll() {
let {
data: { data }
} = await axios.get(
`https://dev.dfangche.com//api/uccn/summitActivity/app/unauth/list?page=${this.listQuery.pageNo}&limit=10000`
);
} = await axios.get( `/api/uccn/summitActivity/app/unauth/list?page=${this.listQuery.pageNo}&limit=10000`);
// console.log(data);
this.totalCount = data.totalCount;
data.data.map(function (item) {
item.startTime = timestamp2Date(item.startTime);
item.endTime = timestamp2Date(item.endTime);
})
this.dataDetail = data.data;
// this.dataDetail = this.dataDetail.push(data.data);
},
mounted() {
window.addEventListener('scroll', this.scrollHandle); // 绑定页面的滚动事件
......@@ -148,24 +140,6 @@
}
}
},
// head: {
// title: "房车营地"
// }
// async asyncData({store,listQuery}) {
// let [dataType,dataDetail] = await Promise.all([
// axios.get("https://dev.dfangche.com/api/campsite/campsiteTag/app/unauth/tags"),
// axios.get("https://dev.dfangche.com/api/uccn/app/unauth/campsite/shops")
// ])
// console.log(dataDetail.data.data.data);
// console.log(dataType.data.data,);
// return {
// dataType:dataType.data.data,
// dataDetail:dataDetail.data.data.data,
// data3:dataDetail.data.data
// };
// },
};
</script>
......@@ -185,7 +159,6 @@
*zoom: 1; /*ie6清除浮动的方式 *号只有IE6-IE7执行,其他浏览器不执行*/
}
.banner {
/* background-color: #fff; */
text-align: center;
}
......
......@@ -14,8 +14,8 @@
<h1>{{detail.title}}</h1>
<div class="r-cc">
<p>活动人数<span style="margin-left: 20px;">{{detail.limitNum}}</span></p>
<p>活动时间<span style="margin-left: 20px;">{{detail.startTime}}~{{detail.endTime}}</span></p>
<p style="ellipsis2">活动地点<span style="margin-left: 20px;">{{detail.province}}{{detail.city}}{{detail.town}}{{detail.address}}</span></p>
<p>活动时间<span style="margin-left: 20px;">{{detail.startTime | formatDate('yyyy-MM-dd hh:mm:ss')}}~{{detail.endTime | formatDate('yyyy-MM-dd hh:mm:ss')}}</span></p>
<p class="ellipsis2">活动地点<span style="margin-left: 20px;">{{detail.province}}{{detail.city}}{{detail.town}}{{detail.address}}</span></p>
</div>
<div class="buttonDetails">报名参加</div>
</div>
......@@ -41,12 +41,11 @@
</template>
<script>
import axios from 'axios'
import axios from '../../plugins/axios'
import menuModal from "../../components/menu"
import footerModal from "../../components/footer"
import Swiper from 'swiper';
import 'swiper/dist/css/swiper.min.css';
// import { getDetail } from '../../../../demo nuxt/nuxt-bnhcp/ajax/getData';
export default {
transition: 'bounce',
components: {
......@@ -64,41 +63,13 @@
return !isNaN(+params.id)
},
async asyncData({ env, params, error}) {
function formatDate(date, fmt) {
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
}
let o = {
'M+': date.getMonth() + 1,
'd+': date.getDate(),
'h+': date.getHours(),
'm+': date.getMinutes(),
's+': date.getSeconds()
}
for (let k in o) {
if (new RegExp(`(${k})`).test(fmt)) {
let str = o[k] + ''
fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? str : padLeftZero(str))
}
}
return fmt
}
function padLeftZero(str) {
return ('00' + str).substr(str.length)
}
function timestamp2Date(timestamp) {
let date = new Date(timestamp);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
return formatDate(date, 'yyyy-MM-dd hh:mm:ss');
}
const { data } = await axios.get( env.host + '/api/uccn/summitActivity/app/unauth/'+params.id);
const { data } = await axios.get( '/api/uccn/summitActivity/app/unauth/'+params.id);
let detail = data.data;
detail.startTime = timestamp2Date(detail.startTime);
detail.endTime = timestamp2Date(detail.endTime);
detail.content =detail.content.replace(/<img/g,"<img style='width:100%'");
if (!detail) {
return error({ message: 'detail not found', statusCode: 404 })
}
let tempBannerData = await axios.get( env.host + '/api/uccn/random/list/app/unauth/get?type=4');
let tempBannerData = await axios.get('/api/uccn/random/list/app/unauth/get?type=4');
let hot = tempBannerData.data.data;
return {detail: detail, hotList: hot}
},
......@@ -139,9 +110,6 @@
swiper: galleryThumbs
}
});
},
head: {
title: '营地详情'
}
}
</script>
......
......@@ -49,7 +49,7 @@
</template>
<script>
import axios from "axios";
import axios from '../plugins/axios';
import menuModal from "../components/menu";
import footerModal from "../components/footer";
import banner from "../components/banner"
......@@ -62,8 +62,8 @@ export default {
},
data() {
return {
showBanner: !0,
looptime: 4000, // 循环时间
showBanner: !0,
looptime: 4000, // 循环时间
typeId: "营地类型",
dataType: [],
totalCount: "",
......@@ -90,7 +90,7 @@ export default {
window.addEventListener("scroll", this.scrollHandle); // 绑定页面的滚动事件
},
methods: {
chooseSelect(e) {
console.log(e.target.value);
this.listQuery.type = e.target.value;
......@@ -98,23 +98,19 @@ export default {
},
goDetails() {
console.log(2222222);
},
async getType() {
const {
data: { data }
} = await axios.get(
"https://dev.dfangche.com/api/campsite/campsiteTag/app/unauth/tags"
);
} = await axios.get("/api/campsite/campsiteTag/app/unauth/tags");
// console.log(data);
this.dataType = data;
},
async getAll() {
let {
data: { data }
} = await axios.get(
`https://dev.dfangche.com/api/uccn/app/unauth/campsite/shops?type=${this.listQuery.type}&pageNo=${this.listQuery.pageNo}&pageSize=${this.listQuery.pageSize}`
);
} = await axios.get(`/api/uccn/app/unauth/campsite/shops?type=${this.listQuery.type}&pageNo=${this.listQuery.pageNo}&pageSize=${this.listQuery.pageSize}`);
// console.log(data);
data.data.map(function(item){
// item.modelParam = JSON.parse( item.modelParam);
......@@ -132,8 +128,6 @@ export default {
this.dataDetail = data.data;
this.dataNull = true
}
// this.dataDetail = this.dataDetail.push(data.data);
},
// 点击下一页回调
prev () {
......@@ -162,36 +156,17 @@ export default {
//           console.log("距顶部"+scrollTop+"可视区高度"+windowHeight+"滚动条总高度"+scrollHeight);
// this.listQuery.pageNo++;
// this.getAll();
              }  
}
},
head: {
title: "房车营地"
},
async asyncData() {
const { data } = await axios.get('https://dev.dfangche.com/api/app/banner/app/unauth/findBannerlist?type=2&platform=1');
const { data } = await axios.get('/api/app/banner/app/unauth/findBannerlist?type=2&platform=1');
let cc = data.data;
return { bannerList: cc}
},
// async asyncData({store,listQuery}) {
// let [dataType,dataDetail] = await Promise.all([
// axios.get("https://dev.dfangche.com/api/campsite/campsiteTag/app/unauth/tags"),
// axios.get("https://dev.dfangche.com/api/uccn/app/unauth/campsite/shops")
// ])
// console.log(dataDetail.data.data.data);
// console.log(dataType.data.data,);
// return {
// dataType:dataType.data.data,
// dataDetail:dataDetail.data.data.data,
// data3:dataDetail.data.data
// };
// },
};
</script>
<style scoped>
.clearfix:after {
/*伪元素是行内元素 正常浏览器清除浮动方法*/
......@@ -208,23 +183,6 @@ export default {
.wrap {
padding: 0 0;
}
/* .banner {
text-align: center;
}
.banner h2 {
font-size: 20px;
font-weight: 700;
padding-top: 40px;
}
.banner h3 {
font-size: 16px;
padding-top: 20px;
font-weight: 400;
padding-bottom: 40px;
} */
.campsiteDetail {
padding: 0;
margin: 0;
......@@ -255,4 +213,4 @@ export default {
color: white; /* 字体颜色 */
margin-left: 10px;
}
</style>
\ No newline at end of file
</style>
......@@ -99,12 +99,11 @@
</template>
<script>
import axios from "axios";
import axios from '../../plugins/axios'
import menuModal from "../../components/menu";
import footerModal from "../../components/footer";
import Swiper from "swiper";
import "swiper/dist/css/swiper.min.css";
// import { getDetail } from '../../../../demo nuxt/nuxt-bnhcp/ajax/getData';
export default {
transition: "bounce",
components: {
......@@ -128,7 +127,7 @@ export default {
return !isNaN(+params.id);
},
async asyncData({ env, params, route, error}) {
const { data } = await axios.get( env.host + "/api/uccn/app/unauth/campsite/shop?id=" + params.id);
const { data } = await axios.get( "/api/uccn/app/unauth/campsite/shop?id=" + params.id);
let user = data.data;
data.data.content = data.data.content.replace(/<img/g,"<img style='width:100%'");
// data.data.modelParam = JSON.parse(data.data.modelParam );
......@@ -141,7 +140,7 @@ export default {
if (!user) {
return error({ message: 'User not found', statusCode: 404 })
}
let tempBannerData = await axios.get( env.host + '/api/uccn/random/list/app/unauth/get?type=3');
let tempBannerData = await axios.get('/api/uccn/random/list/app/unauth/get?type=3');
let hot = tempBannerData.data.data;
hot.map(function(item){
item.link = encodeURI('/campsiteDetails/' + item.id+'?name='+item.title);
......@@ -149,52 +148,18 @@ export default {
});
console.log(hot);
let noticeData = await axios.get( env.host + '/api/app/cofig/app/unauth/types?types=13');
let noticeData = await axios.get(/api/app/cofig/app/unauth/types?types=13');
let notice = noticeData.data.data;
return {detail: user, hotList: hot, notice: notice}
},
// async asyncData({ env, params, error }) {
// const { data } = await axios.get(
// env.host + "/api/uccn/app/unauth/campsite/shop?id=" + params.id
// );
// let user = data.data;
// let campsiteShop = user.campsiteShopCarouselDetailVos;
// // console.log(user);
// if (!user) {
// return error({ message: "User not found", statusCode: 404 });
// }
//
// return user;
// },
methods: {
changeImgIndex(index, length) {
this.$refs.mySwiper.swiper.slideTo(index + 1, 1000, true);
this.lengthPic = length;
// console.log(this.lengthPic);
},
visiblePic() {
this.visible = !this.visible;
},
// async getNode() {
// const {
// data: { data }
// } = await axios.get(
// "https://dev.dfangche.com/api/app/cofig/app/unauth/types?types=13"
// );
// // console.log(data[0].value);
// this.value = data[0].value;
// },
// async getHot() {
// const {
// data: { data }
// } = await axios.get(
// "https://dev.dfangche.com/api/uccn/random/list/app/unauth/get?type=4&number&location=2"
// );
// console.log(data);
// this.hotList = data
// },
},
mounted() {
let t = this;
......@@ -248,10 +213,7 @@ export default {
.clearfix {
*zoom: 1; /*ie6清除浮动的方式 *号只有IE6-IE7执行,其他浏览器不执行*/
}
.wrap {
/* padding: 0 10%; */
}
.gallery-top img {
width: 100%;
}
......@@ -292,4 +254,3 @@ export default {
</style>
\ No newline at end of file
......@@ -21,19 +21,28 @@
</template>
<script>
import axios from 'axios'
import axios from '../plugins/axios';
export default {
data(){
return{
pageNo: 1,
pageSize:10,
nomore: false,
loading: false,
evns: ""
}
},
async asyncData({ env }) {
const { data } = await axios.get( env.host + '/api/uccn/app/unauth/campsite/shops?type=53&pageNo=1&pageSize=10');
const { data } = await axios.get('/api/uccn/app/unauth/campsite/shops?type=53&pageNo=1&pageSize=10000');
let cc = data.data.data;
console.log(data);
// return { users: env.users }
return { users: cc}
return { users: cc, evn: env.host}
},
mounted(){
let t = this;
t.pageNo = 2;
},
// asyncData ({ env }) {
// return { users: env.users }
// }
methods:{
}
}
</script>
......
......@@ -6,29 +6,20 @@
</template>
<script>
import axios from 'axios'
import axios from '../../plugins/axios'
export default {
validate ({ params }) {
console.log(params.id);
return !isNaN(+params.id)
},
async asyncData({ env, params, error}) {
const { data } = await axios.get( env.host + '/api/uccn/app/unauth/campsite/shop?id='+params.id);
const { data } = await axios.get('/api/uccn/app/unauth/campsite/shop?id='+params.id);
let user = data.data;
if (!user) {
return error({ message: 'User not found', statusCode: 404 })
}
return user
},
// asyncData ({ params, env, error }) {
////
// const user = env.users.find(user => String(user.id) === params.id)
// if (!user) {
// return error({ message: 'User not found', statusCode: 404 })
// }
// return user
// },
head () {
return {
title: this.name
......
......@@ -25,9 +25,10 @@
<div class="line-title"></div>
</div>
</div>
<img src="../assets/images/tv.png"/>
<video class="video-play" width="320" height="240" controls autoplay="autoplay" muted>
<source src="https://www.runoob.com/try/demo_source/movie.mp4" type="video/mp4">
<img src="../assets/images/tv.png" style="width: 1200px;"/>
<!--autoplay="autoplay"-->
<video class="video-play" width="320" height="240" controls muted>
<source src="https://xxtest.upyuns.com/image/test.mp4" type="video/mp4">
<source src="https://www.runoob.com/try/demo_source/movie.ogg" type="video/ogg">
您的浏览器不支持 HTML5 video 标签。
</video>
......@@ -63,6 +64,76 @@
<div class="line-title"></div>
</div>
</div>
<div class="flex-aic-jca min-win">
<div class="tour-t">
<div>
<div class="tour-t-s"> 01 </div>
<div class="tour-t-s-b"> </div>
</div>
<div style="margin-left: 10px;">
<div class="tour-t-s-t">主题线路</div>
<div class="ft-12">特色旅游线路</div>
<div class="ft-12">倡导全新旅程生活方式</div>
</div>
</div>
<div class="tour-t">
<div>
<div class="tour-t-s"> 02 </div>
<div class="tour-t-s-b"> </div>
</div>
<div style="margin-left: 10px;">
<div class="tour-t-s-t">全程服务</div>
<div class="ft-12">欣新领队全程陪同</div>
<div class="ft-12">个性化服务</div>
</div>
</div>
<div class="tour-t">
<div>
<div class="tour-t-s"> 03 </div>
<div class="tour-t-s-b"> </div>
</div>
<div style="margin-left: 10px;">
<div class="tour-t-s-t">详尽攻略</div>
<div class="ft-12">详尽旅游攻略</div>
<div class="ft-12">打造轻松的房车旅行</div>
</div>
</div>
<div class="tour-t">
<div>
<div class="tour-t-s"> 04 </div>
<div class="tour-t-s-b"> </div>
</div>
<div style="margin-left: 10px;">
<div class="tour-t-s-t">贴心售后</div>
<div class="ft-12">7X24小时在线咨询热线</div>
<div class="ft-12">全天为您服务</div>
</div>
</div>
</div>
<div style="position: relative;margin-top: 30px;">
<div style="display: flex;">
<div class="tour-t-l-01">
<img src="https://xxfc.upyuns.com/upload/1/app/e4341e1a3fb70e5e16f07366a762388.jpg" style="width: 518px;height: 348px;"/>
<div class="show-detail">查看详情</div>
</div>
<div style="margin-left: 9px;width: 518px;justify-content: space-between;display: flex;">
<img src="https://xxfc.upyuns.com/upload/1/app/e4341e1a3fb70e5e16f07366a762388.jpg" style="width: 255px;height: 160px;"/>
<img src="https://xxfc.upyuns.com/upload/1/app/e4341e1a3fb70e5e16f07366a762388.jpg" style="width: 255px;height: 160px;"/>
</div>
</div>
<div style="display: flex;">
<div style="width: 518px;justify-content: space-between; display: flex;">
<img src="https://xxfc.upyuns.com/upload/1/app/e4341e1a3fb70e5e16f07366a762388.jpg" style="width: 255px;height: 160px;"/>
<img src="https://xxfc.upyuns.com/upload/1/app/e4341e1a3fb70e5e16f07366a762388.jpg" style="width: 255px;height: 160px;"/>
</div>
<div class="tour-b-r-03">
<img src="https://xxfc.upyuns.com/upload/1/app/e4341e1a3fb70e5e16f07366a762388.jpg" style="width: 518px;height: 348px;position: absolute; top: 165px;left: 527px;"/>
<div class="show-detail">
</div>
<div class="show-detail">查看详情</div>
</div>
</div>
</div>
</div>
<div class="flex-fdc-jcc vehicle-container" style="padding: 30px 0;">
<div class="tc title">热门房车 <span style="font-size: 20px;margin: 0 5px;color: #666;"></span> 多款房车任你选择</div>
......@@ -75,7 +146,6 @@
<div class="min-win">
<ul class="v-type-ul">
<li class="v-type" :class="tabIndex== 0?'v-type-active':''" @click="changeVehicle(0)">上汽大通</li>
<!--<li class="v-type" :class="tabIndex== 0?'v-type-active':''" @click="changeVehicle(0)">上汽大通</li>-->
<li class="v-type" :class="tabIndex== 1?'v-type-active':''" @click="changeVehicle(1)">格林卡诺C2</li>
<li class="v-type" :class="tabIndex== 2?'v-type-active':''" @click="changeVehicle(2)">齐星依维柯</li>
<li class="v-type" :class="tabIndex== 3?'v-type-active':''" @click="changeVehicle(3)">奔驰斯宾特</li>
......@@ -180,12 +250,14 @@
</div>
<div class="flex-aic-jcb-warp min-win">
<div class="item-c flex-aic" v-for="item in newsList" :key="item.id" >
<img :src="item.coverImage" class="item-c-img" :alt="item.title"/>
<div class="item-c-r">
<div class="ellipsis2">{{item.title}}</div>
<div class="desc ellipsis2">{{item.epitome}}</div>
<div>{{item.addTime}}</div>
</div>
<nuxt-link :to="'/newsList/'+item.id" class="flex-aic">
<img :src="item.coverImage" class="item-c-img" :alt="item.title"/>
<div class="item-c-r">
<div class="ellipsis2 new-tt">{{item.title}}</div>
<div class="desc ellipsis2">{{item.epitome}}</div>
<div class="desc">{{item.addTime}}</div>
</div>
</nuxt-link>
</div>
</div>
</div>
......@@ -195,7 +267,7 @@
</template>
<script>
import axios from 'axios'
import axios from '../plugins/axios'
import banner from "../components/banner"
import bannerActivity from "../components/bannerActivity"
import menuModal from "../components/menu"
......@@ -297,17 +369,17 @@ export default {
}
// 首页活动
const { data } = await axios.get( env.host + '/api/uccn/summitActivity/app/unauth/home');
const { data } = await axios.get( '/api/uccn/summitActivity/app/unauth/home');
let cc = data.data;
cc.map(function(item){
item.startTime = timestamp2DateNoTime(item.startTime);
item.endTime = timestamp2DateNoTime(item.endTime);
});
//首页banner
let tempBannerData = await axios.get( env.host + '/api/app/banner/app/unauth/findBannerlist?type=0&platform=1');
let tempBannerData = await axios.get('/api/app/banner/app/unauth/findBannerlist?type=0&platform=1');
let banner = tempBannerData.data.data;
//首页新闻
let newsData = await axios.get('https://xxtest.upyuns.com/api/uccn/article/app/unauth/homePage/1');
let newsData = await axios.get('/api/uccn/article/app/unauth/homePage/1');
let news = newsData.data.data;
return { activityList: cc, bannerList: banner, newsList: news}
},
......@@ -413,8 +485,15 @@ export default {
position: relative;
background:url("../assets/images/1.jpg") no-repeat;
}
.new-tt{
font-size: 14px;
color: #333;
}
.video-play{
position: absolute;
width: 770px;
height: 570px;
margin-top: -60px;
}
.activity-container{
width: 100%;
......@@ -422,12 +501,36 @@ export default {
position: relative;
background:url("../assets/images/2.jpg") no-repeat;
}
.vehicle-container{
width: 100%;
height: 100%;
position: relative;
background:url("../assets/images/3.jpg") no-repeat;
}
.tour-t-l-01, .tour-b-r-03{
cursor: pointer;
}
.tour-t-l-01:hover .show-detail{
display: block;
}
.tour-b-r-03:hover .show-detail{
display: block;
top: 165px;
right: 0px;
}
.tour-t-l-01 .show-detail, .tour-b-r-03 .show-detail{
display: none;
background: #888888;
opacity: 0.6;
width: 518px;
height: 348px;
position: absolute;
top: 0;
text-align: center;
line-height: 300px;
color: #000;
}
.more-container{
position: relative;
margin-bottom: 25px;
......@@ -447,10 +550,49 @@ export default {
justify-content: space-between;
display: flex;
}
.tour-t{
color: #666;
padding: 10px;
display: flex;
border: 1px solid #eee;
}
.tour-t:hover{
background: linear-gradient(to right, #5DE6AD , #3EC6AD);
color: #fff;
padding: 10px;
display: flex;
}
.tour-t:hover .tour-t-s{
color: #fff;
}
.tour-t:hover .tour-t-s-b{
border-bottom: 3px solid #fff;
}
.tour-t-s, .tour-t-s-b{
font-size: 54px;
color: #E1E1E1;
margin: 0 auto;
}
.tour-t-s-b{
border-bottom: 3px solid #e1e1e1;
width: 20px;
}
.tour-t:hover .tour-t-s-b{
color: #fff;
border-bottom: 3px solid #fff;
}
.tour-t-s-t{
font-size: 16px;
font-weight: 700;
margin-bottom: 22px;
}
.item-c{
/*width: 600px;*/
height: 150px;
padding: 0 10px;
/*height: 150px;*/
padding: 10px;
margin: 10px;
}
.title{
width: 1200px;
......@@ -461,15 +603,16 @@ export default {
align-items: center;
}
.item-c-img{
width: 100px;
height: 100px;
width: 180px;
height: 150px;
margin-right: 20px;
}
.item-c-r{
width: 400px;
width: 350px;
}
.item-c-r .desc{
font-size: 14px;
color: #666;
}
.line-title{
background: #1bbb9f;
......
......@@ -42,7 +42,7 @@
</template>
<script>
import axios from "axios";
import axios from '../plugins/axios';
import menuModal from "../components/menu";
import footerModal from "../components/footer";
import vehicleBanner from "../components/vehicleBanner"
......@@ -101,7 +101,7 @@
*/
async getBanner(){
//首活动banner
let tempBannerData = await axios.get( 'https://dev.dfangche.com/api/app/banner/app/unauth/findBannerlist?type=5&platform=1');
let tempBannerData = await axios.get( '/api/app/banner/app/unauth/findBannerlist?type=5&platform=1');
let banner = tempBannerData.data.data;
this.bannerList = banner;
},
......@@ -116,9 +116,7 @@
async getAll() {
let {
data: { data }
} = await axios.get(
`https://dev.dfangche.com/api/uccn/article/app/unauth/list?type=1&page=1&limit=10000`
);
} = await axios.get(`/api/uccn/article/app/unauth/list?type=1&page=1&limit=10000` );
// console.log(data);
this.totalCount = data.total;
this.dataDetail = data.list;
......
......@@ -39,7 +39,7 @@
</template>
<script>
import axios from 'axios'
import axios from '../../plugins/axios'
import menuModal from "../../components/menu"
import footerModal from "../../components/footer"
import Swiper from 'swiper';
......@@ -62,40 +62,12 @@
return !isNaN(+params.id)
},
async asyncData({ env, params, error}) {
function formatDate(date, fmt) {
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
}
let o = {
'M+': date.getMonth() + 1,
'd+': date.getDate(),
'h+': date.getHours(),
'm+': date.getMinutes(),
's+': date.getSeconds()
}
for (let k in o) {
if (new RegExp(`(${k})`).test(fmt)) {
let str = o[k] + ''
fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? str : padLeftZero(str))
}
}
return fmt
}
function padLeftZero(str) {
return ('00' + str).substr(str.length)
}
function timestamp2Date(timestamp) {
let date = new Date(timestamp);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
return formatDate(date, 'yyyy-MM-dd hh:mm:ss');
}
const { data } = await axios.get( env.host + '//api/uccn/article/app/unauth/one?id='+params.id+"&urlType=1");
const { data } = await axios.get('/api/uccn/article/app/unauth/one?id='+params.id+"&urlType=1");
let detail = data.data;
detail.startTime = timestamp2Date(detail.startTime);
detail.endTime = timestamp2Date(detail.endTime);
if (!detail) {
return error({ message: 'detail not found', statusCode: 404 })
}
let tempBannerData = await axios.get( env.host + '/api/uccn/article/app/unauth/three/1');
let tempBannerData = await axios.get('/api/uccn/article/app/unauth/three/1');
let hot = tempBannerData.data.data;
return {detail: detail, hotList: hot}
},
......@@ -191,20 +163,11 @@
.content-detail .c-title{
padding: 5px;
}
/*.content-new{*/
/*background: #fff;*/
/*padding: 10px 20px;*/
/*box-shadow: 5px 5px 5px #ccc;*/
/*margin-bottom: 10px;*/
/*}*/
.content-new a{
display: flex;
color: #333;
}
.swiper-wrapper-thu{
/*max-width: 293px;*/
margin: 0 !important;
}
.swiper-wrapper-thu img{
......
......@@ -38,7 +38,7 @@
<div style="float:left;width:70%;padding-left:30px">
<h2 style="font-size: 18px">{{item.name}}</h2>
<h6 style="font-size: 16px;font-weight:400;margin:35px 8px">{{item.describe}}</h6>
<nuxt-link :to="item.link">
<button class="buttonDetails">旅游详情</button>
</nuxt-link>
......@@ -52,7 +52,7 @@
</template>
<script>
import axios from 'axios'
import axios from '../plugins/axios'
import menuModal from "../components/menu"
import footerModal from "../components/footer"
import banner from "../components/banner"
......@@ -98,25 +98,17 @@
async getType() {
const {
data: { data }
} = await axios.get(
"https://dev.dfangche.com/api/uccn/app/unauth/tour/tagList"
);
// console.log(data);
} = await axios.get("/api/uccn/app/unauth/tour/tagList" );
this.dataType = data;
},
async getAll() {
let {
data: { data }
} = await axios.get(
`https://dev.dfangche.com/api/uccn/app/unauth/tour/getGoodList?tagId=${this.listQuery.tagId}&page=${this.listQuery.page}&limit=${this.listQuery.limit}`
);
} = await axios.get(`/api/uccn/app/unauth/tour/getGoodList?tagId=${this.listQuery.tagId}&page=${this.listQuery.page}&limit=${this.listQuery.limit}`);
console.log(data);
data.data.map(function(item){
// item.modelParam = JSON.parse( item.modelParam);
item.link = encodeURI('/tourDetails/' + item.id+'?name='+item.name);
item.link = encodeURI(item.link);
// item.pictureList = item.picture.split(",");
// item.coverPic = item.coverPic?item.coverPic: item.pictureList.length>0?item.pictureList[0]:'';
});
if(!data.data.length == 0){
this.totalCount = data.totalCount;
......@@ -127,20 +119,14 @@
this.dataDetail = data.data;
this.dataNull = true
}
// this.dataDetail = this.dataDetail.push(data.data);
},
// 点击下一页回调
prev () {
},
// 点击下一页回调
next () {
},
prev () {},
// 点击下一页回调
next () {},
// 鼠标移入状态点回调
changeBanner () {
},
bannerClick () {
},
changeBanner () {},
bannerClick () {},
},
head: {
title: '房车旅游'
......@@ -195,4 +181,4 @@
margin-left: 10px;
margin-top: 15px;
}
</style>
\ No newline at end of file
</style>
......@@ -99,7 +99,7 @@
</template>
<script>
import axios from "axios";
import axios from '../../plugins/axios'
import menuModal from "../../components/menu";
import footerModal from "../../components/footer";
import Swiper from "swiper";
......@@ -111,10 +111,6 @@ export default {
menuModal,
footerModal
},
// created() {
// this.getNode();
// this.getHot();
// },
data() {
return {
lengthPic: 0,
......@@ -153,20 +149,6 @@ export default {
let notice = noticeData.data.data;
return {detail: user, hotList: hot, notice: notice}
},
// async asyncData({ env, params, error }) {
// console.log(params.id);
// const { data } = await axios.get(
// env.host + "/api/uccn/app/unauth/tour/detail/" + params.id
// );
// let user = data.data;
// let campsiteShop = user.bannerDTOS;
// // console.log(user);
// if (!user) {
// return error({ message: "User not found", statusCode: 404 });
// }
// return user;
// },
methods: {
changeImgIndex(index, length) {
this.$refs.mySwiper.swiper.slideTo(index + 1, 1000, true);
......@@ -176,25 +158,6 @@ export default {
visiblePic() {
this.visible = !this.visible;
},
// async getNode() {
// const {
// data: { data }
// } = await axios.get(
// "https://dev.dfangche.com/api/app/cofig/app/unauth/types?types=14"
// );
// // console.log(data[0].value);
// this.value = data[0].value;
// },
// async getHot() {
// const {
// data: { data }
// } = await axios.get(
// "https://dev.dfangche.com/api/uccn/random/list/app/unauth/get?type=3&number&location=2"
// );
// console.log(data);
// this.hotList = data
// },
},
mounted() {
let t = this;
......@@ -221,10 +184,6 @@ export default {
// console.log(this.activeIndex);
}
},
// navigation: {
// nextEl: ".swiper-button-next",
// prevEl: ".swiper-button-prev"
// },
thumbs: {
swiper: galleryThumbs
}
......@@ -303,4 +262,3 @@ export default {
\ No newline at end of file
......@@ -42,7 +42,8 @@
</template>
<script>
import axios from "axios";
import axios from '../plugins/axios'
import menuModal from "../components/menu";
import footerModal from "../components/footer";
import vehicleBanner from "../components/vehicleBanner"
......@@ -99,7 +100,7 @@
*/
async getBanner(){
//车型banner
let tempBannerData = await axios.get( 'https://dev.dfangche.com/api/app/banner/app/unauth/findBannerlist?type=0&platform=1');
let tempBannerData = await axios.get( '/api/app/banner/app/unauth/findBannerlist?type=1&platform=1');
let banner = tempBannerData.data.data;
this.bannerList = banner;
},
......@@ -111,9 +112,7 @@
async getAll() {
let {
data: { data }
} = await axios.get(
`https://dev.dfangche.com/api/uccn/vehicleModel/app/unauth/findVehicleModelPage?page=1&limit=100`
);
} = await axios.get(`/api/uccn/vehicleModel/app/unauth/findVehicleModelPage?page=1&limit=100`);
// console.log(data);
this.totalCount = data.totalCount;
data.data.map(function(item){
......
......@@ -95,7 +95,7 @@
</template>
<script>
import axios from 'axios'
import axios from '../../plugins/axios'
import menuModal from "../../components/menu"
import footerModal from "../../components/footer"
import Swiper from 'swiper';
......@@ -117,7 +117,7 @@
return !isNaN(+params.id)
},
async asyncData({ env, params, route, error}) {
const { data } = await axios.get( env.host + '/api/uccn/vehicleModel/app/unauth/detail/'+route.query.name);
const { data } = await axios.get('/api/uccn/vehicleModel/app/unauth/detail/'+route.query.name);
let user = data.data;
data.data.modelsDetails = data.data.modelsDetails.replace(/<img/g,"<img style='width:100%'");
data.data.modelParam = JSON.parse(data.data.modelParam );
......@@ -128,7 +128,7 @@
if (!user) {
return error({ message: 'User not found', statusCode: 404 })
}
let tempBannerData = await axios.get( env.host + '/api/uccn/random/list/app/unauth/get?type=1');
let tempBannerData = await axios.get( '/api/uccn/random/list/app/unauth/get?type=1');
let hot = tempBannerData.data.data;
hot.map(function(item){
item.link = encodeURI('/vehicleList/' + item.id+'?name='+item.name);
......@@ -136,7 +136,7 @@
item.pictureList = item.picture.split(",");
item.coverPic = item.coverPic?item.coverPic: item.pictureList.length>0?item.pictureList[0]:'';
});
let noticeData = await axios.get( env.host + '/api/app/cofig/app/unauth/types?types=6');
let noticeData = await axios.get( '/api/app/cofig/app/unauth/types?types=6');
let notice = noticeData.data.data;
return {detail: user, hotList: hot, notice: notice}
},
......@@ -188,13 +188,11 @@
width: 30%;
border-left: 1px solid #ccc;
border-right: 1px solid #ccc;
/*border-bottom: 1px solid #999;*/
padding: 5px 3px;
}
.right-item{
width:70%;
border-right: 1px solid #ccc;
/*border-bottom: 1px solid #999;*/
padding: 5px 3px;
}
.modal-item{
......
import axios from 'axios'
export default axios.create({
baseURL: "https://xxtest.upyuns.com"
})
import Vue from 'vue'
// 时间格式化
export function formatDate (date, fmt) {
let newDate = new Date(date)
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (newDate.getFullYear() + '').substr(4 - RegExp.$1.length))
}
let o = {
'M+': newDate.getMonth() + 1,
'd+': newDate.getDate(),
'h+': newDate.getHours(),
'm+': newDate.getMinutes(),
's+': newDate.getSeconds()
}
for (let k in o) {
if (new RegExp(`(${k})`).test(fmt)) {
let str = o[k] + ''
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str))
}
}
return fmt
}
export function getBaseUrl(){
return baseUrl = "https://xxtest.upyuns.com";
}
function padLeftZero(str) {
return ('00' + str).substr(str.length)
}
let filters = {
formatDate
}
Object.keys(filters).forEach(key => {
Vue.filter(key, filters[key])
})
export default filters
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment