兰代清没头发

This commit is contained in:
Zhang HaoYang 2023-12-24 22:28:00 +08:00
parent 1d23a9eaf0
commit a3479d41b8
2 changed files with 342 additions and 291 deletions

View File

@ -1,23 +1,27 @@
<template> <template>
<div class="wrapper"> <div class="wrapper">
<LeftSide :category="category"></LeftSide> <LeftSide :category="category"></LeftSide>
<div class="DefinedPage" > <div class="DefinedPage">
<div class="LeftPart" style="overflow: auto"> <div class="LeftPart" style="overflow: auto">
<div class="JustBack" style="width:670px;display:flex; flex-direction: row; flex-wrap: nowrap;height:430px !important;"> <div class="JustBack"
style="width:670px;display:flex; flex-direction: row; flex-wrap: nowrap;height:430px !important;">
<div id="ShowPic" style="display: flex;flex-direction: column;flex-wrap: wrap"> <div id="ShowPic" style="display: flex;flex-direction: column;flex-wrap: wrap">
<div class="card" style="width: 180px;height:180px;margin-top:50px;background-color: var( --theme-bg-color)" > <div class="card" style="width: 180px;height:180px;margin-top:50px;background-color: var( --theme-bg-color)"
@click="ToURL()">
<img :src="UrlObj.icon"> <img :src="UrlObj.icon">
</div> </div>
<div id="IconGroup" style="margin-top:60px;display: flex;flex-direction: row;flex-wrap: nowrap;margin-left:-20px"> <div id="IconGroup"
style="margin-top:60px;display: flex;flex-direction: row;flex-wrap: nowrap;margin-left:-20px">
<div class="little-Triangle" style=" margin-left:15px;"> <div class="little-Triangle" style=" margin-left:15px;">
<el-tooltip placement="bottom" width="150" <el-tooltip placement="bottom" width="150"
trigger="hover" trigger="hover"
effect="dark" close-delay="2000"> effect="dark" close-delay="2000">
<div class="MyPopover" slot="content"> <div class="MyPopover" slot="content">
<span style="font-size:12px !important;">91视频网站完整URL</span><br/><br/> <span style="font-size:12px !important;">{{ UrlObj.name }}完整URL</span><br/><br/>
<div style="width:100% ;text-align: center">{{UrlObj.url}}</div> <div style="width:100% ;text-align: center">{{ UrlObj.url }}</div>
</div> </div>
<i class="el-icon-link" id="little-Circle-content" style="font-weight:550;padding:5px;font-size:15px!important;margin-top:5px">完整URL</i> <i class="el-icon-link" id="little-Circle-content"
style="font-weight:550;padding:5px;font-size:15px!important;margin-top:5px">完整URL</i>
</el-tooltip> </el-tooltip>
</div> </div>
<div class="little-Triangle" style=" margin-left:15px;"> <div class="little-Triangle" style=" margin-left:15px;">
@ -25,18 +29,20 @@
trigger="hover" trigger="hover"
effect="dark" close-delay="2000"> effect="dark" close-delay="2000">
<div class="MyPopover" slot="content"> <div class="MyPopover" slot="content">
<span style="font-size:12px !important;">91视频网站手机二维码</span><br/><br/> <span style="font-size:12px !important;">{{ UrlObj.name }}手机二维码</span><br/><br/>
<div style="width:100% ;text-align: center"><img style="width:150px" src="../../assets/img/beauty.jpg" /></div> <div style="width:100% ;text-align: center"><img style="width:150px"
:src="getQR(UrlId,UrlObj.icon)"></div>
</div> </div>
<i class="el-icon-picture" id="little-Circle-content" style="font-weight:550; padding:5px;font-size:15px!important;margin-top:5px">手机查看</i> <i class="el-icon-picture" id="little-Circle-content"
style="font-weight:550; padding:5px;font-size:15px!important;margin-top:5px">手机查看</i>
</el-tooltip> </el-tooltip>
</div> </div>
</div> </div>
</div> </div>
<div class="NavInfo" style="margin-top:45px;margin-left:50px;width:220px;"> <div class="NavInfo" style="margin-top:45px;margin-left:50px;width:220px;">
<span style="font-size:30px;font-family: STHupo">{{UrlObj.name}}</span><br/> <span style="font-size:30px;font-family: STHupo">{{ UrlObj.name }}</span><br/>
<div class="NavInfo" > <div class="NavInfo">
<span style="width:200px">创建时间{{Cdate}}</span><br/> <span style="width:200px">创建时间{{ Cdate }}</span><br/>
<span style="width:200px">创建用户{{}}</span><br/> <span style="width:200px">创建用户{{}}</span><br/>
<span style="width:200px">所属标签小视频</span><br/> <span style="width:200px">所属标签小视频</span><br/>
<div style="display: flex;flex-direction: row"> <div style="display: flex;flex-direction: row">
@ -46,7 +52,7 @@
effect="dark" close-delay="2000"> effect="dark" close-delay="2000">
<div class="MyPopover" slot="content"> <div class="MyPopover" slot="content">
<span style="font-size:12px !important;">91视频网站总浏览量</span><br/><br/> <span style="font-size:12px !important;">91视频网站总浏览量</span><br/><br/>
<div style="width:100% ;text-align: center">{{UrlObj.views}} </div> <div style="width:100% ;text-align: center">{{ UrlObj.views }} </div>
</div> </div>
<i class="el-icon-s-custom" id="little-Circle-content" style=" padding:5px;"></i> <i class="el-icon-s-custom" id="little-Circle-content" style=" padding:5px;"></i>
</el-tooltip> </el-tooltip>
@ -70,7 +76,7 @@
<el-tooltip placement="top" width="150" <el-tooltip placement="top" width="150"
trigger="hover" trigger="hover"
effect="dark" close-delay="2000"> effect="dark" close-delay="2000">
<div class="MyPopover" slot="content" > <div class="MyPopover" slot="content">
<span style="font-size:12px !important;">向管理员反馈问题</span><br/><br/> <span style="font-size:12px !important;">向管理员反馈问题</span><br/><br/>
</div> </div>
<i class="el-icon-warning" id="little-Circle-content" style=" padding:5px; "></i> <i class="el-icon-warning" id="little-Circle-content" style=" padding:5px; "></i>
@ -89,7 +95,7 @@
<div class="TitleFont"><i class="el-icon-s-promotion"></i>网站介绍</div> <div class="TitleFont"><i class="el-icon-s-promotion"></i>网站介绍</div>
</div> </div>
<div class="ArticleContent"> <div class="ArticleContent">
{{UrlObj.desc}} {{ UrlObj.desc }}
</div> </div>
</div> </div>
<!--导航评论--> <!--导航评论-->
@ -102,7 +108,7 @@
<div class="TitleFont"><i class="el-icon-s-marketing"></i>热度趋势</div> <div class="TitleFont"><i class="el-icon-s-marketing"></i>热度趋势</div>
</div> </div>
<div class="ArticleContent"> <div class="ArticleContent">
<div ref="ManuEchart" style="width:550px;height:300px;"></div> <div id="ManuEchart" style="width:550px;height:300px;"></div>
</div> </div>
</div> </div>
</div> </div>
@ -142,58 +148,64 @@ import Vue from "vue";
import * as echarts from 'echarts' import * as echarts from 'echarts'
import axios from "axios"; import axios from "axios";
import LeftSide from "@/components/home/LeftSide.vue"; import LeftSide from "@/components/home/LeftSide.vue";
Vue.prototype.$echarts = echarts; Vue.prototype.$echarts = echarts;
export default { export default {
name:"NavDetail", name: "NavDetail",
// eslint-disable-next-line vue/no-unused-components // eslint-disable-next-line vue/no-unused-components
components: {LeftSide, HotRecomment,NewRecomment,RandomRecomment,UserComment}, components: {LeftSide, HotRecomment, NewRecomment, RandomRecomment, UserComment},
data() { data() {
return { return {
category:[], category: [],
visible: false, visible: false,
// //
TimeList:[], TimeList: [],
// //
PageView:[], PageView: [],
//Echart //Echart
ManuChart:null, ManuChart: null,
// Echart
MyOption:{},
// urlId: // urlId:
UrlId :null, UrlId: null,
// //
UrlObj:Object, UrlObj: Object,
// //
UnDate:null, UnDate: null,
Cdate:null, Cdate: null,
}}, //
viewByTime: null,
//
//
xTime: [],
// y
YView: [],
imageCode: null,
}
},
mounted() { mounted() {
this.initPage(); this.initPage();
this.GetNav(this.UrlId); this.getQR(this.UrlId, this.UrlObj.icon);
this.initEchart();
this.getCategories();
}, },
created() { created() {
}, },
computed: { computed: {},
},
methods: { methods: {
getCategories() { // 访
ViewByTime(id) {
let _this = this; let _this = this;
axios({ axios.get('/api/getUrlAccess', {
method: 'post', params: {
url: '/api/UrlAndCate/disposeBookmarkExhibitedToJson', urlId: id
}).then(function (res) {
// console.log(res);
if (res.data.data) {
_this.category = res.data.data;
} else {
return false;
} }
}).then(function (res) {
_this.viewByTime = res.data;
// console.log(_this.viewByTime)
Object.keys(_this.viewByTime).forEach(key => {
_this.xTime.push(_this.viewByTime[key].time);
_this.YView.push(_this.viewByTime[key].views);
})
_this.initEchart(_this.xTime,_this.YView);
}).catch((error) => { }).catch((error) => {
Vue.prototype.$notify.error({ Vue.prototype.$notify.error({
title: '错误', title: '错误',
@ -202,7 +214,36 @@ export default {
}); });
}) })
}, },
//
getQR(url_id, icon_url) {
let _this = this;
axios({
method: 'post',
url: '/api/qrcode/qrc_return',
data: {
url_id: url_id,
icon_url: icon_url
}
}).then(function (res) {
if (res.data) {
_this.imageCode = "data:image/jpg;base64," + res.data;
}
return false;
}).catch((error) => {
Vue.prototype.$notify.error({
title: '错误',
message: error === null ? '' : error,
offset: 0
});
})
return this.imageCode
},
//
ToURL() {
var that = this;
window.open(that.UrlObj.url, '_blank')
},
// //
getFormatDate() { getFormatDate() {
var that = this; var that = this;
@ -214,25 +255,42 @@ export default {
// var h = date.getHours() + ':'; // var h = date.getHours() + ':';
// var m = date.getMinutes() + ':'; // var m = date.getMinutes() + ':';
// var s = date.getSeconds(); // var s = date.getSeconds();
that.Cdate = "" + Y + M + D ; that.Cdate = "" + Y + M + D;
}, },
// //
initPage(){ initPage() {
this.UrlId = this.$route.query.uid; this.UrlId = this.$route.query.uid;
this.GetNav(this.UrlId);
// this.initEchart();
}, },
// Echart // Echart
initEchart(){ initEchart(xline,yline) {
var that = this; // var that = this;
this.ManuChart = this.$echarts.init(this.$refs.ManuEchart); var myChart = this.$echarts.init(
that.MyOption={ document.getElementById('ManuEchart')
);
var MyOption = {
tooltip: { tooltip: {
trigger: 'item', trigger: 'item',
axisPointer: { axisPointer: {
type: 'shadow' type: 'shadow'
}, },
dataZoom: [{
type: 'slider', //
show: true, // dataZoom
start: 0, // 0
end: 30, // 100
handleSize: 8, //
handleStyle: {
color: '#DCE2E8' //
},
xAxisIndex: [0], // x
filterMode: 'filter' // filter
}]
,
backgroundColor: '#fff', // backgroundColor: '#fff', //
borderColor: '#000', // borderColor: '#000', //
borderWidth: 1, // borderWidth: 1, //
@ -243,8 +301,8 @@ export default {
}, },
xAxis: { xAxis: {
type: 'category', type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], data: xline,
axisLine:{ axisLine: {
show: true, show: true,
lineStyle: { lineStyle: {
color: '#76aaff', color: '#76aaff',
@ -255,12 +313,12 @@ export default {
}, },
yAxis: { yAxis: {
type: 'value', type: 'value',
splitLine:{ splitLine: {
lineStyle:{ lineStyle: {
color:'#76aaff', color: '#76aaff',
} }
}, },
axisLine:{ axisLine: {
show: true, show: true,
lineStyle: { lineStyle: {
color: '#76aaff', color: '#76aaff',
@ -278,64 +336,61 @@ export default {
}, },
series: [ series: [
{ {
data: [150, 230, 224, 218, 135, 147, 260], data: yline,
type: 'line', type: 'line',
label: {// label: {//
show: true, // show: true, //
} }
}, },
{ {
data: [150, 230, 224, 218, 135, 147, 260], data: yline,
type: 'bar' type: 'bar'
}, },
], ],
dataZoom: { dataZoom: {
yAxisIndex: [0], yAxisIndex: [0],
type:'inside', type: 'inside',
start: 0, start: 0,
end: 100, end: 100,
zoomLock:true, zoomLock: true,
} }
} }
that.ManuChart.setOption(that.MyOption,true); myChart.setOption(MyOption, true);
}, },
// //
GetNav(id){ GetNav(id) {
let that = this; let that = this;
axios({ axios({
method: 'post', method: 'post',
url: '/api/UrlAndCate/clickUrl', url: '/api/UrlAndCate/clickUrl',
params: { params: {
urlId : id urlId: id
} }
}).then((res)=>{ }).then((res) => {
that.UrlObj = res.data.data; that.UrlObj = res.data.data;
that.UnDate = that.UrlObj.createtime; that.UnDate = that.UrlObj.createtime;
}).catch((error)=>{ }).catch((error) => {
Vue.prototype.$notify.error({ Vue.prototype.$notify.error({
title: '错误', title: '错误',
message: error===null?'':error, message: error === null ? '' : error,
offset: 0 offset: 0
}); });
}); });
this.getFormatDate(); this.getFormatDate();
}, },
// //
WarnToAdmin(){ WarnToAdmin() {
console.log(this.UrlId); console.log(this.xTime);
console.log(this.UrlObj);
console.log(this.UrlObj.createtime + typeof (this.UrlObj.createtime));
console.log(this.Cdate);
} }
} }
} }
</script> </script>
<style lang="css"> <style lang="css">
.DefinedPage{ .DefinedPage {
display:flex; display: flex;
flex-direction: row; flex-direction: row;
width:100%; width: 100%;
overflow: auto; overflow: auto;
} }
</style> </style>
@ -343,30 +398,26 @@ export default {
<style scoped> <style scoped>
/**标签详情**/ /**标签详情**/
.ArticleContent{ .ArticleContent {
width:80%; width: 80%;
margin-left:50px; margin-left: 50px;
margin-top:15px; margin-top: 15px;
font-weight:550; font-weight: 550;
font-size:18px; font-size: 18px;
color: var(--theme-color); color: var(--theme-color);
} }
/**趋势图**/ /**趋势图**/
.LookNumEchart{ .LookNumEchart {
width:80%; width: 80%;
margin-left:60px; margin-left: 60px;
margin-top:15px; margin-top: 15px;
font-weight:550; font-weight: 550;
font-size:18px; font-size: 18px;
color: var(--theme-color); color: var(--theme-color);
} }
@property --rotate { @property --rotate {
syntax: "<angle>"; syntax: "<angle>";
initial-value: 132deg; initial-value: 132deg;
@ -413,6 +464,7 @@ body {
color: rgb(88 199 250 / 100%); color: rgb(88 199 250 / 100%);
transition: color 1s; transition: color 1s;
} }
.card:hover:before, .card:hover:after { .card:hover:before, .card:hover:after {
animation: none; animation: none;
opacity: 0; opacity: 0;
@ -425,8 +477,7 @@ body {
height: 108%; height: 108%;
border-radius: 8px; border-radius: 8px;
background-image: linear-gradient( background-image: linear-gradient(
var(--rotate) var(--rotate), #5ddcff, #3c67e3 43%, #4e00c2);
, #5ddcff, #3c67e3 43%, #4e00c2);
position: absolute; position: absolute;
z-index: -1; z-index: -1;
//top: -1%; //top: -1%;
@ -447,8 +498,7 @@ body {
transform: scale(0.8); transform: scale(0.8);
filter: blur(calc(var(--card-height) / 6)); filter: blur(calc(var(--card-height) / 6));
background-image: linear-gradient( background-image: linear-gradient(
var(--rotate) var(--rotate), #5ddcff, #3c67e3 43%, #4e00c2);
, #5ddcff, #3c67e3 43%, #4e00c2);
opacity: 1; opacity: 1;
transition: opacity .5s; transition: opacity .5s;
animation: spin 2.5s linear infinite; animation: spin 2.5s linear infinite;

View File

@ -98,6 +98,7 @@ export default {
}).then(function (res) { }).then(function (res) {
if (res.data) { if (res.data) {
_this.navList = res.data; _this.navList = res.data;
console.log(res.data);
} }
}).catch((error) => { }).catch((error) => {
Vue.prototype.$notify.error({ Vue.prototype.$notify.error({