Commit 22a1b21a by 严立

LL - 1023正式审核同步版本

parent 4f18479b
......@@ -61,7 +61,7 @@ App({
success: (response) => {
let funcResponse = response.data
this.globalData.appStatus = Boolean(Number(funcResponse[0].value))
this.globalData.appStatus = true
// this.globalData.appStatus = true
}
})
},
......@@ -188,7 +188,7 @@ App({
'avatar': funcResponse.avatarUrl,
'address': funcResponse.address,
'birthday': funcResponse.birthday,
'sex': funcResponse.sex,
'gender': funcResponse.sex ? Number(funcResponse.sex) : 0,
'userType': Number(funcResponse.userType),
'status': '', // 只有游客身份该值为 ''
'isSignIn': false,
......
{
"pages": [
"pages/home/home/home",
"pages/home/dynamic/dynamic",
"pages/home/dynamic-detail/dynamic-detail",
......@@ -56,11 +54,12 @@
"pages/club/member/member",
"pages/club/create/create",
"pages/club/enter/enter",
"pages/login/login"
],
"usingComponents": {
"m-button-bottom": "./component/m-button-bottom/m-button-bottom",
"m-checkbox": "./component/m-checkbox/m-checkbox",
"m-dialog": "./component/m-dialog/m-dialog",
"m-input": "./component/m-input/m-input",
"m-nav": "./component/m-nav/m-nav",
......@@ -69,13 +68,8 @@
"m-toast": "./component/m-toast/m-toast",
"parser": "./component/parser.min/parser",
"swiper-point": "./component/swiper-point/swiper-point",
"l-avatar": "./miniprogram_npm/lin-ui/avatar/index",
"l-checkbox": "./miniprogram_npm/lin-ui/checkbox/index",
"l-checkbox-group": "./miniprogram_npm/lin-ui/checkbox-group/index",
"l-icon": "./miniprogram_npm/lin-ui/icon/index",
"l-list": "./miniprogram_npm/lin-ui/list/index",
"l-mask": "./miniprogram_npm/lin-ui/mask/index",
"l-arc-popup": "./miniprogram_npm/lin-ui/arc-popup/index",
"l-collapse": "./miniprogram_npm/lin-ui/collapse/index",
"l-collapse-item": "./miniprogram_npm/lin-ui/collapse-item/index",
"l-textarea": "./miniprogram_npm/lin-ui/textarea/index",
......
let App = getApp()
Component({
options: {
styleIsolation: 'apply-shared'
},
properties: {
// valid - 有效状态,neutral - 中立状态,仅在 type 为 group 时生效,invalid - 无效状态
icon: {
type: Object,
value: {
valid: './image/valid.png',
neutral: './image/neutral.png',
invalid: './image/invalid.png',
},
},
//
index: {
type: Number,
value: 0,
},
// 选择状态
selection: {
type: Boolean,
value: false,
},
},
data: {
currentIcon: '',
},
lifetimes: {
attached: function () {
this.setState()
},
},
observers: {
'selection': function (funvValue) {
this.setState()
},
},
methods: {
setState: function () {
this.setData({
currentIcon: this.data.selection ? this.data.icon.valid : this.data.icon.invalid
})
},
onSelection: function () {
let funcSelection = !this.data.selection
this.setData({
selection: funcSelection,
currentIcon: funcSelection ? this.data.icon.valid : this.data.icon.invalid
})
this.triggerEvent('change', { 'index': this.data.index, 'selection': this.data.selection })
},
}
})
{
"component": true,
"usingComponents": {}
{
"component": true,
"usingComponents": {}
}
\ No newline at end of file
<view class="m_checkbox">
<image src="{{currentIcon}}" bindtap="onSelection"></image>
</view>
\ No newline at end of file
.m_checkbox {
width: 40rpx;
height: 40rpx;
}
.m_checkbox > image {
width: 40rpx;
height: 40rpx;
border-radius: 50%;
}
......@@ -3,9 +3,23 @@ Component({
styleIsolation: 'apply-shared'
},
properties: {
inputId: { type: String, value: '' },
className: { type: String, value: '' },
placeholder: { type: String, value: '' },
// 组件独立标识,此参数会在 event 中返回
inputId: {
type: String,
value: ''
},
// input 样式类名
className: {
type: String,
value: ''
},
placeholder: {
type: String,
value: ''
},
value: {
type: String,
......
......@@ -15,5 +15,5 @@
}
.container-input {
color: red;
color: #15191F;
}
\ No newline at end of file
<!--picker/picker.wxml-->
<view class="full-box {{isOpen?'cur':''}}">
<!--<view class="modal" bindtap="tapModal"></view>-->
<view class="picker">
<view class="picker-header" style="{{pickerHeaderStyle}}">
<view bindtap="cancle" >
<text style="{{cancelStyle}}">{{cancelText}}</text>
</view>
<text style="{{titleStyle}}">{{titleText}}</text>
<view bindtap="sure">
<text style="{{sureStyle}}">{{sureText}}</text>
</view>
</view>
<picker-view
value="{{value}}"
class="picker-content"
bindpickstart="_bindpickstart"
bindchange="_bindChange"
bindpickend="_bindpickend"
indicator-style="{{indicatorStyle}}"
mask-style="{{maskStyle}}"
>
<picker-view-column wx:for="{{columnsData}}" wx:key="{{index}}">
<view wx:for="{{item}}" wx:for-item="itemIn" class="picker-line" wx:key="{{index}}">
<text class="line1" style="{{chooseItemTextStyle}}">{{isUseKeywordOfShow?itemIn[keyWordsOfShow]:itemIn}}</text>
</view>
</picker-view-column>
</picker-view>
</view>
</view>
/* picker/picker.wxss */
.full-box{
position: fixed;
left: 0;
right: 0;
bottom: 0;
top: 0;
z-index: 9999;
opacity: 0;
background:rgba(0,0,0,.4);
transition:all .4s ease-in-out 0;
pointer-events:none;
}
.full-box.cur{
opacity:1;
pointer-events:auto
}
.modal{
position: absolute;
width: 100%;
height: 50%;
bottom:-50%;
left: 0;
background: transparent;
transition:all .4s ease-in-out 0;
}
.picker{
position: absolute;
width: 100%;
height: 235px;
bottom: -235px;
left: 0;
background: #fff;
display: flex;
flex-direction: column;
transition:all .4s ease-in-out 0;
}
.cur .picker{
bottom:0;
}
.cur .modal{
bottom:50%;
}
.picker-line{
display: flex;
justify-content: center;
align-items: center;
}
.picker-header {
height: 20%;
box-sizing: border-box;
padding: 0 20rpx;
display: flex;
justify-content: space-between;
align-items: center;
border-bottom: 1px solid #eeeeee;
}
.picker-header view {
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
.picker-header view text{
font-size: 36rpx;
}
.picker-content {
flex-grow: 1;
}
.line1{
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
lines:1
}
\ No newline at end of file
function _typeof(obj) {
return Object.prototype.toString.call(obj).slice(8, -1).toLowerCase();
}
function isString(obj) { //是否字符串
return _typeof(obj) === 'string'
}
function isPlainObject(obj) {
return _typeof(obj) === 'object';
}
module.exports = {
isString,
isPlainObject
}
......@@ -476,18 +476,6 @@ Page({
phoneNumber: this.data.phone,
})
},
/**
* 拨打客服取消
* @function
* @param {object} - event
* @returns
*/
customerServiceCancel: function () {
this.setData({
hotline: false,
})
},
/**
* 页面滚动事件
......
......@@ -170,24 +170,4 @@
<image src="{{resourcesBase + 'commodity/home/after-sales.png'}}"></image>
</view>
</view>
<!-- <view class="service-item">
<view class="shop-title col">
<text>滨海温泉院墅</text>
<text>足不出户即可享受滨海温泉</text>
</view>
<view style="position: relative;">
<image class="home-footer" src="{{resourcesBase + 'commodity/home/other.png'}}"></image>
<view class="room-appointment" bindtap="onRoomAppointment">预约看房</view>
<view class="call" bindtap="customerService">拨打客服</view>
</view>
</view> -->
</view>
<!-- 客服热线 -->
<l-arc-popup show="{{hotline}}" arc-radius="30">
<view class="phone">{{phone}}</view>
<view class="call" bindtap="customerService">呼叫</view>
<view style="height:10rpx;background-color:rgb(246,247,249);"></view>
<view class="call" bindtap="customerServiceCancel">取消</view>
</l-arc-popup>
\ No newline at end of file
</view>
\ No newline at end of file
......@@ -104,12 +104,12 @@ Page({
/**
* 勾选状态
* @function
* @param {object} - event
* @param {object} - funcEvent
* @returns
*/
onChangeActive: function (event) {
let funcIndex = event.currentTarget.dataset.index
let funcActive = event.detail.checked
onChangeActive: function (funcEvent) {
let funcIndex = funcEvent.detail.index
let funcActive = funcEvent.detail.selection
let funcShoppingCart = this.data.shoppingCart
funcShoppingCart[funcIndex].isActive = funcActive
......@@ -168,8 +168,8 @@ Page({
* @param {object} - event
* @returns
*/
onSelectionAll: function (event) {
let funcActive = event.detail.checked
onSelectionAll: function (funcEvent) {
let funcActive = funcEvent.detail.selection
let funcShoppingCart = this.data.shoppingCart
for (let i = 0, l = funcShoppingCart.length; i < l; i++) {
funcShoppingCart[i].isActive = funcActive
......
......@@ -13,12 +13,7 @@
<block wx:for="{{shoppingCart}}" wx:for-index="index" wx:for-item="item" wx:key="index">
<view class="list-item row">
<view class="list-item-cover row align-c">
<l-checkbox-group l-class="list-item-selection" data-index="{{index}}" bind:linchange="onChangeActive">
<l-checkbox custom="{{true}}" checked="{{item.isActive}}" size="40rpx">
<image hidden="{{!item.isActive}}" class="list-item-selection-icon" src="/image/icon/selection-active.png" slot="icon"></image>
<image hidden="{{item.isActive}}" class="list-item-selection-icon" src="/image/icon/selection-inactive.png" slot="icon"></image>
</l-checkbox>
</l-checkbox-group>
<m-checkbox index="{{index}}" selection="{{item.isActive}}" bindchange="onChangeActive"></m-checkbox>
<image src="{{item.cover}}" mode="aspectFill"></image>
</view>
<view class="list-item-info col">
......@@ -91,12 +86,7 @@
<view class="pay row con-c align-c">
<!-- 选择计数 -->
<view class="pay-selection row con-c align-c">
<l-checkbox-group l-class="list-item-selection" bind:linchange="onSelectionAll">
<l-checkbox custom="{{true}}" checked="{{allSelectionIsActive}}" size="40rpx">
<image hidden="{{!allSelectionIsActive}}" class="list-item-selection-icon" src="/image/icon/selection-active.png" slot="icon"></image>
<image hidden="{{allSelectionIsActive}}" class="list-item-selection-icon" src="/image/icon/selection-inactive.png" slot="icon"></image>
</l-checkbox>
</l-checkbox-group>
<m-checkbox selection="{{allSelectionIsActive}}" bindchange="onSelectionAll"></m-checkbox>
<text>全选</text>
</view>
......
const App = getApp()
let App = getApp()
Page({
data: {
option: {},
......
......@@ -2,7 +2,6 @@ let App = getApp()
Page({
data: {
phone: '13856782234',
hotline: false, //客服热线
type: 0, //夜间入园
name: '',
mobile: '',
......@@ -10,7 +9,6 @@ Page({
time: '',
tickerInfo: {},
isDoing: false,
isShowCancel: false,
},
onLoad: function (options) {
......@@ -21,7 +19,6 @@ Page({
let nowStr = new Date().toLocaleString().substr(0, 10).replace(/-/g, '/') + " 00:00:00"
let now = Date.parse(nowStr)
let isShowCancel = now <= yyDate
this.setData({
tickerInfo: detail,
type: detail.type,
......@@ -29,15 +26,21 @@ Page({
mobile: detail.mobile,
num: detail.num,
time: detail.time,
isShowCancel
})
},
showHotline() {
this.setData({
hotline: true
/**
* 拨打客服
* @function
* @param {object} - event
* @returns
*/
customerService: function () {
wx.makePhoneCall({
phoneNumber: this.data.phone,
})
},
//取消预约
onCancel: function (event) {
if (this.data.isDoing) return
......@@ -108,13 +111,6 @@ Page({
})
},
//取消拨打
cancel() {
this.setData({
hotline: false,
})
},
/**
* 页面滚动事件
* @function
......
......@@ -37,18 +37,9 @@
</view>
<image src="http://sm-web.meiqicloud.com/userfiles/appResources/appointment/night/ornament-1.png" class="thanks"></image>
</view>
<view class="bottom-btns" wx:if="{{isShowCancel}}">
<view class="bottom-btns">
<view class="custom margin-right-20" bindtap="onCancel">取消预约</view>
<view class="custom" bindtap="showHotline">客服咨询</view>
<view class="custom" bindtap="customerService">客服咨询</view>
</view>
<view wx:else class="custom" bindtap="showHotline">客服咨询</view>
</view>
</view>
<!-- 客服热线 -->
<l-arc-popup show="{{hotline}}" arc-radius="30">
<view class="phone">{{phone}}</view>
<view class="call" bindtap="call">呼叫</view>
<view style="height:10rpx;background-color:rgb(246,247,249);"></view>
<view class="call" bindtap="cancel">取消</view>
</l-arc-popup>
\ No newline at end of file
</view>
\ No newline at end of file
......@@ -12,7 +12,7 @@ Page({
'avatar': '',
'address': '',
'birthday': '',
'sex': '',
'gender': '',
'userType': 0
},
......@@ -719,7 +719,7 @@ Page({
App.pageScroll(funcEvent, this)
},
close() {
onOwnerPrivilegeClose() {
this.setData({
mask: false
});
......
......@@ -39,15 +39,17 @@
</view>
</view>
<view class="status-authentication row cb ac">
<view class="status-symbol col">
<text>业主认证</text>
<text>享受业主尊贵特权,预定消费专属优惠</text>
</view>
<view class="status-operation row cc ac" bindtap="onAuthentication">
<image wx:if="{{statusText == '审核失败'}}" src="{{imageBase + 'icon/warning-1.png'}}"></image>
<image wx:if="{{statusText == '审核中'}}" src="{{imageBase + 'icon/clock-1.png'}}"></image>
<text>{{statusText}}</text>
<view class="list row cc ac">
<view class="status-authentication row cb ac">
<view class="status-symbol col">
<text>业主认证</text>
<text>享受业主尊贵特权,预定消费专属优惠</text>
</view>
<view class="status-operation row cc ac" bindtap="onAuthentication">
<image wx:if="{{statusText == '审核失败'}}" src="{{imageBase + 'icon/warning-1.png'}}"></image>
<image wx:if="{{statusText == '审核中'}}" src="{{imageBase + 'icon/clock-1.png'}}"></image>
<text>{{statusText}}</text>
</view>
</view>
</view>
</block>
......@@ -264,12 +266,10 @@
</view>
<!-- 我的俱乐部 -->
<!--
<view class="club row con-b align-c" bindtap="onToClub">
<text>我的俱乐部</text>
<image class="icon" src="{{imageBase + 'icon/arrow-r-2.png'}}"></image>
</view>
-->
<!-- 客服中心 -->
<view class="service row con-b align-c" bindtap="onService">
......@@ -279,23 +279,12 @@
</view>
</view>
<!-- 业主弹出层 -->
<l-mask show="{{mask}}" center="{{true}}">
<view class='mask-content'>
<view class="row con-c">
<image src="http://upload.miaomiao-bao.com/ea238202008201146199955.png" class="mask-img"></image>
<!-- 业主特权弹窗 -->
<view class="owner_privilege row cc ac" hidden="{{!mask}}">
<view class="column cc ac">
<image class="owner_privilege_content" src="./image/owner-privilege.png"></image>
<view class="owner_privilege_close row cc ac" bindtap="onOwnerPrivilegeClose">
<image src="{{imageBase + '/icon/close-1.png'}}"></image>
</view>
<image src="http://upload.miaomiao-bao.com/62e04202008201417045326.png" style="width:750rpx;height:458rpx;margin-left:-73.5rpx;"></image>
<view class="row align-c con-c" style="margin-top:20rpx;">
<image src="/image/xingxing.png" class="mask-icon"></image>
<text class="mask-font">业主特权</text>
<image src="/image/xingxing.png" class="mask-icon"></image>
</view>
<view class="mask-items">
<view class="maskItem" wx:for="{{approveList}}" wx:key="index">{{item}}</view>
</view>
</view>
<view class="close" bindtap="close">
<l-icon name="close" color="black" size="28" />
</view>
</l-mask>
\ No newline at end of file
</view>
\ No newline at end of file
.container {
min-height: 100vh;
background: linear-gradient(rgba(0 ,0 ,0 ,0) 50%, #F3F4F6 50%, #F3F4F6 100%);
}
/* 用户信息面板 */
......@@ -187,6 +188,8 @@
}
.list {
width: 750rpx;
height: 100%;
background: #F3F4F6;
}
......@@ -508,418 +511,11 @@
color: #15191F;
}
.menu {
width: 750rpx;
/* margin-top: 16rpx; */
margin-bottom: 30rpx;
padding: 0 40rpx;
overflow-x: hidden;
}
.menu-item {
height: 92rpx;
border-style: none !important;
}
.menu-title {
font-weight: bolder;
font-size: 30rpx;
border-bottom: none;
}
.listClass {
border-bottom: none !important;
}
.my-activities {
width: 798rpx;
overflow-x: scroll;
height: 300rpx;
white-space: nowrap;
}
.my-activities::-webkit-scrollbar {
display: none;
}
.my-activities-item {
margin-top: 15rpx;
height: 80%;
width: 600rpx;
margin-right: 40rpx;
display: inline-block;
position: relative;
}
.subscribe {
width: 150rpx;
height: 70rpx;
position: absolute;
border: 1px solid #15191f;
border-radius: 3px;
right: 50rpx;
line-height: 70rpx;
text-align: center;
font-size: 26rpx;
top: 92rpx;
font-weight: 500;
color: #15191f;
}
.mask-content {
width: 606rpx;
height: 974rpx;
background: linear-gradient(180deg, rgba(63, 67, 87, 1) 0%, rgba(37, 37, 50, 1) 100%);
}
.close {
width: 80rpx;
height: 80rpx;
background-color: rgb(172, 169, 170);
text-align: center;
margin: auto;
margin-top: 45rpx;
border-radius: 50%;
line-height: 80rpx;
}
.mask-img {
width: 274rpx;
height: 52rpx;
margin-top: 76rpx;
}
.mask-icon {
width: 33rpx;
height: 33rpx;
}
.mask-font {
font-size: 50rpx;
color: white;
margin: 0 26rpx 0 26rpx;
}
.mask-items {
width: 426rpx;
margin: auto;
margin-top: 50rpx;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.maskItem {
font-weight: 400;
font-size: 26rpx;
color: rgba(246, 219, 191, 1);
margin-bottom: 30rpx;
}
/* 二期样式 */
.order-activity {
width: 670rpx;
margin-top: 48rpx;
padding: 40rpx 32rpx;
background-color: #fff;
border-radius: 4rpx;
}
.order-activity-title-wrapper {
height: 48rpx;
}
.order-activity-title {
font-size: 34rpx;
color: #15191f;
font-weight: 600;
}
.order-activity-all text {
font-size: 26rpx;
color: #15191f;
}
.order-activity-icon-list {
margin-top: 56rpx;
padding-bottom: 12rpx;
}
.order-activity-icon-wrapper {
flex: 1;
}
.order-activity-icon {
position: relative;
width: 80rpx;
height: 80rpx;
background-color: #f5f6f8;
border-radius: 50%;
}
.order-activity-icon image {
width: 48rpx;
height: 48rpx;
}
.order-activity-badge {
position: absolute;
top: -10rpx;
left: 48rpx;
width: 32rpx;
height: 32rpx;
font-size: 22rpx;
color: #fff;
text-align: center;
line-height: 32rpx;
background-color: #e66060;
border-radius: 16rpx;
}
.badge-widen {
width: 48rpx;
}
.order-activity-icon-wrapper text {
margin-top: 16rpx;
font-size: 22rpx;
color: #15191f;
}
.more-wrapper {
padding-top: 44rpx;
}
.pass-wrapper {
position: relative;
width: 606rpx;
height: 338rpx;
margin-top: 41rpx;
padding: 26rpx 32rpx;
color: #fff;
background: linear-gradient(141deg, #f4d5c1 0%, #fa99ce 100%);
border-radius: 4rpx;
opacity: 0.81;
}
.card-bg {
position: absolute;
left: 0;
top: 0;
z-index: -1;
}
.pass-bg-one {
position: absolute;
left: 0;
right: 0;
top: -16rpx;
width: 574rpx;
height: 16rpx;
margin: 0 auto;
background: rgba(247, 179, 197, 0.5);
border-radius: 4rpx 4rpx 0 0;
}
.bg-one-month {
background: rgba(142, 185, 231, 0.5);
}
.pass-bg-two {
position: absolute;
left: 0;
right: 0;
top: -30rpx;
width: 542rpx;
height: 16rpx;
margin: 0 auto;
background: rgba(247, 179, 197, 0.3);
border-radius: 4rpx 4rpx 0 0;
}
.bg-two-month {
background: rgba(142, 185, 231, 0.3);
}
.pass-logo-wrapper {
height: 50rpx;
}
.pass-logo-wrapper text {
height: 50rpx;
font-size: 26rpx;
line-height: 50rpx;
}
.pass-title {
margin-top: 24rpx;
font-size: 42rpx;
font-weight: 600;
}
.pass-time {
margin-top: 8rpx;
font-size: 26rpx;
}
.pass-name {
margin-top: 32rpx;
font-size: 22rpx;
}
.pass-idNum {
margin-top: 8rpx;
font-size: 22rpx;
}
.goods-wrapper {
width: 606rpx;
height: 328rpx;
padding: 0 32rpx 8rpx;
background-color: #f5f6f8;
border-radius: 4rpx;
}
.goods-logo-wrapper {
height: 100rpx;
margin-top: 40rpx;
margin-bottom: 10rpx;
}
.goods-logo-wrapper text {
height: 100rpx;
font-size: 26rpx;
color: #15191f;
line-height: 100rpx;
}
.goods-content {
height: 136rpx;
}
.goods-content image {
width: 140rpx;
height: 136rpx;
margin-right: 32rpx;
background-color: #ccc;
border-radius: 5px;
}
.goods-content text {
font-size: 30rpx;
color: #15191f;
font-weight: 600;
line-height: 42rpx;
}
.goods-footer {
height: 84rpx;
}
.goods-footer text {
font-size: 26rpx;
color: #959da9;
}
.art-logo {
width: 32rpx;
height: 60rpx;
background-color: #ccc;
}
.appointment-wrapper {
position: relative;
width: 606rpx;
height: 248rpx;
margin-top: 68rpx;
padding: 72rpx 32rpx 0;
background-color: #f5f6f8;
border-radius: 4rpx;
}
.appointment-time {
position: absolute;
left: 0;
top: -28rpx;
height: 56rpx;
padding: 0 24rpx;
font-size: 26rpx;
color: #fff;
line-height: 56rpx;
font-weight: 600;
background-color: #000;
border-radius: 4rpx;
}
.appointment-activity-img {
width: 140rpx;
height: 136rpx;
background-color: #ccc;
border-radius: 5px;
}
.appointment-activity-info {
flex: 1;
margin-left: 32rpx;
}
.appointment-activity-title {
color: #15191f;
font-size: 30rpx;
font-weight: 600;
line-height: 42rpx;
}
.appointment-activity-num {
margin-top: 16rpx;
color: #959da9;
font-size: 26rpx;
}
.appointment-content {
width: 305rpx;
height: 110rpx;
}
.border-right {
width: 1rpx;
height: 75rpx;
background-color: #e2e7ef;
}
.appointment-subscribe {
width: 150rpx;
height: 70rpx;
border: 1px solid #15191f;
border-radius: 4rpx;
line-height: 70rpx;
text-align: center;
font-size: 26rpx;
font-weight: 500;
color: #15191f;
}
.more {
margin-top: 32rpx;
}
.more text {
font-size: 26rpx;
color: #15191f;
}
.more image {
width: 32rpx;
height: 32rpx;
margin-left: 8rpx;
}
.club,
.service {
width: 670rpx;
height: 128rpx;
margin: 48rpx 40rpx 64rpx 40rpx;
margin: 48rpx 40rpx;
padding: 0 32rpx;
background-color: #fff;
border-radius: 4rpx;
......@@ -932,19 +528,31 @@
font-weight: 600;
}
.all-order-icon {
width: 32rpx;
height: 32rpx;
/* 业主特权弹窗 */
.owner_privilege {
z-index: 7;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, .65);
}
.logo-box {
width: 64rpx;
height: 50rpx;
text-align: center;
margin-right: 20rpx;
.owner_privilege_content {
width: 606rpx;
height: 974rpx;
}
.logo-box image {
max-width: 100% !important;
max-height: 100% !important;
.owner_privilege_close {
width: 80rpx;
height: 80rpx;
margin: 48rpx auto 0 auto;
border-radius: 50%;
background: #ABAAA9;
}
.owner_privilege_close > image {
width: 48rpx;
height: 48rpx;
}
\ No newline at end of file
const App = getApp()
let App = getApp()
Page({
data: {
birthdayLimit: App.modular.miment().format('YYYY-MM-DD'),
sexList: [
genderList: [
{ id: 1, name: '男' },
{ id: 2, name: '女' },
],
sexActive: 0,
userInfo: {
name: '',
phone: '',
avatar: '',
address: '',
birthday: '',
sex: '',
userType: '',
status: '',
isSignIn: false,
}
genderIndex: 0,
userInfo: {}
},
onLoad: function (options) {
let funcUserInfo = wx.getStorageSync('userInfo')
funcUserInfo.phone = this.phoneEncryption(funcUserInfo.phone)
if (funcUserInfo.sex !== '') this.data.sexActive = funcUserInfo.sex - 1
if (funcUserInfo.gender) {
let funcGenderList = this.data.genderList
for (let i = 0, l = funcGenderList.length; i < l; i++) {
if (funcUserInfo.gender === funcGenderList[i].id) {
this.setData({
genderIndex: i
})
break
}
}
}
this.setData({
userInfo: funcUserInfo
})
},
/**
* 加密号码
* @function
* @param {object} - funcEvent
* @returns
*/
phoneEncryption: function (funcPhone) {
return funcPhone = funcPhone.substring(0, 3) + '****' + funcPhone.substring(7)
console.log(this.data.userInfo)
},
/**
* 加密号码
* @function
......@@ -49,7 +39,8 @@ Page({
* @returns
*/
onInputBlur: function (event) {
let funcType = event.target.dataset.type
console.log(event)
let funcType = event.detail.id
let funcValue = event.detail.value
let funcUserInfo = this.data.userInfo
......@@ -66,6 +57,7 @@ Page({
this.setData({
userInfo: funcUserInfo
})
this.doUpdateInfo()
},
......@@ -75,15 +67,16 @@ Page({
* @param {object} - funcEvent
* @returns
*/
onSelectionGender(event) {
// console.log(event)
this.setData({
sexActive: Number(event.detail.value)
})
let funcUserInfo = wx.getStorageSync('userInfo')
funcUserInfo.sex = this.data.sexList[this.data.sexActive].id
onSelectionGender: function (funcEvent) {
let funcUserInfo = this.data.userInfo
let funcGenderIndex = Number(funcEvent.detail.value)
funcUserInfo.gender = this.data.genderList[funcGenderIndex].id
console.log(funcGenderIndex)
console.log(funcUserInfo.gender)
this.setData({
userInfo: funcUserInfo
userInfo: funcUserInfo,
genderIndex: funcGenderIndex
})
this.doUpdateInfo()
},
......@@ -120,18 +113,16 @@ Page({
}
let param = {
sex: this.data.userInfo.sex,
name: this.data.userInfo.name,
address: this.data.userInfo.address,
birthday: this.data.userInfo.birthday,
'sex': this.data.userInfo.gender,
'name': this.data.userInfo.name,
'address': this.data.userInfo.address,
'birthday': this.data.userInfo.birthday,
}
App.wxRequest({
url: 'v1/smUser/doUpdateInfo',
data: param,
success: (res) => {
let funcUserInfo = wx.getStorageSync('userInfo')
Object.assign(funcUserInfo, param)
wx.setStorageSync('userInfo', funcUserInfo)
wx.setStorageSync('userInfo', this.data.userInfo)
}
})
}
......
......@@ -2,39 +2,51 @@
<m-nav titleText="个人资料"></m-nav>
<view class="container">
<view class="myInfo">
<l-list is-hover="{{false}}" l-content-class="menu-title" title="头像" is-link="{{false}}">
<view style="margin-bottom:30rpx;" slot="right-section">
<l-avatar size="100" src="{{userInfo.avatar}}" />
</view>
</l-list>
<l-list is-hover="{{false}}" l-content-class="menu-title" title="姓名" is-link="{{false}}">
<view slot="right-section">
<input maxlength="10" style="text-align:right;" placeholder="请填写姓名" placeholder-class="phone" value="{{userInfo.name}}" data-type="name" bindblur="onInputBlur" />
</view>
</l-list>
<l-list is-hover="{{false}}" l-content-class="menu-title" title="性别" is-link="{{false}}">
<picker slot="right-section" class="input-picker" mode="selector" value="{{sexActive}}" range-key="{{'name'}}" range="{{sexList}}" bindchange="onSelectionGender">
<view wx:if="{{sexActive === 0}}" class="picker" style="color: #959DA9;">请选择性别</view>
<view wx:if="{{sexActive !== 0}}" class="picker">{{sexList[sexActive].name}}</view>
<view class="user_info column">
<view class="info_item row cb ac">
<text>头像</text>
<image class="info_item_avatar" src="{{userInfo.avatar}}"></image>
</view>
<view class="info_item row cb ac">
<text>姓名</text>
<m-input
inputId="name"
className="info_item_input row ac"
value="{{userInfo.name}}"
placeholder="请填写姓名"
maxlength="10"
bindblur="onInputBlur">
</m-input>
</view>
<view class="info_item row cb ac">
<text>性别</text>
<picker class="info_item_picker row ce" range="{{genderList}}" range-key="name" value="{{genderIndex}}" bindchange="onSelectionGender">
<view wx:if="{{userInfo.gender === 0}}" class="info_item_tip">请选择性别</view>
<view wx:if="{{userInfo.gender !== 0}}" class="info_item_data">{{genderList[genderIndex].name}}</view>
</picker>
</l-list>
<l-list is-hover="{{false}}" l-content-class="menu-title" title="生日" is-link="{{false}}">
<picker slot="right-section" class="input-picker" mode="date" value="{{userInfo.birthday}}" end="{{birthdayLimit}}" bindchange="onSelectionDate">
<view wx:if="{{userInfo.birthday === ''}}" class="picker" style="color: #959DA9;">请选择生日</view>
<view wx:if="{{userInfo.birthday !== ''}}" class="picker">{{userInfo.birthday}}</view>
</view>
<view class="info_item row cb ac">
<text>生日</text>
<picker class="info_item_picker row ce" mode="date" value="{{userInfo.birthday}}" end="{{birthdayLimit}}" bindchange="onSelectionDate">
<view wx:if="{{userInfo.birthday === ''}}" class="info_item_tip">请选择生日</view>
<view wx:if="{{userInfo.birthday !== ''}}" class="info_item_data">{{userInfo.birthday}}</view>
</picker>
</l-list>
<l-list is-hover="{{false}}" l-content-class="menu-title" title="地址" is-link="{{false}}">
<view slot="right-section">
<input maxlength="30" style="text-align:right;" placeholder-style="color: #959DA9;" placeholder="请填写地址" value="{{userInfo.address}}" data-type="address" bindblur="onInputBlur" />
</view>
</l-list>
<l-list is-hover="{{false}}" l-content-class="menu-title" title="手机号" is-link="{{false}}">
<view slot="right-section">
<view class="phone" style="color: #959DA9;">{{userInfo.phone}}</view>
</view>
</l-list>
</view>
<view class="info_item row cb ac">
<text>地址</text>
<m-input
inputId="address"
className="info_item_input row ac"
value="{{userInfo.address}}"
placeholder="请填写地址"
maxlength="30"
bindblur="onInputBlur">
</m-input>
</view>
<view class="info_item row cb ac">
<text>手机号</text>
<view class="info_item_tip">{{userInfo.phoneHide}}</view>
</view>
</view>
</view>
......
.myInfo {
.user_info {
width: 750rpx;
padding: 0 48rpx;
padding: 0 40rpx;
}
.phone {
......@@ -15,4 +15,59 @@
.picker {
text-align: right;
line-height: 44rpx;
}
.info_item {
width: 670rpx;
min-height: 94rpx;
padding: 28rpx 0;
border-bottom: 1px #E2E7EF solid;
}
.info_item:last-child {
border: none;
}
.info_item_avatar {
width: 96rpx;
height: 96rpx;
border-radius: 50%;
}
.info_item_picker {
flex-grow: 1;
}
.info_item_tip {
height: 42rpx;
font-size: 30rpx;
font-weight: 400;
line-height: 42rpx;
color: #959DA9;
}
.info_item_data {
height: 42rpx;
font-size: 30rpx;
font-weight: 400;
line-height: 42rpx;
color: #15191F;
}
.info_item_input {
height: 42rpx;
text-align: right;
font-size: 30rpx;
font-weight: 400;
line-height: 42rpx;
color: #15191F;
}
.info_item > text:nth-child(1) {
height: 42rpx;
font-size: 30rpx;
font-weight: 400;
line-height: 42rpx;
color: #15191F;
}
\ No newline at end of file
......@@ -23,7 +23,6 @@ Page({
height: 0,
mask: false, //控制客服微信的遮罩层显示
phone: '13316748039',
hotline: false, //客服热线
bottom: 0,
focus: false,
remark: '',
......@@ -119,7 +118,7 @@ Page({
},
// 关闭遮罩层
close() {
onServicephoneClose() {
this.setData({
mask: false
})
......@@ -137,17 +136,6 @@ Page({
})
},
//取消拨打
cancel() {
this.setData({
hotline: false,
})
},
showHotline() {
this.setData({
hotline: true
})
},
moreProblems() {
wx.navigateTo({
url: '/pages/mine/question-more/question-more',
......
......@@ -30,13 +30,6 @@
</view>
</view>
</block>
<!-- <view>
<l-list wx:for="{{data}}" wx:key="index" is-hover="{{false}}" is-link="{{false}}">
<view class="row align-c" slot="left-section">
<view class="circle"></view><text>{{item.title}}</text>
</view>
</l-list>
</view> -->
</view>
</view>
<view class="footer-nav" style="padding-bottom:{{isIphoneX >=0?68:0}}rpx;">
......@@ -53,34 +46,16 @@
<view class="nav-item-title">填写反馈</view>
</view>
</view>
<!-- 客服微信弹出层 -->
<l-mask show="{{mask}}" center="{{true}}">
<view class='mask-content'>
<image class="mask-img" src="http://upload.miaomiao-bao.com/c92f7202008161705291762.png"></image>
<view class="mask-contanier">
<view class="logo-container">
<image class="logo" src="http://upload.miaomiao-bao.com/c83b1202008141006519147.svg"></image>
</view>
<view class="er-code-div">
<image class="er-code" bindlongpress="saveImage" data-url="http://sm-web.meiqicloud.com/userfiles/appResources/mine/server/code.png" src="http://sm-web.meiqicloud.com/userfiles/appResources/mine/server/code.png"></image>
</view>
<view class="title">添加客服微信</view>
<view class="operation">保存图片 > 点击微信“扫一扫” >选择相册</view>
</view>
<!-- 客服微信弹窗 -->
<view class="service_phone row cc ac" hidden="{{!mask}}">
<view class="column cc ac">
<image class="service_phone_content" src="./image/service-phone.png"></image>
<view class="service_phone_close row cc ac" bindtap="onServicephoneClose">
<image src="{{imageBase + '/icon/close-1.png'}}"></image>
</view>
</view>
<view class="close" bindtap="close">
<l-icon name="close" color="black" size="28" />
</view>
</l-mask>
<!-- 客服热线 -->
<l-arc-popup show="{{hotline}}" arc-radius="30">
<view class="phone">{{phone}}</view>
<view class="call" bindtap="call">呼叫</view>
<view style="height:10rpx;background-color:rgb(246,247,249);"></view>
<view class="call" bindtap="cancel">取消</view>
</l-arc-popup>
</view>
<!-- 填写意见反馈 -->
<view class="textBox" style="bottom:{{bottom}}px" hidden="{{inputHidden}}">
......@@ -89,5 +64,4 @@
/>
<view class="feedbackButton" bindtap="feedbackSubmit">提交反馈</view>
</view>
</view>
\ No newline at end of file
......@@ -228,3 +228,32 @@
padding-left: 40rpx;
margin-bottom: 20rpx;
}
/* 客服微信弹窗 */
.service_phone {
z-index: 7;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, .65);
}
.service_phone_content {
width: 606rpx;
height: 856rpx;
}
.service_phone_close {
width: 80rpx;
height: 80rpx;
margin: 48rpx auto 0 auto;
border-radius: 50%;
background: #ABAAA9;
}
.service_phone_close > image {
width: 48rpx;
height: 48rpx;
}
\ No newline at end of file
......@@ -8,8 +8,8 @@
<view class="header-bg">
<image src="{{resourcesBase + 'mine/admin-bgi.png'}}"></image>
</view>
<view class="header-avatar">
<l-avatar size="160" src="{{avatarUrl}}"></l-avatar>
<view class="header_avatar">
<image src="{{avatarUrl}}"></image>
</view>
<view class="header-info">
<view class="info-name">{{name}}</view>
......
......@@ -2,18 +2,27 @@
width: 750rpx;
height: 774rpx;
}
.header-avatar {
.header_avatar {
position: absolute;
top: 264rpx;
width: 160rpx;
height: 160rpx;
}
.header_avatar > image {
width: 160rpx;
height: 160rpx;
border-radius: 50%;
}
.header-info {
position: absolute;
top: 472rpx;
/* width: 232rpx; */
height: 205rpx;
}
.info-name {
width: 100%;
height: 116rpx;
......@@ -22,18 +31,22 @@
font-size: 34rpx;
font-weight: 600;
}
.info-text {
height: 88rpx;
}
.info-left {
color: #959DA9;
font-size: 26rpx;
}
.info-right {
color: #15191F;
font-size: 26rpx;
margin-left: 24rpx;
}
.coupon-input-wrapper {
width: 668rpx;
height: 80rpx;
......@@ -49,6 +62,7 @@
border: 1px solid #DBDFE5;
border-radius: 4rpx;
}
.coupon-input-btn {
width: 156rpx;
height: 80rpx;
......@@ -85,7 +99,8 @@
font-weight: 600;
}
.scan-icon, .scan-right {
.scan-icon,
.scan-right {
width: 40rpx;
height: 40rpx;
}
......@@ -93,4 +108,4 @@
image {
width: 100%;
height: 100%;
}
}
\ No newline at end of file
......@@ -90,7 +90,6 @@
</block>
<!-- 俱乐部 -->
<!--
<view class="title row con-b align-c">
<image src="./image/title-club.png"></image>
<text bindtap="onAllRecent" bindtap="onToClubList">查看全部</text>
......@@ -112,7 +111,6 @@
<text>暂无俱乐部信息</text>
</view>
</block>
-->
<!-- 游客攻略 -->
<view class="route">
......
......@@ -18,7 +18,7 @@
"scopeDataCheck": false,
"uglifyFileName": false,
"checkInvalidKey": true,
"checkSiteMap": false,
"checkSiteMap": true,
"uploadWithSourceMap": true,
"compileHotReLoad": false,
"useMultiFrameRuntime": false,
......@@ -32,20 +32,18 @@
"useCompilerModule": true,
"userConfirmedUseCompilerModuleSwitch": false,
"packNpmManually": false,
"packNpmRelationList": []
"packNpmRelationList": [],
"enableEngineNative": false,
"minifyWXSS": true
},
"compileType": "miniprogram",
"libVersion": "2.11.0",
"appid": "wx37a9b7a3d92029f2",
"projectname": "%E4%B8%96%E8%8C%82%E5%B0%8F%E7%A8%8B%E5%BA%8F%E4%BA%8C%E6%9C%9F",
"cloudfunctionTemplateRoot": "",
"watchOptions": {
"ignore": []
},
"debugOptions": {
"hidedInDevtools": []
},
"scripts": {},
"isGameTourist": false,
"simulatorType": "wechat",
"simulatorPluginLibVersion": {},
"condition": {
......@@ -59,42 +57,14 @@
"list": []
},
"game": {
"currentL": -1,
"list": []
},
"gamePlugin": {
"list": []
},
"miniprogram": {
"list": [
{
"id": -1,
"name": "pages/commodity/menu-food/menu-food",
"pathName": "pages/commodity/menu-food/menu-food",
"query": "",
"scene": null
},
{
"id": -1,
"name": "pages/play/home/home",
"pathName": "pages/play/home/home",
"query": "",
"scene": null
},
{
"id": -1,
"name": "pages/play/service-detail/service-detail",
"pathName": "pages/play/service-detail/service-detail",
"query": "id=1&type=4",
"scene": null
},
{
"id": -1,
"name": "pages/mine/home/home",
"pathName": "pages/mine/home/home",
"query": "",
"scene": null
}
]
"list": []
}
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment