小程序风格样式

version/0412
wangdong 7 months ago
parent ae43c80dc8
commit 54b2d0579e
  1. 4
      api/home/index.js
  2. 17
      api/shop/index.js
  3. 4
      config.js
  4. 236
      pages.json
  5. 2
      pages/activity/newGoods.vue
  6. 2
      pages/activity/newPeople.vue
  7. 2
      pages/activity/presale.vue
  8. 2
      pages/activity/ranking.vue
  9. 4
      pages/activity/seckill.vue
  10. 336
      pages/feedback/form.vue
  11. 56
      pages/feedback/index.vue
  12. 226
      pages/feedback/list.vue
  13. 15
      pages/index/index.vue
  14. 3
      pages/invite/index.vue
  15. 3
      pages/news/coupon/index.vue
  16. 70
      pages/shopList/certificate.vue
  17. 140
      pages/shopList/index.vue
  18. 429
      pages/shopList/shopPage.vue
  19. 5
      pages/squareDynamic/index.vue
  20. 17
      pages/squareDynamic/publish.vue
  21. 5
      pages/styleColor.js
  22. 2
      pages/user/index - 副本.vue
  23. 2
      pages/user/personal/index.vue
  24. 2
      pages/wallet/index.vue
  25. BIN
      static/background/user-header2.png
  26. BIN
      static/cer.png
  27. BIN
      static/dynamic-banner.png
  28. BIN
      static/feedback.png
  29. BIN
      static/feedback/circle-choose.png
  30. BIN
      static/feedback/circle.png
  31. BIN
      static/feedback/photo.png
  32. BIN
      static/myFeedback.png
  33. BIN
      static/publish-banner.png
  34. BIN
      static/right.png
  35. BIN
      static/seckill/topHeader.png
  36. BIN
      static/success.png
  37. BIN
      static/wallet.png

@ -15,6 +15,10 @@ const api = {
export const wxAppSetting = (param, option) => {
return request.post('index/wxAppSetting', param, option)
}
// 小程序风格
export const wxAppStyle = (param, option) => {
return request.post('/merchant/getPageStyle', param, option)
}
// benner列表
export const getBannerList = (param, option) => {
return request.get(api.getBannerList, param, option)

@ -0,0 +1,17 @@
import request from '@/utils/request'
// api地址
const api = {
getShopList: 'merchant/list',
getShopDetail: 'merchant/detail'
}
// 商户列表
export function getShopList(param) {
return request.get(api.getShopList, { ...param })
}
// 商户详情
export function getShopDetail(param) {
return request.get(api.getShopDetail, { ...param })
}

@ -7,7 +7,9 @@ export default {
* 后端api地址 (必填; 斜杠/结尾; 请确保能访问)
* 例如: https://www.你的域名.com/index.php?s=/api/
*/
apiUrl: "https://www.royaum.com.cn/index.php?s=/api/",
// apiUrl: "https://www.royaum.com.cn/index.php?s=/api/",
apiUrl: "https://test-www.royaum.com.cn/index.php?s=/api/",
picUrl:'https://www.royaum.com.cn',
/**

@ -15,7 +15,6 @@
"selectedIconPath": "static/tabbar/cate-active.png",
"text": "分类"
}, {
// "pagePath": "pages/serve/index",
"pagePath": "pages/shopList/index",
"iconPath": "static/tabbar/serve.png",
"selectedIconPath": "static/tabbar/serve-active.png",
@ -41,13 +40,6 @@
"navigationStyle": "custom"
}
},
{
"path": "pages/serve/index",
"style": {
"enablePullDownRefresh": false,
"navigationBarTitleText": "服务"
}
},
{
"path": "pages/category/index",
"style": {
@ -72,13 +64,6 @@
}
}
},
{
"path": "pages/serve/install",
"style": {
"enablePullDownRefresh": false,
"navigationBarTitleText": "安装报修"
}
},
{
"path": "pages/member/index",
"style": {
@ -205,30 +190,6 @@
"navigationBarTitleText": "账单明细"
}
},
{
"path": "pages/wallet/index",
"style": {
"navigationBarTitleText": "我的钱包"
}
},
{
"path": "pages/wallet/balance/log",
"style": {
"navigationBarTitleText": "账单详情"
}
},
{
"path": "pages/wallet/recharge/index",
"style": {
"navigationBarTitleText": "充值中心"
}
},
{
"path": "pages/wallet/recharge/order",
"style": {
"navigationBarTitleText": "充值记录"
}
},
{
"path": "pages/checkout/index",
"style": {
@ -345,48 +306,6 @@
"navigationBarTitleText": "直播列表",
"enablePullDownRefresh": true
}
}, {
"path": "pages/invoice/index",
"style": {
"navigationBarTitleText": "我的发票抬头",
"enablePullDownRefresh": false
}
}, {
"path": "pages/invoice/indexset",
"style": {
"navigationBarTitleText": "发票助手",
"enablePullDownRefresh": false
}
}, {
"path": "pages/invoice/detail",
"style": {
"navigationBarTitleText": "我的发票抬头",
"enablePullDownRefresh": false
}
}, {
"path": "pages/invoice/edit",
"style": {
"navigationBarTitleText": "申请发票",
"enablePullDownRefresh": false
}
}, {
"path": "pages/invoice/editset",
"style": {
"navigationBarTitleText": "发票抬头",
"enablePullDownRefresh": false
}
}, {
"path": "pages/invoice/list",
"style": {
"navigationBarTitleText": "申请记录",
"enablePullDownRefresh": false
}
}, {
"path": "pages/user/vip/goods",
"style": {
@ -407,18 +326,10 @@
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},
{
"path": "pages/squareDynamic/index",
"style": {
"navigationBarTitleText": "广场动态",
"enablePullDownRefresh": false
}
},
{
"path": "pages/squareDynamic/publish",
},{
"path": "pages/shopList/certificate",
"style": {
"navigationBarTitleText": "发布",
"navigationBarTitleText": "营业执照",
"enablePullDownRefresh": false
}
}
@ -781,6 +692,147 @@
}
]
},
{
"root": "pages/invoice/",
"pages": [
{
"path": "index",
"style": {
"navigationBarTitleText": "我的发票抬头",
"enablePullDownRefresh": false
}
}, {
"path": "indexset",
"style": {
"navigationBarTitleText": "发票助手",
"enablePullDownRefresh": false
}
}, {
"path": "detail",
"style": {
"navigationBarTitleText": "我的发票抬头",
"enablePullDownRefresh": false
}
}, {
"path": "edit",
"style": {
"navigationBarTitleText": "申请发票",
"enablePullDownRefresh": false
}
}, {
"path": "editset",
"style": {
"navigationBarTitleText": "发票抬头",
"enablePullDownRefresh": false
}
}, {
"path": "list",
"style": {
"navigationBarTitleText": "申请记录",
"enablePullDownRefresh": false
}
}
]
},
{
"root": "pages/squareDynamic/",
"pages": [
{
"path": "index",
"style": {
"navigationBarTitleText": "广场动态",
"enablePullDownRefresh": false
}
},
{
"path": "publish",
"style": {
"navigationBarTitleText": "发布",
"enablePullDownRefresh": false
}
}
]
},
{
"root": "pages/feedback/",
"pages": [
{
"path": "index",
"style": {
"navigationBarTitleText": "意见反馈",
"enablePullDownRefresh": false
}
},
{
"path": "form",
"style": {
"navigationBarTitleText": "意见反馈",
"enablePullDownRefresh": false
}
},
{
"path": "list",
"style": {
"navigationBarTitleText": "我的反馈",
"enablePullDownRefresh": false
}
}
]
},
{
"root": "pages/serve/",
"pages": [
{
"path": "index",
"style": {
"enablePullDownRefresh": false,
"navigationBarTitleText": "服务"
}
},
{
"path": "install",
"style": {
"enablePullDownRefresh": false,
"navigationBarTitleText": "安装报修"
}
}
]
},
{
"root": "pages/wallet/",
"pages": [
{
"path": "index",
"style": {
"navigationBarTitleText": "我的钱包"
}
},
{
"path": "balance/log",
"style": {
"navigationBarTitleText": "账单详情"
}
},
{
"path": "recharge/index",
"style": {
"navigationBarTitleText": "充值中心"
}
},
{
"path": "recharge/order",
"style": {
"navigationBarTitleText": "充值记录"
}
}
]
},
{
"root": "pages/bargain/",
"pages": [{

@ -73,7 +73,7 @@
},
computed: {
styleIndex() {
const index = 5;
const index = uni.getStorageSync('styleIndex') || '';
return index;
},
},

@ -89,7 +89,7 @@
},
computed: {
styleIndex() {
const index = 1;
const index = uni.getStorageSync('styleIndex') || '';
return index;
},
},

@ -55,7 +55,7 @@
},
computed: {
styleIndex() {
const index = 1;
const index = uni.getStorageSync('styleIndex') || '';
return index;
},
},

@ -101,7 +101,7 @@
},
computed: {
styleIndex() {
const index = 2;
const index = uni.getStorageSync('styleIndex') || '';
return index;
},
},

@ -5,7 +5,7 @@
:background="background"></u-navbar>
</view>
<view class="title" :style="{backgroundImage:'url('+backgroundImg+')'}" style="background-size: 100% 100%;">
<image v-if="!styleIndex" src="/static/seckill/topHeader.png" mode="" class="bgImg"></image>
<image v-if="!styleIndex" :src="$picUrl+ '/static/seckill/topHeader.png'" mode="" class="bgImg"></image>
<view v-if="!styleIndex" class="limitTitle">
<image src="/static/seckill/limit.png" mode="" class="img"></image>
</view>
@ -131,7 +131,7 @@
},
computed: {
styleIndex() {
const index = 5;
const index = uni.getStorageSync('styleIndex') || '';
return index;
},
},

@ -0,0 +1,336 @@
<template>
<view class="container">
<view class="form">
<view class="form-item">
<view class="form-item-label">
<text class="label-flag">*</text>问题类型
</view>
<view class="form-item-content">
<view v-for="(item, index) in typeList" class="type" @click="form.type = item">
<image v-if="form.type !== item" src="/static/feedback/circle.png" mode="aspectFill"></image>
<image v-else src="/static/feedback/circle-choose.png" mode="aspectFill"></image>
{{ item }}
</view>
</view>
</view>
<view class="form-item">
<view class="form-item-label">
<text class="label-flag">*</text>反馈与建议
</view>
<view class="form-item-content">
<view class="textarea-box">
<textarea v-model="form.suggest" placeholder="您填写的信息越全,越有利于问题得到快速解决~" placeholder-class="textarea-placeholer" maxlength="299" />
<view class="text-num">已写<text>{{ form.suggest.length }}</text>/299个字</view>
</view>
<view class="image-list">
<view v-for="(item, index) in form.images" :key="index" class="image">
<image :src="item" mode="aspectFill" @click="previewImage(item)"></image>
<image src="/static/delete.png" mode="aspectFill" class="delete" @click.stop="deleteImage(index)"></image>
</view>
<view v-if="form.images.length < 5" class="upload-btn">
<image src="/static/feedback/photo.png" mode="aspectFill"></image>
<view class="tip">添加照片</view>
<view class="sub-tip">最多5张</view>
</view>
<view class="image-num"><text>{{ form.images.length }}</text>/5</view>
</view>
</view>
</view>
<view class="form-item">
<view class="form-item-content" style="padding: 0 30rpx;">
<view class="content-info">
<view class="info-name">您的姓名</view>
<input type="text" v-model="form.name" placeholder="请填写您的名字" placeholder-class="input-placeholder" />
</view>
<view class="content-info">
<view class="info-name">您的电话</view>
<input type="number" v-model="form.phone" placeholder="请填写可以联系到您的手机号码" placeholder-class="input-placeholder" />
</view>
<view class="content-info">
<view class="info-name">您的单位</view>
<input type="text" v-model="form.unit" placeholder="请填写您商城认证的营业执照名称" placeholder-class="input-placeholder" />
</view>
</view>
</view>
</view>
<view class="submit" @click="submit">提交</view>
</view>
</template>
<script>
export default {
data() {
return {
typeList: [
'功能异常:系统功能异常或不可用',
'系统建议:用的不爽,我有建议',
'功能新增:我想用的功能,希望能开发新增',
'服务建议:服务商服务不到位,我有建议',
],
form: {
type: '',
suggest: '',
images: [],
uploadImage: [],
name: '',
phone: '',
unit: '',
}
};
},
methods: {
addImage() {
const that = this;
uni.chooseImage({
count: 1,
sizeType: ['original', 'compressed'], //
sourceType: ['album', 'camera'], //
success({
tempFiles
}) {
console.log(that.form.images);
that.form.images.push(tempFiles[0].path)
that.upload(tempFiles[0])
}
});
},
async upload(path) {
const that = this;
//
return new Promise((resolve, reject) => {
if (path) {
UploadApi.image([path])
.then(fileIds => {
console.log(fileIds);
that.uploadImages.push(fileIds);
resolve(fileIds)
})
.catch(reject)
} else {
resolve()
}
})
},
deleteImage(index) {
this.form.images.splice(index, 1);
this.form.uploadImages.splice(index, 1);
},
previewImage(item) {
uni.previewImage({
urls:this.form.images,
});
},
submit() {
if (!this.form.type) {
uni.showModal({
title: '提示',
content: '请选择问题类型',
showCancel: false,
});
return false;
}
if (!this.form.suggest) {
uni.showModal({
title: '提示',
content: '请填写反馈与建议',
showCancel: false,
});
return false;
}
if (this.form.uploadImages.length === 0) {
uni.showModal({
title: '提示',
content: '请上传图片',
showCancel: false,
});
return false;
}
if (!this.form.name) {
uni.showModal({
title: '提示',
content: '请填写您的姓名',
showCancel: false,
});
return false;
}
if (!this.form.phone) {
uni.showModal({
title: '提示',
content: '请填写您的手机号码',
showCancel: false,
});
return false;
} else if (!/^1[3-9]\d{9}$/.test(this.form.phone)) {
uni.showModal({
title: '提示',
content: '请填写正确格式的手机号码',
showCancel: false,
});
return false;
}
if (!this.form.unit) {
uni.showModal({
title: '提示',
content: '请填写您的单位',
showCancel: false,
});
return false;
}
},
},
};
</script>
<style lang="scss" scoped>
.container {
padding: 24rpx 24rpx 42rpx;
.form {
&-item {
margin-bottom: 40rpx;
&:last-child {
margin-bottom: 0;
}
&-label {
font-size: 30rpx;
color: #333;
margin-bottom: 30rpx;
.label-flag {
color: #F34A40;
}
}
&-content {
background: #fff;
border-radius: 20rpx;
padding: 40rpx 30rpx;
font-size: 30rpx;
color: #333;
.textarea-box {
position: relative;
.text-num {
position: absolute;
right: 31rpx;
bottom: 29rpx;
font-size: 24rpx;
line-height: 24rpx;
color: #999;
text {
color: #F34A40;
}
}
}
textarea {
height: 215rpx;
background: #F7F8FA;
border-radius: 10rpx;
padding: 20rpx;
}
.textarea-placeholer {
color: #ccc;
font-size: 24rpx;
}
.type {
display: flex;
align-items: center;
margin-bottom: 40rpx;
&:last-child {
margin-bottom: 0;
}
>image {
width: 36rpx;
height: 36rpx;
margin-right: 20rpx;
}
}
.image-list {
display: flex;
flex-wrap: wrap;
position: relative;
margin-top: 20rpx;
.image {
width: 140rpx;
height: 140rpx;
background: #FFFFFF;
border-radius: 10rpx;
border: 1px solid #CCCCCC;
margin-right: 15rpx;
margin-bottom: 20rpx;
position: relative;
.delete {
width: 30rpx;
height: 30rpx;
position: absolute;
top: 0;
right: 0;
}
>image {
width: 100%;
height: 100%;
}
}
.upload-btn {
width: 140rpx;
height: 140rpx;
background: #FFFFFF;
border-radius: 10rpx;
border: 1px solid #CCCCCC;
display: flex;
flex-direction: column;
align-items: center;
padding-top: 20rpx;
>image {
width: 45rpx;
height: 37rpx;
}
.tip {
font-size: 24rpx;
line-height: 24rpx;
margin: 13rpx;
}
.sub-tip {
font-size: 22rpx;
line-height: 22rpx;
color: #999999;
}
}
.image-num {
position: absolute;
right: 0rpx;
bottom: 20rpx;
font-size: 24rpx;
line-height: 24rpx;
color: #999;
text {
color: #F34A40;
}
}
}
.content-info {
border-bottom: 1rpx solid #EAEAEA;
display: flex;
align-items: center;
height: 98rpx;
.info-name {
margin-right: 40rpx;
}
uni-input {
flex: 1;
}
.input-placeholder {
color: #CCCCCC;
}
}
}
}
}
.submit {
height: 98rpx;
background: #F34A40;
border-radius: 49rpx;
color: #FFFFFF;
font-size: 30rpx;
line-height: 98rpx;
text-align: center;
margin-top: 30rpx;
}
}
</style>

@ -0,0 +1,56 @@
<template>
<view class="container">
<view class="item" @click="toForm">
<image src="/static/feedback.png" mode="aspectFill"></image>
<view class="name">意见反馈</view>
<image src="/static/right.png" mode="aspectFill"></image>
</view>
<view class="item" @click="toMy">
<image src="/static/myFeedback.png" mode="aspectFill"></image>
<view class="name">我的反馈</view>
<image src="/static/right.png" mode="aspectFill"></image>
</view>
</view>
</template>
<script>
export default {
methods: {
toForm() {
uni.navigateTo({
url: '/pages/feedback/form'
});
},
toMy() {
uni.navigateTo({
url: '/pages/feedback/list',
});
},
},
};
</script>
<style lang="scss" scoped>
.container {
padding: 20rpx 24rpx;
.item {
padding: 0 13rpx 0 30rpx;
width: 702rpx;
height: 130rpx;
background: #fff;
display: flex;
align-items: center;
margin-bottom: 20rpx;
>image {
width: 44rpx;
height: 44rpx;
}
.name {
margin-left: 22rpx;
margin-right: auto;
color: #333333;
font-size: 30rpx;
}
}
}
</style>

@ -0,0 +1,226 @@
<template>
<view class="container">
<view v-if="list && list.length > 0" class="f-list">
<view v-for="(item, index) in list" :key="index" class="f-item">
<view class="f-top">
<view class="top-type">
<view class="type-info">您的反馈{{ item.type }}</view>
<text :class="{ 'ing': item.status !== 1 }">{{ item.status === 1 ? '已完成' : '受理中' }}</text>
</view>
<view class="top-suggest">
<view class="suggest" :class="{'suggest-mask': !item.openSuggest }">
{{ item.suggest }}
<view v-if="!item.openSuggest" class="mask"></view>
</view>
<view class="btn" @click="item.openSuggest = !item.openSuggest">
{{ item.openSuggest ? '收起' : '展开' }}
<image src="/static/arrow-right.png" mode="aspectFill" :style="{ transform: `rotate(${item.openSuggest ? '-90deg': '90deg'})`}"></image>
</view>
</view>
<view class="time">{{ item.create_time }}</view>
</view>
<view v-if="item.status === 1" class="f-bottom">
<view class="title">
处理结果
<view class="btn" @click="item.openResult = !item.openResult">
{{ item.openResult ? '收起' : '展开' }}
<image src="/static/arrow-right.png" mode="aspectFill" :style="{ transform: `rotate(${item.openResult ? '-90deg': '90deg'})`}"></image>
</view>
</view>
<view class="result" style="margin-bottom: 30rpx;">
<view class="result-label">处理时间</view>
<view class="result-content" style="color: #333;">{{ item.solveTime }}</view>
</view>
<view class="result">
<view class="result-label">回复内容</view>
<view class="result-content" :class="{'result-mask': !item.openResult }">
{{ item.solveResult }}
<view v-if="!item.openResult" class="mask"></view>
</view>
</view>
</view>
</view>
</view>
<view v-if="list && list.length === 0" class="none">
<image :src="$picUrl+'/static/f-none.png'" mode="aspectFill"></image>
<view class="none-tip">还没有反馈内容哦~</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
list: [
{
type: '系统功能异常或不可用',
suggest: '点击退款按钮,系统一直转圈,没有反应,请尽快修复解决,另外,系统上能否对接更多好资源。有时候系统打开会显示一直在加载中,不知道是什么原因有时候又没有这个情况。',
create_time: '2024-04-01 20:22:31',
status: 0,
solveTime: '2024-04-01 20:22:31',
solveResult: '您好,您反馈的系统问题,我们已经修复,请您删除下小程序,再重新搜索进入小程序即可。供应链系统资源我们-直都在努力对接中,感谢您',
openSuggest: false,
openResult: false,
},
{
type: '系统功能异常或不可用系统功能异常或不可用系统功能异常或不可用',
suggest: '点击退款按钮,系统一直转圈,没有反应,请尽快修复解决,另外,系统上能否对接更多好资源。有时候系统打开会显示一直在加载中,不知道是什么原因有时候又没有这个情况。',
create_time: '2024-04-01 20:22:31',
status: 1,
solveTime: '2024-04-01 20:22:31',
solveResult: '您好,您反馈的系统问题,我们已经修复,请您删除下小程序,再重新搜索进入小程序即可。供应链系统资源我们-直都在努力对接中,感谢您',
openSuggest: false,
openResult: false,
}
],
};
},
};
</script>
<style lang="scss" scoped>
.container {
padding: 20rpx 24rpx;
.f-list {
.f-item {
padding: 30rpx;
margin-bottom: 20rpx;
background: #fff;
.f-top {
.top-type {
display: flex;
margin-bottom: 27rpx;
.type-info {
color: #333333;
font-size: 30rpx;
width: calc(100% - 130rpx);
}
uni-text {
width: 90rpx;
height: 40rpx;
background: #EFFBF7;
border-radius: 10rpx;
text-align: center;
line-height: 40rpx;
font-size: 24rpx;
color: #52BC8C;
margin-left: 40rpx;
&.ing {
color: #fff;
background: #FB6569;
}
}
}
.top-suggest {
display: flex;
flex-direction: column;
align-items: center;
.suggest {
font-size: 26rpx;
color: #666;
line-height: 32rpx;
position: relative;
&.suggest-mask {
height: 64rpx;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
text-overflow: ellipsis;
}
.mask {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(to bottom, transparent 0 , rgba(255, 255, 255, 0.8) 100%);
}
}
}
.btn {
color: #666;
font-size: 26rpx;
margin-top: 30rpx;
>image {
width: 11rpx;
height: 20rpx;
margin-left: 10rpx;
}
}
.time {
color: #999999;
font-size: 26rpx;
margin-bottom: 30rpx;
}
}
.f-bottom {
border-top: 1px solid #EAEAEA;
padding-top: 30rpx;
.title {
display: flex;
align-items: center;
color: #333333;
font-size: 30rpx;
margin-bottom: 30rpx;
.btn {
color: #666;
font-size: 26rpx;
margin-left: auto;
>image {
width: 11rpx;
height: 20rpx;
margin-left: 10rpx;
}
}
}
.result {
display: flex;
font-size: 26rpx;
.result-label {
flex-shrink: 0;
color: #999999;
}
.result-content {
flex: 1;
color: #666666;
position: relative;
&.result-mask {
height: 64rpx;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
text-overflow: ellipsis;
}
.mask {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(to bottom, transparent 0 , rgba(255, 255, 255, 0.8) 100%);
}
}
}
}
}
}
.none {
display: flex;
flex-direction: column;
align-items: center;
padding-top: 152rpx;
>image {
width: 400rpx;
height: 348rpx;
}
.none-tip {
color: #222222;
font-size: 30rpx;
margin-top: 14rpx;
}
}
}
</style>

@ -643,7 +643,7 @@
},
computed: {
styleIndex() {
const index = 4;
const index = uni.getStorageSync('styleIndex') || '';
return index;
},
tabActiveColor() {
@ -676,6 +676,16 @@
}]
}
},
async getWxAppStyle() {
let {
status,
data
} = await GoodsApi.wxAppStyle({});
if (status == 200) {
console.log(data);
uni.setStorageSync('styleIndex', data.detail || '');
}
},
onChangeSeckillCutDownTime(e) {
this.timeData = e
},
@ -1139,9 +1149,10 @@
this.queryBannerList();
this.getStore();
this.queryWxAppSetting();
this.getAuthorize()
this.getAuthorize();
},
onShow() {
this.getWxAppStyle();
this.isLogin = uni.getStorageSync("AccessToken") ? true : false
},
onPageScroll(e) {

@ -111,7 +111,7 @@
},
computed: {
styleIndex() {
const index = 4;
const index = uni.getStorageSync('styleIndex') || '';
return index;
},
},
@ -120,6 +120,7 @@
immediate: true,
handler() {
uni.setNavigationBarColor({
frontColor: '#ffffff',
backgroundColor: this.styleIndex > 0 ? styleColor.inviteNavBgColor[this.styleIndex - 1] : '#FF4A49',
})
},

@ -48,7 +48,7 @@
},
computed: {
styleIndex() {
const index = 5;
const index = uni.getStorageSync('styleIndex') || '';
return index;
},
},
@ -57,6 +57,7 @@
immediate: true,
handler() {
uni.setNavigationBarColor({
frontColor: '#ffffff',
backgroundColor: this.styleIndex > 0 ? styleColor.couponNavBgColor[this.styleIndex - 1] : '#FB3A22',
})
},

@ -0,0 +1,70 @@
<template>
<view class="container">
<view class="cer-box">
<view class="name">企业信息如下</view>
<view class="cer-list">
<image v-for="(item, index) in cerList" :key="index" :src="item" mode="aspectFill" @click="previewImage(index)"></image>
</view>
</view>
</view>
</template>
<script>
import * as Api from '@/api/shop/index';
export default {
data() {
return {
cerList: ['', '', '', '', '']
};
},
onLoad({ id }) {
this.id = id;
this.getShopDetail();
},
methods: {
async getShopDetail() {
Api.getShopDetail({
id: this.id
})
.then(result => {
console.log(result);
})
.finally(() => this.loading = false)
},
previewImage(idx) {
uni.previewImage({
current: idx,
urls: this.cerList,
})
},
},
};
</script>
<style lang="scss" scoped>
.container {
padding: 20rpx 24rpx;
.cer-box {
background: #fff;
padding: 30rpx;
.name {
color: #222222;
font-size: 34rpx;
text-align: center;
margin-bottom: 30rpx;
font-weight: bold;
}
.cer-list {
display: flex;
flex-wrap: wrap;
justify-content: space-evenly;
image {
width: 250rpx;
height: 250rpx;
margin-bottom: 30rpx;
border: 1rpx solid #eee;
}
}
}
}
</style>

@ -17,21 +17,21 @@
<view class="list">
<view v-for="(item, index) in shopsList" class="shop-item">
<view class="shop-info">
<image :src="item.logo" mode="aspectFill" class="logo"></image>
<image :src="item.logoImage.external_url" mode="aspectFill" class="logo"></image>
<view class="info-box">
<view class="info-top">
<text class="name">{{ item.name }}</text>
<text class="label">{{ item.label }}</text>
<text class="name">{{ item.shop_name }}</text>
<text class="label">{{ item.shop_label }}</text>
</view>
<view class="info-bottom">
<view class="score"><uni-rate :readonly="true" :value="item.score" />{{ item.score }}</view>
<view class="distance">{{ item.distance }}km</view>
<!-- <view class="distance">{{ item.distance }}km</view> -->
</view>
</view>
<view class="toShop">进店</view>
<view class="toShop" @click="toShop(item)">进店</view>
</view>
<view class="shop-goods-list">
<view v-for="(good, k) in item.goods" class="good-item">
<view v-if="item.goods && item.goods.length > 0" class="shop-goods-list">
<view v-for="(good, k) in item.goods" :key="k" class="good-item">
<image :src="good.pic" mode="aspectFill" class="good-pic"></image>
<view class="price">{{ good.price }}</view>
</view>
@ -47,10 +47,10 @@
</template>
<script>
// import { getshopsList, joinCart } from "@/api/store";
import { debounce } from 'lodash';
import styleColor from '../styleColor';
import UniRate from '../../uni_modules/uni-rate/components/uni-rate/uni-rate.vue';
import * as Api from '@/api/shop/index'
export default {
components: {
@ -62,27 +62,27 @@
categoryId: '',
activeFilter: '默认',
shopsList: [
{
logo: '',
name: '小米旗舰店',
label: '官方旗舰店',
score: 3.2,
distance: 100,
goods: [
{
pic: '',
price: '620.00'
},
{
pic: '',
price: '620.00'
},
{
pic: '',
price: '620.00'
}
]
}
// {
// logo: '',
// name: '',
// label: '',
// score: 3.2,
// distance: 100,
// goods: [
// {
// pic: '',
// price: '620.00'
// },
// {
// pic: '',
// price: '620.00'
// },
// {
// pic: '',
// price: '620.00'
// }
// ]
// }
],
page: 1,
limit: 10,
@ -94,7 +94,7 @@
},
computed: {
styleIndex() {
const index = 1;
const index = uni.getStorageSync('styleIndex') || '';
return index;
},
navBgColor() {
@ -105,20 +105,19 @@
styleIndex: {
immediate: true,
handler() {
console.log(styleColor.shopNavBgColor[this.styleIndex - 1] || '#FFA3B2');
uni.setNavigationBarColor({
frontColor : '#000000',
backgroundColor: styleColor.shopNavBgColor[this.styleIndex - 1] || '#FFA3B2',
})
},
},
},
onLoad(options) {
if(options.categoryId) {
this.categoryId = options.categoryId;
}
// this.getshopsList();
onLoad() {
this.getshopsList();
},
onReachBottom() {
// this.getshopsList();
this.getshopsList();
},
methods: {
onSearch: debounce(function () {
@ -129,47 +128,46 @@
this.getshopsList();
}, 500),
async getshopsList() {
console.log(this.loading, this.finished);
if (this.loading || this.finished) {
return;
}
this.loadTitle = "";
this.loading = true;
try {
const { data } = await getshopsList({
cId: this.categoryId,
Api.getShopList({
filter: this.activeFilter,
page: this.page++,
limit: this.limit,
keyword: this.search,
});
this.shopsList = this.shopsList.concat(data);
console.log(this.shopsList);
this.finished = data.length < this.limit;
this.loadTitle = this.finished ? "已全部加载完" : "上拉加载更多";
} catch (err) {
console.log(err);
}
})
.then(result => {
console.log(result);
const data = result.data.data;
this.shopsList = this.shopsList.concat(data);
this.finished = data.length < this.limit;
this.loadTitle = this.finished ? "已全部加载完" : "上拉加载更多";
console.log(this.shopsList);
})
.finally(() => this.loading = false)
this.loading = false;
// try {
// const { data } = await getshopsList({
// cId: this.categoryId,
// page: this.page++,
// limit: this.limit,
// keyword: this.search,
// });
// this.shopsList = this.shopsList.concat(data);
// console.log(this.shopsList);
// this.finished = data.length < this.limit;
// this.loadTitle = this.finished ? "" : "";
// } catch (err) {
// console.log(err);
// }
},
joinCart(item) {
this.$util.checkLogin(async () => {
try {
const { code, data, msg } = await joinCart({
productId: item.id,
cartNum: 1,
});
if (code === 200) {
this.$util.showMsg('添加成功');
} else {
this.$util.showMsg(msg);
}
} catch (err) {
this.$util.showMsg(err.msg);
}
}, true);
toShop(item) {
uni.navigateTo({
url: `/pages/shopList/shopPage?id=${item.merchant_id}`,
})
},
},
};
@ -403,9 +401,9 @@
.empty image {
display: block;
width: 414rpx;
height: 305rpx;
margin: 0 auto;
width: 306rpx;
height: 200rpx;
margin: 0 auto 20rpx;
pointer-events: none;
}
</style>

@ -1,8 +1,8 @@
<template>
<view class="shop" :style="{ background: navBgColor }" >
<view class="shop">
<view class="navbarContent">
<u-navbar :is-back="false" :background=" { background: navBgColor }" :border-bottom="false">
<uni-icons type="left" size="30" color="#fff" class="back" @click="back"></uni-icons>
<u-navbar :is-back="false" :background="background" :border-bottom="false">
<uni-icons type="left" size="24" color="#fff" class="back" @click="back"></uni-icons>
<view class="search-box">
<view @click="search" class="search-model"></view>
<u-search shape="round" :disabled="true" placeholder="搜索本品牌商品" bg-color="#ffffff"
@ -32,38 +32,181 @@
<view class="name">{{ shopDetail.name }}</view>
<view class="intro">
<text class="label">{{ shopDetail.label }}</text>
<view @click="toCer">
<image src="/static/cer.png" mode="aspectFill"></image>
证书
</view>
</view>
</view>
</view>
<view class="shop-goods">
<view v-if="goodsCate.filter(v => v.name === firstCate)[0].children.length > 0" class="second-cate">
<scroll-view class="second-cate-tabs" scroll-x>
<view v-for="(item, index) in goodsCate.filter(v => v.name === firstCate)[0].children" :key="index" class="cate-item" :class="{active: secondCate === item.name}" @click="secondCate = item.name">
{{ item.name }}
</view>
</scroll-view>
</view>
<view class="goods-content">
<view class="first-cate">
<scroll-view class="first-cate-tabs" scroll-y>
<view v-for="(item, index) in goodsCate" :key="index" class="cate-item" :class="{active: firstCate === item.name}" @click="firstCate = item.name;secondCate = '';">
{{ item.name }}
</view>
</scroll-view>
</view>
<view class="content">
<view class="filter-box">
<view v-for="(item, index) in filterList" :key="index" class="filter-item" :class="{ active: activeFilter === item}" @click="changeFilter(item)">
{{ item }}
<text v-if="item === '价格'" class="down" :class="{ on: activeFilter === '价格' && filterDirection === 'DESC'}" style="top: 22rpx;"></text>
<text v-if="item === '价格'" class="up" :class="{ on: activeFilter === '价格' && filterDirection === 'ASC'}"></text>
</view>
</view>
<view class="goods-list">
<view v-for="(item, index) in goods" :key="index" class="good">
<image :src="item.pic" mode="aspectFill"></image>
<view class="name">{{ item.name }}</view>
<view class="price">
<text class="now-price">{{ item.price }}</text>
<text class="origin-price">{{ item.originPrice }}</text>
</view>
</view>
</view>
<view v-if="goods.length && !loading" class="finished">{{ loadTitle }}</view>
<view v-if="finished && !goods.length" class="empty">
<image mode="aspectFill" src="@/static/empty.png" alt="暂无商品" />
<view>暂无商品</view>
</view>
</view>
</view>
</view>
<view class="toTop" v-if="isTop" @click="openScrollTo()">
<image :src="$picUrl+'/static/toTop.png?=1'"></image>
</view>
</view>
</view>
</template>
<script>
import styleColor from '../styleColor';
import * as Api from '@/api/shop/index'
export default {
data() {
return {
background: {
background: 'url(https://www.royaum.com.cn/static/shop/shop-page-bg.png) center top no-repeat',
backgroundSize: '100% auto',
},
id: '',
scrollTop: 0,
shopDetail: {
logo: '',
name: '小米旗舰店',
label: '商家直营 正品保障'
},
goodsCate: [
{ id: 1, name: '热门分类', children: [{ id: 1, name: '二级分类1'}, { id: 1, name: '二级分类2'}, { id: 1, name: '二级分类3'}, { id: 1, name: '二级分类4'}, { id: 1, name: '二级分类5'}]},
{ id: 1, name: '手机', children: [{ id: 1, name: '二级分类1'}, { id: 1, name: '二级分类2'}, { id: 1, name: '二级分类3'}, { id: 1, name: '二级分类4'}, { id: 1, name: '二级分类5'}]},
{ id: 1, name: '平板', children: [{ id: 1, name: '二级分类1'}, { id: 1, name: '二级分类2'}, { id: 1, name: '二级分类3'}, { id: 1, name: '二级分类4'}, { id: 1, name: '二级分类5'}]},
{ id: 1, name: '电脑', children: [{ id: 1, name: '二级分类1'}, { id: 1, name: '二级分类2'}, { id: 1, name: '二级分类3'}, { id: 1, name: '二级分类4'}, { id: 1, name: '二级分类5'}]},
{ id: 1, name: '冰箱', children: [{ id: 1, name: '二级分类1'}, { id: 1, name: '二级分类2'}, { id: 1, name: '二级分类3'}, { id: 1, name: '二级分类4'}, { id: 1, name: '二级分类5'}]},
],
firstCate: '手机',
secondCate: '二级分类2',
activeFilter: '综合',
filterDirection: 'ASC',
filterList: ['综合', '价格', '折扣', '销量'],
isTop: false,
page: 1,
limit: 10,
loadTitle: '',
loading: false,
finished: true,
goods: [
{
pic: '',
name: '小米耳机最新版小米耳机最新版',
price: 208.00,
originPrice: 809,
},
{
pic: '',
name: '小米耳机最新版小米耳机最新版',
price: 208.00,
originPrice: 809,
},
{
pic: '',
name: '小米耳机最新版小米耳机最新版',
price: 208.00,
originPrice: 809,
},
{
pic: '',
name: '小米耳机最新版小米耳机最新版',
price: 208.00,
originPrice: 809
},
{
pic: '',
name: '小米耳机最新版小米耳机最新版',
price: 208.00,
originPrice: 809,
},
{
pic: '',
name: '小米耳机最新版小米耳机最新版',
price: 208.00,
originPrice: 809,
},
{
pic: '',
name: '小米耳机最新版小米耳机最新版',
price: 208.00,
originPrice: 809,
},
{
pic: '',
name: '小米耳机最新版小米耳机最新版',
price: 208.00,
originPrice: 809,
},
{
pic: '',
name: '小米耳机最新版小米耳机最新版',
price: 208.00,
originPrice: 809,
},
{
pic: '',
name: '小米耳机最新版小米耳机最新版',
price: 208.00,
originPrice: 809,
},
]
};
},
computed: {
styleIndex() {
const index = 1;
return index;
},
navBgColor() {
return this.styleIndex ? (styleColor.shopNavBgColor[this.styleIndex - 1] || '#FFA3B2') : '#FFA3B2'
// computed: {
// styleIndex() {
// const index = uni.getStorageSync('styleIndex') || '';
// return index;
// },
// navBgColor() {
// return this.styleIndex ? (styleColor.shopNavBgColor[this.styleIndex - 1] || '#FFA3B2') : '#FFA3B2'
// }
// },
onPageScroll(e) {
if (e.scrollTop <= 200) { // true
this.isTop = false
} else {
this.isTop = true
}
},
onPageScroll(e) {
this.scrollTop = e.scrollTop;
onLoad({ id }) {
this.id = id;
this.getShopDetail()
},
methods: {
back() {
@ -75,20 +218,51 @@
url: '/pages/search/index'
})
},
changeFilter(item) {
if (item !== this.activeFilter) {
this.activeFilter = item;
this.filterDirection = 'ASC';
} else if (item === '价格') {
this.filterDirection = this.filterDirection === 'ASC' ? 'DESC' : 'ASC';
}
},
openScrollTo() {
uni.pageScrollTo({
scrollTop: 0
})
},
toCer() {
uni.navigateTo({
url: '/pages/shopList/certificate',
});
},
async getShopDetail() {
Api.getShopDetail({
id: this.id
})
.then(result => {
console.log(result);
})
.finally(() => this.loading = false)
},
}
};
</script>
<style lang="scss" scoped>
.shop {
min-height: 100vh;
height: 100vh;
display: flex;
flex-direction: column;
background: url(https://www.royaum.com.cn/static/shop/shop-page-bg.png) center top no-repeat;
background-size: 100% auto;
.navbarContent {
display: flex;
justify-content: flex-start;
align-items: center;
padding-left: 12rpx;
.back {
margin-right: 24rpx;
margin-left: 12rpx;
}
.search-box {
position: relative;
@ -112,6 +286,9 @@
}
}
.page {
flex: 1;
display: flex;
flex-direction: column;
padding-top: 30rpx;
.shop-tip {
padding: 0 24rpx;
@ -149,8 +326,9 @@
margin-bottom: 18rpx;
}
.intro {
display: flex;
align-items: center;
.label {
display: inline-block;
height: 36rpx;
background: #F34A40;
border-radius: 4rpx;
@ -159,10 +337,231 @@
text-align: center;
font-size: 24rpx;
color: #fff;
margin-right: 20rpx;
}
>view {
width: 90rpx;
height: 36rpx;
background: rgba(0, 0, 0, 0.2);
border-radius: 4rpx;
display: flex;
justify-content: center;
align-items: center;
color: #fff;
font-size: 24rpx;
>image {
width: 21rpx;
height: 20rpx;
margin-right: 7rpx;
}
}
}
}
}
.shop-goods {
flex: 1;
display: flex;
flex-direction: column;
margin-top: 30rpx;
background: #F0F4F3;
border-radius: 20rpx 20rpx 0 0;
padding-top: 24rpx;
.second-cate {
padding: 0 24rpx;
margin-bottom: 24rpx;
.second-cate-tabs {
height: 80rpx;
align-items: center;
white-space: nowrap;
width: 100%;
overflow-x: auto;
overflow-y: hidden;
.cate-item {
display: inline-block;
height: 80rpx;
padding: 0 26rpx;
background: #FFFFFF;
border-radius: 10rpx;
line-height: 80rpx;
margin-right: 20rpx;
color: #333333;
font-size: 28rpx;
&:last-child {
margin-right: 0;
}
&.active {
background: #F34A40;
color: #fff;
}
}
}
}
.goods-content {
flex: 1;
display: flex;
.first-cate {
height: 100%;
width: 108rpx;
.first-cate-tabs {
overflow-x: hidden;
overflow-y: auto;
.cate-item {
width: 100%;
padding: 20rpx 30rpx;
color: #999999;
font-size: 24rpx;
position: relative;
&.active {
background: #fff;
&::before {
content: '';
position: absolute;
top: 50%;
transform: translateY(-50%);
left: 0;
width: 4rpx;
height: calc(100% - 60rpx);
background: #F34A40;
}
}
}
}
}
.content {
background: #fff;
height: 100%;
width: calc(100% - 108rpx);
display: flex;
flex-direction: column;
.filter-box {
height: 88rpx;
padding: 0 40rpx;
display: flex;
justify-content: space-between;
align-items: center;
.filter-item {
color: #333;
font-size: 28rpx;
position: relative;
display: flex;
justify-content: center;
&.active {
color: #F34A40;
}
text {
width: 0;
height: 0;
border: 10rpx solid;
border-color: #000 transparent transparent transparent;
vertical-align: top;
position: absolute;
left: 60rpx;
top: 15rpx;
&.up {
border-color: transparent transparent #000 transparent;
top: -1rpx;
&.on {
border-color: transparent transparent #F34A40 transparent;
}
}
&.down.on {
border-color: #F34A40 transparent transparent transparent;
}
}
}
}
.goods-list {
padding: 0 20rpx;
overflow-x: hidden;
overflow-y: auto;
display: flex;
flex-wrap: wrap;
.good {
width: 290rpx;
height: 422rpx;
background: #FFFFFF;
border-radius: 10rpx;
border: 1px solid #EAEAEA;
margin-right: 22rpx;
margin-bottom: 20rpx;
border-radius: 10rpx;
border: 1px solid #EAEAEA;
&:nth-child(2n) {
margin-right: 0;
}
>image {
width: 290rpx;
height: 287rpx;
}
.name {
color: #333333;
font-size: 26rpx;
margin: 30rpx 0 24rpx;
line-height: 26rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
padding: 0 24rpx;
}
.price {
padding: 0 24rpx;
.now-price {
color: #E53623;
font-size: 34rpx;
}
.origin-price {
text-decoration: line-through;
color: #999999;
font-size: 24rpx;
margin-left: 10;
}
}
}
}
.finished,
.loading {
font-size: 28rpx;
line-height: 100rpx;
text-align: center;
color: #bbb;
}
.empty {
margin-top: 100rpx;
font-size: 28rpx;
text-align: center;
color: #bbb;
}
.empty image {
display: block;
width: 306rpx;
height: 200rpx;
margin: 0 auto 20rpx;
pointer-events: none;
}
}
}
}
.toTop {
position: fixed;
bottom: 120rpx;
right: 16rpx;
width: 99rpx;
height: 99rpx;
border-radius: 50%;
opacity: 1;
z-index: 999;
display: flex;
align-items: center;
justify-content: center;
image {
width: 100%;
height: 100%;
}
}
}
}

@ -1,14 +1,14 @@
<template>
<view class="container">
<view class="head">
<image src="@/static/dynamic-banner.png" mode="aspectFill"></image>
<image :src="$picUrl+'/static/dynamic-banner.png'" mode="aspectFill"></image>
</view>
<view class="box">
<view class="tab-list">
<view v-for="(item, index) in tabList" :key="index" class="tab-item" :class="{ 'active': activeTab === item }" @click="activeTab = item">{{ item }}</view>
</view>
<view class="list">
<view v-for="(item, index) in dynamicList" class="dynamic-item">
<view v-for="(item, index) in dynamicList" :key="index" class="dynamic-item">
<view class="user">
<image v-if="item.avatar" :src="item.avatar" mode="aspectFill"></image>
<image v-else src="/static/touxiang.png" mode="aspectFill"></image>
@ -90,6 +90,7 @@
},
onLoad() {
uni.setNavigationBarColor({
frontColor: '#000000',
backgroundColor: '#E7F1FC',
})
},

@ -1,7 +1,7 @@
<template>
<view class="container">
<template v-if="!isPublish">
<image src="/static/publish-banner.png" mode="aspectFill" class="banner"></image>
<image :src="$picUrl+'/static/publish-banner.png'" mode="aspectFill" class="banner"></image>
<view class="publish-box">
<view class="upload-images">
<view v-for="(item, index) in imageList" :key="index" class="image-box">
@ -11,7 +11,7 @@
<view class="upload-btn" v-if="imageList.length < 5" @click="addImage">
<image src="/static/add.png" mode="aspectFill"></image>
<text class="tip">添加照片</text>
<text class="sub-tip">最多5张</text>
<text class="tip sub-tip">最多5张</text>
</view>
</view>
<textarea placeholder="请输入您想发布的内容哦~" placeholder-class="textarea-placeholer" id="" cols="30" rows="10" v-model="content" maxlength="3000"></textarea>
@ -28,7 +28,7 @@
</template>
<template v-else>
<view class="success">
<image src="/static/success.png" mode="aspectFill"></image>
<image :src="$picUrl+ '/static/success.png'" mode="aspectFill"></image>
<view class="success-tip">发布成功</view>
<text>您的作品已经发布成功</text>
<text>快去看看吧~</text>
@ -62,9 +62,9 @@ import * as UploadApi from '@/api/upload'
success({
tempFiles
}) {
console.log(that.imageList);
console.log(that.imageList, tempFiles);
that.imageList.push(tempFiles[0].path)
that.upload(tempFiles[0].path)
that.upload(tempFiles[0])
}
});
},
@ -173,17 +173,16 @@ import * as UploadApi from '@/api/upload'
width: 46rpx;
height: 37rpx;
}
uni-text {
.tip {
margin: 19rpx 0 13rpx;
color: #333333;
font-size: 24rpx;
line-height: 24rpx;
&.tip {
margin: 19rpx 0 13rpx;
}
&.sub-tip {
color: #999999;
font-size: 22rpx;
line-height: 22rpx;
margin: 0;
}
}
}

@ -1,9 +1,10 @@
export default {
indexColor: ['#3F8EFF', '#926DF4', '#FEB137', '82AB6F', '#FB6569'],
indexColor: ['#3F8EFF', '#926DF4', '#FEB137', '#82AB6F', '#FB6569'],
indexNavBgColor: ['#E8F1FC', '#F2EFFE', '#FCFAEF', '#EDF7E9', '#FFF6F5'],
inviteNavBgColor: ['#F5DBB4', '#FA482B', '#FA335B', '#F7D8A3', '#FFC6CF'],
couponNavBgColor: ['#FFE7E4', '#FB700C', '#FB700C', '#EF333B', '#F6E3CF'],
rankNavBgColor: ['#F8D1BC', '#F8BCBC', '#CE3821', '#E2A666', '#961619'],
shopNavBgColor: ['#E0EFFD', '#E0EFFD', '#FFF1E2', '#FCFAED', '#FFEAEE'],
shopNavBgColor: ['#E8F1FC', '#F2EFFD', '#FCFAEE', '#EEF7E9', '#FEF6F5'],
// shopNavBgColor: ['#3F8EFF', '#926DF4', '#FEB137', '#82AB6F', '#FB6569'],
seckillNavBgColor: ['#FA5D33', '#DE451F', '#FC3B2D', '#EAB1E2', '#FDD5B6']
}

@ -2,7 +2,7 @@
<view v-if="!isFirstload" class="container" :style="appThemeStyle">
<!-- 页面头部 -->
<view class="main-header" :style="{ height: platform == 'H5' ? '260rpx' : '320rpx', paddingTop: platform == 'H5' ? '0' : '80rpx' }">
<image class="bg-image" src="/static/background/user-header2.png" mode="scaleToFill"></image>
<image class="bg-image" :src="$picUrl+ '/static/user-header2.png'" mode="scaleToFill"></image>
<!-- 用户信息 -->
<view v-if="isLogin" class="user-info">
<view class="user-avatar" @click="handlePersonal()">

@ -2,7 +2,7 @@
<view v-if="!isFirstload" class="container" :style="appThemeStyle">
<!-- 页面头部 -->
<view class="main-header" :style="{ height: platform == 'H5' ? '260rpx' : '320rpx', paddingTop: platform == 'H5' ? '0' : '80rpx' }">
<image class="bg-image" src="/static/background/user-header2.png" mode="scaleToFill"></image>
<image class="bg-image" :src="$picUrl+ '/static/user-header2.png'" mode="scaleToFill"></image>
<!-- 用户信息 -->
<view v-if="isLogin" class="user-info">
<view class="user-avatar" @click="handlePersonal()">

@ -2,7 +2,7 @@
<view class="container" v-if="!isLoading">
<view class="space-upper">
<view class="wallet-image">
<image class="image" src="/static/wallet.png"></image>
<image class="image" :src="$picUrl+ '/static/wallet.png'"></image>
</view>
<view class="wallet-account">
<view class="wallet-account_balance">

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 611 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1020 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 981 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 570 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Loading…
Cancel
Save