修改首页选择园区,,商户,,电表

This commit is contained in:
qiaomu 2024-04-03 14:46:34 +08:00
parent db6d253898
commit f5ddb92449
17 changed files with 188 additions and 68 deletions

View File

@ -1,10 +1,10 @@
{ {
"pages": [ "pages": [
"pages/rechargeRecord/index",
"pages/home/index", "pages/home/index",
"pages/my/index",
"pages/rechargeRecord/index",
"pages/invoiceList/index", "pages/invoiceList/index",
"pages/waitApprove/index", "pages/waitApprove/index",
"pages/my/index",
"pages/apply/index", "pages/apply/index",
"pages/member/index", "pages/member/index",
"pages/handleLogin/index", "pages/handleLogin/index",

24
components/dot/index.js Normal file
View File

@ -0,0 +1,24 @@
// components/dot/index.js
Component({
/**
* 组件的属性列表
*/
properties: {
number: Number,
},
/**
* 组件的初始数据
*/
data: {
},
/**
* 组件的方法列表
*/
methods: {
}
})

View File

@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@ -0,0 +1,3 @@
<!--components/dot/index.wxml-->
<view class="dot" wx:if="{{number <= 99}}"> {{ number }} </view>
<view class="dot" wx:else> 99+ </view>

10
components/dot/index.wxss Normal file
View File

@ -0,0 +1,10 @@
/* components/dot/index.wxss */
.dot {
background-color: #ee0a24;
width: 56rpx;
height: 56rpx;
border-radius: 50%;
text-align: center;
color: #fff;
font-size: 28rpx;
}

View File

@ -3,6 +3,7 @@ import { getOwnTenementList } from "../../service/tenement";
import { getUserInfo } from "../../service/user"; import { getUserInfo } from "../../service/user";
import { alertError, alertInfo } from "../../utils/index"; import { alertError, alertInfo } from "../../utils/index";
import request from '../../utils/request'; import request from '../../utils/request';
import { getDot } from "../../utils/system";
const { OK } = request; const { OK } = request;
// pages/home/index.js // pages/home/index.js
Page({ Page({
@ -52,30 +53,15 @@ Page({
}, },
async changeMeter() { async changeMeter() {
const { meterList = [], meterIndex, tenement = {} } = this.data; const { meterList = [], meterIndex, tenement = {} } = this.data;
let newIndex = meterIndex + 1;
if (newIndex === meterList.length) {
newIndex = 0;
}
const { code, message, data } = getMeterDetail({ code: meterList[newIndex]?.code, tenement: tenement.id })
if (code !== OK) {
alertInfo(message)
return
}
meterList[newIndex] = { ...data.meter, money: data.money };
this.setData({ this.setData({
meterIndex: newIndex, columns: meterList.map(item => { item.id = item.code; item.name = `${item.code} - ${item.address}`; return item; }),
meterList show: true,
pickerType: "meter"
}) })
}, },
async refreshMeter() { async refreshMeter() {
const { meterIndex } = this.data; const { meter } = this.data;
const { code, message, data } = getMeterDetail({ code: meterList[newIndex].id, tenement: tenement.id }) this.handleGetMeterDetail(meter.code);
if (code !== OK) {
alertInfo(message)
return
}
meterList[meterIndex] = { ...data.meter, money: data.money };
this.setData({ meterList })
}, },
onOk(e) { onOk(e) {
const { type, index, value } = e.detail; const { type, index, value } = e.detail;
@ -102,6 +88,18 @@ Page({
tenement: value tenement: value
}) })
} }
if (type === "meter") {
const { code, id } = e.detail.value;
this.handleGetMeterDetail(code)
}
},
async handleGetMeterDetail(meterCode) {
const { tenement } = this.data;
const { code, message, data } = await getMeterDetail({ tenement, code: meterCode });
this.setData({
tenement: data,
show: false,
})
}, },
onCancel() { onCancel() {
this.setData({ this.setData({
@ -115,7 +113,7 @@ Page({
}) })
}, },
onChangeMoney(e) { onChangeMoney(e) {
this.setData({ money: Number(e.detail) }) this.setData({ money: e.detail ? Number(e.detail) : e.detail })
}, },
recharge() { recharge() {
const { user, money } = this.data; const { user, money } = this.data;
@ -136,6 +134,7 @@ Page({
this.setUser(); this.setUser();
this.getAllList(); this.getAllList();
this.watchTenement(); this.watchTenement();
getDot();
}, },
watchTenement() { watchTenement() {
const that = this; const that = this;
@ -151,18 +150,19 @@ Page({
set: function (newVal) { set: function (newVal) {
const oldValue = value; const oldValue = value;
value = newVal; value = newVal;
// that.getMeters(newVal); that.getMeters(newVal);
} }
}); });
}, },
async getMeters({ id }) { async getMeters({ id }) {
const { code, message, data } = await getTenementMeterList(id); const { code, message, data } = await getTenementMeterList(id);
if (code !== OK) { // if (code !== OK) {
alertError(message) // alertError(message)
return; // return;
} // }
this.setData({ this.setData({
meterList: data || [] meterList: data || [],
meter: data?.[0] || {}
}) })
}, },
async setUser() { async setUser() {
@ -178,10 +178,10 @@ Page({
}, },
async getAllList() { async getAllList() {
const { code, message, data } = await getOwnTenementList() const { code, message, data } = await getOwnTenementList()
if (code !== OK) { // if (code !== OK) {
alertInfo(message) // alertInfo(message)
return // return
} // }
const [firstPark = {}] = data; const [firstPark = {}] = data;
const { park, tenement } = this.data; const { park, tenement } = this.data;
const updateDatas = {} const updateDatas = {}

View File

@ -32,9 +32,10 @@
<view class="card"> <view class="card">
<view class="cardTop"> <view class="cardTop">
<view class="cardTopLeft"> <view class="cardTopLeft">
<view> 华昌宝能 - 软c307 </view> <view wx:if="{{user.id}}"> 华昌宝能 - 软c307 </view>
<view wx:else> -- </view>
</view> </view>
<van-button type="info" size="small" plain="{{true}}" class="loginBtn" bind:click="changeMeter"> <van-button type="info" size="small" plain="{{true}}" class="loginBtn" bind:click="changeMeter" wx:if="{{user.id}}">
<van-icon name="exchange" /> <van-icon name="exchange" />
切换电表 切换电表
</van-button> </van-button>
@ -42,17 +43,20 @@
<view class="cardContent"> <view class="cardContent">
<view class="cardItem"> <view class="cardItem">
<view class="cardItemLabel"> 电表编号: </view> <view class="cardItemLabel"> 电表编号: </view>
<view class="cardItemValue"> 15151515 </view> <view class="cardItemValue" wx:if="{{user.id}}"> {{meter.code}} </view>
<view class="cardItemValue" wx:else> -- </view>
</view> </view>
<view class="cardItem"> <view class="cardItem">
<view class="cardItemLabel"> 电表地址: </view> <view class="cardItemLabel"> 电表地址: </view>
<view class="cardItemValue"> 软C307 </view> <view class="cardItemValue" wx:if="{{user.id}}"> {{meter.address}} </view>
<view class="cardItemValue" wx:else> -- </view>
</view> </view>
<view class="cardItem"> <view class="cardItem">
<view class="cardItemLabel"> 电表余额: </view> <view class="cardItemLabel"> 电表余额: </view>
<view class="cardItemValue"> <view class="cardItemValue">
<view class="text"> 200 </view> <view class="text" wx:if="{{user.id}}"> {{meter.money}} </view>
<van-button type="info" size="small" plain="{{true}}" bind:click="refreshMeter"> <view class="text" wx:else> --- </view>
<van-button type="info" size="small" plain="{{true}}" bind:click="refreshMeter" wx:if="{{user.id}}">
<van-icon name="replay" /> <van-icon name="replay" />
刷新 刷新
</van-button> </van-button>
@ -80,7 +84,7 @@
</view> </view>
</view> </view>
<view class="operate"> <view class="operate">
<van-button color="rgb(88, 165, 141)" block>去缴费</van-button> <van-button color="rgb(88, 165, 141)" block bind:click="recharge">去缴费</van-button>
</view> </view>
<view class="others"> <view class="others">
<van-grid direction="horizontal" column-num="2"> <van-grid direction="horizontal" column-num="2">

View File

@ -46,15 +46,16 @@ Page({
* 生命周期函数--监听页面显示 * 生命周期函数--监听页面显示
*/ */
onShow() { onShow() {
const user = wx.getStorageSync('user'); // const user = wx.getStorageSync('user');
if (!user || !user.id) { // if (!user || !user.id) {
wx.switchTab({ // wx.switchTab({
url: '/pages/home/index', // url: '/pages/home/index',
}) // })
alertInfo("请先登录"); // alertInfo("请先登录");
return false; // return false;
} // }
this.init() // this.init()
getDot();
}, },
async init() { async init() {
const result = await getUserInfo(); const result = await getUserInfo();

View File

@ -3,7 +3,8 @@
"van-cell": "@vant/weapp/cell/index", "van-cell": "@vant/weapp/cell/index",
"van-cell-group": "@vant/weapp/cell-group/index", "van-cell-group": "@vant/weapp/cell-group/index",
"cell": "/components/cell/index", "cell": "/components/cell/index",
"van-dialog": "@vant/weapp/dialog/index" "van-dialog": "@vant/weapp/dialog/index",
"dot": "/components/dot/index"
}, },
"navigationBarTitleText": "我的" "navigationBarTitleText": "我的"
} }

View File

@ -7,7 +7,14 @@
<van-cell title="联系客服" value="" is-link bind:tap="connect" /> <van-cell title="联系客服" value="" is-link bind:tap="connect" />
<van-cell wx:if="{{!!user.isAdmin}}" title="二维码" value="" is-link bind:click="jumpToQrCode" /> <van-cell wx:if="{{!!user.isAdmin}}" title="二维码" value="" is-link bind:click="jumpToQrCode" />
<van-cell wx:if="{{!!user.isAdmin}}" title="成员管理" value="" is-link bind:click="jumpToMember" /> <van-cell is-link bind:click="jumpToMember" >
<view slot="title">
<view class="cellWrapper">
<view class="text"> 成员管理 </view>
<dot number="{{100}}" />
</view>
</view>
</van-cell>
<!-- </van-cell-group> --> <!-- </van-cell-group> -->
<!-- <van-cell-group title=" "> <!-- <van-cell-group title=" ">
<van-cell title="单元格" value="内容" is-link /> <van-cell title="单元格" value="内容" is-link />

View File

@ -1 +1,6 @@
/* pages/my/index.wxss */ /* pages/my/index.wxss */
.cellWrapper {
display: flex;
justify-content: space-between;
}

View File

@ -39,8 +39,6 @@ Page({
* 生命周期函数--监听页面显示 * 生命周期函数--监听页面显示
*/ */
onShow() { onShow() {
const pages = getCurrentPages()
console.log('pages', pages)
}, },
/** /**

View File

@ -1,7 +1,8 @@
import { getRechargeList } from "../../service/recharge"; import { getRechargeList } from "../../service/recharge";
import { getOwnTenementList } from "../../service/tenement"; import { getOwnTenementList } from "../../service/tenement";
import { getYears } from "../../utils/index"; import { getYears } from "../../utils/index";
import request from "../../utils/request";
const { OK } = request;
// pages/rechargeRecord/index.js // pages/rechargeRecord/index.js
Page({ Page({
@ -20,7 +21,8 @@ Page({
show: false, show: false,
columns: [], columns: [],
type: "", type: "",
title: "" title: "",
amount: 0,
}, },
clickYear() { clickYear() {
this.setData({ this.setData({
@ -30,13 +32,24 @@ Page({
title: "年份" title: "年份"
}) })
}, },
clickTenement() {
this.setData({
type: "tenement",
columns: this.data.tenements,
show: true,
title: "商户"
})
},
onOk(e) { onOk(e) {
console.log('e', e)
const { type, value = {} } = e.detail; const { type, value = {} } = e.detail;
if (type === "year") { if (type === "year") {
this.onChangeYear(value.id) this.onChangeYear(value.id)
return; return;
} }
if (type === "tenement") {
this.onChangeTenement(value.id)
return;
}
}, },
/** /**
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
@ -62,19 +75,32 @@ Page({
}) })
this.init(currentYear, tenement) this.init(currentYear, tenement)
}, },
onChangeTenement(e) {
const { year } = this.data;
// const currentYear = years[Number(e)]
this.setData({
// year: currentYear,
tenement: e,
type: "",
show: false,
title: ""
})
this.init(year, e)
},
/** /**
* 生命周期函数--监听页面显示 * 生命周期函数--监听页面显示
*/ */
onShow() { onShow() {
const { year, tenement } = this.data; const { year, tenement } = this.data;
this.init(year, tenement) this.init(year, tenement);
this.getTenementsList();
}, },
async getTenementsList() { async getTenementsList() {
const { code, message, data } = await getOwnTenementList() const { code, message, data } = await getOwnTenementList()
if (code !== OK) { // if (code !== OK) {
alertInfo(message) // alertInfo(message)
return // return
} // }
let tenements = []; let tenements = [];
data.forEach(item => { data.forEach(item => {
if (item.tenements) { if (item.tenements) {
@ -84,9 +110,17 @@ Page({
this.setData({ tenements }) this.setData({ tenements })
}, },
async init(year, tenement) { async init(year, tenement) {
const { code, message, data } = await getRechargeList(year, tenement); const { code, message, data = [], amount = 0 } = await getRechargeList(year, tenement);
this.setData({ this.setData({
list: [...data, ...data] list: data,
amount
})
},
onCancel() {
this.setData({
show: false,
title: "",
type: "",
}) })
}, },
jumpToDetail(e) { jumpToDetail(e) {

View File

@ -7,15 +7,15 @@
<image src="/assets/images/down.png" mode="" class="down" /> <image src="/assets/images/down.png" mode="" class="down" />
</view> </view>
<!-- </picker> --> <!-- </picker> -->
<picker bindchange="onChangeYear" value="{{index}}" range="{{years}}"> <!-- <picker bindchange="onChangeYear" value="{{index}}" range="{{years}}"> -->
<view class="tenementPicker"> <view class="tenementPicker" bind:tap="clickTenement">
<view wx:if="{{tenementName}}" class="tenementName"> {{ tenementName }} </view> <view wx:if="{{tenementName}}" class="tenementName"> {{ tenementName }} </view>
<view wx:else> 全部 </view> <view wx:else> 全部 </view>
<image src="/assets/images/down.png" mode="" class="down" /> <image src="/assets/images/down.png" mode="" class="down" />
</view> </view>
</picker> <!-- </picker> -->
<view class="allMoney"> <view class="allMoney">
合计: 3000 合计: {{amount}}
</view> </view>
</view> </view>
<view class="wrapper"> <view class="wrapper">

View File

@ -49,4 +49,9 @@ export const userApply = async function(data) {
// 获取所有的园区和商户 // 获取所有的园区和商户
export const getUserParksAndTenementsList = async function() { export const getUserParksAndTenementsList = async function() {
return await GET('/wx/getUserParksAndTenementsList'); return await GET('/wx/getUserParksAndTenementsList');
}
// 获取所有未阅读的用户数
export const getUnReadApproveNumber = async function() {
return await GET('/wx/getApproveNumber');
} }

View File

@ -1,3 +1,5 @@
/** 每次系统加载的时候判断是否有发版 */ /** 每次系统加载的时候判断是否有发版 */
export function checkUpgrade() { export function checkUpgrade() {
if (wx.canIUse('getUpdateManager')) { if (wx.canIUse('getUpdateManager')) {
@ -216,4 +218,5 @@ export const wxModal = (data) => {
} }
}) })
}) })
} }

21
utils/system.js Normal file
View File

@ -0,0 +1,21 @@
import { getUnReadApproveNumber } from "../service/user";
import request from '../utils/request'
const { OK } = request
export const getDot = async () => {
const user = wx.getStorageSync('user')
if (!user || !user.id) {
return;
}
const { code, message, data } = await getUnReadApproveNumber();
if (data > 0) {
wx.showTabBarRedDot({
index: 1,
})
} else {
wx.hideTabBarRedDot({
index: 1,
})
}
}