规格处理==

This commit is contained in:
2022-08-01 09:00:17 +08:00
28 changed files with 3200 additions and 1358 deletions

View File

@@ -10,8 +10,8 @@ import router from '../router'
// 基础配置
const config = {
// apiUrl : 'https://api.gongli.vip/api/', // 正式环境
apiUrl : 'http://api.gl.shangkelian.cn/api/', // 测试
apiUrl : 'https://api.gongli.vip/api/', // 正式环境
// apiUrl : 'http://api.gl.shangkelian.cn/api/', // 测试
timeout : 60000
}

View File

@@ -34,3 +34,4 @@ export {
glz,
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

@@ -30,8 +30,31 @@ const invitationCode = () => {
})
}
// 绑定分享关系
const relationsBind = (invite) => {
return request({
url: 'user/relations/bind',
data: {
invite
},
method: 'POST'
})
}
// 确认绑定关系
const relationsVerify = (invite) => {
return request({
url: 'user/relations/verify',
data: {
invite
}
})
}
export {
info,
chainSeed,
invitationCode
invitationCode,
relationsBind,
relationsVerify
}

View File

@@ -2,7 +2,7 @@
"name" : "共力生态",
"appid" : "__UNI__DE7B0E6",
"description" : "共力生态",
"versionName" : "1.0.35",
"versionName" : "1.0.37",
"versionCode" : 100,
"transformPx" : false,
/* 5+App */
@@ -97,9 +97,7 @@
"UniversalLinks" : ""
}
},
"ad" : {
"sigmob" : {}
},
"ad" : {},
"push" : {},
"geolocation" : {
"system" : {

1104
pages.json

File diff suppressed because it is too large Load Diff

View File

@@ -52,7 +52,7 @@
>
<slot>
<view class="wechat-content">
<image class="wechat-qrcode" :src="require('@/static/user/qrCode.jpeg')" mode="widthFix"></image>
<image class="wechat-qrcode" :src="require('@/static/user/qrCode.png')" mode="widthFix"></image>
<view class="wechat-text">扫描企业微信二维码添加微信客服</view>
</view>
</slot>
@@ -97,7 +97,7 @@
methods: {
dowQrCode(){
uni.saveImageToPhotosAlbum({
filePath: require('@/static/user/qrCode.jpeg'),
filePath: require('@/static/user/qrCode.png'),
success(res) {
uni.showToast({
title: '二维码已保存到系统相册',

View File

@@ -2,6 +2,12 @@
<view class="capacity">
<view class="capacity-title">共力分总产率/小时<text>{{baseHour}}GLF/h</text></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-title">
<view class="title">我的角色</view>
@@ -11,12 +17,11 @@
</view>
<view class="capacity-block">
<view class="capacity-block-title">
<view class="title">成员产率({{group.effect}}/{{group.count}})<text< /text>
</view>
<view class="title">成员产率({{group.effect}}/{{group.count}})</view>
<view class="capacity-block-glf">{{group.capacity}}GLF/h</view>
<!-- <view class="more" @click="onInvitation">邀请更多好友</view> -->
</view>
<view class="capacity-block-table pt30">
<view class="capacity-block-table">
<view class="header">
<view class="flex-item">家族成员产率</view>
</view>
@@ -104,7 +109,11 @@
build: {},
together: {},
other: {},
can_repeat_sign: false
can_repeat_sign: false,
userData: {
login : '-',
online : '-'
}
};
},
created() {
@@ -128,7 +137,9 @@
confirmText: '立即重置',
cancelColor: '#999',
cancelText: '再想想',
success: (res1) => {
success: (res1) => {
this.Sign()
return
if (res1.confirm) {
this.checkIMEI().then(res => {
switch (res) {
@@ -172,6 +183,7 @@
methods: {
glz(){
glz().then(res => {
this.userData = res.userData
this.nickname = res.nickname
this.identityText = res.identity_text
this.baseHour = res.base_hour
@@ -337,24 +349,22 @@
color: gray;
font-size: 30rpx;
}
}
}
&-text {
font-size: 28rpx;
color: gray;
line-height: 40rpx;
padding-top: 30rpx;
padding-top: 10rpx;
text{
color: $main-color;
font-weight: bold;
padding: 0 10rpx;
}
}
&-table {
border: solid 1px $border-color;
margin-bottom: 20rpx;
padding-top: 30rpx;
&:last-child {
margin-top: 0;
}
margin-top: 20rpx;
.header {
background: $border-color;
line-height: 50rpx;
@@ -362,7 +372,6 @@
font-size: 26rpx;
color: gray;
}
.flex {
display: flex;
border-top: solid 1rpx $border-color;

View File

@@ -33,12 +33,12 @@
</view>
</view>
<!-- 微信阅读 -->
<view class="reading" v-if="!isOver">
<!-- <view class="reading" v-if="!isOver">
<view class="reading-icon number-float" @click="onReading">
<image class="reading-icon-image" :src="require('@/static/icon/reading_btn.png')" alt="签到"></image>
</view>
<view class="reading-title">共力分加成</view>
</view>
</view> -->
<image class="life-cover-back" :src="require('@/static/life/back.png')"></image>
<view class="life-role">
<image class="life-role-src" :src="figurePath" mode="widthFix" />
@@ -51,7 +51,26 @@
</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="house-content">
<view class="house-title">DT商城</view>
@@ -150,7 +169,8 @@
timeData: {},
isSign: false,
isAccount: false,
isOver : false,
isOver : false,
notices : []
};
},
onShow() {
@@ -171,7 +191,8 @@
},
// 共力人生
getLife() {
life().then(res => {
life().then(res => {
this.notices = res.notices
this.glz = res.account.glz
this.base_hour = res.account.base_hour
this.base_seconds = res.account.base_seconds
@@ -221,7 +242,10 @@
if(this.isSign){
this.$Router.push({name: 'Capacity'})
return
}
}
// 签到
this.Sign()
return
this.checkIMEI().then(res => {
switch (res) {
case 'Permanent':
@@ -405,7 +429,39 @@
flex-wrap: wrap;
position: relative;
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 {
background: white;
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

@@ -11,7 +11,6 @@
<view class="answer show"> A : {{notificationInfo.content}}</view>
</view>
</view>
<view class="notification-block">
<view class="notification-title">
我的意见与建议
@@ -26,8 +25,6 @@
<view class="notification-radiobox-item" :class="{'show': radioValue === '其他问题'}">其他问题</view>
</view>
</view>
<view class="notification-block" v-if="notificationImg.length>0">
<view class="notification-title">上传应用截图({{notificationImg.length}}/8)</view>
<view class="notification-sbutitle">上传出现问题的应用图片</view>
@@ -51,15 +48,12 @@
<input class="notification-input" type="number" :disabled="true" v-model="mobile" maxlength="11"
placeholder="输入手机号码" />
</view>
<!-- 微信客服 -->
<u-modal :show="wechatCode" title="微信客服" confirmColor="#34CE98" :showCancelButton="true" cancelText="关闭"
confirmText="保存二维码" @cancel="wechatCode = false" @confirm="dowQrCode">
<slot>
<view class="wechat-content">
<image class="wechat-qrcode" :src="require('@/static/user/qrCode.jpeg')" mode="widthFix"></image>
<image class="wechat-qrcode" :src="require('@/static/user/qrCode.png')" mode="widthFix"></image>
<view class="wechat-text">扫描企业微信二维码添加微信客服</view>
</view>
</slot>
@@ -123,7 +117,7 @@
methods: {
dowQrCode() {
uni.saveImageToPhotosAlbum({
filePath: require('@/static/user/qrCode.jpeg'),
filePath: require('@/static/user/qrCode.png'),
success(res) {
uni.showToast({
title: '二维码已保存到系统相册',

View File

@@ -3,7 +3,6 @@
<view class="service-content">
<view class="service"> 本次售后服务将由<span>DT生态平台</span>为您提供服务 </view>
</view>
<view class="plane">
<view class="plane-state">
<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>
</view>
<view class="goods-item">
<image :src="goodsInfo.cover" mode="aspectFill" class="good-img" />
<view class="item--content">
@@ -25,8 +23,6 @@
</view>
</view>
</view>
<view class="total">
<view class="total-item grey">
申请金额<text>{{refundInfo.refund_total || '0.00'}} DT</text>
@@ -89,11 +85,21 @@
<view class="info-item">
<view class="label">申请时间</view>
<view class="content">{{refundInfo.created_at}}</view>
</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>
</template>
</template>
<script>
import {
@@ -123,7 +129,7 @@
methods: {
refund() {
refundsInfo(this.$Route.query.id).then(res => {
this.goodsInfo = res.items[0];
this.goodsInfo = res.items[0];
this.refundInfo = res;
this.type = res.type.state;
this.process = res.process
@@ -163,13 +169,37 @@
})
}
})
}
},
onCallPhone(){
uni.makePhoneCall({
phoneNumber: this.refundInfo.shop.mobile,
complete(err) {
console.log(err)
}
})
}
}
}
</script>
<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 {
width: 70%;
@@ -187,8 +217,9 @@
.afterSales {
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 {
width: 100%;
@@ -201,11 +232,12 @@
box-sizing: border-box;
padding: 60rpx $padding 40rpx $padding;
.title {
font-size: 40rpx;
.title {
width: 100%;
font-size: 26rpx;
color: #FFFFFF;
font-weight: bold;
margin-top: 20rpx;
margin-top: 20rpx;
text-align: center;
}
}

View File

@@ -179,7 +179,7 @@
}
for (var i in this.skus) {
if (this.skus[i].unit === str) {
if (this.skus[i].unit == str) {
this.selectSkusValues = this.skus[i];
break;
}

View File

@@ -130,7 +130,19 @@
供应商入驻
<uni-icons class="forward" type="forward" color="#999" />
</view>
</view>
</view>
<view class="btns-box">
<view class="btns-box-item" @click="onShare">
<image class="icon" src="@/static/user/userIcon_14.png" mode="widthFix" />
绑定分享关系
<block v-if="share == null">
<uni-icons class="forward" type="forward" color="#999" />
</block>
<block v-else>
<text class="forward" style="color: gray;">{{share.nickname}}</text>
</block>
</view>
</view>
<view class="btns-box">
<view class="btns-box-item" @click="onBtn('Feedback', {})">
<image class="icon" src="@/static/user/userIcon_06.png" mode="widthFix" />
@@ -190,21 +202,46 @@
placeholder="输入支付密码" />
</view>
</slot>
</u-modal>
</u-modal>
<!-- 绑定分享关系 -->
<u-modal
:show="showBind"
confirmColor="#34CE98"
:showCancelButton="true"
:confirmText="isInvitation ? '校验邀请码': '绑定关系'"
@cancel="()=> {
this.showBind = false
this.isInvitation = true
this.invitation = ''
}"
@confirm="onBind"
>
<slot>
<view class="bind-view" v-if="isInvitation">
<view class="bind-title">邀请码</view>
<view class="bind-subtitle">请输入好友的邀请码</view>
<view class="bind-input">
<input type="text" v-model="invitation" placeholder="输入邀请码">
</view>
</view>
<view class="bind-user" v-else>
<view class="bind-title">邀请用户</view>
<view class="bind-subtitle">请确认绑定关系用户信息</view>
<view class="bind-acitve">
<image :src="invitationUser.avatar" mode="aspectFill"></image>
</view>
<view class="bind-nickname">{{invitationUser.nickname}}</view>
<view class="bind-username">{{invitationUser.username}}</view>
</view>
</slot>
</u-modal>
</view>
</template>
<script>
import {
info,
chainSeed
} from '@/apis/interfaces/user';
import {
payPassword
} from '@/apis/interfaces/account.js'
import {
getVersions
} from '@/apis/interfaces/versions.js'
import { info, chainSeed, relationsBind, relationsVerify } from '@/apis/interfaces/user';
import { payPassword } from '@/apis/interfaces/account.js'
import { getVersions } from '@/apis/interfaces/versions.js'
export default {
data() {
return {
@@ -243,7 +280,13 @@
canSeeData: false,
messages:0,
wbtAccount:'',
wbtShow:false,
wbtShow:false,
// 绑定关系
share : null,
showBind : false,
invitation : '',
isInvitation : true,
invitationUser : {}
};
},
onShow() {
@@ -252,7 +295,6 @@
},
methods: {
onWbt(){
console.log(this.wbtAccount);
if(this.wbtAccount === ''){
uni.showModal({
title:'温馨提示',
@@ -266,40 +308,86 @@
}
})
}else{
console.log('....')
this.wbtShow = true;
}
},
},
// 绑定分享关系
onShare(){
if(this.share != null){
return
}
this.showBind = true
},
// 绑定邀请码
onBind(){
// 检验邀请码
if(this.isInvitation){
if(this.invitation === ''){
uni.showToast({
title: '请输入邀请码',
icon : 'none'
})
return
}
relationsVerify(this.invitation).then(res => {
this.invitationUser = res
this.isInvitation = false
}).catch(err => {
uni.showToast({
title: err.message,
icon : 'none'
})
})
return
}
// 绑定关系
relationsBind(this.invitation).then(res => {
this.showBind = false
uni.showModal({
title : '提示',
content : '关系绑定成功',
showCancel : false,
success : res => {
this.getInfo()
}
})
}).catch(err => {
uni.showToast({
title: err.message,
icon : 'none'
})
})
},
// 用户信息
getInfo() {
if (this.$store.state.token === '') return;
info().then(res => {
uni.setNavigationBarTitle({
title: res.nickname
});
this.canSeeData = res.can_see_data
this.order = res.order
this.cardText = res.identity_array
this.userInfo = {
nickname: res.nickname,
addr: res.addr,
avatar: res.avatar,
isOpenVip: res.is_open_vip,
username: res.username
}
this.identity = res.identity;
this.account = res.account;
this.serial = res.serial;
this.hasPassword = res.has_transfer_password;
this.messages = Number(res.messages);
this.wbtAccount = res.wbt_account;
})
.catch(err => {
uni.showToast({
title: err.message,
icon: 'none'
});
});
uni.setNavigationBarTitle({
title: res.nickname
});
this.share = String(res.share) == '' ? null : res.share
this.canSeeData = res.can_see_data
this.order = res.order
this.cardText = res.identity_array
this.userInfo = {
nickname: res.nickname,
addr: res.addr,
avatar: res.avatar,
isOpenVip: res.is_open_vip,
username: res.username
}
this.identity = res.identity;
this.account = res.account;
this.serial = res.serial;
this.hasPassword = res.has_transfer_password;
this.messages = Number(res.messages);
this.wbtAccount = res.wbt_account;
}).catch(err => {
uni.showToast({
title: err.message,
icon: 'none'
});
});
},
// 导出助记词
onMnemonic() {
@@ -499,8 +587,82 @@
.content {
background: $window-color;
min-height: 100vh;
}
}
// 邀请码
.bind-view{
padding: 15rpx 30rpx;
width: 100%;
box-sizing: border-box;
.bind-title{
text-align: center;
font-size: 36rpx;
font-weight: bold;
}
.bind-subtitle{
line-height: 40rpx;
font-size: 28rpx;
color: gray;
padding-top: 15rpx;
text-align: center;
}
.bind-input{
padding-top: 30rpx;
input{
background: #f8f8f8;
width: 100%;
height: 80rpx;
padding: 0 30rpx;
border-radius: 40rpx;
text-align: center;
box-sizing: border-box;
font-size: 32rpx;
font-weight: bold;
}
}
}
// 确认绑定用户关系
.bind-user{
padding: 15rpx 30rpx;
width: 100%;
box-sizing: border-box;
.bind-title{
text-align: center;
font-size: 36rpx;
font-weight: bold;
}
.bind-subtitle{
line-height: 40rpx;
font-size: 28rpx;
color: gray;
padding-top: 15rpx;
text-align: center;
}
.bind-acitve{
text-align: center;
padding-top: 30rpx;
image{
width: 108rpx;
height: 108rpx;
background: #f8f8f8;
border-radius: 50%;
}
}
.bind-nickname{
text-align: center;
font-size: 32rpx;
color: #333;
font-weight: bold;
line-height: 40rpx;
padding-top: 20rpx;
}
.bind-username{
text-align: center;
font-weight: bold;
font-size: 28rpx;
color: gray;
}
}
// 版权信息
.footer-text {
text-align: center;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

BIN
static/user/qrCode.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
static/user/userIcon_14.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

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