main
LGX 4 months ago
parent 295337d250
commit 6c21768b62
  1. 61
      api/index.js
  2. 2
      api/request.js
  3. 14
      manifest.json
  4. 31
      pages.json
  5. 29
      pages/face/face.vue
  6. 121
      pages/index/index.vue
  7. 22
      pages/login/auth/auth.vue
  8. 29
      pages/login/login.vue
  9. 86
      pages/mendainlist/mendainlist.vue
  10. 143
      pages/order/order.vue
  11. 103
      pages/user/index.vue
  12. 70
      pages/user/portrait/portrait.vue
  13. 11
      pages/user/userxy/userxy.vue
  14. BIN
      static/微信图片_20240725144850.png
  15. 4
      uni_modules/ksp-cropper/components/ksp-cropper/ksp-cropper.vue

@ -3,86 +3,65 @@ import {
} from './request'
const api = {
uploadFile(data) {
return requestuploadFile({
url: 'api/uploadFile',
method: 'post',
data
})
},
wxMinLogin(data) {
return request({
url: 'api/wxMinLogin',
method: 'post',
data
})
},
memberAgreement(data) {
cardList(data) {
return requestwhq({
url: 'api/memberAgreement',
url: 'api/cardList',
method: 'post',
data
})
},
memberPrivacy(data) {
storeList(data) {
return requestwhq({
url: 'api/memberPrivacy',
url: 'api/storeList',
method: 'post',
data
})
},
taskList(data) {
nearStore(data) {
return request({
url: 'api/user/taskList',
url: 'api/nearStore',
method: 'post',
data
})
},
orderGrabbing(data) {
numberCheck(data) {
return request({
url: 'api/user/orderGrabbing',
url: 'api/user/numberCheck',
method: 'post',
data
})
},
memberTaskList(data) {
cardBuy(data) {
return request({
url: 'api/user/memberTaskList',
url: 'api/user/cardBuy',
method: 'post',
data
})
},
memberInfo(data) {
cardPay(data) {
return request({
url: 'api/user/memberInfo',
url: 'api/user/cardPay',
method: 'post',
data
})
},
auth(data) {
return request({
url: 'api/user/auth',
method: 'post',
data
})
},
taskReceiptFile(data) {
memberInfo(data) {
return request({
url: 'api/user/taskReceiptFile',
url: 'api/user/memberInfo',
method: 'post',
data
})
},
cancelTask(data) {
memberCardList(data) {
return request({
url: 'api/user/cancelTask',
url: 'api/user/memberCardList',
method: 'post',
data
})
},
duringTask(data) {
memberFace(data) {
return request({
url: 'api/user/duringTask',
url: 'api/user/memberFace',
method: 'post',
data
})
@ -101,9 +80,9 @@ const api = {
data
})
},
authInfo(data) {
ipGetCity(data) {
return request({
url: 'api/user/authInfo',
url: 'api/ipGetCity',
method: 'post',
data
})

@ -1,5 +1,5 @@
import Vue from 'vue'
let baseUrl = 'https://logistics.njrenzhou.cn/';
let baseUrl = 'https://bodybuilding.njrenzhou.cn/';
//https://console-docs.apipost.cn/preview/077df998e6b8e954/a3d90a650bdbe292
Vue.prototype.$baseUrl = baseUrl;

@ -42,20 +42,28 @@
},
"ios" : {},
/* ios */
"sdkConfigs" : {}
"sdkConfigs" : {
"maps" : {}
}
}
},
/* SDK */
"quickapp" : {},
/* */
"mp-weixin" : {
"appid" : "wx15c8046399298d65",
"appid" : "wxc5dab7c1ba926d12",
"setting" : {
"urlCheck" : false,
"minified" : true
},
"lazyCodeLoading" : "requiredComponents",
"usingComponents" : true
"usingComponents" : true,
"permission" : {
"scope.userLocation" : {
"desc" : "你的位置信息将用于小程序位置接口的效果展示"
}
},
"requiredPrivateInfos" : [ "getLocation", "chooseLocation" ]
},
"vueVersion" : "2"
}

@ -1,17 +1,19 @@
{
"pages": [
// {
// "path": "pages/login/login",
// "style": {
// "navigationBarTitleText": "登录",
// "navigationBarBackgroundColor": "#fff"
// }
// },
{
"path": "pages/login/login",
"style": {
"navigationBarTitleText": "登录",
"navigationBarBackgroundColor": "#fff",
"navigationStyle": "custom"
}
},
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "首页",
"navigationStyle": "custom"
}
},
{
@ -32,7 +34,8 @@
"path" : "pages/user/portrait/portrait",
"style" :
{
"navigationBarTitleText" : ""
"navigationBarTitleText" : "",
"navigationStyle": "custom"
}
},
{
@ -40,7 +43,8 @@
"style" :
{
"navigationBarTitleText" : "",
"navigationStyle": "custom"
"navigationStyle": "custom",
"enablePullDownRefresh": true
}
},
{
@ -58,6 +62,13 @@
"navigationBarTitleText" : "",
"navigationStyle": "custom"
}
},
{
"path" : "pages/login/auth/auth",
"style" :
{
"navigationBarTitleText" : ""
}
}
],
"tabBar": {
@ -80,7 +91,7 @@
]
},
"globalStyle": {
"navigationBarTextStyle": "fff",
"navigationBarTextStyle": "#222222",
"navigationBarTitleText": "uni-app",
"navigationBarBackgroundColor": "#F8A617",
"backgroundColor": "#55ff00",

@ -38,7 +38,9 @@
data() {
return {
url: "",
path: ""
path: "",
yrenlianlist:[],
jqrllist:[]
}
},
methods: {
@ -47,22 +49,45 @@
this.chooseImage()
},
qudbtn(){
this.$refs.popup.close('center')
// this.$refs.popup.close('center')
// var tjlist=[...this.yrenlianlist,...this.jqrllist]
uni.uploadFile({
url: 'https://bodybuilding.njrenzhou.cn/api/uploadFile',
filePath:this.path,
name: 'file',
formData: {
'user': 'test'
},
success: (res) => {
console.log('tjlist',JSON.parse(res.data));
var data=JSON.parse(res.data)
this.$api.memberFace({face_id:data.data.file_id}).then(res=>{
this.$refs.popup.close('center')
})
}
});
},
chooseImage() {
var that=this
that.yrenlianlist=[]
uni.chooseImage({
count: 1,
success: function(res) {
console.log(111,res);
console.log(888,this);
that.url = res.tempFilePaths[0];
that.yrenlianlist.push(that.url)
}
});
},
onok(ev) {
this.jqrllist=[]
this.url = "";
this.path = ev.path;
this.jqrllist.push(this.path)
console.log('this.path',this.path);
},
oncancel() {
// url

@ -3,13 +3,13 @@
<image src="@/static/bg.png" mode="" style="width: 100%;height: 928rpx;"></image>
<view class="top">
<image class="dw" src="@/static/定位.png" mode="" style="width: 30rpx;height: 30rpx;"></image>
<view class="xuzou">徐州</view>
<view class="xuzou">{{city}}</view>
<picker @change="bindPickerChange" :value="index" :range="array">
<image class="jiantou" src="@/static/jiantou.png" mode="" style="width: 15rpx;height: 15rpx;"></image>
</picker>
</view>
<view class="topimg">
<image class="topimg1" src="@/static/uni.png" mode=""></image>
<image class="topimg1" :src="tuijianlist[0].image.url" mode=""></image>
</view>
<view class="mendian">
<view class="mendian1">
@ -18,15 +18,15 @@
找门店<uni-icons type="right" size="18"></uni-icons>
</view>
</view>
<view class="mddz">
<view class="mddz" v-for="(item,index) in tuijianlist" :key="index">
<view class="mddz1">
<image class="mddz1img" src="@/static/uni.png" mode=""></image>
<view class="mddz1wz">运动湾24小时自助健身(置地大厦店)</view>
<image class="mddz1img" :src="item.image.url" mode=""></image>
<view class="mddz1wz">{{item.name}}</view>
</view>
<view class="mddz2">
<image class="mddz1img1" src="@/static/定位1.png" mode=""></image>
<text class="dz">地址徐州云龙区置地大厦116号</text>
<image class="mddz1img2" src="@/static/电话o.png" mode="" @click="makePhoneCall"></image>
<text class="dz">{{item.address}}</text>
<image class="mddz1img2" src="@/static/电话o.png" mode="" @click="makePhoneCall(item.mobile)"></image>
</view>
</view>
</view>
@ -35,23 +35,14 @@
<view class="btnwz1">美团/抖音验券进场</view>
</view>
<view class="hy">会员套餐</view>
<view class="btboxs" v-for="(item,index) in 4" @click="taochan">
<view class="btbox">
<image src="@/static/uni.png" mode="" class="btimg"></image>
<view class="bttitle">暑假双月卡</view>
<view class="btwz">期限60</view>
<view class="btboxs">
<view class="btbox" v-for="(item,index) in viplist" :key="index" @click="taochan(item)">
<image :src="item.img.url" mode="" class="btimg"></image>
<view class="bttitle">{{item.name}}</view>
<view class="btwz">期限{{item.validity_day}}</view>
<view class="btwzjg">
<text class="btwzjg1">189</text>
<text class="btwzjg2">原件190</text>
</view>
</view>
<view class="btbox">
<image src="@/static/uni.png" mode="" class="btimg"></image>
<view class="bttitle">暑假双月卡</view>
<view class="btwz">期限60</view>
<view class="btwzjg">
<text class="btwzjg1">189</text>
<text class="btwzjg2">原件190</text>
<text class="btwzjg1">{{item.price}}</text>
<text class="btwzjg2">原件{{item.original_price}}</text>
</view>
</view>
</view>
@ -65,33 +56,91 @@
团购验券
</view>
<view class="input">
<input class="input1" type="text" placeholder="请输入抖音/美团券码" />
<input class="input1" type="text" placeholder="请输入抖音/美团券码" v-model="number"/>
<image class="saoma" src="@/static/扫一扫.png" mode=""></image>
</view>
<view class="yqbtn">
<view class="yqbtn" @click="numberCheck">
验券
</view>
</view>
</uni-popup>
</view>
</template>
<script>
export default {
data() {
return {
city:'',
number:'',
viplist:[],
mendainlist:[],
latitude:'',
longitude:'',
tuijianlist:[],
}
},
onShow() {
this.cardList(1)
// this.storeList(1)
this.getLocation()
},
methods: {
makePhoneCall(){
console.log(111);
// uni.makePhoneCall({
// phoneNumber: '114' //
// });
numberCheck(){
this.$api.numberCheck({number:this.number}).then(res=>{
if(res.data.code==200){
uni.showToast({
icon: "none",
title: res.data.msg,
duration: 3000
});
this.$refs.popup.close('center')
}
})
},
getLocation(){
console.log(1234);
var that=this
uni.getLocation({
type: 'wgs84',
success: function (res) {
that.latitude= res.latitude;
that.longitude= res.longitude;
that.$api.nearStore({latitude:that.latitude,longitude:that.longitude,limit:1}).then(res=>{
that.tuijianlist=res.data
})
that.$api.ipGetCity().then(res=>{
console.log('res',res);
that.city=res.data.city
})
},
fail: function (error) {
console.error('获取位置失败:', error);
}
});
},
cardList(page){
this.$api.cardList({page:page}).then(res=>{
console.log(123,res);
this.viplist=res.data.list
})
},
storeList(page){
this.$api.storeList({page:page}).then(res=>{
this.mendainlist=res.data.list
})
},
makePhoneCall(e){
uni.makePhoneCall({
phoneNumber: e //
});
},
mendianlist() {
uni.navigateTo({
url: '/pages/mendainlist/mendainlist'
url: '/pages/mendainlist/mendainlist?item='+'shouye'
})
},
tuanquan() {
@ -100,9 +149,13 @@
close() {
this.$refs.popup.close('center')
},
taochan() {
taochan(i) {
uni.setStorageSync('xzmd','')
var that=this
var tuijianlist=JSON.stringify(that.tuijianlist[0])
var item=JSON.stringify(i)
uni.navigateTo({
url: '/pages/order/order'
url: `/pages/order/order?tuijianlist=${tuijianlist}&item=${item}`
})
},
}

@ -0,0 +1,22 @@
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
</style>

@ -1,7 +1,11 @@
<template>
<view class="box">
<image class="img" src="@/static/logo.png" mode=""></image>
<image src="@/static/bg.png" mode="" style="width: 100%;height: 928rpx;"></image>
<view class="top">登录</view>
<image class="img" src="@/static/微信图片_20240725144850.png" mode=""></image>
<!-- <button class="btn" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">手机号一键登录</button> -->
<!-- <button class="btn" open-type="getUserInfo" @getuserinfo="getUserInfo">获取用户信息</button> -->
<view class="btn">手机号快捷登录
<button v-if="isSelct" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber"></button>
<button v-else @click="login()"></button>
@ -53,15 +57,28 @@
},
methods: {
getUserInfo(e) {
console.log(11111,e);
if (e.detail.userInfo) {
//
const userInfo = e.detail.userInfo;
this.avatarUrl = userInfo.avatarUrl;
this.nickName = userInfo.nickName;
//
} else {
//
}
},
getPhoneNumber(e) {
console.log(123, e);
if (e.detail.errMsg == 'getPhoneNumber:ok') {
uni.request({
url: 'https://logistics.njrenzhou.cn/api/wxMinLogin',
url: 'https://bodybuilding.njrenzhou.cn/api/wxMinLogin',
method: 'post',
data: {
code: this.wxcode,
mobile_code: e.detail.code
mobile_code: e.detail.code,
avatar:''
},
success: (res) => {
console.log(12344, res.data.code);
@ -112,6 +129,11 @@
</script>
<style scoped lang="less">
.top{
position: absolute;
top: 96rpx;
left: 20rpx;
}
.xy {
color: #0068AF;
}
@ -130,6 +152,7 @@
margin: 133rpx;
width: 485rpx;
height: 470rpx;
margin-top: -560rpx;
}
.btn {

@ -4,18 +4,21 @@
<view class="top" @click="previous">
<view class="xuzou">
<uni-icons type="left" size="18"></uni-icons>
<text class="title">门店列表</text>
</view>
<text class="title">门店列表</text>
</view>
</view>
<view class="mendian">
<view class="mddz" v-for="(item,index) in 5">
<view class="mddz" v-for="(item,index) in mendainlist" :key="index" @click="xzmd(item)">
<view class="mddz1">
<image class="mddz1img" src="@/static/uni.png" mode=""></image>
<view class="mddz1wz">运动湾24小时自助健身(置地大厦店)</view>
<view class="mddz1wz">{{item.name}}</view>
</view>
<view class="mddz2">
<image class="mddz1img1" src="@/static/定位1.png" mode=""></image>
<text class="dz">地址徐州云龙区置地大厦116号</text>
<view class="">
<image class="mddz1img1" src="@/static/定位1.png" mode=""></image>
<text class="dz">地址{{item.address}}</text>
</view>
<image class="mddz1img2" src="@/static/电话o.png" mode=""></image>
</view>
</view>
@ -27,55 +30,96 @@
export default {
data() {
return {
mendainlist: [],
iswanjie:false,
page:1,
isshouye:''
}
},
onLoad(e) {
console.log(123,e);
this.isshouye=e.item
},
onShow() {
this.storeList(this.page)
},
onReachBottom(){
if(!iswanjie){
this.storeList(this.page+1)
}
},
methods: {
previous(){
xzmd(item){
if(this.isshouye!='shouye'){
var item=JSON.stringify(item)
uni.setStorageSync('xzmd','')
uni.setStorageSync('xzmd',item)
uni.navigateBack()
}
},
previous() {
uni.navigateBack()
},
storeList(page) {
this.$api.storeList({
page: page
}).then(res => {
let arr = res.data.list
if(arr.length<res.data.total){
this.iswanjie=true
}
this.mendainlist = [...this.mendainlist, ...arr]
})
},
}
}
</script>
<style scoped>
.top {
.top {
display: flex;
position: absolute;
top: 96rpx;
left: 20rpx;
}
.title{
.title {
padding-left: 14rpx;
}
.mddz1img2 {
width: 44rpx;
height: 44rpx;
float: right;
}
.mddz2 {
margin-top: 32rpx;
display: flex;
justify-content: space-between;
}
.dz {
margin-left: 17rpx;
font-family: PingFang SC;
font-weight: 500;
font-size: 26rpx;
color: #999999;
}
.mddz1img1 {
width: 22rpx;
height: 27rpx;
}
.mddz1 {
display: flex;
}
.mddz1img {
width: 60rpx;
height: 60rpx;
}
.mddz1wz {
font-family: PingFang SC;
font-weight: bold;
@ -84,7 +128,7 @@
margin-left: 21rpx;
margin-top: 12rpx;
}
.mddz {
width: 680rpx;
height: 152rpx;
@ -94,10 +138,10 @@
margin-top: 24rpx;
padding: 20rpx 17rpx;
}
.mendian{
.mendian {
position: absolute;
top: 152rpx;
left: 24rpx;
}
</style>
</style>

@ -14,12 +14,16 @@
<view class="huiywz">运动湾会员</view>
</view>
<view class="mddz1">
<view class="mddz1wz">运动湾24小时自助健身(置地大厦店)</view>
<view class="mddz1wz">{{mandianxinxi.name}}</view>
</view>
<view class="mddz2">
<image class="mddz1img1" src="@/static/定位1.png" mode=""></image>
<text class="dz">地址徐州云龙区置地大厦116号</text>
<image class="mddz1img2" src="@/static/电话o.png" mode=""></image>
<view class="">
<image class="mddz1img1" src="@/static/定位1.png" mode=""></image>
<text class="dz">地址{{mandianxinxi.address}}</text>
</view>
<!-- <image class="mddz1img2" src="@/static/电话o.png" mode=""></image> -->
<view class="qihuanmd" @click="qhmd">切换门店</view>
</view>
</view>
<view class="taoc">
@ -27,12 +31,12 @@
会员套餐
</view>
<view class="taoctitle1">
<view class="taoctitle1wz">暑假双月卡</view>
<view class="taoctitle1q">189</view>
<view class="taoctitle1wz">{{vipxinxi.name}}</view>
<view class="taoctitle1q">{{vipxinxi.price}}</view>
</view>
<view class="smwz">期限60</view>
<view class="smwz">说明此卡为暑假特价卡一经开卡不退不换</view>
<view class="smwz">限购1</view>
<view class="smwz">期限{{vipxinxi.validity_day}}</view>
<view class="smwz">说明{{vipxinxi.introduce}}</view>
<view class="smwz">限购{{vipxinxi.buy_limit}}</view>
</view>
<view class="zhif">
<view class="zfwi">支付方式</view>
@ -42,18 +46,18 @@
</view>
</view>
</view>
<checkbox-group class="chgroup" v-model="checkboxValue1" @change='change' >
<checkbox-group class="chgroup" v-model="checkboxValue1" @change='change'>
<label class="radio">
<checkbox value="r1"/>
<checkbox value="r1" />
已阅读并同意
<text class="xy" @click="yhxy('yonghu')">用户协议</text>
</label>
</checkbox-group>
<view class="fot">
<view class="fotwz">
支付<text style="color: #F0503E;">179</text>
支付<text style="color: #F0503E;">{{vipxinxi.price}}</text>
</view>
<view class="fotbtn">
<view class="fotbtn" @click="zfsub">
立即支付
</view>
</view>
@ -64,27 +68,97 @@
export default {
data() {
return {
mandianxinxi: {},
vipxinxi: {},
yhxyactive: false
}
},
onLoad(option) {
console.log('option', option);
var that = this
var tuijianlist = JSON.parse(option.tuijianlist)
var vipxinxi = JSON.parse(option.item)
that.vipxinxi = vipxinxi
that.mandianxinxi = tuijianlist
},
onShow() {
var xzmd = uni.getStorageSync('xzmd')
console.log('xzmd',xzmd);
if (xzmd != '') {
this.mandianxinxi = JSON.parse(xzmd)
this.mandianxinxi.id=this.mandianxinxi.store_id
}
console.log('this.mandianxinxi',this.mandianxinxi);
},
methods: {
qhmd() {
uni.navigateTo({
url: '/pages/mendainlist/mendainlist'
})
},
change(e) {
console.log(123, e);
if (e.detail.value.length != 0) {
this.yhxyactive = true
} else {
this.yhxyactive = false
}
},
previous() {
uni.navigateBack()
},
yhxy(){}
yhxy() {},
zfsub() {
if (!this.yhxyactive) {
uni.showToast({
icon: "none",
title: '请先勾选用户协议',
duration: 3000
});
} else {
this.$api.cardBuy({
card_id: this.vipxinxi.card_id,
store_id: this.mandianxinxi.id
}).then(res => {
if (res.code == 200) {
this.$api.cardPay({
order_no: res.data.order_no,
pay_type: 1
}).then(res => {
uni.requestPayment({
provider: 'wxpay',
timeStamp:res.data.timeStamp,
nonceStr: res.data.nonceStr,
package: res.data.package,
signType: res.data.signType,
paySign:res.data.paySign,
success: function (res) {
console.log('success:' + JSON.stringify(res));
},
fail: function (err) {
console.log('fail:' + JSON.stringify(err));
}
});
})
}
})
}
},
}
}
</script>
<style scoped>
.xy{
.xy {
color: #F8A617;
}
.chgroup{
.chgroup {
position: fixed;
left: 24rpx;
bottom: 127rpx;
}
.fot {
width: 750rpx;
height: 101rpx;
@ -97,15 +171,17 @@
display: flex;
justify-content: space-between;
}
.fotwz{
.fotwz {
line-height: 101rpx;
margin-left: 26rpx;
}
.fotbtn{
.fotbtn {
width: 200rpx;
height: 70rpx;
background: #F8A617;
box-shadow: 0rpx 4rpx 13rpx 0rpx rgba(19,14,4,0.14);
box-shadow: 0rpx 4rpx 13rpx 0rpx rgba(19, 14, 4, 0.14);
border-radius: 35rpx;
font-family: PingFang SC;
font-weight: 500;
@ -116,6 +192,7 @@
margin-top: 15rpx;
margin-right: 24rpx;
}
.zhif {
width: 650rpx;
padding: 20rpx 28rpx;
@ -225,12 +302,34 @@
float: right;
}
.qihuanmd {
width: 150rpx;
height: 50rpx;
background: rgba(248, 166, 23, 0);
border-radius: 25rpx;
border: 1px solid #F8A617;
font-family: PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #F8A617;
text-align: center;
line-height: 50rpx;
/* margin-top: 20rpx; */
/* float: right; */
}
.mddz2 {
margin-top: 32rpx;
display: flex;
justify-content: space-between;
}
.dz {
margin-left: 17rpx;
font-family: PingFang SC;
font-weight: 500;
font-size: 26rpx;
color: #999999;
}
.mddz1img1 {
@ -258,12 +357,12 @@
.mddz {
width: 650rpx;
height: 192rpx;
/* height: 192rpx; */
background: #FFFFFF;
box-shadow: 0rpx 3rpx 9rpx 0rpx rgba(19, 14, 4, 0.08);
border-radius: 20rpx;
margin-top: 24rpx;
padding: 20rpx 28rpx;
padding: 45rpx 28rpx;
}
.mendian {

@ -8,24 +8,39 @@
</view>
</view>
<view class="mendian">
<image class="img" src="@/static/认证成功.png" mode=""></image>
<image class="img" :src="userxixin.avatar?userxixin.avatar:avatar" mode="" @click="gengx"></image>
<view class="xinxi">
<view class="">幽默的先生</view>
<view class="">18009098090</view>
<view class="">{{userxixin.nickname?userxixin.nickname:'微信用户'}}</view>
<view class="">{{userxixin.mobile?userxixin.mobile:'暂无手机号'}}</view>
</view>
<view class="renlbtn" @click="face">人脸录入</view>
</view>
<view class="huiy">
<image class="huiyimg" src="@/static/hbg.png" mode=""></image>
<view class="huiybox">
<image class="huiyboximg" src="@/static/huangguan.png" mode=""></image>
<view class="huiywz">会员套餐</view>
</view>
<view class="huiyxx">
<view class="">早鸟体验卡1天</view>
<view class="">1</view>
<view class="" v-for="(item,index) in viplist" :key="index" style="height: 223rpx;">
<image class="huiyimg" src="@/static/hbg.png" mode=""></image>
<view class="huiybox">
<image class="huiyboximg" src="@/static/huangguan.png" mode=""></image>
<view class="huiywz">会员套餐</view>
</view>
<view class="huiyxx">
<view class="">{{item.card_name}}
<text v-if="item.card_type!==2">{{item.validity_day}}</text>
<text v-if='item.validity_date'>
到期时间{{item.validity_date}}
</text>
</view>
<view class="" v-if="item.card_type==2">{{item.validity_num}}</view>
<view class="" v-else>
<text v-if='item.validity_date'>
到期时间{{item.validity_date}}
</text>
</view>
</view>
</view>
</view>
<!-- <button open-type="chooseAvatar" @chooseavatar='chooseAvatar'>获取头像</button> -->
</view>
</template>
@ -33,16 +48,41 @@
export default {
data() {
return {
userxixin: {},
avatar: require("@/static/huangguan.png"),
viplist: []
}
},
onShow() {
this.memberInfo()
this.memberCardList()
},
methods: {
chooseAvatar(e) {
console.log(123, e);
},
gengx() {
uni.navigateTo({
url: "/pages/user/portrait/portrait"
})
},
memberInfo() {
this.$api.memberInfo().then(res => {
this.userxixin = res.data
})
},
memberCardList(page) {
this.$api.memberCardList(page).then(res => {
this.viplist = res.data.list
})
},
previous() {
uni.navigateBack()
},
face(){
face() {
uni.navigateTo({
url:"/pages/face/face"
url: "/pages/face/face"
})
}
}
@ -50,39 +90,45 @@
</script>
<style scoped>
.huiybox{
.huiybox {
display: flex;
margin-left: 50rpx;
position:relative;
top:-200rpx;
position: relative;
top: -200rpx;
font-family: PingFang SC;
font-weight: bold;
font-size: 34rpx;
color: #E7CAAD;
}
.huiywz{
.huiywz {
margin-left: 22rpx;
margin-top: 20rpx;
}
.huiyxx{
.huiyxx {
display: flex;
justify-content: space-between;
margin-left: 50rpx;
margin-right: 50rpx;
margin-top: 41rpx;
position:relative;
top:-200rpx;
position: relative;
top: -200rpx;
font-family: PingFang SC;
font-weight: 500;
font-size: 30rpx;
color: #E7CAAD;
}
.huiyboximg{
.huiyboximg {
width: 70rpx;
height: 55rpx;
}
.huiy{
.huiy {
margin: 0 auto;
width: 722rpx;
height: 230rpx;
@ -90,14 +136,17 @@
top: 344rpx;
left: 24rpx;
}
.huiyimg{
.huiyimg {
width: 722rpx;
height: 230rpx;
}
.img {
width: 110rpx;
height: 110rpx;
border-radius: 50%;
}
.xinxi {
@ -109,7 +158,7 @@
width: 200rpx;
height: 80rpx;
background: #F8A617;
box-shadow: 0rpx 4rpx 13rpx 0rpx rgba(19,14,4,0.14);
box-shadow: 0rpx 4rpx 13rpx 0rpx rgba(19, 14, 4, 0.14);
border-radius: 40rpx;
text-align: center;
line-height: 80rpx;

@ -1,5 +1,12 @@
<template>
<view>
<image src="@/static/bg.png" mode="" style="width: 100%;height: 928rpx;"></image>
<view class="top">
<view class="xuzou" @click="fanhui">
<uni-icons type="left" size="18"></uni-icons>
<text class="title">更新信息</text>
</view>
</view>
<view class="form">
<uni-row>
<uni-col :span="12">
@ -24,6 +31,7 @@
<view class="subbtn" @click="subbtn">
确认
</view>
<view class="fottuichu" @click="outLogin">退出登录</view>
</view>
</template>
@ -49,26 +57,46 @@
},
}
},
onShow() {
this.memberInfo()
},
methods: {
memberInfo() {
this.$api.memberInfo().then(res => {
this.userxixin = res.data
this.FormData.avatar=this.userxixin.avatar
console.log('this.userxixin ',this.userxixin );
})
},
outLogin() {
this.$api.outLogin().then(res => {
uni.removeStorageSync("token")
uni.reLaunch({
url: '/pages/login/login'
})
})
},
fanhui(){
uni.navigateBack()
},
select(e) {
console.log(123, e);
const tempFilePaths = e.tempFilePaths;
//
const imgUrl = tempFilePaths[0]
uni.uploadFile({
url: 'https://logistics.njrenzhou.cn/api/uploadFile',
url: 'https://bodybuilding.njrenzhou.cn/api/uploadFile',
filePath: imgUrl,
name: 'file',
formData: {
file_path: imgUrl,
file_type: '1',
storage: 'local',
file: imgUrl
},
success: (res) => {
this.imageValue = []
let urldata = JSON.parse(res.data)
this.FormData.avatar=urldata.data.id
this.FormData.avatar=urldata.data.file_id
this.imageValue.push({
url: urldata.data.url,
extname: 'png',
@ -125,7 +153,30 @@
}
</script>
<style lang="scss">
<style lang="scss" scoped>
.fottuichu {
width: 702rpx;
height: 80rpx;
background: #999999;
font-family: PingFang SC;
font-weight: 500;
font-size: 30rpx;
color: #222222;
text-align: center;
line-height: 80rpx;
border-radius: 25rpx;
margin: 500rpx auto;
}
.top {
display: flex;
position: absolute;
top: 96rpx;
left: 20rpx;
}
.title {
padding-left: 14rpx;
}
.subbtn {
margin-top: 40rpx;
margin-left: 50rpx;
@ -144,6 +195,7 @@
background: #FFFFFF;
line-height: 120rpx;
padding: 25rpx;
margin-top: -765rpx;
}
.custom-navigation-bar {
@ -160,12 +212,4 @@
.right-button {
padding: 0 12px;
}
.title {
flex: 1;
// text-align: center;
color: #fff;
font-size: 18px;
font-weight: bold;
}
</style>

@ -1,6 +1,7 @@
<template>
<view>
<view class="content" v-html="content"></view>
{{title}}
</view>
</template>
@ -28,11 +29,11 @@
})
},
onShow() {
if(this.xy=='yonghu'){
this.memberAgreement()
}else{
this.memberPrivacy()
}
// if(this.xy=='yonghu'){
// this.memberAgreement()
// }else{
// this.memberPrivacy()
// }
},
methods: {

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

@ -22,10 +22,10 @@
<view class="line-two"></view>
<view class="line-three"></view>
<view class="line-four"></view>
<view class="frame-left-top" @touchstart="mwx.touchstart"></view>
<!-- <view class="frame-left-top" @touchstart="mwx.touchstart"></view>
<view class="frame-left-bottom" @touchstart="mwx.touchstart"></view>
<view class="frame-right-top" @touchstart="mwx.touchstart"></view>
<view class="frame-right-bottom" @touchstart="mwx.touchstart"></view>
<view class="frame-right-bottom" @touchstart="mwx.touchstart"></view> -->
</view>
</view>
<view class="toolbarts">请把人脸放入框内</view>

Loading…
Cancel
Save