new-admin-view/src/views/setting/devise/users.vue

681 lines
24 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="users">
<el-card shadow="never">
<div class="acea-row row-top">
<div class="left" :style="colorStyle">
<div class="header" :class="userData.status==3?'bgColor':''">
<div class="top acea-row row-between-wrapper">
<div class="picTxt acea-row row-middle">
<div class="pictrue">
<img src="../../../assets/images/f.png">
</div>
<div class="txt">
<div class="name">用户昵称</div>
<div class="num"><span>ID: 9438</span><img src="../../../assets/images/edit.png"></div>
</div>
</div>
<div class="acea-row row-middle">
<div class="news">
<span class="iconfont iconshezhi"></span>
<span class="iconfont iconliaotian"></span>
</div>
</div>
</div>
<div class="center acea-row row-around row-middle">
<div class="item">
<div class="num">0.00</div>
<div class="font">我的收藏</div>
</div>
<div class="item">
<div class="num">65749</div>
<div class="font">关注店铺</div>
</div>
<div class="item">
<div class="num">25</div>
<div class="font">浏览记录</div>
</div>
<!--<div class="item">-->
<!-- <div class="num">40</div>-->
<!-- <div class="font">优惠券</div>-->
<!--</div>-->
</div>
</div>
<div class="wrapper">
<div class="orderCenter on">
<div class="title acea-row row-between-wrapper">
<div class="title-left">我的订单</div>
<div class="all">全部订单<span class="iconfont iconjinru"></span></div>
</div>
<div class="list acea-row row-around">
<div class="item">
<div class="iconfont" :class="order.dfk"></div>
<div>待付款</div>
</div>
<div class="item">
<div class="iconfont" :class="order.dfh"></div>
<div>待发货</div>
</div>
<div class="item">
<div class="iconfont" :class="order.dsh"></div>
<div>待收货</div>
</div>
<div class="item">
<div class="iconfont" :class="order.dpj"></div>
<div>待评价</div>
</div>
<div class="item">
<div class="iconfont" :class="order.sh"></div>
<div>售后/退款</div>
</div>
</div>
</div>
<div class="carousel dotted" :class="current==1?'solid':''" @click="currentShow(1)">
<swiper :options="swiperOption" class="swiperimg" v-if="userData.my_banner.length">
<swiper-slide class="swiperimg" v-for="(item, index) in userData.my_banner" :key="index">
<img :src="item.pic" >
</swiper-slide>
<div class="swiper-pagination" slot="pagination"></div>
</swiper>
<div v-else class="default">暂无广告数据</div>
</div>
<div class="orderCenter service dotted" :class="current==2?'solid':''" @click="currentShow(2)">
<div class="title acea-row row-between-wrapper">
<div>我的服务</div>
</div>
<div class="list acea-row">
<div class="item" v-for="(item,index) in userData.my_menus" :key="index" v-if="item.pic">
<div class="pictrue">
<img :src="item.pic" v-if="item.pic && item.pic !=''">
<span class="iconfont icontupian1" v-else></span>
</div>
<div>{{item.name?item.name:'服务名称'}}</div>
</div>
</div>
</div>
<div class="orderCenter">
<div class="menu-list">
<div class="item-text">
<div class="item-title"><span>平台</span>管理</div>
<div class="info">进入商户中心管理店铺</div>
</div>
<div class="picture">
<img src="../../../assets/images/plant_form.png">
</div>
</div>
</div>
</div>
</div>
<div class="right">
<div class="title">页面设置</div>
<div class="c_row-item acea-row row-top" v-if="current==1">
<el-col class="label" :span="4">
广告位:
</el-col>
<el-col :span="20" class="slider-box">
<div class="info">建议尺寸750 * 138拖拽图片可调整图片显示顺序哦最多添加五张</div>
<uploadPic :listData="userData.my_banner" :type="2"></uploadPic>
</el-col>
</div>
<div v-if="current==2">
<div class="c_row-item acea-row row-top">
<el-col class="label" :span="4">
我的服务:
</el-col>
<el-col :span="20" class="slider-box">
<div class="info">建议尺寸86 * 86px拖拽图片可调整图片显示顺序哦</div>
<uploadPic :listData="userData.my_menus" :type="3"></uploadPic>
</el-col>
</div>
</div>
</div>
</div>
</el-card>
</div>
</template>
<script>
import { getMember, memberSave } from "@/api/diy";
import { getVersion } from "@/api/user";
import uploadPic from './components/uploadPic'
export default {
name: 'users',
components: {
uploadPic
},
props: {
},
data () {
return {
swiperOption:{
//显示分页
pagination: {
el: '.swiper-pagination'
},
//自动轮播
autoplay: {
delay: 2000,
//当用户滑动图片后继续自动轮播
disableOnInteraction: false,
},
//开启循环模式
loop: false
},
userData:{
my_banner:[],
my_menus:[],
},
current:1,
colorStyle: '',
order:{},
copyright: {},
order01:{dfk:'icondaifukuan-shengxianlv',dfh:'icondaifahuo-shengxianlv',dsh:'icondaishouhuo-shengxianlv',dpj:'icondaipingjia-shengxianlv',sh:'iconshouhou-tuikuan-shengxianlv'},
order02:{dfk:'icondaifukuan-menghuanzi',dfh:'icondaifahuo-menghuanzi',dsh:'icondaishouhuo-menghuanzi',dpj:'icondaipingjia-menghuanzi',sh:'iconshouhou-tuikuan-menghuanzi'},
order03:{dfk:'icondaifukuan-kejilan',dfh:'icondaifahuo-kejilan',dsh:'icondaishouhuo-kejilan',dpj:'icondaipingjia-kejilan',sh:'iconshouhou-tuikuan-kejilan'},
order04:{dfk:'icondaifukuan-langmanfen',dfh:'icondaifahuo-langmanfen',dsh:'icondaishouhuo-langmanfen',dpj:'icondaipingjia-langmanfen',sh:'icona-shouhoutuikuan-langmanfen'},
order05:{dfk:'icondaifukuan-yangguangcheng',dfh:'icondaifahuo-yangguangcheng',dsh:'icondaishouhuo-yangguangcheng',dpj:'icondaipingjia-yangguangcheng',sh:'iconshouhou-tuikuan1'},
order06:{dfk:'icondaifukuan-zhongguohong',dfh:'icondaifahuo-zhongguohong',dsh:'icondaishouhuo-zhongguohong',dpj:'icondaipingjia-zhongguohong',sh:'iconshouhou-tuikuan-zhongguohong'}
}
},
created() {
this.getInfo();
this.getVersion();
},
methods: {
currentShow(type){
this.current = type;
},
switchOrder(status){
switch (status) {
case 1:
this.order = this.order01
break;
case 2:
this.order = this.order02
break;
case 3:
this.order = this.order03
break;
case 4:
this.order = this.order04
break;
case 5:
this.order = this.order05
break;
default:
this.order = this.order01
break
}
},
orderStyle(e){
this.switchOrder(e);
},
getInfo(){
getMember().then(res=>{
this.colorStyle = res.data.theme.theme
this.userData.my_menus = res.data.my_menus
this.userData.my_banner = res.data.my_banner
})
},
getVersion() {
getVersion().then(res => {
this.copyright = res.data;
});
},
onSubmit(){
this.$emit('parentFun',true)
memberSave(this.userData).then((res)=>{
this.$emit('parentFun',false)
this.$message.success(res.message);
}).catch((err)=>{
this.$message.error(err.message);
this.$emit('parentFun',false)
})
}
}
}
</script>
<style scoped lang="scss">
/*定义滑块 内阴影+圆角*/
::-webkit-scrollbar-thumb{
-webkit-box-shadow: inset 0 0 6px #ddd;
}
::-webkit-scrollbar {
width: 4px!important; /*对垂直流动条有效*/
}
.default{
background-color: #fff;
text-align: center;
height: 55px;
line-height: 50px;
border-radius: 8px;
}
.wrapper{
position: relative;
top: -16px;
padding: 0 10px;
}
.listB{
width: 100%;
background-color: #fff;
border-radius: 6px;
.item{
padding-left: 12px;
color: #333;
font-size: 12px;
img{
width: 17px;
height: 17px;
display: block;
}
.text{
width: 227px;
border-bottom: 1px solid #EEEEEE;
padding: 10px 12px 10px 0;
.iconfont{
color: #8A8A8A;
font-size: 12px;
}
}
}
}
.bgColor{
background-color: unset;
.top{
.picTxt{
.txt{
.name{
color: #333;
}
}
}
.news{
.iconfont{
color: #333;
}
.num{
background-color: var(--view-theme);
color: #fff;
}
}
.iconerweima-xingerenzhongxin{
color: #333;
}
}
.center{
color: rgba(51, 51, 51, 0.7);
.num{
color: #333;
}
}
}
.dotted{
border:1px dashed #2d8cf0;
cursor: pointer;
}
.solid{
border:1px solid #2d8cf0;
}
.c_row-item{
align-items: flex-start;
.slider-box{
.info{
font-size: 13px;
color: #999999;
}
}
}
.bottomB{
width: 271px;
height: 62px;
background: #343A48;
border-radius: 8px 8px 0px 0px;
padding: 11px 15px 0 15px;
margin: 18px auto 0 auto;
color: #BBBBBB;
font-size: 13px;
z-index: 0;
position: relative;
.iconfont{
font-size: 11px;
}
.vip{
font-size: 13px;
font-weight: bold;
color: #F8D5A8;
img{
width: 18px;
height: 18px;
display: inline-block;
vertical-align: middle;
margin-right: 9px;
}
}
}
.member{
background-image: url("../../../assets/images/user_vip.png");
background-repeat: no-repeat;
background-size: 100%;
width: 270px;
height: 48px;
margin: -50px auto 0 auto;
position: relative;
z-index: 9;
margin-bottom: 13px;
padding: 8px 10px 0 37px;
color: #AE5A2A;
font-size: 12px;
.renew{
font-size: 12px;
.iconjinru{
font-size: 11px;
}
}
}
.carousel{
.swiperimg{
width: 100%;
height: 63px;
border-radius: 8px;
img{
width: 100%;
height: 100%;
border-radius: 8px;
}
}
}
.swiper-pagination-fraction, .swiper-pagination-custom, .swiper-container-horizontal > .swiper-pagination-bullets{
bottom: 2px;
}
/deep/.swiper-pagination-bullet{
width: 4px;
height: 4px;
}
/deep/.swiper-pagination-bullet-active{
background: #fff;
}
.users{
.left {
background: #F7F7F7;
width: 310px;
height: 550px;
overflow-x: hidden;
overflow-y: auto;
padding-bottom: 1px;
margin-right: 30px;
border: 1px solid #eee;
.center{
display: flex;
align-items: center;
justify-content: space-between;
margin: 20px 10px 0;
position: relative;
z-index: 9;
color: #fff;
.num{
font-size: 15px;
font-weight: 600;
}
.font{
font-size: 12px;
color: rgba(255,255,255,.6);
margin-top: 3px;
}
.item{
width: 25%;
text-align: center;
}
}
.header{
background-color: var(--view-theme);
background-image: url("../../../assets/images/user01.png");
background-size: 100%;
background-repeat: no-repeat;
width: 100%;
height: 135px;
position: relative;
.top{
padding: 17px 14px 0 14px;
.picTxt{
.pictrue{
width: 35px;
height: 35px;
border-radius: 50%;
margin-right: 10px;
img{
width: 100%;
height: 100%;
border-radius: 50%;
}
}
.txt{
.name{
font-size: 12px;
color: #fff;
img{
width: 40px;
height: 15px;
margin-left: 7px;
vertical-align: middle;
}
}
.num{
font-size: 10px;
margin-top: 5px;
color: rgba(255,255,255,.6);
display: flex;
align-items: center;
img{
width: 12px;
height: 12px;
margin-left: 5px;
}
}
.phone{
width: 86px;
height: 21px;
border-radius: 13px;
background-color: rgba(16, 55, 72, 0.2);
font-size: 11px;
color: #fff;
margin-top: 4px;
.iconfont{
font-size: 11px;
}
}
}
}
.news{
position: relative;
margin-left: 10px;
top: -8px;
.iconfont{
font-size: 16px;
color: #fff;
display: inline-block;
margin-left: 12px;
&.iconliaotian{
transform: rotateY(180deg);
}
}
.num{
position: absolute;
width: 14px;
height: 14px;
background: #FFFFFF;
border-radius: 50%;
font-size: 9px;
color: var(--view-theme);
text-align: center;
line-height: 14px;
top:3px;
right: -4px;
}
}
.iconerweima-xingerenzhongxin{
font-size: 20px;
color: #fff;
}
}
.bottom{
background-image: url("../../../assets/images/member.png");
width: 310px;
height: 34px;
background-size: 100%;
background-repeat: no-repeat;
position: absolute;
bottom: 0;
padding: 0 23px 0 50px;
font-size: 13px;
color: #905100;
.renew{
font-size: 12px;
.iconjinru{
font-size: 11px;
}
}
}
}
.orderCenter{
background: #FFFFFF;
border-radius: 8px;
margin-bottom: 10px;
text-align: center;
.title{
height: 36px;
align-items: center;
justify-content: space-between;
border-bottom: 1px dashed #DDDDDD;
padding: 0 15px;
font-size: 13px;
color: #282828;
.all{
font-size: 12px;
color: #666666;
.iconfont{
font-size: 12px;
margin-left: 2px;
}
}
}
.list{
display: flex;
.item{
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 20%;
height: 70px;
font-size: 12px;
color: #454545;
.iconfont{
font-size: 20px;
color: var(--view-theme);
img{
width: 20px;
height: 20px;
}
}
}
}
&.service{
margin-top: 10px;
.title{
font-weight: bold;
}
.list{
.item{
width: 25%;
margin-bottom: 10px;
.pictrue{
width: 23px;
height: 23px;
margin: 0 auto 8px auto;
font-size: 12px;
img{
width: 100%;
height: 100%;
}
}
}
}
}
}
}
.right{
width: 540px;
/deep/.ivu-radio-wrapper{
font-size: 13px;
margin-right: 20px;
}
.title{
font-size: 14px;
color: rgba(0, 0, 0, 0.85);
position: relative;
font-weight: bold;
&:before{
content: '';
position: absolute;
width: 2px;
height: 14px;
background: #1890FF;
top:50%;
margin-top: -7px;
left:-8px;
}
}
.c_row-item{
margin-top: 24px;
}
}
}
.menu-list{
background: #fff;
border-radius: 6px;
padding: 12px 15px 12px 16px;
display: flex;
align-items: center;
justify-content: space-between;
.item-text{
text-align: left;
}
.item-title{
font-size: 16px;
color: #282828;
font-weight: bold;
span{
color: #FFC552;
}
}
.info{
margin-top: 7px;
color: #666666;
font-size: 10px;
}
.picture{
width: 90px;
height: 54px;
img{
max-width: 100%;
}
}
}
.copy-right{
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
color: #CCCCCC;
font-size: 11px;
.img-copyright{
width: 60px;
height: 30px;
}
.iconfont{
font-size: 30px;
}
}
</style>