调整首页
This commit is contained in:
parent
756f567dba
commit
3b5525a2a2
1
app.js
1
app.js
|
@ -8,6 +8,7 @@ App({
|
||||||
onLaunch() {
|
onLaunch() {
|
||||||
const { api } = getConfigByEnv();
|
const { api } = getConfigByEnv();
|
||||||
this.globalData = { ...this.globalData, api, }
|
this.globalData = { ...this.globalData, api, }
|
||||||
|
|
||||||
},
|
},
|
||||||
globalData: {
|
globalData: {
|
||||||
primaryColor: '#52c41a'
|
primaryColor: '#52c41a'
|
||||||
|
|
4
app.json
4
app.json
|
@ -1,15 +1,15 @@
|
||||||
{
|
{
|
||||||
"pages": [
|
"pages": [
|
||||||
"pages/login/index",
|
"pages/login/index",
|
||||||
|
"pages/home/index",
|
||||||
|
"pages/handleLogin/index",
|
||||||
"pages/apply/index",
|
"pages/apply/index",
|
||||||
"pages/qrCode/index",
|
"pages/qrCode/index",
|
||||||
"pages/waitApprove/index",
|
"pages/waitApprove/index",
|
||||||
"pages/home/index",
|
|
||||||
"pages/rechargeRecord/index",
|
"pages/rechargeRecord/index",
|
||||||
"pages/invoiceList/index",
|
"pages/invoiceList/index",
|
||||||
"pages/meterList/index",
|
"pages/meterList/index",
|
||||||
"pages/recharge/index",
|
"pages/recharge/index",
|
||||||
"pages/handleLogin/index",
|
|
||||||
"pages/member/index",
|
"pages/member/index",
|
||||||
"pages/my/index",
|
"pages/my/index",
|
||||||
"pages/questions/index",
|
"pages/questions/index",
|
||||||
|
|
6
app.wxss
6
app.wxss
|
@ -17,6 +17,9 @@ page {
|
||||||
|
|
||||||
page {
|
page {
|
||||||
font-size: 36rpx;
|
font-size: 36rpx;
|
||||||
|
--deep-green: #15755e;
|
||||||
|
--middle-green: rgb(75, 151, 131);
|
||||||
|
--light-green: rgb(174,218,203);
|
||||||
/* background-color: #f0f0f0; */
|
/* background-color: #f0f0f0; */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,4 +29,5 @@ page {
|
||||||
|
|
||||||
.dangerTextBtn {
|
.dangerTextBtn {
|
||||||
color: #ee0a24;
|
color: #ee0a24;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
BIN
assets/images/defaultAvatar.png
Normal file
BIN
assets/images/defaultAvatar.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.3 KiB |
31
components/customStatusBar/index.js
Normal file
31
components/customStatusBar/index.js
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
// components/customStatusBar/index.js
|
||||||
|
Component({
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 组件的属性列表
|
||||||
|
*/
|
||||||
|
properties: {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 组件的初始数据
|
||||||
|
*/
|
||||||
|
data: {
|
||||||
|
height: 0,
|
||||||
|
},
|
||||||
|
lifetimes: {
|
||||||
|
attached() {
|
||||||
|
const { statusBarHeight } = wx.getSystemInfoSync();
|
||||||
|
this.setData({
|
||||||
|
height: statusBarHeight
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 组件的方法列表
|
||||||
|
*/
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
4
components/customStatusBar/index.json
Normal file
4
components/customStatusBar/index.json
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"component": true,
|
||||||
|
"usingComponents": {}
|
||||||
|
}
|
2
components/customStatusBar/index.wxml
Normal file
2
components/customStatusBar/index.wxml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
<!--components/customStatusBar/index.wxml-->
|
||||||
|
<view class="wrapper" style="height: {{height}}px;"></view>
|
1
components/customStatusBar/index.wxss
Normal file
1
components/customStatusBar/index.wxss
Normal file
|
@ -0,0 +1 @@
|
||||||
|
/* components/customStatusBar/index.wxss */
|
|
@ -17,7 +17,8 @@ Page({
|
||||||
* 生命周期函数--监听页面加载
|
* 生命周期函数--监听页面加载
|
||||||
*/
|
*/
|
||||||
onLoad(options) {
|
onLoad(options) {
|
||||||
const { id, name } = options;
|
const querys = decodeURIComponent(options.scene)
|
||||||
|
const { id, name } = querys;
|
||||||
this.setData({ id, name })
|
this.setData({ id, name })
|
||||||
},
|
},
|
||||||
exit() {
|
exit() {
|
||||||
|
@ -25,12 +26,15 @@ Page({
|
||||||
},
|
},
|
||||||
async join() {
|
async join() {
|
||||||
const { id } = this.data;
|
const { id } = this.data;
|
||||||
const { code, message } = await userApply({ id })
|
const { code, message, data } = await userApply({ id })
|
||||||
if (code !== OK) {
|
if (code !== OK) {
|
||||||
alertInfo(message)
|
alertInfo(message)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
alertSuccess("加入成功")
|
alertSuccess("加入成功")
|
||||||
|
const { token, ...currentUser } = data;
|
||||||
|
wx.setStorageSync('user', currentUser)
|
||||||
|
wx.setStorageSync('token', token)
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
wx.switchTab({
|
wx.switchTab({
|
||||||
url: '/pages/home/index',
|
url: '/pages/home/index',
|
||||||
|
|
|
@ -68,10 +68,10 @@ Page({
|
||||||
loadingFunc(async () => {
|
loadingFunc(async () => {
|
||||||
const wxLoginCode = await wxLogin()
|
const wxLoginCode = await wxLogin()
|
||||||
const { code, message, data } = await userValidate({ park, tenement, phone, name, code: wxLoginCode })
|
const { code, message, data } = await userValidate({ park, tenement, phone, name, code: wxLoginCode })
|
||||||
// if (code !== OK) {
|
if (code !== OK) {
|
||||||
// alertInfo(message)
|
alertInfo(message)
|
||||||
// return
|
return
|
||||||
// }
|
}
|
||||||
const { exist, user } = data;
|
const { exist, user } = data;
|
||||||
if (!exist) {
|
if (!exist) {
|
||||||
alertInfo("绑定失败,请检查信息")
|
alertInfo("绑定失败,请检查信息")
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
{
|
{
|
||||||
"usingComponents": {}
|
"usingComponents": {
|
||||||
|
"custom-status-bar": "/components/customStatusBar/index",
|
||||||
|
"van-icon": "@vant/weapp/icon/index",
|
||||||
|
"van-button": "@vant/weapp/button/index",
|
||||||
|
"van-image": "@vant/weapp/image/index"
|
||||||
|
},
|
||||||
|
"navigationStyle": "custom"
|
||||||
}
|
}
|
|
@ -1,2 +1,62 @@
|
||||||
<!--pages/home/index.wxml-->
|
<!--pages/home/index.wxml-->
|
||||||
首页
|
<view class="top">
|
||||||
|
<custom-status-bar />
|
||||||
|
<view class="chooseParkWrapper">
|
||||||
|
用电管理服务 ·
|
||||||
|
<view class="parkContent">
|
||||||
|
<view class="park">
|
||||||
|
金石工业园
|
||||||
|
</view>
|
||||||
|
<van-icon name="arrow-down" style="margin-left: 16rpx;" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="login" wx:if="{{!user || !user.id}}" class="notLoginWrapper">
|
||||||
|
<van-image width="100rpx" height="100rpx" src="/assets/images/defaultAvatar.png" class="defaultAvatar"/>
|
||||||
|
<van-button type="info" size="small" plain="{{true}}" class="loginBtn">请登录</van-button>
|
||||||
|
</view>
|
||||||
|
<view class="rechargeWrapper">
|
||||||
|
<view class="card">
|
||||||
|
<view class="cardTop">
|
||||||
|
<view class="cardTopLeft">
|
||||||
|
<view> 华昌宝能 - 软c307 </view>
|
||||||
|
</view>
|
||||||
|
<van-button type="info" size="small" plain="{{true}}" class="loginBtn">
|
||||||
|
<van-icon name="exchange" />
|
||||||
|
切换电表
|
||||||
|
</van-button>
|
||||||
|
</view>
|
||||||
|
<view class="cardContent">
|
||||||
|
<view class="cardItem">
|
||||||
|
<view class="cardItemLabel"> 电表编号: </view>
|
||||||
|
<view class="cardItemValue"> 15151515 </view>
|
||||||
|
</view>
|
||||||
|
<view class="cardItem">
|
||||||
|
<view class="cardItemLabel"> 电表地址: </view>
|
||||||
|
<view class="cardItemValue"> 软C307 </view>
|
||||||
|
</view>
|
||||||
|
<view class="cardItem">
|
||||||
|
<view class="cardItemLabel"> 电表余额: </view>
|
||||||
|
<view class="cardItemValue">
|
||||||
|
<view class="text"> 200 </view>
|
||||||
|
<van-button type="info" size="small" plain="{{true}}">
|
||||||
|
<van-icon name="replay" />
|
||||||
|
刷新
|
||||||
|
</van-button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="recharge">
|
||||||
|
<view> 请输入金额: </view>
|
||||||
|
<view>
|
||||||
|
<view> ¥30 </view>
|
||||||
|
<view> ¥50 </view>
|
||||||
|
<view> ¥100 </view>
|
||||||
|
<view> ¥200 </view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="operate">
|
||||||
|
<van-button color="rgb(88, 165, 141)" block>去缴费</van-button>
|
||||||
|
</view>
|
||||||
|
</view>
|
|
@ -1 +1,97 @@
|
||||||
/* pages/home/index.wxss */
|
/* pages/home/index.wxss */
|
||||||
|
@import "/app.wxss";
|
||||||
|
|
||||||
|
.top {
|
||||||
|
background-color: var(--deep-green);
|
||||||
|
}
|
||||||
|
|
||||||
|
.chooseParkWrapper {
|
||||||
|
height: 46px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding: 0 32rpx;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 34rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.park {
|
||||||
|
margin-left: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.parkContent {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notLoginWrapper {
|
||||||
|
padding: 30rpx 32rpx;
|
||||||
|
background-color: var(--middle-green);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.loginBtn {
|
||||||
|
margin-left: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rechargeWrapper {
|
||||||
|
background: linear-gradient(to bottom, var(--middle-green), #fff );
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card {
|
||||||
|
margin-top: 1vh;
|
||||||
|
margin-left: 46rpx;
|
||||||
|
margin-right: 46rpx;
|
||||||
|
border-radius: 30rpx;
|
||||||
|
padding: 28rpx 30rpx;
|
||||||
|
/* background-color: rgb(173, 217, 203); */
|
||||||
|
background: linear-gradient(to bottom right, rgb(212, 240, 231), rgb(145, 206, 185));
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardTop {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardTopLeft {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardContent {
|
||||||
|
margin: 30rpx 20rpx 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardItem {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 30rpx;
|
||||||
|
font-size: 34rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardItemValue {
|
||||||
|
display: flex;
|
||||||
|
flex: 1;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardItemValue .text {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recharge {
|
||||||
|
background: #fff;
|
||||||
|
padding: 20rpx 30rpx;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
margin-left: 46rpx;
|
||||||
|
margin-right: 46rpx;
|
||||||
|
margin-bottom: 40rpx;
|
||||||
|
border-radius: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.operate {
|
||||||
|
margin-left: 46rpx;
|
||||||
|
margin-right: 46rpx;
|
||||||
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { approveUser, getApproveList } from "../../../../service/user"
|
import { approveUser, getApproveList, removeUser } from "../../../../service/user"
|
||||||
import { alertInfo, alertSuccess, wxModal } from "../../../../utils/index";
|
import { alertInfo, alertSuccess, wxModal } from "../../../../utils/index";
|
||||||
import request from "../../../../utils/request"
|
import request from "../../../../utils/request"
|
||||||
|
|
||||||
|
@ -46,18 +46,22 @@ Component({
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
alertSuccess("转交成功")
|
alertSuccess("转交成功")
|
||||||
wx.clearStorageSync()
|
const newUser = wx.getStorageSync('user')
|
||||||
wx.exitMiniProgram()
|
newUser.isAdmin = false;
|
||||||
|
wx.setStorageSync('user', newUser)
|
||||||
|
wx.redirectTo({
|
||||||
|
url: '/pages/home/index',
|
||||||
|
})
|
||||||
},
|
},
|
||||||
async disAgree(e) {
|
async remove(e) {
|
||||||
const { user } = e.currentTarget.dataset;
|
const { user } = e.currentTarget.dataset;
|
||||||
await wxModal({ content: `拒绝${user.nickName}的申请?` })
|
await wxModal({ content: `将移除${user.nickName}?` })
|
||||||
const { code, message } = await approveUser({ userId: user.id, type: 0 })
|
const { code, message } = await removeUser(user.id)
|
||||||
if (code !== OK) {
|
if (code !== OK) {
|
||||||
alertInfo(message)
|
alertInfo(message)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
alertSuccess("已拒绝")
|
alertSuccess("已移除")
|
||||||
this.init()
|
this.init()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
<!--pages/member/index.wxml-->
|
<!--pages/member/index.wxml-->
|
||||||
<van-tabs active="{{ active }}" bind:change="onChangeTab">
|
<!-- <van-tabs active="{{ active }}" bind:change="onChangeTab"> -->
|
||||||
<van-tab title="申请人员">
|
<!-- <van-tab title="申请人员">
|
||||||
<approve-member />
|
<approve-member />
|
||||||
</van-tab>
|
</van-tab>
|
||||||
<van-tab title="人员管理">
|
<van-tab title="人员管理"> -->
|
||||||
<member-manage />
|
<member-manage />
|
||||||
</van-tab>
|
<!-- </van-tab> -->
|
||||||
</van-tabs>
|
<!-- </van-tabs> -->
|
|
@ -20,13 +20,9 @@ Page({
|
||||||
this.getCode()
|
this.getCode()
|
||||||
},
|
},
|
||||||
async getCode() {
|
async getCode() {
|
||||||
const { code, message, data } = await getWxCode()
|
const data = await getWxCode()
|
||||||
if (code !== OK) {
|
|
||||||
alertInfo(message)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
this.setData({
|
this.setData({
|
||||||
url: data
|
url: wx.arrayBufferToBase64(data)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -27,7 +27,7 @@ export const approveUser = async function(data) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 移除用户
|
// 移除用户
|
||||||
export const removeUser = async function(data) {
|
export const removeUser = async function(uid) {
|
||||||
return await DELETE(`/wx/removeUser/${uid}`);
|
return await DELETE(`/wx/removeUser/${uid}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ const ok = 200;
|
||||||
const requestWithoutCookie = promisify(wx.request);
|
const requestWithoutCookie = promisify(wx.request);
|
||||||
|
|
||||||
// 考虑了Cookie的请求
|
// 考虑了Cookie的请求
|
||||||
const request = async function (options) {
|
const request = async function (options, config = {}) {
|
||||||
let token = wx.getStorageSync('token');
|
let token = wx.getStorageSync('token');
|
||||||
const result = wx.getAccountInfoSync();
|
const result = wx.getAccountInfoSync();
|
||||||
const { envVersion } = result.miniProgram;
|
const { envVersion } = result.miniProgram;
|
||||||
|
@ -26,8 +26,10 @@ const request = async function (options) {
|
||||||
Accept: 'application/json',
|
Accept: 'application/json',
|
||||||
'content-type': 'application/json; charset=utf-8',
|
'content-type': 'application/json; charset=utf-8',
|
||||||
"Authorization": token,
|
"Authorization": token,
|
||||||
"env": envVersion
|
"env": "trial",
|
||||||
|
...config
|
||||||
};
|
};
|
||||||
|
console.log('config', config)
|
||||||
let response;
|
let response;
|
||||||
try {
|
try {
|
||||||
response = await requestWithoutCookie(options);
|
response = await requestWithoutCookie(options);
|
||||||
|
@ -83,7 +85,7 @@ const parseResponse = function (response) {
|
||||||
alertError("服务异常")
|
alertError("服务异常")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
const { code: statusCode } = response.data;
|
const { code: statusCode } = response;
|
||||||
if (statusCode === 401) {
|
if (statusCode === 401) {
|
||||||
wx.redirectTo({
|
wx.redirectTo({
|
||||||
url: '/pages/login/index',
|
url: '/pages/login/index',
|
||||||
|
@ -108,6 +110,8 @@ const GET = async function (uri) {
|
||||||
const response = await request({
|
const response = await request({
|
||||||
url: `${SERVER}${uri}`,
|
url: `${SERVER}${uri}`,
|
||||||
method: 'GET'
|
method: 'GET'
|
||||||
|
}, {
|
||||||
|
"content-type": "image/png"
|
||||||
});
|
});
|
||||||
|
|
||||||
return parseResponse(response);
|
return parseResponse(response);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user