提交 93efece7 authored 作者: 龙菲's avatar 龙菲

feat:修改布展详情页布局、接入虚拟展厅接口、接入个人信息

上级 2c8a1f11
import request from '@/utils/request'
export function getVirtualList(data) {
return request({
url: '/bizVirtual/listByPage',
method: 'post',
data
})
}
export function getVirtualListById(data) {
return request({
url: '/bizVirtual/listById',
method: 'delete',
data
})
}
...@@ -41,7 +41,6 @@ export default { ...@@ -41,7 +41,6 @@ export default {
inheritAttrs:false, inheritAttrs:false,
methods: { methods: {
handleOpen(key, keyPath) { handleOpen(key, keyPath) {
debugger
}, },
handleClose(key, keyPath) { handleClose(key, keyPath) {
......
...@@ -141,9 +141,10 @@ a { ...@@ -141,9 +141,10 @@ a {
.tabs { .tabs {
display: flex; display: flex;
margin-right: 100px; margin-right: 100px;
min-width: 512px;
.tab-item { .tab-item {
margin-right: 40px; margin-right: 40px;
min-width: 64px; // min-width: 64px;
// color: #fff; // color: #fff;
} }
.router-link-exact-active { .router-link-exact-active {
......
...@@ -14,8 +14,11 @@ ...@@ -14,8 +14,11 @@
v-model="searchValue" v-model="searchValue"
placeholder="请输入关键词" placeholder="请输入关键词"
class="center" class="center"
@keyup.enter.native="search"
></el-input> ></el-input>
<el-button style="width:300px" round type="primary">检索</el-button> <el-button style="width: 300px" round type="primary" @click.native="search"
>检索</el-button
>
</div> </div>
</template> </template>
...@@ -37,18 +40,21 @@ export default { ...@@ -37,18 +40,21 @@ export default {
}, },
}, },
data() { data() {
return {}; return {
}, searchValue: "",
computed: { };
select() {
return this.selectValue;
}, },
searchValue() { watch: {
return this.keyword; keyword(value) {
this.searchValue = value;
}, },
}, },
mounted() {}, mounted() {},
methods: {}, methods: {
search() {
this.$emit("search", this.searchValue);
},
},
}; };
</script> </script>
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
clearable clearable
><i slot="suffix" class="el-input__icon el-icon-search"></i ><i slot="suffix" class="el-input__icon el-icon-search"></i
></el-input> --> ></el-input> -->
<SearchBar @search="search" /> <SearchBar @search="search" :keyword="keyword"/>
<el-checkbox v-model="show3d">只看3D</el-checkbox> <el-checkbox v-model="show3d">只看3D</el-checkbox>
</div> </div>
<div class="display-group"> <div class="display-group">
...@@ -123,11 +123,11 @@ export default { ...@@ -123,11 +123,11 @@ export default {
} }
}, },
async search() { async search(keyword) {
var params = { var params = {
page: this.list.current, page: this.list.current,
limit: this.list.size, limit: this.list.size,
name: this.keyword, name: keyword,
}; };
console.log("params", params); console.log("params", params);
let res = await getCulturalRelicList(params); let res = await getCulturalRelicList(params);
......
<template> <template>
<div class="display"> <div class="display">
<!-- <NavBar /> --> <!-- <NavBar /> -->
<div class="main"> <div class="main">
<div class="content"> <div class="content">
<el-row :gutter="20"> <el-row :gutter="20">
...@@ -13,7 +14,7 @@ ...@@ -13,7 +14,7 @@
clearable clearable
><i slot="suffix" class="el-input__icon el-icon-search"></i ><i slot="suffix" class="el-input__icon el-icon-search"></i
></el-input> --> ></el-input> -->
<SearchBar @search="search" /> <SearchBar @search="search" :keyword="keyword" />
</div> </div>
<div class="display-group"> <div class="display-group">
<!-- <div class="total"> <!-- <div class="total">
...@@ -87,7 +88,7 @@ export default { ...@@ -87,7 +88,7 @@ export default {
data() { data() {
return { return {
selectValue: "", selectValue: "",
keyword: "", keyword: "", //搜索关键词
currentType: "all", currentType: "all",
list: { list: {
records: [], records: [],
...@@ -95,8 +96,6 @@ export default { ...@@ -95,8 +96,6 @@ export default {
current: 1, current: 1,
total: 0, total: 0,
}, },
// years: ["新石器时代", "夏", "商", "春秋", "战国", "秦", "汉", "三国"],
// types: ["青铜", "石器"],
}; };
}, },
created() { created() {
...@@ -119,13 +118,12 @@ export default { ...@@ -119,13 +118,12 @@ export default {
} }
}, },
async search() { async search(keyword) {
var params = { var params = {
page: this.list.current, page: this.list.current,
limit: this.list.size, limit: this.list.size,
name: this.keyword, title: keyword,
}; };
console.log("params", params);
let res = await getList(params); let res = await getList(params);
if (res.code == 0) { if (res.code == 0) {
this.list = res.data; this.list = res.data;
......
...@@ -5,7 +5,10 @@ ...@@ -5,7 +5,10 @@
<div class="recommend-item-container boutique"> <div class="recommend-item-container boutique">
<!-- <NavBar class="navBar" /> --> <!-- <NavBar class="navBar" /> -->
<el-carousel height="100vh" style="width: 100%"> <el-carousel height="100vh" style="width: 100%">
<el-carousel-item v-for="(item,index) in ['精品展1','精品展2','精品展3']" :key="index"> <el-carousel-item
v-for="(item, index) in ['精品展1', '精品展2', '精品展3']"
:key="index"
>
<h3 <h3
class="small" class="small"
style=" style="
...@@ -20,7 +23,18 @@ ...@@ -20,7 +23,18 @@
</el-carousel-item> </el-carousel-item>
</el-carousel> </el-carousel>
</div> </div>
<div class="recommend-item-container virtural">虚拟展厅</div> <div class="recommend-item-container virtural">
<div class="img" @click="handleClickVitual()">
<img src="@/assets/imgs/virtual/1.png" alt="" />
<div class="desc">
<span class="name">贵州世居民族展历史篇</span>——
<span class="deptName">贵州省民族博物馆</span>
</div>
<div class="play">
<i class="el-icon-caret-right"></i>
</div>
</div>
</div>
<div class="recommend-item-container display">每日推送-布展</div> <div class="recommend-item-container display">每日推送-布展</div>
<div class="recommend-item-container culturalRelic">每日推送-文物</div> <div class="recommend-item-container culturalRelic">每日推送-文物</div>
<div class="recommend-item-container musuem-map">文博地图</div> <div class="recommend-item-container musuem-map">文博地图</div>
...@@ -75,10 +89,71 @@ export default { ...@@ -75,10 +89,71 @@ export default {
], ],
}; };
}, },
methods: {
handleClickVitual() {
//暂时写死
window.open(
"https://720yun.com/t/6cvkbyf7z7w?scene_id=90524980#scene_id=90524980"
);
},
},
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.virtural {
.img {
width: 100%;
position: relative;
overflow: hidden;
// background-color: #fff;
cursor: pointer;
&:hover {
img {
transform: scale(1.1);
}
// .play {
// width: 56px;
// height: 56px;
// i {
// font-size: 46px;
// color: #fff;
// }
// }
}
img {
width: 100%;
height: 100%;
transition: all 0.5s ease;
}
.desc {
position: absolute;
width: 100%;
padding: 10px;
background-color: #fff;
opacity: 0.7;
bottom: 0;
left: 0;
}
.play {
width: 50px;
height: 50px;
border-radius: 50%;
border: 2px solid #fff;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
display: flex;
justify-content: center;
align-items: center;
i {
font-size: 40px;
color: #fff;
}
}
}
}
.recommend-list { .recommend-list {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
......
<template> <template>
<div class="personal-info"> <div class="personal-info">
<el-form ref="form" label-width="80px"> <el-form ref="form" label-width="80px">
<el-form-item label="昵称"> 游客12345 </el-form-item> <el-form-item label="账号"> {{userInfo.username}} </el-form-item>
<el-form-item label="邮箱"> 117282299@qq.com </el-form-item> <el-form-item label="手机号"> {{userInfo.phone}}</el-form-item>
<el-form-item label="手机号"> 11728229911 </el-form-item> <!-- <el-form-item>
<el-form-item>
<el-button @click="editInfo">修改个人信息</el-button> <el-button @click="editInfo">修改个人信息</el-button>
<el-button @click="editPassword">修改密码</el-button> <el-button @click="editPassword">修改密码</el-button>
</el-form-item> </el-form-item> -->
</el-form> </el-form>
<el-dialog title="修改个人信息" :visible.sync="dialogFormVisible" width="400px"> <el-dialog
<el-form :model="infoData" v-if="isEditBasicInfo" label-position="right" label-width="80px"> title="修改个人信息"
<el-form-item label="昵称" > :visible.sync="dialogFormVisible"
width="400px"
>
<el-form
:model="infoData"
v-if="isEditBasicInfo"
label-position="right"
label-width="80px"
>
<el-form-item label="昵称">
<el-input v-model="infoData.name" autocomplete="off"></el-input> <el-input v-model="infoData.name" autocomplete="off"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="邮箱" > <el-form-item label="邮箱">
<el-input v-model="infoData.email" autocomplete="off"></el-input> <el-input v-model="infoData.email" autocomplete="off"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="手机号" > <el-form-item label="手机号">
<el-input v-model="infoData.phone" autocomplete="off"></el-input> <el-input v-model="infoData.phone" autocomplete="off"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-form :model="pwdData" v-else label-position="right" label-width="80px"> <el-form
<el-form-item label="旧密码" > :model="pwdData"
<el-input v-else
v-model="pwdData.oldPwd" label-position="right"
type="password" label-width="80px"
></el-input> >
<el-form-item label="旧密码">
<el-input v-model="pwdData.oldPwd" type="password"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="新密码" > <el-form-item label="新密码">
<el-input <el-input v-model="pwdData.newPwd" type="password"></el-input>
v-model="pwdData.newPwd"
type="password"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="重复密码" > <el-form-item label="重复密码">
<el-input <el-input v-model="pwdData.repeatPwd" type="password"></el-input>
v-model="pwdData.repeatPwd"
type="password"
></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
...@@ -52,6 +56,7 @@ ...@@ -52,6 +56,7 @@
</template> </template>
<script> <script>
import { mapGetters } from "vuex";
export default { export default {
name: "Info", name: "Info",
data() { data() {
...@@ -70,7 +75,9 @@ export default { ...@@ -70,7 +75,9 @@ export default {
isEditBasicInfo: true, isEditBasicInfo: true,
}; };
}, },
computed: {
...mapGetters(["userInfo"]),
},
methods: { methods: {
editInfo() { editInfo() {
this.dialogFormVisible = true; this.dialogFormVisible = true;
...@@ -84,7 +91,7 @@ export default { ...@@ -84,7 +91,7 @@ export default {
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.el-input{ .el-input {
width: 80%; width: 80%;
} }
</style> </style>
\ No newline at end of file
...@@ -4,24 +4,13 @@ ...@@ -4,24 +4,13 @@
<!-- <h1>虚拟展厅</h1> --> <!-- <h1>虚拟展厅</h1> -->
<!-- <Footer /> --> <!-- <Footer /> -->
<el-row :gutter="40" class="list"> <el-row :gutter="40" class="list">
<el-col :span="12"> <el-col :span="8" v-for="(item, index) in list.records" :key="index">
<div class="img" @click="handleClick('1')"> <div class="img" @click="handleClick(item.url)">
<img src="@/assets/imgs/virtual/1.png" alt="" /> <img :src="item.faceImageUrl" alt="" />
<div class="desc"> <div class="desc">
<span class="name">贵州世居民族展历史篇</span>—— <span class="name">{{ item.name }}</span
<span class="deptName">贵州省民族博物馆</span> >
</div> <!-- <span class="deptName">{{ item.deptName }}</span> -->
<div class="play">
<i class="el-icon-caret-right"></i>
</div>
</div>
</el-col>
<el-col :span="12">
<div class="img" @click="handleClick('2')">
<img src="@/assets/imgs/virtual/2.png" alt="" />
<div class="desc">
<span class="name">贵州世居民族展文化篇</span>——
<span class="deptName">贵州省民族博物馆</span>
</div> </div>
<div class="play"> <div class="play">
<i class="el-icon-caret-right"></i> <i class="el-icon-caret-right"></i>
...@@ -35,20 +24,38 @@ ...@@ -35,20 +24,38 @@
<script> <script>
import NavBar from "@/components/NavBar"; import NavBar from "@/components/NavBar";
import Footer from "@/components/Footer"; import Footer from "@/components/Footer";
import { getVirtualList } from "@/api/vitual";
export default { export default {
name: "Virtual", name: "Virtual",
components: { NavBar, Footer }, components: { NavBar, Footer },
data() {
return {
list: {
records: [],
size: 10,
current: 1,
total: 0,
},
};
},
mounted() {
this.loadData();
},
methods: { methods: {
handleClick(value) { // 加载表格数据
switch (value) { async loadData() {
case "1": var params = {
window.open('https://720yun.com/t/6cvkbyf7z7w?scene_id=90524980#scene_id=90524980') page: this.list.current,
break; limit: this.list.size,
case "2": };
window.open('https://720yun.com/t/99vkbwqb02e?scene_id=91494908#scene_id=91494908') let res = await getVirtualList(params);
break; if (res.code == 0) {
this.list = res.data;
} }
}, },
handleClick(url) {
window.open(url);
},
}, },
}; };
</script> </script>
...@@ -63,6 +70,9 @@ export default { ...@@ -63,6 +70,9 @@ export default {
width: 100%; width: 100%;
position: relative; position: relative;
overflow: hidden; overflow: hidden;
height: 200px;
// background-color: #fff;
cursor: pointer;
&:hover { &:hover {
img { img {
transform: scale(1.1); transform: scale(1.1);
...@@ -70,7 +80,9 @@ export default { ...@@ -70,7 +80,9 @@ export default {
} }
img { img {
width: 100%; width: 100%;
height: 100%;
transition: all 0.5s ease; transition: all 0.5s ease;
} }
.desc { .desc {
position: absolute; position: absolute;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论