新增平台公告,新增平台人数统计,新增退货状态与商家联系电话

This commit is contained in:
唐明明
2022-07-26 15:16:17 +08:00
parent a49995f20b
commit d95db14088
13 changed files with 11153 additions and 9741 deletions

View File

@@ -34,3 +34,4 @@ export {
glz, glz,
sign sign
} }

27
apis/interfaces/notice.js Normal file
View File

@@ -0,0 +1,27 @@
/**
* Web唐明明
* 匆匆数载恍如梦,岁月迢迢华发增。
* 碌碌无为枉半生,一朝惊醒万事空。
* moduleName: 通知公告
*/
import { request } from '../index'
// 列表
const list = () =>{
return request({
url: "cms/articles/notice"
})
}
// 详情
const info = (id) =>{
return request({
url: "cms/articles/" + id
})
}
export {
list,
info
}

View File

@@ -248,7 +248,7 @@
"navigationBarBackgroundColor": "#34CE98", "navigationBarBackgroundColor": "#34CE98",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
},{ }, {
"path": "pages/account/wbtBind", "path": "pages/account/wbtBind",
"name": "WbtBind", "name": "WbtBind",
"style": { "style": {
@@ -506,6 +506,22 @@
} }
} }
}, {
"path": "pages/life/notice",
"name": "Notice",
"style": {
"navigationBarTitleText": "系统公告",
"enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#FFFFFF"
}
}, {
"path": "pages/life/noticeDetails",
"name": "noticeDetails",
"style": {
"navigationBarTitleText": "公告详情",
"enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#FFFFFF"
}
} }
], ],
"tabBar": { "tabBar": {

View File

@@ -2,6 +2,12 @@
<view class="capacity"> <view class="capacity">
<view class="capacity-title">共力分总产率/小时<text>{{baseHour}}GLF/h</text></view> <view class="capacity-title">共力分总产率/小时<text>{{baseHour}}GLF/h</text></view>
<view class="capacity-sbutitle">总产率=角色产率+团队产率+共建产率+共力值产率</view> <view class="capacity-sbutitle">总产率=角色产率+团队产率+共建产率+共力值产率</view>
<view class="capacity-block">
<view class="capacity-block-title">
<view class="title">平台数据</view>
</view>
<view class="capacity-block-text">平台注册人数<text>{{userData.login}}</text>活跃人数<text>{{userData.online}}</text></view>
</view>
<view class="capacity-block"> <view class="capacity-block">
<view class="capacity-block-title"> <view class="capacity-block-title">
<view class="title">我的角色</view> <view class="title">我的角色</view>
@@ -11,12 +17,11 @@
</view> </view>
<view class="capacity-block"> <view class="capacity-block">
<view class="capacity-block-title"> <view class="capacity-block-title">
<view class="title">成员产率({{group.effect}}/{{group.count}})<text< /text> <view class="title">成员产率({{group.effect}}/{{group.count}})</view>
</view>
<view class="capacity-block-glf">{{group.capacity}}GLF/h</view> <view class="capacity-block-glf">{{group.capacity}}GLF/h</view>
<!-- <view class="more" @click="onInvitation">邀请更多好友</view> --> <!-- <view class="more" @click="onInvitation">邀请更多好友</view> -->
</view> </view>
<view class="capacity-block-table pt30"> <view class="capacity-block-table">
<view class="header"> <view class="header">
<view class="flex-item">家族成员产率</view> <view class="flex-item">家族成员产率</view>
</view> </view>
@@ -104,7 +109,11 @@
build: {}, build: {},
together: {}, together: {},
other: {}, other: {},
can_repeat_sign: false can_repeat_sign: false,
userData: {
login : '-',
online : '-'
}
}; };
}, },
created() { created() {
@@ -174,6 +183,7 @@
methods: { methods: {
glz(){ glz(){
glz().then(res => { glz().then(res => {
this.userData = res.userData
this.nickname = res.nickname this.nickname = res.nickname
this.identityText = res.identity_text this.identityText = res.identity_text
this.baseHour = res.base_hour this.baseHour = res.base_hour
@@ -340,23 +350,21 @@
font-size: 30rpx; font-size: 30rpx;
} }
} }
&-text { &-text {
font-size: 28rpx; font-size: 28rpx;
color: gray; color: gray;
line-height: 40rpx; line-height: 40rpx;
padding-top: 30rpx; padding-top: 10rpx;
text{
color: $main-color;
font-weight: bold;
padding: 0 10rpx;
}
} }
&-table { &-table {
border: solid 1px $border-color; border: solid 1px $border-color;
margin-bottom: 20rpx; margin-top: 20rpx;
padding-top: 30rpx;
&:last-child {
margin-top: 0;
}
.header { .header {
background: $border-color; background: $border-color;
line-height: 50rpx; line-height: 50rpx;
@@ -364,7 +372,6 @@
font-size: 26rpx; font-size: 26rpx;
color: gray; color: gray;
} }
.flex { .flex {
display: flex; display: flex;
border-top: solid 1rpx $border-color; border-top: solid 1rpx $border-color;

View File

@@ -52,6 +52,25 @@
</view> </view>
<!-- 功能入口 --> <!-- 功能入口 -->
<view class="life-flex"> <view class="life-flex">
<!-- 公告 -->
<view class="life-notice" v-if="notices.length > 0">
<view class="life-notice-bar">
<uni-icons class="life-notice-icon" size="18" type="notification-filled" color="#34CE98"></uni-icons>
<swiper
class="life-notice-swiper"
:autoplay="true"
circular
vertical
>
<swiper-item v-for="(item, index) in notices" :key="index">
<view class="life-notice-item">
<navigator :url="'./noticeDetails?id=' + item.article_id" hover-class="none">{{item.title}}</navigator>
</view>
</swiper-item>
</swiper>
<navigator class="life-notice-more" hover-class="none" url="./notice">更多</navigator>
</view>
</view>
<view class="life-flex-item house" @click="onNav({name: 'Store'}, 'tab')"> <view class="life-flex-item house" @click="onNav({name: 'Store'}, 'tab')">
<view class="house-content"> <view class="house-content">
<view class="house-title">DT商城</view> <view class="house-title">DT商城</view>
@@ -151,6 +170,7 @@
isSign: false, isSign: false,
isAccount: false, isAccount: false,
isOver : false, isOver : false,
notices : []
}; };
}, },
onShow() { onShow() {
@@ -172,6 +192,7 @@
// 共力人生 // 共力人生
getLife() { getLife() {
life().then(res => { life().then(res => {
this.notices = res.notices
this.glz = res.account.glz this.glz = res.account.glz
this.base_hour = res.account.base_hour this.base_hour = res.account.base_hour
this.base_seconds = res.account.base_seconds this.base_seconds = res.account.base_seconds
@@ -408,7 +429,39 @@
flex-wrap: wrap; flex-wrap: wrap;
position: relative; position: relative;
z-index: 1; z-index: 1;
.life-notice{
width: calc(100% - 20rpx);
margin: 10rpx;
&-bar{
position: relative;
background-color: white;
border-radius: 20rpx;
padding: 0 150rpx 0 80rpx;
height: 90rpx;
}
&-icon{
position: absolute;
left: 30rpx;
top: 26rpx;
}
&-more{
position: absolute;
right: 30rpx;
top: 0;
line-height: 90rpx;
font-size: 28rpx;
color: $main-color;
}
&-swiper{
height: 90rpx;
}
&-item{
line-height: 90rpx;
font-size: 28rpx;
color: #333;
@extend .nowrap;
}
}
.life-flex-item { .life-flex-item {
background: white; background: white;
border-radius: 20rpx; border-radius: 20rpx;

85
pages/life/notice.vue Normal file
View File

@@ -0,0 +1,85 @@
<template>
<view class="conten">
<block v-if="list.length > 0">
<navigator class="list-item" v-for="(item, index) in list" :key="index" :url="'./noticeDetails?id=' + item.article_id">
<view class="item-title">{{item.title}}</view>
<view class="item-time"><text>{{item.categories[0].title}}</text>{{item.created_at}}</view>
<uni-icons class="item-icon" type="forward" color="#ddd" size="20"></uni-icons>
</navigator>
</block>
<block v-else>
<view class="list-empty">
<u-empty
mode="data"
icon="http://cdn.uviewui.com/uview/empty/data.png"
text="暂无公告信息"
>
</u-empty>
</view>
</block>
</view>
</template>
<script>
import { list } from '@/apis/interfaces/notice.js'
export default {
data() {
return {
list: [],
page: {}
};
},
created() {
list().then(res => {
this.list = res.data
this.page = res.page
}).catch(err => {
uni.showToast({
title: res.message,
icon : 'none'
})
})
}
}
</script>
<style lang="scss">
.list-empty{
height: 80vh;
@extend .vertical;
}
.conten{
min-height: 100vh;
background: #F3F6FB;
padding-top: 30rpx;
box-sizing: border-box;
.list-item{
position: relative;
margin: 0 30rpx 30rpx 30rpx;
background: white;
border-radius: 20rpx;
padding: 30rpx 60rpx 30rpx 30rpx;
.item-icon{
position: absolute;
right: 30rpx;
top: 50%;
margin-top: -10px;
}
.item-title{
padding-bottom: 10rpx;
font-size: 34rpx;
font-weight: bold;
color: #333;
@extend .nowrap;
}
.item-time{
font-size: 26rpx;
color: gray;
text{
color: $main-color;
margin-right: 20rpx;
}
}
}
}
</style>

View File

@@ -0,0 +1,60 @@
<template>
<view class="content">
<view class="title">{{title}}</view>
<view class="time"><text>{{categorie}}</text>{{time}}</view>
<view class="text">
<rich-text :nodes="content"></rich-text>
</view>
</view>
</template>
<script>
import { info } from '@/apis/interfaces/notice.js'
export default {
data() {
return {
title : '',
content : '',
time : '',
categorie : ''
};
},
onLoad(e){
info(e.id).then(res => {
this.title = res.title
this.time = res.created_at
this.content = res.content.replace(/\<img/gi, '<img style="max-width:100%; height:auto; display:block;"');
this.categorie = res.categories[0].title
}).catch(err => {
uni.showToast({
title: err.message,
icon : 'none'
})
})
}
}
</script>
<style lang="scss">
.content{
background: white;
min-height: 100vh;
padding: 30rpx;
box-sizing: border-box;
.title{
font-size: 40rpx;
font-weight: bold;
padding: 20rpx 0;
}
.time{
color: gray;
font-size: 28rpx;
padding-bottom: 70rpx;
text{
color: $main-color;
margin-right: 20rpx;
text-align: justify;
}
}
}
</style>

View File

@@ -3,7 +3,6 @@
<view class="service-content"> <view class="service-content">
<view class="service"> 本次售后服务将由<span>DT生态平台</span>为您提供服务 </view> <view class="service"> 本次售后服务将由<span>DT生态平台</span>为您提供服务 </view>
</view> </view>
<view class="plane"> <view class="plane">
<view class="plane-state"> <view class="plane-state">
<uni-steps class="steps" active-color='#fff' :active="process.index" deactive-color='#fff' <uni-steps class="steps" active-color='#fff' :active="process.index" deactive-color='#fff'
@@ -11,7 +10,6 @@
<view class="title" v-if="refundInfo.state"> {{refundInfo.state.remark}}</view> <view class="title" v-if="refundInfo.state"> {{refundInfo.state.remark}}</view>
</view> </view>
</view> </view>
<view class="goods-item"> <view class="goods-item">
<image :src="goodsInfo.cover" mode="aspectFill" class="good-img" /> <image :src="goodsInfo.cover" mode="aspectFill" class="good-img" />
<view class="item--content"> <view class="item--content">
@@ -25,8 +23,6 @@
</view> </view>
</view> </view>
</view> </view>
<view class="total"> <view class="total">
<view class="total-item grey"> <view class="total-item grey">
申请金额<text>{{refundInfo.refund_total || '0.00'}} DT</text> 申请金额<text>{{refundInfo.refund_total || '0.00'}} DT</text>
@@ -90,8 +86,18 @@
<view class="label">申请时间</view> <view class="label">申请时间</view>
<view class="content">{{refundInfo.created_at}}</view> <view class="content">{{refundInfo.created_at}}</view>
</view> </view>
<view class="info-item">
<view class="label">店铺名称</view>
<view class="content" v-if="refundInfo.shop">{{refundInfo.shop.name || '-'}}</view>
</view>
<view class="info-item">
<view class="label">联系电话</view>
<view class="content" v-if="refundInfo.shop">{{refundInfo.shop.mobile || '-'}}</view>
</view>
</view>
<view class="call-phone">
<view class="call-phone-btn" @click="onCallPhone">联系商家</view>
</view> </view>
</view> </view>
</template> </template>
@@ -163,6 +169,15 @@
}) })
} }
}) })
},
onCallPhone(){
uni.makePhoneCall({
phoneNumber: this.refundInfo.shop.mobile,
complete(err) {
console.log(err)
}
})
} }
} }
} }
@@ -171,6 +186,21 @@
<style lang="scss"> <style lang="scss">
.history {} .history {}
.call-phone{
position: fixed;
bottom: 0;
left: 0;
right: 0;
@extend .ios-bottom;
background: white;
&-btn{
text-align: center;
line-height: 100rpx;
font-size: 30rpx;
color: $main-color;
}
}
.applyBtn { .applyBtn {
width: 70%; width: 70%;
background-color: $main-color; background-color: $main-color;
@@ -188,7 +218,8 @@
.afterSales { .afterSales {
background-color: #f9f9f9; background-color: #f9f9f9;
min-height: 100vh; min-height: 100vh;
padding-bottom: calc(env(safe-area-inset-bottom) + 130rpx);
padding-bottom: calc(env(safe-area-inset-bottom) + 130rpx);
.plane { .plane {
width: 100%; width: 100%;
@@ -202,10 +233,11 @@
padding: 60rpx $padding 40rpx $padding; padding: 60rpx $padding 40rpx $padding;
.title { .title {
font-size: 40rpx; width: 100%;
font-size: 26rpx;
color: #FFFFFF; color: #FFFFFF;
font-weight: bold;
margin-top: 20rpx; margin-top: 20rpx;
text-align: center;
} }
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long