准备本地数据
This commit is contained in:
parent
016cafaa17
commit
e66a84e980
File diff suppressed because it is too large
Load Diff
@ -2,7 +2,7 @@ import * as Vue from 'vue'
|
|||||||
import App from './App.vue'
|
import App from './App.vue'
|
||||||
import mitt from 'mitt'
|
import mitt from 'mitt'
|
||||||
import './assets/scss/index.less'
|
import './assets/scss/index.less'
|
||||||
// import './mock'// 导入 mock 数据处理
|
import './mock'// 导入 mock 数据处理
|
||||||
import api from './api'
|
import api from './api'
|
||||||
import router from "./router";
|
import router from "./router";
|
||||||
import store from "./store";
|
import store from "./store";
|
||||||
|
|||||||
@ -2,6 +2,20 @@ import Mock from 'mockjs'
|
|||||||
import globalMethods from '../utils/global-methods'
|
import globalMethods from '../utils/global-methods'
|
||||||
import resource from "../assets/data/resource.js";
|
import resource from "../assets/data/resource.js";
|
||||||
|
|
||||||
|
function getParams(options) {
|
||||||
|
let params = globalMethods.$parseURL(options.url).params
|
||||||
|
params.pageNo = ~~params.pageNo
|
||||||
|
params.pageSize = ~~params.pageSize
|
||||||
|
return params
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPage(options) {
|
||||||
|
let params = getParams(options)
|
||||||
|
let offset = params.pageNo * params.pageSize
|
||||||
|
let limit = params.pageNo * params.pageSize + params.pageSize
|
||||||
|
return {limit, offset, pageNo: params.pageNo}
|
||||||
|
}
|
||||||
|
|
||||||
Mock.setup({
|
Mock.setup({
|
||||||
timeout: '500-1000'
|
timeout: '500-1000'
|
||||||
})
|
})
|
||||||
@ -10,17 +24,12 @@ let allRecommendVideos = []
|
|||||||
for (let i = 0; i < 10; i++) {
|
for (let i = 0; i < 10; i++) {
|
||||||
allRecommendVideos = allRecommendVideos.concat(resource.videos)
|
allRecommendVideos = allRecommendVideos.concat(resource.videos)
|
||||||
}
|
}
|
||||||
|
|
||||||
Mock.mock(/recommended/, options => {
|
Mock.mock(/recommended/, options => {
|
||||||
let params = globalMethods.$parseURL(options.url).params
|
let page = getPage(options)
|
||||||
params.pageNo = ~~params.pageNo
|
|
||||||
params.pageSize = ~~params.pageSize
|
|
||||||
let offset = params.pageNo * params.pageSize
|
|
||||||
let limit = params.pageNo * params.pageSize + params.pageSize
|
|
||||||
return Mock.mock({
|
return Mock.mock({
|
||||||
data: {
|
data: {
|
||||||
total: allRecommendVideos.length,
|
total: allRecommendVideos.length,
|
||||||
list: allRecommendVideos.slice(offset, limit),
|
list: allRecommendVideos.slice(page.offset, page.limit),
|
||||||
}, code: 200, msg: '',
|
}, code: 200, msg: '',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -69,41 +78,52 @@ Mock.Random.extend({
|
|||||||
Mock.mock('me', data)
|
Mock.mock('me', data)
|
||||||
}())
|
}())
|
||||||
|
|
||||||
|
|
||||||
Mock.mock(/my/, options => {
|
Mock.mock(/my/, options => {
|
||||||
let params = globalMethods.$parseURL(options.url).params
|
let page = getPage(options)
|
||||||
params.pageNo = ~~params.pageNo
|
|
||||||
params.pageSize = ~~params.pageSize
|
|
||||||
let offset = params.pageNo * params.pageSize
|
|
||||||
let limit = params.pageNo * params.pageSize + params.pageSize
|
|
||||||
return Mock.mock({
|
return Mock.mock({
|
||||||
data: {
|
data: {
|
||||||
pageNo: params.pageNo,
|
pageNo: page.pageNo,
|
||||||
total: resource.my.length,
|
total: resource.my.length,
|
||||||
list: resource.my.slice(offset, limit),
|
list: resource.my.slice(page.offset, page.limit),
|
||||||
|
}, code: 200, msg: '',
|
||||||
|
})
|
||||||
|
})
|
||||||
|
Mock.mock(/like/, options => {
|
||||||
|
let page = getPage(options)
|
||||||
|
return Mock.mock({
|
||||||
|
data: {
|
||||||
|
pageNo: page.pageNo,
|
||||||
|
total: resource.my.length,
|
||||||
|
list: resource.like.slice(page.offset, page.limit),
|
||||||
|
}, code: 200, msg: '',
|
||||||
|
})
|
||||||
|
})
|
||||||
|
Mock.mock(/private1/, options => {
|
||||||
|
let page = getPage(options)
|
||||||
|
return Mock.mock({
|
||||||
|
data: {
|
||||||
|
pageNo: page.pageNo,
|
||||||
|
total: resource.my.length,
|
||||||
|
list: resource.private1.slice(page.offset, page.limit),
|
||||||
}, code: 200, msg: '',
|
}, code: 200, msg: '',
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Mock.mock(/collect/, options => {
|
||||||
|
let page = getPage(options)
|
||||||
|
return Mock.mock({
|
||||||
|
data: {
|
||||||
|
pageNo: page.pageNo,
|
||||||
|
video: {
|
||||||
|
total: 0,
|
||||||
|
list: [],
|
||||||
|
},
|
||||||
|
audio: {
|
||||||
|
total: 0,
|
||||||
|
list: [],
|
||||||
|
}
|
||||||
|
}, code: 200, msg: '',
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
!(function private1() {
|
|
||||||
// let data = {total: Mock.Random.natural(1, 20)}
|
|
||||||
// data[`list|${data.total > pageSize ? pageSize : data.total}`] = [{'like|10000-990000': 1000000, src: '@imgs'}]
|
|
||||||
let data = {total: 4}
|
|
||||||
data[`list|${data.total}`] = [{'like|10000-990000': 1000000, src: '@imgs'}]
|
|
||||||
Mock.mock(/private/, Mock.mock({data, code: 200, msg: '',}))
|
|
||||||
}())
|
|
||||||
|
|
||||||
!(function like() {
|
|
||||||
// let data = {total: Mock.Random.natural(1, 20)}
|
|
||||||
// data[`list|${data.total > pageSize ? pageSize : data.total}`] = [{'like|10000-990000': 1000000, src: '@imgs'}]
|
|
||||||
let data = {total: 11}
|
|
||||||
data[`list|${data.total}`] = [{'like|10000-990000': 1000000, src: '@imgs'}]
|
|
||||||
Mock.mock(/like/, Mock.mock({data, code: 200, msg: '',}))
|
|
||||||
}())
|
|
||||||
!(function collect() {
|
|
||||||
// let data = {total: Mock.Random.natural(1, 20)}
|
|
||||||
// data[`list|${data.total > pageSize ? pageSize : data.total}`] = [{'like|10000-990000': 1000000, src: '@imgs'}]
|
|
||||||
let data = {total: 5}
|
|
||||||
data[`list|${data.total}`] = [{'like|10000-990000': 1000000, src: '@imgs'}]
|
|
||||||
Mock.mock(/collect/, Mock.mock({data, code: 200, msg: '',}))
|
|
||||||
}())
|
|
||||||
|
|||||||
@ -316,7 +316,7 @@
|
|||||||
|
|
||||||
.number {
|
.number {
|
||||||
color: @second-text-color;
|
color: @second-text-color;
|
||||||
padding-bottom: 2rem;
|
padding-bottom: 1rem;
|
||||||
border-bottom: 1px solid @line-color;
|
border-bottom: 1px solid @line-color;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@ -339,6 +339,10 @@
|
|||||||
height: 1.2rem;
|
height: 1.2rem;
|
||||||
margin-left: .6rem;
|
margin-left: .6rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.text{
|
||||||
|
white-space: pre-wrap;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.more {
|
.more {
|
||||||
|
|||||||
@ -37,22 +37,22 @@
|
|||||||
<span>获赞</span>
|
<span>获赞</span>
|
||||||
<span class="num">18</span>
|
<span class="num">18</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="text">
|
|
||||||
<span>粉丝</span>
|
|
||||||
<span class="num">62</span>
|
|
||||||
</div>
|
|
||||||
<div class="text">
|
<div class="text">
|
||||||
<span>关注</span>
|
<span>关注</span>
|
||||||
<span class="num">8</span>
|
<span class="num">8</span>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="text">
|
||||||
|
<span>粉丝</span>
|
||||||
|
<span class="num">62</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="description">
|
<div class="description">
|
||||||
<p class="name f22 mt1r mb1r">ttentau</p>
|
<p class="name f22 mt1r mb1r">{{ userinfo.nickname }}</p>
|
||||||
<div class="number mb1r">
|
<div class="number mb1r">
|
||||||
<span class="mr1r">私密账号</span>
|
<span class="mr1r" v-if="userinfo.is_private">私密账号</span>
|
||||||
<span>抖音号:605128307</span>
|
<span>抖音号:{{ userinfo.unique_id }}</span>
|
||||||
<img src="../../assets/img/icon/me/qrcode-gray.png" alt="" @click.stop="$nav('/my-card')">
|
<img src="../../assets/img/icon/me/qrcode-gray.png" alt="" @click.stop="$nav('/my-card')">
|
||||||
</div>
|
</div>
|
||||||
<div class="signature f12" @click="$nav('/edit-userinfo-item',{type:3})">
|
<div class="signature f12" @click="$nav('/edit-userinfo-item',{type:3})">
|
||||||
@ -60,16 +60,20 @@
|
|||||||
<span>点击添加介绍,让大家认识你...</span>
|
<span>点击添加介绍,让大家认识你...</span>
|
||||||
<img src="../../assets/img/icon/me/write-gray.png" alt="">
|
<img src="../../assets/img/icon/me/write-gray.png" alt="">
|
||||||
</template>
|
</template>
|
||||||
<span v-else class="text">{{ userinfo.desc }}</span>
|
<div v-else class="text" v-html="userinfo.desc"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="more">
|
<div class="more">
|
||||||
<div class="age item" v-if="userinfo.birthday">
|
<div class="age item" v-if="userinfo.birthday">
|
||||||
<img v-if="userinfo.sex === '女'" src="../../assets/img/icon/me/woman.png" alt="">
|
<img v-if="userinfo.sex == 0" src="../../assets/img/icon/me/woman.png" alt="">
|
||||||
<img v-if="userinfo.sex === '男'" src="../../assets/img/icon/me/man.png" alt="">
|
<img v-if="userinfo.sex == 1" src="../../assets/img/icon/me/man.png" alt="">
|
||||||
<span>{{ filterAge(userinfo.birthday) }}岁</span>
|
<span>{{ filterAge(userinfo.birthday) }}岁</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="item" v-if="userinfo.location">
|
<div class="item" v-if="userinfo.province || userinfo.city">
|
||||||
{{ userinfo.location }}
|
{{ userinfo.province }}
|
||||||
|
<template v-if="userinfo.province && userinfo.city">
|
||||||
|
-
|
||||||
|
</template>
|
||||||
|
{{ userinfo.city }}
|
||||||
</div>
|
</div>
|
||||||
<div class="item" v-if="userinfo.school.name">
|
<div class="item" v-if="userinfo.school.name">
|
||||||
{{ userinfo.school.name }}
|
{{ userinfo.school.name }}
|
||||||
@ -389,7 +393,34 @@ export default {
|
|||||||
tempScroll: false,
|
tempScroll: false,
|
||||||
acceleration: 1.2,
|
acceleration: 1.2,
|
||||||
sprint: 15,
|
sprint: 15,
|
||||||
canScroll: true
|
canScroll: true,
|
||||||
|
localAuthor: {
|
||||||
|
"id": "93864497380",
|
||||||
|
"unique_id_modify_time": "1630393144",
|
||||||
|
"unique_id": "10040050",
|
||||||
|
"favoriting_count": 143,
|
||||||
|
"avatar": require('../../assets/img/icon/avatar/1.png'),
|
||||||
|
"city": "北京",
|
||||||
|
"school": "中央戏剧学院",
|
||||||
|
"province": null,
|
||||||
|
"country": "",
|
||||||
|
"location": "",
|
||||||
|
"birthday": "2002-01-01",
|
||||||
|
"cover": "https://p3.douyinpic.com/obj/c8510002be9a3a61aad2?from=116350172",
|
||||||
|
"following_count": 66,
|
||||||
|
"follower_count": 235000,
|
||||||
|
"aweme_count": 1796000,
|
||||||
|
"nickname": "我是小睿耶",
|
||||||
|
"phone": "",
|
||||||
|
"sex": "",
|
||||||
|
"last_login_time": "1630423555",
|
||||||
|
"create_time": "1630423555",
|
||||||
|
"status": 1,
|
||||||
|
"desc": `一个普普通通学表演的
|
||||||
|
看到的人都能开开心心
|
||||||
|
`,
|
||||||
|
"is_private": 0
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
|||||||
@ -349,9 +349,9 @@
|
|||||||
color: white;
|
color: white;
|
||||||
transform: translateY(-2rem);
|
transform: translateY(-2rem);
|
||||||
|
|
||||||
.number {
|
.number, .certification {
|
||||||
color: @second-text-color;
|
margin-bottom: 1rem;
|
||||||
padding-bottom: 2rem;
|
padding-bottom: 1rem;
|
||||||
border-bottom: 1px solid @line-color;
|
border-bottom: 1px solid @line-color;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@ -362,6 +362,20 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.number {
|
||||||
|
color: @second-text-color;
|
||||||
|
|
||||||
|
img {
|
||||||
|
margin-left: .5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.certification {
|
||||||
|
img {
|
||||||
|
width: 1.6rem;
|
||||||
|
margin-right: .5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.signature {
|
.signature {
|
||||||
@ -374,6 +388,10 @@
|
|||||||
height: 1.2rem;
|
height: 1.2rem;
|
||||||
margin-left: .6rem;
|
margin-left: .6rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.text {
|
||||||
|
white-space: pre-wrap;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.more {
|
.more {
|
||||||
|
|||||||
@ -41,26 +41,30 @@
|
|||||||
<div class="heat">
|
<div class="heat">
|
||||||
<div class="text">
|
<div class="text">
|
||||||
<span>获赞</span>
|
<span>获赞</span>
|
||||||
<span class="num">{{ localAuthor.favoriting_count }}</span>
|
<span class="num">{{ $likeNum(localAuthor.aweme_count) }}</span>
|
||||||
</div>
|
|
||||||
<div class="text">
|
|
||||||
<span>粉丝</span>
|
|
||||||
<span class="num">{{ localAuthor.follower_count }}</span>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="text">
|
<div class="text">
|
||||||
<span>关注</span>
|
<span>关注</span>
|
||||||
<span class="num">{{ localAuthor.following_count }}</span>
|
<span class="num">{{ localAuthor.following_count }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="text">
|
||||||
|
<span>粉丝</span>
|
||||||
|
<span class="num">{{ $likeNum(localAuthor.follower_count) }}</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="description">
|
<div class="description">
|
||||||
<p class="name f22 mt1r mb1r">{{ localAuthor.nickname }}</p>
|
<p class="name f22 mt1r mb1r">{{ localAuthor.nickname }}</p>
|
||||||
<div class="number mb1r">
|
<div class="certification" v-if="localAuthor.certification ">
|
||||||
|
<img src="../../assets/img/icon/me/certification.webp">
|
||||||
|
{{ localAuthor.certification }}
|
||||||
|
</div>
|
||||||
|
<div class="number" v-else>
|
||||||
<span>抖音号:{{ localAuthor.unique_id }}</span>
|
<span>抖音号:{{ localAuthor.unique_id }}</span>
|
||||||
<img src="../../assets/img/icon/me/qrcode-gray.png" alt="" @click.stop="$nav('/my-card')">
|
<img src="../../assets/img/icon/me/qrcode-gray.png" alt="" @click.stop="$nav('/my-card')">
|
||||||
</div>
|
</div>
|
||||||
<div class="signature f12" v-if="localAuthor.desc">
|
<div class="signature f12" v-if="localAuthor.desc">
|
||||||
<span class="text">{{ localAuthor.desc }}</span>
|
<div class="text" v-html="localAuthor.desc"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="more">
|
<div class="more">
|
||||||
<div class="age item" v-if="localAuthor.birthday">
|
<div class="age item" v-if="localAuthor.birthday">
|
||||||
@ -68,8 +72,12 @@
|
|||||||
<img v-if="localAuthor.sex === '1'" src="../../assets/img/icon/me/man.png" alt="">
|
<img v-if="localAuthor.sex === '1'" src="../../assets/img/icon/me/man.png" alt="">
|
||||||
<span>{{ filterAge(localAuthor.birthday) }}岁</span>
|
<span>{{ filterAge(localAuthor.birthday) }}岁</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="item" v-if="localAuthor.location">
|
<div class="item" v-if="localAuthor.province || localAuthor.city">
|
||||||
{{ localAuthor.location }}
|
{{ localAuthor.province }}
|
||||||
|
<template v-if="localAuthor.province && localAuthor.city">
|
||||||
|
-
|
||||||
|
</template>
|
||||||
|
{{ localAuthor.city }}
|
||||||
</div>
|
</div>
|
||||||
<div class="item" v-if="localAuthor.school?.name">
|
<div class="item" v-if="localAuthor.school?.name">
|
||||||
{{ localAuthor.school?.name }}
|
{{ localAuthor.school?.name }}
|
||||||
@ -362,7 +370,7 @@ export default {
|
|||||||
},
|
},
|
||||||
isOnThisPage(newVal) {
|
isOnThisPage(newVal) {
|
||||||
if (newVal) {
|
if (newVal) {
|
||||||
this.getAuthor()
|
// this.getAuthor()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -374,7 +382,7 @@ export default {
|
|||||||
this.refs.maxSlideHeight = this.$refs.videoSlideRowList.wrapperHeight
|
this.refs.maxSlideHeight = this.$refs.videoSlideRowList.wrapperHeight
|
||||||
this.initSlideHeight = this.bodyHeight - 50 - this.refs.descHeight
|
this.initSlideHeight = this.bodyHeight - 50 - this.refs.descHeight
|
||||||
this.canTransformY = this.refs.descHeight - this.floatHeight
|
this.canTransformY = this.refs.descHeight - this.floatHeight
|
||||||
this.getAuthor()
|
// this.getAuthor()
|
||||||
})
|
})
|
||||||
this.videoItemHeight = this.bodyWidth / 3 * 1.2 + 2
|
this.videoItemHeight = this.bodyWidth / 3 * 1.2 + 2
|
||||||
bus.on('baseSlide-moved', () => this.canScroll = false)
|
bus.on('baseSlide-moved', () => this.canScroll = false)
|
||||||
|
|||||||
@ -11,20 +11,34 @@ const store = Vuex.createStore({
|
|||||||
maskDialogMode: 'dark',
|
maskDialogMode: 'dark',
|
||||||
version: '17.1.0',
|
version: '17.1.0',
|
||||||
userinfo: {
|
userinfo: {
|
||||||
id: 1,
|
|
||||||
name: '',
|
|
||||||
account: '',
|
|
||||||
desc: '',
|
|
||||||
sex: '男',
|
|
||||||
birthday: '1992-03-09',
|
|
||||||
location: "中国-四川-成都",
|
|
||||||
school: {
|
school: {
|
||||||
name: '西南交通大学',
|
name: '中央戏剧学院',
|
||||||
department: null,
|
department: null,
|
||||||
joinTime: null,
|
joinTime: null,
|
||||||
education: null,
|
education: null,
|
||||||
displayType: enums.DISPLAY_TYPE.ALL,
|
displayType: enums.DISPLAY_TYPE.ALL,
|
||||||
}
|
},
|
||||||
|
"id": "93864497380",
|
||||||
|
"unique_id_modify_time": "1630393144",
|
||||||
|
"unique_id": "10040050",
|
||||||
|
"favoriting_count": 143,
|
||||||
|
"avatar": require('../assets/img/icon/avatar/1.png'),
|
||||||
|
"city": "成都",
|
||||||
|
"province": '四川',
|
||||||
|
"country": "中国",
|
||||||
|
"birthday": "2002-01-01",
|
||||||
|
"cover": "https://p3.douyinpic.com/obj/c8510002be9a3a61aad2?from=116350172",
|
||||||
|
"following_count": 66,
|
||||||
|
"follower_count": 235000,
|
||||||
|
"aweme_count": 1796000,
|
||||||
|
"nickname": "我是小睿耶",
|
||||||
|
"phone": "",
|
||||||
|
"sex": "",
|
||||||
|
"last_login_time": "1630423555",
|
||||||
|
"create_time": "1630423555",
|
||||||
|
"status": 1,
|
||||||
|
"desc": `一个普普通通学表演的\n看到的人都能开开心心`,
|
||||||
|
"is_private": 0
|
||||||
},
|
},
|
||||||
friends: {
|
friends: {
|
||||||
"all": [
|
"all": [
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user