Commit 60d79da4 by 姜雷

Merge branch 'develop' into test

parents 9180b695 e872a6b4
...@@ -6,7 +6,8 @@ ...@@ -6,7 +6,8 @@
"pages/feedback/feedback", "pages/feedback/feedback",
"pages/monthOperator/monthOperator", "pages/monthOperator/monthOperator",
"pages/homeAndReport/homeAndReport", "pages/homeAndReport/homeAndReport",
"pages/userGrowth/userGrowth" "pages/userGrowth/userGrowth",
"pages/areaSelect/areaSelect"
], ],
"window": { "window": {
"backgroundTextStyle": "light", "backgroundTextStyle": "light",
......
{
"navigationBarTitleText": "区域选择",
"usingComponents": {}
}
\ No newline at end of file
import { baseFetch } from '../../api/fetch';
// miniprogram/pages/areaSelect/areaSelect.js
Page({
/**
* 页面的初始数据
*/
data: {
selected: '',
selectedIndex: '',
areaList: [],
filterList: [],
methodName: '',
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
console.log(options);
const { methodName, value } = options;
this.fetchAreaList();
this.setData!({
methodName,
selected: value,
});
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function() {},
fetchAreaList() {
baseFetch({
url: '/dcxy/baseArea/queryAll',
})
.then(res => {
if (res.data) {
this.setData!({
areaList: res.data,
filterList: res.data,
});
if (this.data.selected) {
let index = res.data.findIndex(
item => item.id == this.data.selected,
);
console.log(this.data.selected,index)
if (index > -1) {
this.setData({
selectedIndex: index,
});
}
}
} else {
this.setData!({
areaList: [],
filterList: [],
});
}
})
.catch(err => {
console.log(err);
});
},
inputHandle(e) {
const { value } = e.detail;
console.log(e, value);
let filterList = [];
if (value) {
filterList = this.data.areaList.filter(item =>
item['areaName'].includes(value),
);
} else {
filterList = this.data.areaList;
}
this.setData({
filterList,
});
},
selectedHandle(e) {
const { value } = e.currentTarget.dataset;
console.log(e, value);
if (this.data.selectedIndex === value) {
this.setData({
selected: '',
selectedIndex: '',
});
} else {
this.setData({
selected: this.data.filterList[value].id,
selectedIndex: value,
});
}
},
bindPickerChange() {
let value = this.data.selected;
// this.setData!({
// showPickerView: false,
// });
// this.triggerEvent('change', { value }, {});
var pages = getCurrentPages();
var prevPage = pages[pages.length - 2]; //上一个页面
let entity = {};
if (value) {
entity = {
id: value,
name: this.data.filterList[this.data.selectedIndex].areaName,
};
} else {
entity = { id: '', name: '' };
}
if (this.data.methodName && prevPage[this.data.methodName]) {
prevPage[this.data.methodName](entity);
}
wx.navigateBack({ delta: 1 });
},
});
<!-- miniprogram/pages/areaSelect/areaSelect.wxml -->
<view class="areaselect-pickBox">
<view class="areaselect-pickFilter">
<input class="areaselect-pickInput" type="text" bindconfirm="inputHandle" />
<view class="areaselect-pickBtn" bindtap="bindPickerChange">确认</view>
</view>
<view class="areaselect-list">
<view wx:for="{{filterList}}" class="areaselect-listItem {{selectedIndex === index?'selected':''}}" wx:key="{{item.id}}" data-value="{{index}}" bindtap="selectedHandle">
{{item.areaName}}
</view>
</view>
</view>
\ No newline at end of file
/* miniprogram/pages/areaSelect/areaSelect.wxss */
page {
height: 100%;
}
.areaselect-pickBox {
box-sizing: border-box;
padding-bottom: constant(safe-area-inset-bottom);
padding-bottom: env(safe-area-inset-bottom);
background-color: #fff;
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
}
.areaselect-pickFilter {
display: flex;
padding: 40rpx 40rpx 0;
align-items: center;
}
.areaselect-pickInput {
flex: 1;
}
.areaselect-pickBtn {
color: #6895fe;
margin-left: 20rpx;
}
.areaselect-list {
flex: 1;
padding: 40rpx 0;
overflow-y: auto;
}
.areaselect-listItem {
line-height: 100rpx;
font-size: 28rpx;
color: #333;
padding: 0 80rpx;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.areaselect-listItem.selected {
background-color: #f0f5ff;
}
...@@ -20,9 +20,25 @@ Component({ ...@@ -20,9 +20,25 @@ Component({
type: String, type: String,
value: '', value: '',
observer(newVal) { observer(newVal) {
console.log(newVal);
this.setData({ selected: newVal }); this.setData({ selected: newVal });
}, },
}, },
mode: {
type: String,
value: 'selector',
},
methodName: {
type: String,
value: '',
},
showText: {
type: String,
value: '',
observer(val) {
console.log('in showText', val);
},
},
}, },
data: { data: {
showPickerView: false, showPickerView: false,
...@@ -32,9 +48,15 @@ Component({ ...@@ -32,9 +48,15 @@ Component({
}, },
methods: { methods: {
inputClickHandle() { inputClickHandle() {
if (this.data.mode === 'page') {
wx.navigateTo({
url: `/pages/areaSelect/areaSelect?methodName=${this.data.methodName}&value=${this.data.value}`,
});
} else {
this.setData!({ this.setData!({
showPickerView: !this.data.showPickerView, showPickerView: !this.data.showPickerView,
}); });
}
}, },
innerClickHandle(e) { innerClickHandle(e) {
return false; return false;
......
...@@ -4,7 +4,8 @@ ...@@ -4,7 +4,8 @@
<!-- <picker class="areaselect-picker" mode="{{mode}}" bindchange="bindPickerChange" value="{{selected}}" range="{{range}}" range-key="{{rangeKey}}" fields="{{fields}}"> --> <!-- <picker class="areaselect-picker" mode="{{mode}}" bindchange="bindPickerChange" value="{{selected}}" range="{{range}}" range-key="{{rangeKey}}" fields="{{fields}}"> -->
<!-- </picker> --> <!-- </picker> -->
<view class="areaselect-picker" bindtap="inputClickHandle"> <view class="areaselect-picker" bindtap="inputClickHandle">
<view wx:if="{{selected}}" class="select-value">{{range[selectedIndex][rangeKey]}}</view> <view wx:if="{{mode === 'page' && selected}}" class="select-value">{{showText}}</view>
<view wx:elif="{{selected}}" class="select-value">{{range[selectedIndex][rangeKey]}}</view>
<view wx:else class="select-placeholder">{{placeholder}}</view> <view wx:else class="select-placeholder">{{placeholder}}</view>
<image class="select-icon" src="../../../images/btn_xiala@2x.png" mode="aspectFill" /> <image class="select-icon" src="../../../images/btn_xiala@2x.png" mode="aspectFill" />
</view> </view>
......
...@@ -15,6 +15,8 @@ Page({ ...@@ -15,6 +15,8 @@ Page({
list1: [], list1: [],
list2: [], list2: [],
areaList: [], areaList: [],
list: [],
pageNum: [null, 0, 0],
}, },
initData() { initData() {
this.fetchList(1); this.fetchList(1);
...@@ -23,10 +25,9 @@ Page({ ...@@ -23,10 +25,9 @@ Page({
toggleList(e) { toggleList(e) {
const { tabindex } = e.currentTarget.dataset; const { tabindex } = e.currentTarget.dataset;
if (tabindex !== this.data.tabIndex) { if (tabindex !== this.data.tabIndex) {
this.setData!({ this.setData!({ tabIndex: tabindex }, () => {
tabIndex: tabindex,
});
this.fetchList(tabindex); this.fetchList(tabindex);
});
} }
}, },
fetchList(state?: number) { fetchList(state?: number) {
...@@ -44,8 +45,15 @@ Page({ ...@@ -44,8 +45,15 @@ Page({
.then(res => { .then(res => {
wx.hideLoading(); wx.hideLoading();
const list = res.data; const list = res.data;
let viewList = list.slice(0, 10);
if (state === this.data.tabIndex) {
this.setData!({
list: viewList,
});
}
this.setData!({ this.setData!({
['list' + state]: list, ['list' + state]: list,
[`pageNum[${state}]`]: 0,
}); });
}) })
.catch(err => { .catch(err => {
...@@ -90,4 +98,24 @@ Page({ ...@@ -90,4 +98,24 @@ Page({
console.log(err); console.log(err);
}); });
}, },
getMoreListItem() {
let state = this.data.tabIndex;
let index = this.data.pageNum[state] + 1;
let max = Math.ceil(this.data['list' + state].length / 10);
console.log('in getMoreListItem', index, max);
if (index >= max) {
wx.showToast({
title: '没有更多数据',
icon: 'none',
});
} else {
this.setData({
[`pageNum[${state}]`]: index,
list: [
...this.data.list,
...this.data['list' + state].slice(index * 10, (index + 1) * 10),
],
});
}
},
}); });
...@@ -13,10 +13,10 @@ ...@@ -13,10 +13,10 @@
<text class="feedback-tabCount">{{list2.length}}</text> <text class="feedback-tabCount">{{list2.length}}</text>
</view> </view>
</view> </view>
<view wx:if="{{tabIndex===1}}" class="feedback-list"> <scroll-view wx:if="{{tabIndex===1}}" class="feedback-list" scroll-y bindscrolltolower="getMoreListItem">
<feedback-item wx:for="{{list1}}" wx:key="{{item.id}}" feedback-data="{{item}}" bind:refresh="refreshHandle" /> <feedback-item wx:for="{{list}}" wx:key="{{item.id}}" feedback-data="{{item}}" bind:refresh="refreshHandle" />
</view> </scroll-view>
<view wx:elif="{{tabIndex===2}}" class="feedback-list"> <scroll-view wx:elif="{{tabIndex===2}}" class="feedback-list" scroll-y bindscrolltolower="getMoreListItem">
<feedback-item wx:for="{{list2}}" wx:key="{{item.id}}" feedback-data="{{item}}" bind:refresh="refreshHandle" /> <feedback-item wx:for="{{list}}" wx:key="{{item.id}}" feedback-data="{{item}}" bind:refresh="refreshHandle" />
</view> </scroll-view>
</view> </view>
\ No newline at end of file
import { baseFetch, statisticsFetch } from '../../api/fetch'; import { statisticsFetch } from '../../api/fetch';
import { formatTime } from '../../utils/util'; import { formatTime } from '../../utils/util';
Page({ Page({
onLoad() { onLoad() {
this.initData(); this.initData();
this.fetchAreaList();
}, },
data: { data: {
areaList: [],
month: '', month: '',
areaId: 0, areaId: '',
areaName: '',
rechargeData: { rechargeData: {
title: '充值总额', title: '充值总额',
numberType: 'price', numberType: 'price',
...@@ -42,35 +41,17 @@ Page({ ...@@ -42,35 +41,17 @@ Page({
this.fetchList(); this.fetchList();
}); });
}, },
fetchAreaList() {
baseFetch({
url: '/dcxy/baseArea/queryAll',
})
.then(res => {
if (res.data) {
this.setData!({
areaList: res.data,
});
} else {
this.setData!({
areaList: [],
});
}
})
.catch(err => {
console.log(err);
});
},
areaChangeHandle(val) { areaChangeHandle(val) {
console.log('areaChangeHandle', val); console.log('areaChangeHandle', val);
const { value } = val.detail; const { id, name } = val;
this.setData!( this.setData!(
{ {
areaId: value, areaId: id,
areaName: name,
}, },
() => { () => {
if (value) { if (id) {
this.fetchList({ areaId: [value] }); this.fetchList({ areaId: [id] });
} else { } else {
this.fetchList(); this.fetchList();
} }
...@@ -193,7 +174,7 @@ Page({ ...@@ -193,7 +174,7 @@ Page({
...entity, ...entity,
}; };
statisticsFetch({ statisticsFetch({
url: '/dcxy/reportInfo/serviceConsume', url: '/dcxy/reportInfo/queryConsumeOrderList',
method: 'POST', method: 'POST',
data: reqBody, data: reqBody,
}) })
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<view class="monthOperator"> <view class="monthOperator">
<view class="monthOperator-filter"> <view class="monthOperator-filter">
<view class="monthOperator-area"> <view class="monthOperator-area">
<area-select range="{{areaList}}" range-key="{{'areaName'}}" bindchange="areaChangeHandle" placeholder="所属区域选择" /> <area-select mode="page" bindchange="areaChangeHandle" methodName="areaChangeHandle" value="{{areaId}}" showText="{{areaName}}" placeholder="所属区域选择" />
</view> </view>
<view class="monthOperator-time"> <view class="monthOperator-time">
<c-select mode="date" fields="month" value="{{month}}" bindchange="monthChangeHandle" /> <c-select mode="date" fields="month" value="{{month}}" bindchange="monthChangeHandle" />
......
...@@ -12,7 +12,8 @@ Page({ ...@@ -12,7 +12,8 @@ Page({
*/ */
data: { data: {
month: '', month: '',
areaId: 0, areaId: '',
areaName: '',
areaList: [], areaList: [],
growthList: [], growthList: [],
customerCount: 0, customerCount: 0,
...@@ -98,14 +99,15 @@ Page({ ...@@ -98,14 +99,15 @@ Page({
}, },
areaChangeHandle(val) { areaChangeHandle(val) {
console.log('areaChangeHandle', val); console.log('areaChangeHandle', val);
const { value } = val.detail; const { id, name } = val;
this.setData!( this.setData!(
{ {
areaId: value, areaId: id,
areaName: name,
}, },
() => { () => {
if (value) { if (id) {
this.fetchList({ areaId: value }); this.fetchList({ areaId: id });
} else { } else {
this.fetchList(); this.fetchList();
} }
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
</view> </view>
<view class="userGrowth-filter"> <view class="userGrowth-filter">
<view class="userGrowth-area"> <view class="userGrowth-area">
<area-select range="{{areaList}}" range-key="{{'areaName'}}" bindchange="areaChangeHandle" placeholder="所属区域选择" /> <area-select mode="page" bindchange="areaChangeHandle" methodName="areaChangeHandle" value="{{areaId}}" showText="{{areaName}}" placeholder="所属区域选择" />
</view> </view>
<view class="userGrowth-time"> <view class="userGrowth-time">
<c-select mode="date" fields="month" value="{{month}}" bindchange="monthChangeHandle" /> <c-select mode="date" fields="month" value="{{month}}" bindchange="monthChangeHandle" />
......
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 to comment