Commit d0df5f36 by yanju

Merge branch 'master' of coding.yundingshuyuan.com:pigbigbig/beyond-clouds-front

parents 4a61e227 4dbb5a2b
This source diff could not be displayed because it is too large. You can view the blob instead.
<template>
<div class="answer-card__wrap">
<div class="answer-card__wrap" :style="{width: this.cardType === '1' ? '938px' : '816px'}">
<div class="answer-card">
<div class="answer-card__left" v-if="!isAnswer">
<div>
......@@ -44,6 +44,9 @@
<script>
export default {
name: "answerCard",
props: {
cardType: String
},
data() {
return{
isAnswer: true, // props 判断是否回答过
......@@ -59,10 +62,11 @@ export default {
.answer-card__wrap{
background-color: #fff;
.answer-card{
height: 132*$length;
@extend %cursorPointer;
width: 938*$length;
box-sizing: border-box;
padding: 24*$length;
margin: 0 24*$length;
padding: 24*$length 0;
border-bottom: 1px dashed #EFEFEF;
@extend %flex-row-spb;
align-items: flex-start;
......@@ -74,6 +78,7 @@ export default {
line-height: 84*$length;
background-color: #F4F8FA;
@include border-radius(4*$length);
text-align: center;
> div{
display: inline-block;
vertical-align: middle;
......@@ -95,6 +100,7 @@ export default {
background-color: #F4F8FA;
border: 1*$length solid #75D098;
@include border-radius(4*$length);
text-align: center;
> span{
@include fontStyle(12,17,500,#75D098,center);
}
......
......@@ -3,12 +3,12 @@
<div class="card-container__header">
<div class="header-left">
<div class="header-left__label"></div>
<span>{{title}}</span>
<p>{{title}}</p>
</div>
<div class="header-right">{{label}}</div>
<div class="header-right"><p>{{label}}</p></div>
</div>
<slot></slot>
<div class="card-container__footer">
<div class="card-container__footer" v-if="more">
<span>{{more}}</span>
</div>
</div>
......@@ -34,6 +34,7 @@ export default {
.card-container__header{
height: 56*$length;
border-bottom: 1*$length solid #EFEFEF;
vertical-align: middle;
@extend %flex-row-spb;
.header-left{
@extend %flex-row-spb;
......@@ -43,10 +44,9 @@ export default {
background-color: #00AAE6;
@include border-radius(2*$length);
}
> span{
> p{
margin-left: 12*$length;
@include fontStyle(16,22,500,#2F2F2F,left);
line-height: 18*$length;
}
}
.header-right{
......
<template>
<div class="empty-card__warp" :style="{height: height, lineHeight: height}">
<div class="empty-card">
<img src="../../assets/svg/null.svg" alt="">
</div>
</div>
</template>
<script>
export default {
name: "emptyCard",
props: {
height: String
}
}
</script>
<style lang="scss" scoped>
.empty-card__warp{
background-color: #fff;
.empty-card{
text-align: center;
img{
display: inline-block;
vertical-align: middle;
}
}
}
</style>
<template>
<div class="error-card-notfound">
<div class="not-found">
<img src="../../assets/svg/four.jpg" alt="">
<img src="../../assets/svg/zero.jpg" alt="">
<img class="rotating" src="../../assets/svg/four.jpg" alt="">
<p class="not-found-content">加载失败,请重新尝试</p>
<button class="reload" @click="reload">刷新页面</button>
</div>
</div>
</template>
<script>
export default {
name: "errorCard",
methods:{
reload(){
location.reload()
}
}
}
</script>
<style lang="scss" scoped>
.error-card-notfound{
height: 100%;
width: 100%;
background-color: #fff;
margin: 0 auto;
.not-found{
text-align: center;
img{
display: inline-block;
}
.rotating{
transform: rotate(25deg);
margin-top: 25*$length;
}
.not-found-content{
padding-top: 20*$length;
padding-bottom: 47*$length;
@include fontStyle(16,22,500,#333,center);
}
.reload{
display: block;
margin: 0 auto;
width: 148*$length;
height: 48*$length;
line-height: 48*$length;
font-size: 14*$length;
color: #fff;
background-color: #75D098;
@include border-radius(4*$length);
cursor: pointer;
border: none;
@extend %animate-transition;
&:hover{
background-color: #7f828b;
}
}
}
}
</style>
......@@ -4,24 +4,22 @@
<div class="nav-card__container">
<div
class="nav-card__label"
:style="{backgroundColor:bgColor}"
:style="{backgroundColor: isBlue ? '#00AAE6' : '#fff'}"
></div>
<p :style="{color:fontColor}">
<nuxt-link tag="p" :to="{path:navAddress, query:{id:labelId}}" :style="{color: isBlue||fontColor ? '#00AAE6' : '#666'}">
<slot></slot>
</p>
<transition name="fade">
<div class="nav-card__menu" v-if="isShow===true" @mouseleave="handleMouseLeave">
</nuxt-link>
<div class="nav-card__menu" v-if="isShow===true && childList !== undefined" @mouseleave="handleMouseLeave">
<div class="arrow"></div>
<div class="label-list-box">
<nuxt-link
class="label-list"
v-for="(item, key) in labelList"
:key="`${item}${key}`" to="/">
{{item}}
v-for="(item, key) in childList"
:key="`${item}${key}`" :to="{path: item.address, query: {id: labelId, childId: item.childId}}">
{{item.label}}
</nuxt-link>
</div>
</div>
</transition>
</div>
</div>
</div>
......@@ -31,26 +29,47 @@
export default {
name: "navCard",
props: {
labelList: Array
childList: Array,
navAddress: String,
labelId: String
},
data(){
return{
fontColor: '#666',
fontColor: false,
bgColor: '#fff',
isShow: false,
labelList: ['文件管理','多媒体','文本编辑','应用软件','IM及时聊天']
isBlue: false
}
},
methods:{
handleMouseLeave(){
this.isShow=false;
this.fontColor = '#666';
this.bgColor = '#fff';
this.fontColor = false;
},
handleMouseOver(){
this.isShow=true;
this.fontColor = '#00AAE6';
this.bgColor = '#00AAE6';
this.fontColor = true;
}
},
watch:{
$route(to,from){
if (this.$route.query.id) {
this.isBlue = this.$route.query.id.indexOf(this.labelId) !== -1;
} else {
this.isBlue = this.$route.path.indexOf(this.navAddress) !== -1;
}
}
},
created() {
console.log(this.$route.query.id);
if (this.$route.query.id) {
if (this.$route.query.id.indexOf(this.labelId) !== -1){
this.isBlue = true;
}
} else {
if (this.$route.path.indexOf(this.navAddress) !== -1){
this.isBlue = true;
}
}
}
}
......@@ -62,6 +81,9 @@ export default {
padding-bottom: 18*$length;
.nav-card__container{
position: relative;
@include fontStyle(14,18,500,#666,left);
@extend %cursorPointer;
@extend %animate-transition;
@extend %flex-row-spb;
justify-content: flex-start;
.nav-card__label{
......@@ -72,9 +94,15 @@ export default {
}
> p{
width: 100%;
@include fontStyle(14,18,500,#666,center);
@extend %cursorPointer;
padding-left: 14*$length;
@extend %animate-transition;
&:hover{
color: #00AAE6;
}
.nav-card__label2{
margin-left: 14*$length;
background-color: #fff;
}
}
.nav-card__menu{
position: absolute;
......@@ -83,6 +111,7 @@ export default {
top: 25*$length;
background-color: #fff;
@include box-shadow(0 6*$length 20*$length rgba(0,0,0,.1));
@include border-radius(4*$length);
.label-list-box{
box-sizing: border-box;
width: 308*$length;
......
<template>
<div class="nav-wrap">
<div class="nav-wrap" :style="{ width: width, height: height}">
<nav-card
v-for="(item,index) in list"
:key="item"
:labelList="labelList"
>{{item}}</nav-card>
:key="item.address"
:navAddress="item.address"
:labelId="item.id"
:childList="item.childList"
>{{item.label}}
</nav-card>
</div>
</template>
<script>
import NavCard from './navCard';
export default {
name: "navWrap",
components: {
NavCard
},
props: {
list: Array,
width: String,
height: String
},
data(){
return{
color: '',
labelList: ['asd','仍在你','前端'],
list: ['java','javascript','web']
data() {
return {
}
}
}
</script>
<style lang="scss" scoped>
.nav-wrap{
background-color: #fff;
padding-top: 21*$length;
padding-bottom: 74*$length;
width: 106*$length;
@include border-radius(4*$length);
}
.nav-wrap {
display: inline-block;
background-color: #fff;
padding-top: 21*$length;
padding-bottom: 74*$length;
@include border-radius(4*$length);
}
</style>
......@@ -57,6 +57,7 @@ export default {
.bc-layout-container-footer {
width: 100%;
background-color: #fff;
z-index: 7000;
.footer-center {
width: $pageWidth;
margin: 0 auto;
......
<template>
<div class="topic-card__wrap">
<div class="topic-card">
<div class="topic-card-left">
<div class="square1" v-if="!isPhoto"></div>
<div class="square2" v-if="!isPhoto"></div>
<div class="square3" v-if="!isPhoto"></div>
<div class="square4" v-if="!isPhoto"></div>
<img :src="src" v-if="isPhoto" alt="">
</div>
<div class="topic-card-right">
<div class="right-header">
<span class="right-title"># Java #</span>
<span class="right-label" @click="handleFocus" :style="{color: fontColor}">{{focus}}</span>
</div>
<p class="right-content">java是一门好的编程语言</p>
<p class="right-footer">56万讨论 · 1.45亿阅读</p>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'topicCard',
data(){
return{
isPhoto: true,
src: 'http://i1.sinaimg.cn/ent/d/2008-06-04/U105P28T3D2048907F326DT20080604225106.jpg',
focus: '+关注',
fontColor: '#55B946'
}
},
methods:{
handleFocus(){
this.focus = this.focus === '+关注' ? '取消关注' : '+关注';
if (this.fontColor === '#55B946') {
this.fontColor = '#999'
} else {
this.fontColor = '#55B946'
}
}
}
}
</script>
<style lang="scss" scoped>
.topic-card__wrap{
background-color: #fff;
padding: 24*$length 24*$length 0 24*$length;
.topic-card{
@extend %cursorPointer;
padding-bottom: 24*$length;
border-bottom:1px dashed #EFEFEF;
@extend %flex-row-spb;
justify-content: flex-start;
.topic-card-left{
width: 100*$length;
height: 100*$length;
@extend %flex-row-spb;
flex-wrap: wrap;
img{
width: 100%;
height: 100%;
}
div{
display: inline-block;
width: 48*$length;
height: 48*$length;
background-color: orange;
@include border-radius(4*$length);
}
.square1{
background-color: #B4DDDE;
}
.square2{
background-color: #E0BDBD;
}
.square3{
background-color: #9FBBC9;
}
.square4{
background-color: #A6E2B6;
}
}
.topic-card-right{
margin-left: 16*$length;
text-align: left;
.right-header{
.right-title{
margin-right: 23*$length;
@include fontStyle(14,14,500,#333,left);
}
.right-label{
@include fontStyle(14,20,500,#55B946,left);
}
}
.right-content{
margin-top: 8*$length;
@include fontStyle(12,17,500,#666,left);
}
.right-footer{
margin-top: 7*$length;
@include fontStyle(12,17,500,#999,left);
}
}
}
}
</style>
<template>
<nuxt/>
</template>
<script>
export default {
name: "blank.vue"
}
</script>
<style lang="scss" scoped>
</style>
<template>
<div class="error-card__wrap">
<div class="error-card" v-if="error.statusCode !== 404">
<img src="../assets/svg/500.svg" alt="">
<p class="error-card-content">服务器连接异常,请稍后重试</p>
<button class="error-card-close" @click="close">关闭页面</button>
</div>
<error-card v-if="error.statusCode === 404"></error-card>
</div>
</template>
<script>
import ErrorCard from '../components/pc/errorCard';
export default {
props: ['error'],
layout: 'blank',
components: {
ErrorCard
},
methods:{
close(){
window.opener = null;
window.open("http://www.baidu.com", "_self");
window.close();
}
}
}
</script>
<style lang="scss" scoped>
.error-card__wrap{
position: fixed;
top: 50%;
transform: translateY(-55%);
width: 100%;
text-align: center;
.error-card{
margin: 0 auto;
img{
display: inline-block;
}
.error-card-content{
padding-top: 37*$length;
padding-bottom: 47*$length;
@include fontStyle(16,22,500,#333,center);
}
.error-card-close{
display: inline-block;
width: 148*$length;
height: 48*$length;
line-height: 48*$length;
font-size: 14*$length;
color: #fff;
background-color: #75D098;
@include border-radius(4*$length);
cursor: pointer;
border: none;
@extend %animate-transition;
&:hover{
background-color: #7f828b;
}
}
}
}
</style>
<template>
<div class="answer-container">
<div class="answer-container__main">
<div class="answer-container__left">
<nav-wrap
width="106px"
height="480px"
:list="list"
></nav-wrap>
</div>
<div class="answer-container__center">
<card-container
width="816px"
height="1012px"
:title="labelTitle"
>
<answer-card card-type="2"></answer-card>
</card-container>
<div class="pagination">
<pagination style="margin: 0 auto;"></pagination>
</div>
</div>
<div class="answer-container__right">
<div class="right__write-answer">我要提问</div>
<div class="right__search-answer">
<input type="text">
<div><yun-icon name="search" size="16px" color="#fff"></yun-icon></div>
</div>
<div class="right__my-answer">
<div class="my-answer__wrap">
<div class="my-answer__l">
<yun-icon name="star" color="#F8A06F" size="20px" style="margin-top: -5px"></yun-icon>
<p>我收藏的问题</p>
</div>
<p class="my-answer__r">12</p>
</div>
<div class="my-answer__wrap">
<div class="my-answer__l">
<yun-icon name="star" color="#F8A06F" size="20px" style="margin-top: -5px"></yun-icon>
<p>我收藏的问题</p>
</div>
<p class="my-answer__r">12</p>
</div>
<div class="my-answer__wrap">
<div class="my-answer__l">
<yun-icon name="star" color="#F8A06F" size="20px" style="margin-top: -5px"></yun-icon>
<p>我收藏的问题</p>
</div>
<p class="my-answer__r">12</p>
</div>
</div>
<card-container
title="热门答主"
label="换一换"
more="更多"
width="302px"
height="446px"
style="margin-top: 16px"
></card-container>
</div>
</div>
</div>
</template>
<script>
import NavWrap from "../../components/pc/nav/navWrap";
import CardContainer from "../../components/pc/cardContainer";
import ProjectCard from "../../components/pc/projectCard";
import Pagination from "../../components/pc/pagination";
import AnswerCard from "../../components/pc/answerCard";
export default {
components: {AnswerCard, Pagination, ProjectCard, CardContainer, NavWrap},
data(){
return{
list: [
{
label: '热门推荐',
address: '/answer',
id: '热门推荐'
},
{
label: '职业生涯',
address: '/answer',
id: '职业生涯'
},
{
label: '项目讨论',
address: '/answer',
id: '项目讨论'
},
{
label: '职场经验',
address: '/answer',
id: '职场经验'
}
]
}
},
created() {
this.$router.replace({
path: '/answer',
query: {
id: '热门推荐'
}
});
},
computed: {
labelTitle: function () {
return this.$route.query.id
}
}
}
</script>
<style lang="scss" scoped>
.answer-container{
> .answer-container__main{
width: $pageWidth;
margin: 0 auto;
padding-top: 16*$length;
padding-bottom: 32*$length;
@extend %flex-row-spb;
align-items: start;
.answer-container__left{}
.answer-container__center{
.pagination{
margin: 32*$length;
}
}
.answer-container__right{
.right__write-answer{
width: 302*$length;
background-color: #fff;
@include fontStyle(14,56,500,#00AAE6,center);
@include border-radius(4*$length);
@extend %animate-transition;
&:hover {
color: #fff;
background-color: #00AAE6;
}
}
.right__search-answer{
width: 302*$length;
overflow: hidden;
margin-top: 16*$length;
@include border-radius(4*$length);
@extend %flex-row-spb;
> input {
@include fontStyle(12,16,500,#999,left);
width: 236*$length;
height: 56*$length;
padding: 20*$length 16*$length;
}
> div {
width: 66*$length;
height: 56*$length;
line-height: 50*$length;
text-align: center;
background-color: #00AAE6;
}
}
.right__my-answer{
height: 138*$length;
width: 302*$length;
overflow: hidden;
margin-top: 16*$length;
padding: 20*$length 16*$length;
box-sizing: border-box;
background-color: #fff;
@include border-radius(4*$length);
.my-answer__wrap{
@extend %flex-row-spb;
margin-bottom: 18*$length;
.my-answer__l{
@extend %flex-row-spb;
height: 20*$length;
line-height: 20*$length;
> p {
padding-left: 8*$length;
@include fontStyle(14,20,500,#666,left);
}
}
.my-answer__r{
@include fontStyle(14,16,500,#666,left);
}
}
}
}
}
}
</style>
<template>
<div class="blog-container">
<div class="blog-container__main">
<div class="blog-container__left">
<nav-wrap
width="106px"
height="480px"
:list="list"
></nav-wrap>
</div>
<div class="blog-container__center">
<card-container
width="816px"
height="1012px"
:title="labelTitle"
>
<project-card></project-card>
<project-card></project-card>
<project-card></project-card>
<project-card></project-card>
</card-container>
<div class="pagination">
<pagination style="margin: 0 auto;"></pagination>
</div>
</div>
<div class="blog-container__right">
<div class="right__write-blog">写文章</div>
<card-container
title="热门博主"
label="换一换"
more="更多"
width="302px"
height="446px"
style="margin-top: 16px"
></card-container>
<card-container
title="热门标签"
width="302px"
height="446px"
style="margin-top: 16px"
></card-container>
</div>
</div>
</div>
</template>
<script>
import NavWrap from "../../components/pc/nav/navWrap";
import CardContainer from "../../components/pc/cardContainer";
import ProjectCard from "../../components/pc/projectCard";
import Pagination from "../../components/pc/pagination";
export default {
components: {Pagination, ProjectCard, CardContainer, NavWrap},
data(){
return{
list: [
{
label: '全部类型',
address: '/blog',
id: '全部类型'
},
{
label: '程序人生',
address: '/blog',
id: '程序人生'
},
{
label: '移动开发',
address: '/blog',
id: '移动开发'
},
{
label: '前端',
address: '/blog',
id: '前端'
},
{
label: '其他',
address: '/blog',
id: '其他'
}
]
}
},
created() {
this.$router.replace({
path: '/blog',
query: {
id: '全部类型'
}
});
},
computed: {
labelTitle: function () {
return this.$route.query.id
}
}
}
</script>
<style lang="scss" scoped>
.blog-container{
> .blog-container__main{
width: $pageWidth;
margin: 0 auto;
padding-top: 16*$length;
padding-bottom: 32*$length;
@extend %flex-row-spb;
align-items: start;
.blog-container__left{}
.blog-container__center{
.pagination{
margin: 32*$length;
}
}
.blog-container__right{
.right__write-blog{
width: 302*$length;
background-color: #fff;
@include fontStyle(14,56,500,#00AAE6,center);
@include border-radius(4*$length);
@extend %animate-transition;
&:hover {
color: #fff;
background-color: #00AAE6;
}
}
}
}
}
</style>
......@@ -21,6 +21,7 @@
<h2 class="subtitle" @click="showAlert">
beyond-clouds project
</h2>
<nav-wrap></nav-wrap>
</div>
</div>
</template>
......
<template>
<div class="news-container">
<div class="news-container__l">
<card-container
title="新闻速递"
width="938px"
height="1696px"
>
<project-card></project-card>
<project-card></project-card>
<project-card></project-card>
</card-container>
<div class="pagination">
<pagination style="margin: 0 auto;"></pagination>
</div>
</div>
<div class="news-container__r">
<card-container
title="行业资讯"
label="换一换"
width="302px"
height="426px"
>
</card-container>
<card-container
style="margin-top: 16px"
title="招聘速递"
more="更多"
width="302px"
height="426px"
>
</card-container>
<card-container
style="margin-top: 16px"
title="每周软件推荐"
label="周一3:00更新"
more="更多项目"
width="302px"
height="426px"
>
</card-container>
<card-container
style="margin-top: 16px"
title="软件更新"
more="加载更多"
width="302px"
height="426px"
>
</card-container>
</div>
</div>
</template>
<script>
import CardContainer from "../../components/pc/cardContainer";
import ProjectCard from "../../components/pc/projectCard";
import Pagination from "../../components/pc/pagination";
export default {
components: {ProjectCard, CardContainer,Pagination}
}
</script>
<style lang="scss" scoped>
.news-container{
width: $pageWidth;
margin: 0 auto;
padding-top: 40*$length;
padding-bottom: 32*$length;
@extend %flex-row-spb;
align-items: start;
.news-container__l{
.pagination{
margin: 32*$length;
}
}
}
</style>
<template>
<div class="project-container">
<div class="project-container__main">
<div class="project-container__left">
<nav-wrap
width="106px"
height="480px"
:list="list"
></nav-wrap>
</div>
<div class="project-container__center">
<card-container
width="816px"
height="1012px"
:title="labelTitle"
>
<project-card></project-card>
<project-card></project-card>
<project-card></project-card>
<project-card></project-card>
</card-container>
<div class="pagination">
<pagination style="margin: 0 auto;"></pagination>
</div>
</div>
<div class="project-container__right">
<div class="right__write-project">发布项目</div>
<card-container
title="今日热门"
label="换一换"
more="加载更多"
width="302px"
height="446px"
style="margin-top: 16px"
></card-container>
<card-container
title="热门项目"
label="整点更新"
more="更多项目"
width="302px"
height="446px"
style="margin-top: 16px"
></card-container>
</div>
</div>
</div>
</template>
<script>
import NavWrap from "../../components/pc/nav/navWrap";
import CardContainer from "../../components/pc/cardContainer";
import ProjectCard from "../../components/pc/projectCard";
import Pagination from "../../components/pc/pagination";
export default {
components: {Pagination, ProjectCard, CardContainer, NavWrap},
data(){
return{
list: [
{
label: '全部项目',
address: '/project',
id: '全部项目'
},
{
label: 'web应用',
address: '/project',
id: 'web应用',
childList: [
{
address: '/project',
label: '桌面应用',
childId: '桌面应用'
},
{
address: '/project',
label: '手机APP',
childId: '手机APP'
},
{
address: '/project',
label: '实时聊天',
childId: '实时聊天'
},
{
address: '/project',
label: '快速开发',
childId: '快速开发'
}
]
},
{
label: '基础框架',
address: '/project',
id: '基础框架',
childList: [
{
label: 'Vue.js',
address: '/project',
childId: 'Vue.js'
}
]
},
{
label: '应用工具',
address: '/project',
id: '应用工具',
childList: [
{
label: '文件管理工具',
address: '/project',
childId: '文件管理工具'
},
{
label: '文本编辑',
address: '/project',
childId: '文本编辑'
}
]
}
]
}
},
created() {
this.$router.replace({
path: '/project',
query: {
id: '全部项目'
}
});
},
computed: {
labelTitle: function () {
if (this.$route.query.childId) {
return this.$route.query.id + ' · ' + this.$route.query.childId
} else {
return this.$route.query.id
}
}
}
}
</script>
<style lang="scss" scoped>
/deep/ .nuxt-link-exact-active {
color: #00AAE6 !important;
}
.project-container{
> .project-container__main{
width: $pageWidth;
margin: 0 auto;
padding-top: 16*$length;
padding-bottom: 32*$length;
@extend %flex-row-spb;
align-items: start;
.project-container__left{}
.project-container__center{
.pagination{
margin: 32*$length;
}
}
.project-container__right{
.right__write-project{
width: 302*$length;
background-color: #fff;
@include fontStyle(14,56,500,#00AAE6,center);
@include border-radius(4*$length);
@extend %animate-transition;
&:hover {
color: #fff;
background-color: #00AAE6;
}
}
}
}
}
</style>
<template>
<div class="topic-container">
<div class="topic-container__main">
<div class="topic-container__left">
<nav-wrap
width="106px"
height="176px"
:list="list"
></nav-wrap>
</div>
<div class="topic-container__center">
<card-container
width="816px"
height="1070px"
:title="labelTitle"
>
<topic-card></topic-card>
</card-container>
<div class="pagination">
<pagination style="margin: 0 auto;"></pagination>
</div>
</div>
<div class="topic-container__right">
<card-container
title="话题热搜榜"
label="实时更新"
more="更多"
width="302px"
height="430px"
></card-container>
</div>
</div>
</div>
</template>
<script>
import NavWrap from "../../components/pc/nav/navWrap";
import CardContainer from "../../components/pc/cardContainer";
import ProjectCard from "../../components/pc/projectCard";
import Pagination from "../../components/pc/pagination";
import TopicCard from "../../components/pc/topicCard";
export default {
components: {TopicCard, Pagination, ProjectCard, CardContainer, NavWrap},
data(){
return{
list: [
{
label: '推荐',
address: '/topic',
id: '推荐'
},
{
label: '热门',
address: '/topic',
id: '热门'
},
{
label: '关注',
address: '/topic',
id: '关注'
},
{
label: '最新',
address: '/topic',
id: '最新'
}
]
}
},
created() {
this.$router.replace({
path: '/topic',
query: {
id: '推荐'
}
});
},
computed: {
labelTitle: function () {
return this.$route.query.id + '话题'
}
}
}
</script>
<style lang="scss" scoped>
.topic-container{
> .topic-container__main{
width: $pageWidth;
margin: 0 auto;
padding-top: 16*$length;
padding-bottom: 32*$length;
@extend %flex-row-spb;
align-items: start;
.topic-container__left{}
.topic-container__center{
.pagination{
margin: 32*$length;
}
}
.topic-container__right{
.right__write-topic{
width: 302*$length;
background-color: #fff;
@include fontStyle(14,56,500,#00AAE6,center);
@include border-radius(4*$length);
@extend %animate-transition;
&:hover {
color: #fff;
background-color: #00AAE6;
}
}
}
}
}
</style>
<template></template>
<script>
export default {
created() {
this.$router.replace('/users/login');
}
}
</script>
<template>
<div class="login-container">
<div class="login-center">
<div class="login-header">
<embed src="../../assets/svg/whiteLogo.svg" width="111" height="26"
type="image/svg+xml"
pluginspage="http://www.adobe.com/svg/viewer/install/" />
<div class="header-register" @click="handleRegister">注册</div>
</div>
<login-card
class="login-card-container"
title1="密码登录"
title2="短信登录"
commitment="1"
button="登录"
@login="handleLogin"
></login-card>
<div class="login-footer">Copyright © 2019 云里云外开源社区 All Rights Reserved · 京ICP备 1234567891号-11</div>
</div>
</div>
</template>
<script>
import LoginCard from '../../components/pc/loginCard';
export default {
name: "index",
layout: 'blank',
components: {
LoginCard
},
methods:{
handleLogin(way, account, password, phone, verification) {
console.log(way);
console.log(account);
console.log(password);
console.log(phone);
console.log(verification);
},
// 跳转注册页面
handleRegister(){
this.$router.push('/users/register');
}
}
}
</script>
<style lang="scss" scoped>
.login-container{
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
background-image: url("../../assets/img/background.png");
background-repeat: no-repeat;
background-size: cover;
.login-center{
width: $pageWidth;
height: 100%;
margin: 0 auto;
@extend %flex-column-spb;
.login-header{
width: 100%;
margin-top: 20*$length;
@extend %flex-row-spb;
@include fontStyle(14,20,500,#fff,left);
.header-register{
@extend %cursorPointer;
}
}
.login-footer{
margin-bottom: 30*$length;
@include fontStyle(12,17,500,#fff,center);
cursor: default;
}
}
}
</style>
<template>
<div class="register-container">
<login-card
class="register-card-container"
title1="手机号注册"
title2="邮箱号注册"
commitment="2"
button="注册"
@login="handleRegister"
></login-card>
</div>
</template>
<script>
import LoginCard from '../../components/pc/loginCard';
export default {
name: "register",
components: {
LoginCard
},
methods:{
handleRegister(way, account, password, phone, verification) {
console.log(way);
console.log(account);
console.log(password);
console.log(phone);
console.log(verification);
}
}
}
</script>
<style lang="scss" scoped>
.register-container{
margin: 136*$length 0;
.register-card-container{
margin: 0 auto;
}
}
</style>
<template>
<div class="login-container">
<page-header></page-header>
<login-card
class="login-card-container"
button="重置账号"
commitment="2"
@login="handleReset"
></login-card>
</div>
</template>
<script>
import PageHeader from '../../components/pc/pageHeader';
import LoginCard from '../../components/pc/loginCard';
export default {
name: "index",
layout: 'blank',
components: {
LoginCard, PageHeader
},
methods:{
handleReset(way, account, password, phone, verification) {
console.log(way);
console.log(account);
console.log(password);
console.log(phone);
console.log(verification);
}
}
}
</script>
<style lang="scss" scoped>
.login-container{
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
background-image: $bgImage;
.login-card-container{
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}
}
</style>
<template>
<div class="web-container">
<div class="web-center">
<div class="web-center__nav">
<nav-wrap
:list="list"
width="302px"
height="252px"
></nav-wrap>
</div>
<div class="web-center__content">
<nuxt-child></nuxt-child>
</div>
</div>
</div>
</template>
<script>
import NavWrap from "../components/pc/nav/navWrap";
export default {
name: "web",
components: {
NavWrap
},
data() {
return {
list: [
{
label: '关于我们',
address: '/web/about'
},
{
label: '联系我们',
address: '/web/contact'
},
{
label: '意见反馈',
address: '/web/feedback'
},
{
label: '用户协议',
address: '/web/agreement'
},
{
label: '版权声明',
address: '/web/copyright'
},
{
label: '投诉举报',
address: '/web/report'
}
]
}
},
created() {
this.$router.replace('/web/about')
}
}
</script>
<style lang="scss" scoped>
.web-container {
.web-center {
width: $pageWidth;
margin: 16*$length auto 0;
@extend %flex-row-spb;
align-items: start;
}
}
</style>
<template>
<card-container
title="关于我们"
width="938px"
height="400px"
style="margin-bottom: 100px"
>
<div class="about-main">
<span>云里云外开源社区</span>
<p>开源社区又称开放源代码社区。云里云外开源社区由云顶书院的程序员发起,致力于打造一个契合中国本土开发者的开源平台,为中国互联网行业的软件开源工作服务,促进互联网开发者的开源、共享、创新的精神,推动国产软件发展,为企业和高校提供大量精品项目和项目源代码,为新型互联网人才培育和互联网下新产业的发展打下坚实基础。</p>
<p>云里云外开源社区由开源社区和代码托管平台构成,开源社区致力于构建一个契合中国本土开发者的开发者交流社区,开发者们可以在社区里发布开源项目,检索开源项目,发布问答,回答问题等。代码托管平台致力于为开发者提供一个代码托管和团队高效协作的平台,开发者可以在此平台上创建项目和团队,开发者们可以在此平台上共同开发和维护开源项目。</p>
</div>
</card-container>
</template>
<script>
import CardContainer from "../../components/pc/cardContainer";
export default {
name: "about",
components: {CardContainer}
}
</script>
<style lang="scss" scoped>
.about-main{
padding: 24*$length;
@include fontStyle(16,30,500,#666,left);
height: auto;
> p{
text-indent: 32*$length;
}
}
</style>
<template>
<card-container
title="用户协议"
width="938px"
height="922px"
style="margin-bottom: 100px"
>
<div class="agreement-main">
<p>真经发实民支素点严我口代组。南场千明统查无他速资积可便。把便分号权称且四下自期组素军。解反千干已度事复实两的军格列。</p>
<p>想近验统委实采须金火布理到。任非划步响五系东专例应反称先金。反龙工些于只相色身次共政元近。</p>
<p>见再办有还会验式后南极必。规但行加成国金进备在领子作。空保采走严志见据数石指向和查看。</p>
<p>加满被确员如气易管照维持出白思。往交题果什织关以党安她万所正史二最月。系通程被争色示感长料阶片该根保给四。保己们位物把确通住低始现律石。
也制在史长严世用活利最族空感际见。段事了先就并情如个万现形适却。更听集进来你心科多头各很。周公体深海须参做特上养由。向复线效速满意片量道类派相。二开情选教济公那再结性光运养引。
包律元天强满己九织个我北全属。院十局步格关万现毛来权委过报道个。型边更离上十前铁节别走照见员月再她。须给关质安群无照都行八资西美料。布志验及来交更可总关家能。
数水没形关场化些性和亲须使反听习。务就新回务林济做月越同根打般道通联。的论或易起离高什之长理人因。整花明除高深求回气产例多精厂。华运八回集当亲安本元已群难养正达就提。见长水段专院五度在系十但可义。
口气路现别特题干的角间期矿少内理老。军周利选原专品及四二满及毛声消离。明土属从看多角温先切对素。经解少称下如象总进许历明求回件指是。
引可么以属各外铁适质商别对先半人众。每者成热维经代还历劳织江当西压。八劳存及式动离影命满件立志。为己难就争入离次厂反形新线口什表去积。确转组交了总引取但重号产产调将物。满示特表力名济更者信党所历完。
中近天断义般数每又风是回当公维或统。厂段该期由支场老包与照米想亲传至名。听性说养约资水一候体世七议米务矿住。例公转劳采青听划斯始着十给高总水务近。律织资铁边听他万型年或美多。到边外争又利问备提确下今府拉且细。
向志带转阶取育期上起必委区。反面增集消式温回向量所儿不准九样相。光精业政深确西当极者候四。张务厂律儿铁北用分北率团命它单住位周。亲美据解积月内车连情学两用。
</p>
</div>
</card-container>
</template>
<script>
import CardContainer from "../../components/pc/cardContainer";
export default {
name: "agreement",
components: {CardContainer}
}
</script>
<style lang="scss" scoped>
.agreement-main {
padding: 24*$length;
@include border-radius(46 $length);
> p {
@include fontStyle(16, 30, 500, #666, left);
height: auto;
}
}
</style>
<template>
<card-container
title="联系我们"
width="938px"
height="400px"
style="margin-bottom: 100px"
>
<div class="contact-main">
<p>Email:11111111@</p>
<p>QQ:1111111</p>
<p>微信:2222222</p>
<p>电话:0123-111111</p>
<p>工作时间:周一至周五 9:30-12:00 14:00-18:30</p>
<p>地址:山西省太原理工大学明向校区</p>
</div>
</card-container>
</template>
<script>
import CardContainer from "../../components/pc/cardContainer";
export default {
name: "contact",
components: {CardContainer}
}
</script>
<style lang="scss" scoped>
.contact-main{
padding: 10*$length 24*$length;
> p{
@include fontStyle(16,45,500,#666,left);
@extend %cursorPointer;
}
}
</style>
<template>
<card-container
title="版权声明"
width="938px"
height="612px"
style="margin-bottom: 100px"
>
<empty-card height="556px"></empty-card>
</card-container>
</template>
<script>
import CardContainer from "../../components/pc/cardContainer";
import EmptyCard from "../../components/pc/emptyCard";
export default {
name: "copyright",
components: {EmptyCard, CardContainer}
}
</script>
<style lang="scss" scoped>
</style>
<template>
<card-container
title="意见反馈"
width="938px"
height="552px"
style="margin-bottom: 100px"
>
<div class="feedback-container">
<div class="feedback-center">
<div class="feedback-container__header">
<div class="input-box">
<input type="radio" id="web-advice" value="网站建议" v-model="typePicked">
<label for="web-advice">网站建议</label>
</div>
<div class="input-box">
<input type="radio" id="function-advice" value="功能提议" v-model="typePicked">
<label for="function-advice">功能提议</label>
</div>
<div class="input-box">
<input type="radio" id="other" value="其它" v-model="typePicked">
<label for="other">其它</label>
</div>
</div>
<div class="feedback-container__main">
<textarea class="feedback-content" placeholder="我的反馈是..." v-model="feedbackContent"></textarea>
<div class="main-footer">
<input type="text" placeholder="联系方式" maxlength="18" v-model="contact">
<input type="text" placeholder="验证码" maxlength="6" v-model="verification">
<img :src="src" alt="">
</div>
</div>
<div class="feedback-container__submit">
<button>提交</button>
</div>
</div>
</div>
</card-container>
</template>
<script>
import CardContainer from "../../components/pc/cardContainer";
export default {
name: "feedback",
components: {CardContainer},
data() {
return {
typePicked: '',
feedbackContent: '',
contact: '',
verification: '',
src: '//www.baidu.com/img/baidu_resultlogo@2.png'
}
}
}
</script>
<style lang="scss" scoped>
.feedback-container {
.feedback-center {
width: 726*$length;
margin: 38*$length auto;
.feedback-container__header {
@extend %flex-row-spb;
justify-content: flex-start;
.input-box {
margin-right: 40*$length;
input[type="radio"] {
display: none;
}
label {
@include fontStyle(14, 19, 500, #666, left);
vertical-align: middle;
}
input[type="radio"] + label::before {
content: "\a0"; /*不换行空格*/
display: inline-block;
vertical-align: baseline;
width: 16*$length;
height: 16*$length;
line-height: 16*$length;
margin-right: 8*$length;
border-radius: 50%;
border: 1*$length solid #F0F0F0;
background-color: #F4F5F5;
}
input[type="radio"]:checked + label::before {
display: inline-block;
vertical-align: baseline;
width: 10*$length;
height: 10*$length;
line-height: 10*$length;
margin-right: 8*$length;
border: 4*$length solid #75D098;
border-radius: 50%;
}
}
}
.feedback-container__main {
margin-top: 30*$length;
.feedback-content {
@include fontStyle(14,19,500,#666,left);
resize: none;
width: 726*$length;
height: 200*$length;
padding: 18*$length 16*$length;
background-color: #F4F8FA;
@include border-radius(4*$length);
}
.main-footer{
margin-top: 24*$length;
@extend %flex-row-spb;
> input {
padding: 15*$length 16*$length;
background-color: #F4F8FA;
@include border-radius(4*$length);
@include fontStyle(14,18,500,#999,left);
width: 242*$length;
height: 48*$length;
&:first-child {
width: 302*$length;
height: 48*$length;
}
}
> img {
width: 150*$length;
height: 48*$length;
}
}
}
.feedback-container__submit {
margin-top: 40*$length;
text-align: center;
> button {
@include fontStyle(14,19,500,#fff,center);
@include border-radius(4*$length);
@extend %cursorPointer;
display: inline-block;
width: 148*$length;
height: 48*$length;
background-color: #75D098;
border: none;
}
}
}
}
</style>
<template>
<card-container
title="投诉举报"
width="938px"
height="612px"
style="margin-bottom: 100px"
>
<div class="report-container">
<div class="report-center">
<div class="report-container__header">
<div class="input-box">
<input type="radio" id="违法违禁" value="违法违禁" v-model="typePicked">
<label for="违法违禁">违法违禁</label>
</div>
<div class="input-box">
<input type="radio" id="政治敏感" value="政治敏感" v-model="typePicked">
<label for="政治敏感">政治敏感</label>
</div>
<div class="input-box">
<input type="radio" id="色情低俗" value="色情低俗" v-model="typePicked">
<label for="色情低俗">色情低俗</label>
</div>
<div class="input-box">
<input type="radio" id="垃圾广告" value="垃圾广告" v-model="typePicked">
<label for="垃圾广告">垃圾广告</label>
</div>
<div class="input-box">
<input type="radio" id="内容侵权" value="内容侵权" v-model="typePicked">
<label for="内容侵权">内容侵权</label>
</div>
<div class="input-box">
<input type="radio" id="other" value="其它" v-model="typePicked">
<label for="other">其它</label>
</div>
</div>
<div class="report-container__main">
<textarea class="report-header" placeholder="想要举报内容的链接" v-model="reportHeader"></textarea>
<textarea class="report-content" placeholder="请描述举报原因" v-model="reportContent"></textarea>
<div class="main-footer">
<input type="text" placeholder="联系方式" maxlength="18" v-model="contact">
<input type="text" placeholder="验证码" maxlength="6" v-model="verification">
<img :src="src" alt="">
</div>
</div>
<div class="report-container__submit">
<button>确定</button>
</div>
</div>
</div>
</card-container>
</template>
<script>
import CardContainer from "../../components/pc/cardContainer";
export default {
name: "report",
components: {CardContainer},
data() {
return {
typePicked: '',
reportHeader: '',
reportContent: '',
contact: '',
verification: '',
src: '//www.baidu.com/img/baidu_resultlogo@2.png'
}
}
}
</script>
<style lang="scss" scoped>
.report-container {
.report-center {
width: 726*$length;
margin: 38*$length auto;
.report-container__header {
@extend %flex-row-spb;
justify-content: flex-start;
.input-box {
margin-right: 40*$length;
input[type="radio"] {
display: none;
}
label {
@include fontStyle(14, 19, 500, #666, left);
vertical-align: middle;
}
input[type="radio"] + label::before {
content: "\a0"; /*不换行空格*/
display: inline-block;
vertical-align: baseline;
width: 16*$length;
height: 16*$length;
line-height: 16*$length;
margin-right: 8*$length;
border-radius: 50%;
border: 1*$length solid #F0F0F0;
background-color: #F4F5F5;
}
input[type="radio"]:checked + label::before {
display: inline-block;
vertical-align: baseline;
width: 10*$length;
height: 10*$length;
line-height: 10*$length;
margin-right: 8*$length;
border: 4*$length solid #75D098;
border-radius: 50%;
}
}
}
.report-container__main {
margin-top: 30*$length;
.report-header{
@include fontStyle(14,19,500,#666,left);
resize: none;
width: 726*$length;
height: 48*$length;
padding: 14*$length 16*$length;
background-color: #F4F8FA;
@include border-radius(4*$length);
margin-bottom: 24*$length;
}
.report-content {
@include fontStyle(14,19,500,#666,left);
resize: none;
width: 726*$length;
height: 200*$length;
padding: 18*$length 16*$length;
background-color: #F4F8FA;
@include border-radius(4*$length);
}
.main-footer{
margin-top: 24*$length;
@extend %flex-row-spb;
> input {
padding: 15*$length 16*$length;
background-color: #F4F8FA;
@include border-radius(4*$length);
@include fontStyle(14,18,500,#999,left);
width: 242*$length;
height: 48*$length;
&:first-child {
width: 302*$length;
height: 48*$length;
}
}
> img {
width: 150*$length;
height: 48*$length;
}
}
}
.report-container__submit {
margin-top: 40*$length;
text-align: center;
> button {
@include fontStyle(14,19,500,#fff,center);
@include border-radius(4*$length);
@extend %cursorPointer;
display: inline-block;
width: 148*$length;
height: 48*$length;
background-color: #75D098;
border: none;
}
}
}
}
</style>
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