细节修改

version/0412
fanfan 11 months ago
parent e7fc60411d
commit 436ace27f0
  1. 2
      pages.json
  2. 4
      pages/activity/charts.vue
  3. 40
      pages/activity/newGoods.vue
  4. 107
      pages/activity/newPeople.vue
  5. 10
      pages/activity/presaleRule.vue
  6. 7
      pages/activity/ranking.vue
  7. 137
      pages/index/index.vue
  8. 8
      pages/member/index.vue
  9. 51
      pages/memberInfo/index.vue
  10. 6
      pages/news/goods/components/category.vue
  11. 1105
      pages/news/recycling/confirm.vue
  12. 1081
      pages/news/recycling/detail.vue
  13. 2
      pages/news/recycling/index.vue
  14. 535
      pages/news/user/vip.vue
  15. 35
      pages/news3/components/category.vue
  16. 24
      pages/news3/vipPrice.vue
  17. 151
      pages/search/index.vue
  18. 5
      pages/serve/index.vue
  19. 4
      pages/user/index.vue

@ -662,7 +662,7 @@
{
"path": "recycling/index",
"style": {
"navigationBarTitleText": "上门回收",
"navigationBarTitleText": "旧物回收",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}

@ -1,7 +1,7 @@
<template>
<view class="newGoods">
<view>
<u-navbar title="排行榜" back-icon-color="#fff" :border-bottom="false" title-color="#fff"
<u-navbar title="" back-icon-color="#fff" :border-bottom="false" title-color="#fff"
:background="background"></u-navbar>
</view>
<view class="main">
@ -16,7 +16,7 @@
根据商品销量等级排序|每日更新
</view>
</view>
<view class="rule" @click="openPage(1)">规则</view>
<view class="rule" @click="openPage(1)">规则</view>
<view class="all" @click="openPage(2)">全部榜单</view>
<view class="hb">
<view class="goodsList" v-for="(item,index) in jingList.slice(0,sliceIndex)" :key="index"

@ -9,7 +9,7 @@
<view class="goodsList">
<view class="goodsItem" v-for="(item,index) in list" :key="index" @click="goDetails(item.goods_id)">
<view class="hotSell">
现货热卖
抢先体验
</view>
<view class="item">
<view class="goodsInfo">
@ -36,10 +36,15 @@
</view>
</view>
</view>
</view>
<view class="lookBtn" @click="backtop">
再挑挑看
</view>
<view class="lookJie">
本活动最终解释权为xxxxxx公司所有
</view>
</view>
</view>
</template>
@ -104,12 +109,37 @@
})
.finally(() => app.isLoading = false)
},
backtop() {
uni.pageScrollTo({
scrollTop: 0
});
}
}
}
</script>
<style lang="scss" scoped>
.lookBtn {
width: 180rpx;
line-height: 75rpx;
height: 75rpx;
background-color: #FFDCC3;
text-align: center;
font-size: 32rpx;
border-radius: 40rpx;
margin: 30rpx auto;
color: #242424;
}
.lookJie {
text-align: center;
color: #fff;
font-size: 28rpx;
margin: 20rpx 0 50rpx 0;
}
.newGoods {
width: 100%;
position: relative;
@ -129,8 +159,8 @@
height: 548rpx;
background-image: url('https://www.royaum.com.cn/static/newGoods/top.png');
background-size: 100% auto;
padding-left: 30rpx;
padding-top: 44rpx;
// padding-left: 30rpx;
// padding-top: 44rpx;
.topLine {
display: flex;

@ -1,9 +1,12 @@
<template>
<view class="newpeople">
<view class="newpeople-navbar">
<u-navbar title="" back-icon-color="#fff" :border-bottom="false" :background="background"></u-navbar>
<u-navbar title="新人首单礼" title-color="#fff" back-icon-color="#fff" :border-bottom="false"
:background="background"></u-navbar>
</view>
<view class="newpeople-hd">
<view class="rule" @click="openRule()">规则</view>
</view>
<view class="newpeople-hd"></view>
<view class="newpeople-gift">
<view class="a">
<image :src="$picUrl+'/static/news/newPeople-bg1.png'"></image>
@ -25,18 +28,33 @@
:is-scroll="true" font-size="30" v-model="current" @change="onChosed"></u-tabs>
</view>
<view scroll-x class="b">
<view class="item" v-for="(item,index) in goodList" :key="i" @click="goDetail(item.goods_id)">
<image :src="item.goods_image"></image>
<view class="title">
<text>自营</text>{{item.goods_name}}
<view class="">
<view class="item" v-for="(item, index) in LeftList" :key="index" @click="goDetail(item.goods_id)">
<image :src="item.goods_image"></image>
<view class="title">
<text>自营</text>{{item.goods_name}}
</view>
<view class="price">
<view class="n"><text
style="margin-right: 6rpx;">{{item.goods_price_min?Number(item.goods_price_min):''}}</text>新人价
</view>
<view class="o">{{item.line_price_min?Number(item.line_price_min):''}}</view>
</view>
</view>
<view class="price">
<view class="n"><text>{{item.goods_price_min?Number(item.goods_price_min):''}}</text>到手价</view>
<view class="o">{{item.line_price_min?Number(item.line_price_min):''}}</view>
</view>
<view class="">
<view class="item" v-for="(item, index) in RightList" :key="index" @click="goDetail(item.goods_id)">
<image :src="item.goods_image"></image>
<view class="title">
<text>自营</text>{{item.goods_name}}
</view>
<view class="price">
<view class="n"><text
style="margin-right: 6rpx;">{{item.goods_price_min?Number(item.goods_price_min):''}}</text>新人价
</view>
<view class="o">{{item.line_price_min?Number(item.line_price_min):''}}</view>
</view>
</view>
<!-- <view class="desc">
{{item.goods_sales}}+条评论 {{item.remaizhishu}}%好评率
</view> -->
</view>
</view>
</view>
@ -59,6 +77,8 @@
},
goodList: [],
LeftList: [],
RightList: [],
menuList: [],
couList: []
}
@ -101,17 +121,23 @@
//
getListgoodData(categoryId) {
let app = this;
this.LeftList = [];
this.RightList = []
let pamars = {
store_id: 10001,
categoryId: categoryId,
}
Api.chartsGoodsList(pamars)
.then(result => {
if (result.data.data.length > 0) {
result.data.data.map(a => {
a.goods_price_min = Number(a.goods_price_min);
a.line_price_min = Number(a.line_price_min)
})
for (let i = 0; i < result.data.data.length; i++) {
result.data.data[i].goods_price_min = Number(result.data.data[i].goods_price_min);
result.data.data[i].line_price_min = Number(result.data.data[i].line_price_min)
if (i % 2 === 0) {
this.LeftList.push(result.data.data[i])
} else {
this.RightList.push(result.data.data[i])
}
}
app.goodList = result.data.data;
}
})
@ -152,6 +178,11 @@
url: '/pages/goods/detail?goodsId=' + goods_id
})
},
openRule() {
uni.navigateTo({
url: '/pages/activity/presaleRule?type=4'
})
},
}
}
</script>
@ -164,6 +195,22 @@
&-hd {
height: 200rpx;
.rule {
right: 0;
top: 74rpx;
z-index: 999;
width: 100rpx;
height: 60rpx;
background-color: rgba(0, 0, 0, 0.3);
font-size: 24rpx;
font-weight: 400;
color: #FFFFFF;
line-height: 60rpx;
text-align: center;
position: absolute;
border-radius: 50rpx 0 0 50rpx;
}
}
&-gift {
@ -186,11 +233,14 @@
.b {
padding: 20rpx;
overflow: hidden;
white-space: nowrap;
display: flex;
justify-content: space-between;
.item {
width: 210rpx;
height: 266rpx;
height: 240rpx;
position: relative;
margin-left: 30rpx;
display: inline-block;
@ -256,7 +306,7 @@
}
&-bd {
padding: 0 20rpx;
padding: 0 22rpx;
overflow: hidden;
.a {
@ -266,19 +316,20 @@
.b {
overflow: hidden;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
.item {
width: 340rpx;
height: 436rpx;
width: 346rpx;
background: #FFFFFF;
border-radius: 8rpx;
opacity: 1;
border: 1px solid #ECECEC;
padding: 10rpx 15rpx;
padding: 10rpx 15rpx 25rpx 15rpx;
box-sizing: border-box;
float: left;
margin-left: 30rpx;
margin-bottom: 30rpx;
margin-bottom: 20rpx;
&:nth-child(2n+1) {
margin-left: 0;
@ -298,9 +349,9 @@
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #1E1E1E;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
// text-overflow: ellipsis;
// white-space: nowrap;
// overflow: hidden;
text {
background-color: #F34A40;

@ -15,6 +15,9 @@
},
onLoad(op) {
let title = ''
if (op.type == 4) {
title = '新人首单规则'
}
if (op.type == 5) {
title = '预售规则'
}
@ -36,6 +39,9 @@
getCarouselList(type) {
const app = this;
let rule=''
if (app.type == 4) {
rule = 'presale_rule'
}
if (app.type == 5) {
rule = 'presale_rule'
}
@ -43,13 +49,13 @@
rule = 'rank_rule'
}
if (app.type == 7) {
rule = 'coupon_rule'
rule = 'rank_rule'
}
Api.getAgreement({
type: rule
})
.then(result => {
let content = result.data.detail.content;
let content = result.data.detail.content || '';
if (content) {
content = content.replace(/style=""/g, '').replace(/<img src=/g,
'<img style="width: 100%; display:block" src=')

@ -8,10 +8,10 @@
</view>
<!-- <image :src="$picUrl+'/static/rank/rangkImg.png'" mode="" class="bgImg"></image> -->
<view class="headTitle">
全站热销好物
全站好物热榜
</view>
<view class="ranking">
- 实时排名 -
- 跟榜买错不了 -
</view>
<view class="menuList">
<scroll-view scroll-x="true" class="list">
@ -376,6 +376,7 @@
position: absolute;
left: 36rpx;
top: -8rpx;
z-index: 999;
}
.goodsInfo1 {
@ -409,7 +410,7 @@
border-radius: 70rpx;
opacity: 1;
margin-top: 26rpx;
padding: 0 8rpx;
.hotTitle1 {
margin-right: 8rpx;
width: 68rpx;

@ -79,6 +79,10 @@
<!-- <text></text> -->
</view>
<view class="couponInfo">
<view class="couponNew">
<text>新人首单礼</text>
<!-- <text>查看更多</text> -->
</view>
<view class="left">
<text class="flag">¥</text>
<text class="num">{{couList.reduce_price}}</text>
@ -229,32 +233,55 @@
</view>
</view>
<view class="goodsRecommend">
<view class="goodsItem" v-for="(item,index) in goodsRecommend" @click="goDetails(item)"
:key="index">
<view class="pic">
<image :src="item.goods_image" mode=""></image>
</view>
<view class="goodsInfo">
<view class="title">
<text v-if="item.selling_point" class="ziying">{{item.selling_point}}</text>
<text class="name">{{item.goods_name}}</text>
<view class="">
<view class="goodsItem" v-for="(item,index) in LeftList" @click="goDetails(item)"
:key="index">
<view class="pic">
<image :src="item.goods_image" mode=""></image>
</view>
<view class="isExpress">
<text>包邮</text>
<view class="goodsInfo">
<view class="title">
<text v-if="item.selling_point" class="ziying">{{item.selling_point}}</text>
<text class="name">{{item.goods_name}}</text>
</view>
<view class="isExpress">
<text>包邮</text>
</view>
<view class="price">
<text style="font-size: 20rpx;"></text>
<text style="font-weight: bold;font-size: 36rpx;">{{item.goods_price_min}}</text>
<text style="font-size: 20rpx;margin-left:10rpx;">到手价</text>
<text
style="color: #949494;font-size: 22rpx;text-decoration: line-through;">{{item.line_price_min}}</text>
</view>
</view>
<view class="price">
<text style="font-size: 20rpx;"></text>
<text style="font-weight: bold;font-size: 36rpx;">{{item.goods_price_min}}</text>
<text style="font-size: 20rpx;margin-left:10rpx;">到手价</text>
<text
style="color: #949494;font-size: 22rpx;text-decoration: line-through;">{{item.line_price_min}}</text>
</view>
</view>
<view class="">
<view class="goodsItem" v-for="(item,index) in RightList" @click="goDetails(item)"
:key="index">
<view class="pic">
<image :src="item.goods_image" mode=""></image>
</view>
<view class="goodsInfo">
<view class="title">
<text v-if="item.selling_point" class="ziying">{{item.selling_point}}</text>
<text class="name">{{item.goods_name}}</text>
</view>
<view class="isExpress">
<text>包邮</text>
</view>
<view class="price">
<text style="font-size: 20rpx;"></text>
<text style="font-weight: bold;font-size: 36rpx;">{{item.goods_price_min}}</text>
<text style="font-size: 20rpx;margin-left:10rpx;">到手价</text>
<text
style="color: #949494;font-size: 22rpx;text-decoration: line-through;">{{item.line_price_min}}</text>
</view>
</view>
<!-- <view class="comment">
<text>{{item.goods_sales}}条评论</text>
<text style="margin-left:20rpx;">{{item.remaizhishu}}%好评率</text>
</view> -->
</view>
</view>
</view>
</view>
</view>
@ -509,7 +536,7 @@
},
{
image: `${this.$picUrl}/static/index/g5.png?n=` + new Date().getTime(),
text: "上门回收",
text: "旧物回收",
path: '/pages/news/recycling/index',
type: 2
},
@ -520,6 +547,8 @@
seckillList: [],
xinpinList: [],
goodsRecommend: [],
LeftList: [],
RightList: [],
isToggle: false,
//
count: 4,
@ -637,7 +666,7 @@
}).then(res => {
if (res.status == 200) {
this.tabList = res.data.list;
this.catagoryList = res.data.list[0].children
this.catagoryList = res.data.list[0].children||[]
if (this.current == 0) {
this.getRankingList(this.tabList[0].category_id)
// this.getNewGoods(this.tabList[0].category_id)
@ -672,7 +701,7 @@
},
changeGoodsType(index) {
this.tabCurrent = index;
this.catagoryList = this.tabList[index].children;
this.catagoryList = this.tabList[index].children||[];
this.getRankingList(this.tabList[index].category_id)
// this.getNewGoods(this.tabList[index].category_id)
this.getNewGoods()
@ -728,16 +757,23 @@
},
getSuggest() {
this.LeftList=[];
this.RightList=[]
//
Api.recommended().then(res => {
let arr = res.data.goodsList
if (arr && arr.length > 0) {
arr.map(a => {
a.goods_price_min = Number(a.goods_price_min)
a.goods_price_max = Number(a.goods_price_max)
a.line_price_min = Number(a.line_price_min)
a.line_price_max = Number(a.line_price_max)
})
for (let i = 0; i < arr.length; i++) {
arr[i].goods_price_min = Number(arr[i].goods_price_min);
arr[i].goods_price_max = Number(arr[i].goods_price_max)
arr[i].line_price_min = Number(arr[i].line_price_min);
arr[i].line_price_max = Number(arr[i].line_price_max)
if (i % 2 === 0) {
this.LeftList.push(arr[i])
} else {
this.RightList.push(arr[i])
}
}
}
this.goodsRecommend = arr
})
@ -810,9 +846,9 @@
// url: '/pages/goods/detail?goodsId=' + this.bannerList[index].redirect_url
// })
// } else {
uni.navigateTo({
url: '/pages/activity/newsshop?activeid=' + this.bannerList[index].redirect_url + '&type=1'
})
uni.navigateTo({
url: '/pages/activity/newsshop?activeid=' + this.bannerList[index].redirect_url + '&type=1'
})
// }
},
goDetails(item) {
@ -1158,6 +1194,34 @@
.firstContent {
position: relative;
.couponNew {
position: absolute;
top: -12rpx;
width: 520rpx;
left: 25rpx;
display: flex;
align-items: center;
justify-content: space-between;
text:nth-child(1){
font-family: YouSheBiaoTiYuan, YouSheBiaoTiYuan;
font-weight: 700;
font-size: 40rpx;
color: #FFFFFF;
text-align: left;
font-style: normal;
text-transform: none;
}
text:nth-child(2){
font-family: PingFang SC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #FFFFFF;
text-align: left;
font-style: normal;
text-transform: none;
}
}
.firstBg {
width: 698rpx;
height: 230rpx;
@ -1617,7 +1681,6 @@
.goodsRecommend {
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
margin-top: 20rpx;
@ -1666,9 +1729,9 @@
font-weight: 400;
color: #1E1E1E;
flex: 1;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
// overflow: hidden;
// white-space: nowrap;
// text-overflow: ellipsis;
}
}

@ -1,11 +1,11 @@
<template>
<view class="member">
<view>
<u-navbar title="会员中心" :border-bottom="false" title-color="#333" :background="background"></u-navbar>
<u-navbar title="开通续费管理" :border-bottom="false" title-color="#333" :background="background"></u-navbar>
</view>
<view class="khy">
<!-- <view class="khy">
开通<text v-if="type=='fx'">分销</text>会员人均立省<text>2389</text>
</view>
</view> -->
<view class="tips">
<image src="/static/default-logo.png" mode="" class="headIcon"></image>
<view class="meInfo">
@ -18,7 +18,7 @@
</view>
</view>
<view class="time">
有效期至{{userInfo.effective_time}}
会员有效期至{{userInfo.effective_time}}
</view>
</view>
<view class="buyInfo" @click="goBuyInfo">

@ -1,8 +1,7 @@
<template>
<view class="member">
<view>
<u-navbar title="会员中心" :border-bottom="false" title-color="#333"
:background="background"></u-navbar>
<u-navbar title="会员中心" :border-bottom="false" title-color="#333" :background="background"></u-navbar>
</view>
<view class="tips">
<image src="/static/default-logo.png" mode="" class="headIcon"></image>
@ -22,13 +21,13 @@
</view>
<view class="main">
<view class="mTitle">
卡订单记录
会员卡订单记录
</view>
<view class="card" v-for="(item,index) in list" :key="index">
<view class="tp">
<view class="info">
<text v-if="item.is_valid">生效中</text>
<text v-if="!item.is_valid">已过期</text>
<text v-if="!item.is_valid">已过期</text>
</view>
</view>
<view class="detail">
@ -42,8 +41,12 @@
</view>
</view>
</view>
<view class="cardTips" v-if="list.length > 0" >
已展示近12个月省钱会员卡订单
</view>
<u-empty text="您还没有会员卡订单记录哦" v-if="list.length == 0" mode="list" style="margin-top: 50rpx;"></u-empty>
</view>
</view>
</template>
@ -54,28 +57,28 @@
data() {
let img = 'https://www.royaum.com.cn/static/member/top.png'
return {
userInfo:{},
payTypeChose:true,
userInfo: {},
payTypeChose: true,
isChose: 0,
isVip: false,
background: {
background: 'url(' + img + ') center top no-repeat',
backgroundSize: '100% auto',
},
list:[],
list: [],
}
},
onLoad(options){
onLoad(options) {
this.userInfo = JSON.parse(options.userInfo)
},
onShow(){
onShow() {
this.getListInfo()
},
methods:{
getListInfo(){
methods: {
getListInfo() {
const that = this
that.list = []
if(that.userInfo.user_type==30){
if (that.userInfo.user_type == 30) {
member.dealerOpenCardLog()
.then(res => {
if (res.status == 200) {
@ -83,7 +86,7 @@
}
})
.finally(() => that.isLoading = false)
}else if(that.userInfo.user_type==20){
} else if (that.userInfo.user_type == 20) {
member.userOpenCardLog()
.then(res => {
if (res.status == 200) {
@ -92,7 +95,7 @@
})
.finally(() => that.isLoading = false)
}
},
},
}
@ -106,6 +109,13 @@
position: relative;
}
.cardTips {
color: rgb(192, 196, 204);
font-size: 14px;
margin: 15px 0px 0px;
text-align: center;
}
.tips {
width: 698rpx;
height: 234rpx;
@ -166,7 +176,8 @@
}
}
.buyInfo{
.buyInfo {
// width: 112rpx;
height: 40rpx;
font-size: 28rpx;
@ -178,7 +189,7 @@
}
}
.main {
width: 750rpx;
@ -192,7 +203,7 @@
}
.mTitle {
width: 192rpx;
// width: 192rpx;
height: 44rpx;
font-size: 32rpx;
font-family: PingFang SC, PingFang SC;
@ -287,6 +298,4 @@
text-align: center;
margin-top: 46rpx;
}
</style>
</style>

@ -6,7 +6,7 @@
<view class="filterTitle">
请选择分类
</view>
<view class="shopItem">
<scroll-view scroll-y="true" class="shopItem" >
<view class="" v-for="(item, index) in tabList" :key="index">
<view class="shopText Text" :class="{'active1':activeIndex.indexOf(item.category_id) > -1}"
@click="getShop(item,item.category_id)">
@ -26,7 +26,7 @@
</view>
</view>
</view>
</view>
</scroll-view>
<view class="btnGroup">
<view class="reset" @click="reset">
重置
@ -58,6 +58,7 @@
reset() {
this.activeIndex.splice(0)
},
getShop(item, category_id) {
let arrIndex = this.activeIndex.indexOf(category_id)
if (arrIndex > -1) {
@ -142,7 +143,6 @@
.shopItem {
margin-top: 40rpx;
max-height: 750rpx;
overflow-y: auto;
.shopText {
margin-right: 12rpx;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,7 +1,7 @@
<template>
<view class="recycling">
<view class="recycling-navbar">
<u-navbar title="上门回收" :border-bottom="false" :background="isScroll?background:background1"></u-navbar>
<u-navbar title="旧物回收" :border-bottom="false" :background="isScroll?background:background1"></u-navbar>
</view>
<view class="recycling-hd"></view>
<view class="recycling-notice">

@ -1,11 +1,26 @@
<template>
<template>
<view class="user">
<view class="search">
<!-- <view class="box">
<!-- <view class="box">
<image src="/static/news/icon-search.png"></image>
<input type="search" placeholder="商品名称/编码" />
</view> -->
<u-search placeholder="输入用户昵称/姓名/手机号" @search="searchhandle" shape="round" :show-action="false" height="60" bg-color="#ffffff" v-model="keyword"></u-search>
<u-search style='margin: 0 30rpx;' placeholder="输入用户昵称/姓名/手机号" @search="searchhandle" shape="round"
:show-action="false" height="60" bg-color="#fafafa" v-model="keyword"></u-search>
<view class="store-sort">
<view class="sort-item" :class="{ active: sortType === 'all' }" @click="handleSortType('city')">
<text>全部</text>
</view>
<view class="sort-item" :class="{ active: sortType === 'no' }" @click="handleSortType('all')">
<text>无身份</text>
</view>
<view class="sort-item" :class="{ active: sortType === 'tourist' }" @click="handleSortType('sales')">
<text>游客</text>
</view>
<view class="sort-item" :class="{ active: sortType === 'vip' }" @click="handleSortType('sales')">
<text>会员</text>
</view>
</view>
</view>
<view class="user-bd">
<view class="li" v-for="i in list" :key="i.user_id" @click="goVipDetails(i)">
@ -17,163 +32,103 @@
<view class="m">
<view class="n">{{i.nick_name}}</view>
<view class="btn">{{i.user_type_text}}</view>
</view>
<view class="n">
<view>
<text>{{i.mobile}}</text>
<image @click.stop="copyText(i.mobile)" :src="$picUrl+'/static/news/icon-copy.png'" style="margin-top:-4rpx;"></image>
<image @click.stop="copyText(i.mobile)" :src="$picUrl+'/static/news/icon-copy.png'"
style="margin:-4rpx 0 0 15rpx;"></image>
</view>
<image :src="$picUrl+'/static/news/tel.png'" @click.stop="makeCall(i.mobile)"></image>
</view>
</view>
<!-- <view class="m">
<view class="n">{{nick_name}}</view>
<view class="n">真实姓名张三</view>
<view class="n">{{mobile}}<image :src="$picUrl+'/static/news/icon-copy.png'"></image></view>
</view>
</view>
<view class="r">
<view class="btn">会员</view>
<image :src="$picUrl+'/static/news/tel.png'"></image>
</view> -->
</view>
<view class="b">
<view class="l">余额(<text>¥{{i.balance?i.balance:0.00}}</text></view>
<view class="l">积分(<text>{{i.points?i.points:0}}</text></view>
<view class="l" style="margin-left: 100rpx;">积分(<text>{{i.points?i.points:0}}</text></view>
</view>
</view>
<!-- <view class="li" v-for="i in 2" :key="i">
<view class="a">
<view class="l">
<image :src="$picUrl+'/static/news/avater.png'"></image>
</view>
<view class="m">
<view class="n">昵称</view>
<view class="n">真实姓名张三</view>
<view class="n">18089800909<image :src="$picUrl+'/static/news/avater.png'"></image></view>
</view>
<view class="r">
<view class="btn btn-on">游客</view>
<image :src="$picUrl+'/static/news/tel.png'"></image>
</view>
</view>
<view class="b">
<view class="l">余额(<text>¥0.00</text></view>
<view class="l">积分(<text>0.00</text></view>
</view>
</view> -->
</view>
</view>
</template>
</view>
</view>
</template>
<script>
import * as Vip from '@/api/user/vip'
export default {
data() {
import * as Vip from '@/api/user/vip'
export default {
data() {
return {
keyword:'',
page:1,
total:0,
list:[],
title:'会员管理'
};
keyword: '',
page: 1,
total: 0,
list: [],
title: '会员管理',
sortType: 'all', //
};
},
methods: {
searchhandle(){
this.list=[]
//
handleSortType(newSortType) {
const app = this
app.sortType = newSortType
//
this.list = []
this.page = 1;
app.getList()
},
searchhandle() {
this.list = []
this.page = 1;
this.getList()
},
async getList(){
let res = await Vip.getVipList({page:this.page,search:this.keyword,user_type:this.title=='会员管理'?"10,20":'30'})
console.log(res,"===")
async getList() {
let res = await Vip.getVipList({
page: this.page,
search: this.keyword,
user_type: this.title == '会员管理' ? "10,20" : '30'
})
console.log(res, "===")
this.list.push(...res.data.list.data);
this.total = res.data.list.total;
},
copyText(text) {
uni.setClipboardData({
data: text,
success: () => {
uni.showToast({
title: '复制成功',
icon: 'success',
duration: 2000
});
},
fail: () => {
uni.showToast({
title: '复制失败',
icon: 'none'
});
}
});
uni.setClipboardData({
data: text,
success: () => {
uni.showToast({
title: '复制成功',
icon: 'success',
duration: 2000
});
},
fail: () => {
uni.showToast({
title: '复制失败',
icon: 'none'
});
}
});
},
makeCall(phoneNumber) {
uni.makePhoneCall({
phoneNumber: phoneNumber, //
success: (res) => {
},
phoneNumber: phoneNumber, //
success: (res) => {},
//
fail: (res) => {
}
fail: (res) => {}
});
// uni.getSetting({
// success(res) {
// if (!res.authSetting['scope.makePhoneCall']) {
// //
// uni.authorize({
// scope: 'scope.makePhoneCall',
// success() {
// //
// uni.makePhoneCall({
// phoneNumber: phoneNumber //
// });
// },
// fail() {
// //
// uni.showModal({
// title: '',
// content: '',
// success: function(modalRes) {
// console.log(modalRes)
// if (modalRes.confirm) {
// uni.openSetting({
// success: (res) => {
// console.log(res)
// if (res.authSetting['scope.makePhoneCall']) {
// uni.makePhoneCall({
// phoneNumber: phoneNumber //
// });
// }
// }
// });
// }
// }
// });
// }
// });
// } else {
// //
// uni.makePhoneCall({
// phoneNumber: phoneNumber //
// });
// }
// }
// });
},
goVipDetails(item){
goVipDetails(item) {
let details = JSON.stringify(item)
uni.navigateTo({
url:"/pages/news/user/index?item="+details+"&title="+this.title
url: "/pages/news/user/index?item=" + details + "&title=" + this.title
})
}
},
onLoad(option) {
this.title = option.title
uni.setNavigationBarTitle({
title: this.title
title: this.title
});
this.list = []
this.getList()
@ -183,168 +138,212 @@
this.page++;
this.getList()
}
},
}
</script>
<style lang="scss" scoped>
.user{
padding: 0 0 130rpx;
overflow: hidden;
.search{
width: 750rpx;
padding: 34rpx 34rpx 0 34rpx;
box-sizing: border-box;
// .box{
// padding: 15rpx 25rpx;
// box-sizing: border-box;
// display: flex;
// align-items: center;
// background: #F3F3F3;
// border-radius: 60rpx;
// image{
// width: 28rpx;
// height: 28rpx;
// margin-right: 22rpx;
// }
// input{
// flex: 1;
// font-size: 28rpx;
// line-height: 30rpx;
// }
// }
},
}
&-bd{
padding: 0 34rpx;
</script>
<style lang="scss" scoped>
.user {
padding: 0 0 130rpx;
overflow: hidden;
.li{
padding:0 12rpx;
.search {
width: 750rpx;
box-sizing: border-box;
background-color: #FFFFFF;
overflow: hidden;
border-radius: 8rpx;
margin-top: 18rpx;
// &:first-child{
// margin-top: 0;
// }
.a{
//
.store-sort {
position: sticky;
top: var(--window-top);
display: flex;
// align-items: flex-start;
align-items: center;
justify-content: space-between;
padding: 15rpx 0 30rpx;
border-bottom: 1px solid #F2F2F2;
.l{
width: 114rpx;
height: 114rpx;
margin-right: 25rpx;
image{
width: 100%;
height: 100%;
border-radius: 50%;
padding: 20rpx 0;
font-size: 28rpx;
background: #fff;
color: #000;
z-index: 99;
.sort-item {
flex-basis: 25%;
display: flex;
justify-content: center;
align-items: center;
height: 50rpx;
&.active {
color: #F34A40;
}
}
.r{
flex: 1;
// width: 98rpx;
// overflow: hidden;
.m{
// flex: 1;
// max-width: 400rpx;
// margin-right: 20rpx;
display: flex;
align-items: center;
justify-content: space-between;
.btn{
// width: 98rpx;
padding:0 10rpx;
height: 56rpx;
line-height: 56rpx;
background: #FFFFFF;
border-radius: 3px 3px 3px 3px;
border: 1px solid #FFA928;
text-align: center;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #FFA928;
&-on{
border-color:#FFA928;
color: #FFA928;
}
.sort-item-price .price-arrow {
margin-left: 20rpx;
font-size: 24rpx;
color: #000;
.icon {
&.active {
color: #F34A40;
}
&.up {
margin-bottom: -16rpx;
}
&.down {
margin-top: -16rpx;
}
}
.n{
display: flex;
align-items: center;
justify-content: space-between;
margin-top:20rpx;
text{
font-size: 28rpx;
color: #454545;
}
}
}
&-bd {
padding: 0 28rpx;
overflow: hidden;
.li {
padding: 0 28rpx;
background-color: #FFFFFF;
overflow: hidden;
border-radius: 8rpx;
margin-top: 18rpx;
// &:first-child{
// margin-top: 0;
// }
.a {
display: flex;
// align-items: flex-start;
align-items: center;
justify-content: space-between;
padding: 15rpx 0 30rpx;
border-bottom: 1px solid #F2F2F2;
.l {
width: 114rpx;
height: 114rpx;
margin-right: 25rpx;
image {
width: 100%;
height: 100%;
border-radius: 50%;
}
image{
width: 30rpx;
height: 30rpx;
margin-left: 10rpx;
vertical-align: middle;
}
.r {
flex: 1;
// width: 98rpx;
// overflow: hidden;
.m {
// flex: 1;
// max-width: 400rpx;
// margin-right: 20rpx;
display: flex;
align-items: center;
justify-content: space-between;
.btn {
// width: 98rpx;
padding: 0 10rpx;
height: 56rpx;
line-height: 56rpx;
background: #FFFFFF;
border-radius: 3px 3px 3px 3px;
border: 1px solid #FFA928;
text-align: center;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #FFA928;
&-on {
border-color: #FFA928;
color: #FFA928;
}
}
}
.n {
display: flex;
align-items: center;
justify-content: space-between;
margin-top: 20rpx;
text {
font-size: 28rpx;
color: #454545;
}
image {
width: 40rpx;
height: 40rpx;
margin-left: 10rpx;
vertical-align: middle;
}
}
// image{
// display: block;
// width: 30rpx;
// height: 30rpx;
// float: right;
// margin-top: 20rpx;
// margin-right: 20rpx;
// }
}
// image{
// display: block;
// width: 30rpx;
// height: 30rpx;
// float: right;
// margin-top: 20rpx;
// .m{
// flex: 1;
// max-width: 400rpx;
// margin-right: 20rpx;
// .n{
// font-size: 28rpx;
// font-weight: 400;
// color: #545454;
// height: 50rpx;
// image{
// width: 30rpx;
// height: 30rpx;
// margin-left: 10rpx;
// vertical-align: middle;
// margin-top: -1px;
// }
// }
// }
}
// .m{
// flex: 1;
// max-width: 400rpx;
// margin-right: 20rpx;
// .n{
// font-size: 28rpx;
// font-weight: 400;
// color: #545454;
// height: 50rpx;
// image{
// width: 30rpx;
// height: 30rpx;
// margin-left: 10rpx;
// vertical-align: middle;
// margin-top: -1px;
// }
// }
// }
}
.b{
padding-top: 20rpx;
padding-bottom: 20rpx;
overflow: hidden;
display: flex;
align-items: center;
.l{
flex: 1;
text-align: center;
font-size: 28rpx;
font-weight: 400;
color: #B1B1B1;
text{
font-size: 28rpx;
font-weight: 400;
color: #454545;
display: block;
margin-top: 12rpx;
.b {
padding-top: 20rpx;
padding-bottom: 20rpx;
overflow: hidden;
display: flex;
align-items: center;
.l {
flex: 1;
// text-align: center;
font-size: 28rpx;
font-weight: 400;
color: #B1B1B1;
margin-left: 140rpx;
text {
font-size: 28rpx;
font-weight: 400;
color: #454545;
display: block;
margin-top: 12rpx;
}
}
}
}
}
}
}
</style>

@ -6,27 +6,27 @@
<view class="filterTitle">
请选择分类
</view>
<view class="shopItem">
<view class="" v-for="(item, index) in tabList" :key="index">
<view class="shopText Text" :class="{'active1':activeIndex.indexOf(item.category_id) > -1}"
@click="getShop(item,item.category_id)">
<text style="color: #333;font-weight: 700;">{{ item.name }}</text>
<image v-if="activeIndex.indexOf(item.category_id) > -1"
:src="$picUrl + '/static/news1/selected.png'" mode="widthFix">
</image>
</view>
<view class="shopItem2">
<view class="shopText" :class="{'active2':activeIndex.indexOf(item.category_id) > -1}"
@click="getShop(item,item.category_id)" v-for="(item, index) in item.children"
:key="index">
<text>{{ item.name }}</text>
<scroll-view scroll-y="true" class="shopItem" >
<view class="" v-for="(item, index) in tabList" :key="index">
<view class="shopText Text" :class="{'active1':activeIndex.indexOf(item.category_id) > -1}"
@click="getShop(item,item.category_id)">
<text style="color: #333;font-weight: 700;">{{ item.name }}</text>
<image v-if="activeIndex.indexOf(item.category_id) > -1"
:src="$picUrl + '/static/news1/selected.png'" mode="widthFix">
</image>
</view>
<view class="shopItem2">
<view class="shopText" :class="{'active2':activeIndex.indexOf(item.category_id) > -1}"
@click="getShop(item,item.category_id)" v-for="(item, index) in item.children"
:key="index">
<text>{{ item.name }}</text>
<image v-if="activeIndex.indexOf(item.category_id) > -1"
:src="$picUrl + '/static/news1/selected.png'" mode="widthFix">
</image>
</view>
</view>
</view>
</view>
</view>
</scroll-view>
<view class="btnGroup">
<view class="reset" @click="reset">
重置
@ -80,7 +80,7 @@
background-color: #FF6257 !important;
border-color: #FF6257;
}
.afterSales {
padding: 32upx;
@ -142,7 +142,6 @@
.shopItem {
margin-top: 40rpx;
max-height: 750rpx;
overflow-y: auto;
.shopText {
margin-right: 12rpx;

@ -62,15 +62,17 @@
<view class="price_rat" v-if="type==0">
<view class="price_set">
<view class="price_txt">
<text>最低利润率</text><input type="text" @input="onSetRate" :min="5" style="border: none;height: 60rpx;border-bottom: 1rpx solid #E6E6E6;padding-left: 10rpx;"
placeholder="请输入最低利润率" v-model="min_profit" /><text style="position: absolute;right: 10rpx;">%</text>
<text>最低利润</text><input type="text" @input="onSetRate" :min="5"
style="border: none;height: 60rpx;border-bottom: 1rpx solid #E6E6E6;padding-left: 10rpx;"
placeholder="请输入最低利润" v-model="min_profit" /><text
style="position: absolute;right: 10rpx;"></text>
</view>
<view class="price_bnt" @click="onSubmitProfit" :style="{'opacity': min_profit?1:0.6 }">
确认
</view>
</view>
<view class="ruleText" v-if="type==0">
备注利润低于_____元的商品不展示在商城里
说明低于最低利润的商品不展示在商城里
</view>
</view>
</view>
@ -149,7 +151,7 @@
return this.$toast('最低利率不能低于等于0%')
}
this.min_profit = rate
},
//
async getInfor() {
@ -275,11 +277,17 @@
list: list,
type: this.type
});
console.log(status)
if (status == 200) {
uni.showToast({
title: "保存成功"
title: "保存成功",
duration: 2000,
icon: 'none'
})
this.getCategory()
setTimeout(() => {
this.getCategory()
}, 2000);
}
}
},
@ -305,7 +313,7 @@
//
onRate(e, index_1, index_2) {
let rate = Number(e.detail.value)
if (0 >rate) {
if (0 > rate) {
this.list[this.index_1].price_list[this.index_2].add_price_rate = ''
return this.$toast('最低利率不能低于等于0%')
}
@ -461,7 +469,7 @@
height: 70rpx !important;
line-height: 70rpx !important;
margin-left: 20rpx;
}
::v-deep uni-input {

@ -1,8 +1,8 @@
<template>
<view class="container">
<view class="search">
<image :src="$picUrl+'/static/home/search.png'" mode="" class="searchIcon"></image>
<input v-model="searchValue" class="input" focus="true" placeholder="请输入您搜索的商品" type="text" />
<image :src="$picUrl+'/static/home/search.png'" mode="" class="searchIcon"></image>
<input v-model="searchValue" class="input" focus="true" placeholder="iPhone15" type="text" />
<view class="searchBtn" @click="getSearchInfo">
搜索
</view>
@ -10,19 +10,21 @@
<view class="find">
<view class="findTitle">
<text>搜索发现</text>
<image src="/static/search/openEye.png" mode="widthFix" class="findIcon" v-if="showEye" @click="showEye=!showEye">
<image src="/static/search/openEye.png" mode="widthFix" class="findIcon" v-if="showEye"
@click="showEye=!showEye">
</image>
<image src="/static/search/closeEye.png" mode="widthFix" class="findIcon" v-if="!showEye" @click="showEye=!showEye">
<image src="/static/search/closeEye.png" mode="widthFix" class="findIcon" v-if="!showEye"
@click="showEye=!showEye">
</image>
</view>
<view class="others" @click="getHot">
<!-- <view class="others" @click="getHot">
换一批
</view>
</view> -->
</view>
<view class="hotSearch" v-if="showEye">
<view v-for="(item,index) in searchFindList" :key="index" class="hotItem" @click="searchGoods(item)">
<view v-for="(item,index) in searchList" :key="index" class="hotItem" @click="searchGoods(item)">
<image src="/static/user/hot.png" mode="" class="hotImg" v-if="index==0"></image>
<text>{{item.word}}</text>
<text>{{item}}</text>
</view>
</view>
<view class="hotSuggest">
@ -32,7 +34,8 @@
<image src="/static/search/hotImg.png" mode="widthFix"></image>
<view class="headTitle">{{item.name}}</view>
</view>
<view class="itemMain" v-for="(s,k) in item.goods_list.slice(0,5)" :key="k">
<view class="itemMain" v-for="(s,k) in item.goods_list.slice(0,5)" :key="k"
@click="handleTargetGoods(s.goods_id)">
<view class="num1 numCommon" v-if="k==0">
<text>{{k+1}}</text>
</view>
@ -45,9 +48,9 @@
<view class="num4 numCommon" v-if="k>2">
<text>{{k+1}}</text>
</view>
<view class="picContent" v-if="k<3">
<view class="picContent" v-if="k<3">
<!-- <image :src="$picUrl+'/static/index/goods.png'" mode="aspectFit" class="goodsImg"></image> -->
<image :src="s.goods_image" mode="aspectFit" class="goodsImg"></image>
<image :src="s.goods_image" mode="aspectFit" class="goodsImg"></image>
</view>
<view class="goodsInfo">
<view class="goodName">
@ -70,21 +73,22 @@
data() {
return {
showEye: true,
searchValue: 'iPhone15',
searchValue: '',
searchData: [],
searchList: [],
searchFindList:[],
page:1,
goodsList:[],
searchFindList: [],
page: 1,
goodsList: [],
}
},
onShow() {
// if(uni.getStorageSync('searchList')){
// this.searchList = uni.getStorageSync('searchList')
// this.searchList = Array.from(new Set(this.searchList));
// }
if (uni.getStorageSync('searchList')) {
this.searchList = uni.getStorageSync('searchList')
this.searchList = Array.from(new Set(this.searchList));
this.searchList=this.searchList.length>0?this.searchList.slice(0,6):[]
}
},
onLoad() {
this.getHot()
@ -92,49 +96,58 @@
},
methods: {
changePage(){
GoodsApi.searchFind({page:this.page}).then(res => {
if(res.data.length==0){
this.page=1;
}else{
//
handleTargetGoods(sharpGoodsId) {
uni.navigateTo({
url: '/pages/goods/detail?goodsId=' + sharpGoodsId
})
},
changePage() {
GoodsApi.searchFind({
page: this.page
}).then(res => {
if (res.data.length == 0) {
this.page = 1;
} else {
this.page++
}
this.getHot()
})
},
getHot(){
GoodsApi.searchFind({page:this.page}).then(res => {
if(res.data.length==0){
this.page=1;
}else{
getHot() {
GoodsApi.searchFind({
page: this.page
}).then(res => {
if (res.data.length == 0) {
this.page = 1;
this.$toast('暂无其他搜索发现')
} else {
this.page++;
this.searchFindList = res.data;
}
})
},
searchGoods(item){
// this.searchList.push(this.searchValue)
// this.searchList = Array.from(new Set(this.searchList));
// uni.setStorageSync('searchList', this.searchList)
searchGoods(item) {
uni.navigateTo({
url: '/pages/goods/list?search=' + item.word
url: '/pages/goods/list?search=' + item
})
},
getSearchInfo() {
//
this.searchList.push(this.searchValue)
this.searchList = Array.from(new Set(this.searchList));
uni.setStorageSync('searchList', this.searchList)
uni.navigateTo({
url: '/pages/goods/list?search=' + this.searchValue
})
},
chartsGoodsJingHandle(){
chartsGoodsJingHandle() {
GoodsApi.chartsGoodsJingApi().then(res => {
console.log(res,"8899")
this.goodsList = res.data;
})
}
}
}
@ -157,7 +170,7 @@
// margin: 10rpx 0 0 20rpx;
display: flex;
align-items: center;
margin:0 40rpx;
margin: 0 40rpx;
.searchIcon {
width: 28rpx;
@ -191,9 +204,11 @@
display: flex;
justify-content: space-between;
align-items: center;
margin:0 40rpx;
margin: 0 40rpx;
margin-top: 44rpx;
.findTitle {
// width: 200rpx;
// height: 44rpx;
// font-size: 32rpx;
@ -202,7 +217,7 @@
// color: #000000;
// line-height: 44rpx;
// margin-left: 40rpx;
&>text{
&>text {
font-size: 32rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
@ -215,14 +230,14 @@
border-radius: 0rpx 0rpx 0rpx 0rpx;
opacity: 1;
margin-left: 22rpx;
margin-top:3rpx;
margin-top: 3rpx;
position: relative;
top:4rpx;
top: 4rpx;
}
}
.others {
font-size: 24rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
@ -235,18 +250,18 @@
display: flex;
align-items: center;
flex-wrap: wrap;
margin:0 40rpx;
margin: 0 40rpx;
margin-top: 20rpx;
justify-content: space-between;
// justify-content: space-between;
.hotItem {
padding:10rpx 30rpx;
padding: 10rpx 30rpx;
background: #FFFFFF;
border-radius: 34px 34px 34px 34px;
opacity: 1;
display: flex;
align-items: center;
margin-left:12rpx;
margin-left: 12rpx;
// margin:0 20rpx;
margin-bottom: 24rpx;
// height: 64rpx;
@ -274,9 +289,10 @@
.hotSuggest {
width: 100%;
// margin-left: 32rpx;
margin-top:12rpx;
margin-left:40rpx;
margin-top: 12rpx;
margin-left: 40rpx;
padding-right: 40rpx;
.hotList {
width: 100%;
white-space: nowrap;
@ -291,25 +307,26 @@
background-size: 100% 100%;
border-radius: 8rpx 8rpx 8rpx 8rpx;
opacity: 1;
padding:18rpx 20rpx 48rpx 20rpx;
padding: 18rpx 20rpx 48rpx 20rpx;
// border: 2rpx solid #FFFFFF;
.itemHeade {
display: flex;
align-items: center;
margin-bottom:46rpx;
margin-bottom: 46rpx;
image {
width: 48rpx;
height: auto;
}
.headTitle {
font-size: 28rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 600;
color: #F3202A;
margin-left:14rpx;
margin-left: 14rpx;
}
}
@ -333,9 +350,10 @@
align-items: center;
justify-content: center;
flex-shrink: 0;
text{
text {
position: relative;
left:-1rpx;
left: -1rpx;
}
}
@ -354,26 +372,29 @@
.num4 {
background-image: url('/static/search/common.png');
}
.picContent{
.picContent {
width: 100rpx;
height: 90rpx;
border-radius: 8rpx 8rpx 8rpx 8rpx;
overflow: hidden;
margin-left: 10rpx;
flex-shrink: 0;
.goodsImg {
width: 100%;
height:100%;
height: 100%;
// opacity: 1;
//
}
}
.goodsInfo {
margin-left: 18rpx;
width: calc(100% - 160rpx);
.goodName {
// width: 138rpx;
// height: 34rpx;
@ -406,4 +427,4 @@
}
}
}
</style>
</style>

@ -1,7 +1,7 @@
<template>
<view class="serve">
<view class="heade">
<image :src="$picUrl+'/static/serve/serveBack.png'" mode="" class="headImage"></image>
<image :src="$picUrl+'/static/serve/serveBack.png?t='+timestamp" mode="" class="headImage"></image>
<view class="group">
<image :src="$picUrl+'/static/serve/right.png'" class="tip tipImg"></image>
<text lines="1" class="groupText">不满意重做</text>
@ -65,7 +65,8 @@
data (){
return{
list: [],
userInfo: {}
userInfo: {},
timestamp: new Date().getTime(),
}
},
mounted() {

@ -17,7 +17,7 @@
<text lines="1" class="text-group_1">{{userInfo.nick_name}}</text>
<image :src="$picUrl+'/static/user/weChat.png'" class="thumbnail_1"></image>
</button>
<view class="text-wrapper_1" v-if="isLogin" @click="wechatLogin">
<view class="text-wrapper_1" :style="{'width': userInfo.user_type==20?'130rpx':'100rpx' }" v-if="isLogin" @click="wechatLogin">
<text lines="1" class="text_1" v-if="userInfo.user_type==40">店长</text>
<text lines="1" class="text_1" v-else-if="userInfo.user_type==30">分销</text>
<text lines="1" class="text_1" v-else-if="userInfo.user_type==20">Plus会员</text>
@ -27,7 +27,7 @@
<view style="display: flex; flex: 1; justify-content: flex-end;">
<view class="group_2">
<image :src="$picUrl+'/static/home/news.png'" class="thumbnail"></image>
<text lines="1" class="text_2">客服</text>
<text lines="1" class="text_2">消息</text>
<button open-type="contact" v-if="isLogin"></button>
</view>
<!-- / -->

Loading…
Cancel
Save