新增用电查询echarts和导出功能
This commit is contained in:
parent
6d35c78da9
commit
e730e66c7c
2
app.json
2
app.json
|
@ -1,9 +1,9 @@
|
||||||
{
|
{
|
||||||
"pages": [
|
"pages": [
|
||||||
|
"pages/electricQuery/index",
|
||||||
"pages/home/index",
|
"pages/home/index",
|
||||||
"pages/billDetail/index",
|
"pages/billDetail/index",
|
||||||
"pages/billList/index",
|
"pages/billList/index",
|
||||||
"pages/electricQuery/index",
|
|
||||||
"pages/rechargeRecord/index",
|
"pages/rechargeRecord/index",
|
||||||
"pages/invoiceList/index",
|
"pages/invoiceList/index",
|
||||||
"pages/invoiceDetail/index",
|
"pages/invoiceDetail/index",
|
||||||
|
|
|
@ -1,20 +1,9 @@
|
||||||
import { getReportDetail } from "../../service/report";
|
import { getReportDetail } from "../../service/report";
|
||||||
import { alertInfo } from "../../utils/index";
|
import { alertInfo, getPixelRatio } from "../../utils/index";
|
||||||
import request from '../../utils/request'
|
import request from '../../utils/request'
|
||||||
import * as echarts from '../../components/echarts/echarts';
|
import * as echarts from '../../components/echarts/echarts';
|
||||||
const { OK } = request
|
const { OK } = request
|
||||||
const getPixelRatio = () => {
|
|
||||||
let pixelRatio = 0
|
|
||||||
wx.getSystemInfo({
|
|
||||||
success: function (res) {
|
|
||||||
pixelRatio = res.pixelRatio
|
|
||||||
},
|
|
||||||
fail: function () {
|
|
||||||
pixelRatio = 0
|
|
||||||
}
|
|
||||||
})
|
|
||||||
return pixelRatio
|
|
||||||
}
|
|
||||||
// pages/billDetail/index.js
|
// pages/billDetail/index.js
|
||||||
Page({
|
Page({
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
// pages/electricQuery/index.js
|
// pages/electricQuery/index.js
|
||||||
import { getAccountingList, getElectricityList, getMeterReadingList } from "../../service/accounting";
|
import { exportElectricityList, getAccountingList, getElectricityList, getMeterReadingList } from "../../service/accounting";
|
||||||
import { getTenementMeterList } from "../../service/meter";
|
import { getTenementMeterList } from "../../service/meter";
|
||||||
import dayjs from "../../utils/dayjs";
|
import dayjs from "../../utils/dayjs";
|
||||||
import request from '../../utils/request';
|
import request from '../../utils/request';
|
||||||
import * as echarts from '../../components/echarts/echarts';
|
import * as echarts from '../../components/echarts/echarts';
|
||||||
import { alertInfo } from "../../utils/index";
|
import { alertInfo, getPixelRatio, loadingFunc } from "../../utils/index";
|
||||||
const { OK } = request;
|
const { OK } = request;
|
||||||
Page({
|
Page({
|
||||||
|
|
||||||
|
@ -99,6 +99,52 @@ Page({
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.setData({ list: data, electricNumber, meterNumber })
|
this.setData({ list: data, electricNumber, meterNumber })
|
||||||
|
if (!data?.length) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.selectComponent('#echarts').init((canvas, width, height) => {
|
||||||
|
// 初始化图表
|
||||||
|
const pieChart = echarts.init(canvas, null, {
|
||||||
|
width: width,
|
||||||
|
height: height,
|
||||||
|
devicePixelRatio: getPixelRatio(),
|
||||||
|
});
|
||||||
|
const ids = [...new Set(data?.map(item => item?.meter?.id))]
|
||||||
|
const options = {
|
||||||
|
tooltip: {
|
||||||
|
trigger: 'axis'
|
||||||
|
},
|
||||||
|
legend: {
|
||||||
|
data: data?.map(item => item?.meter?.address),
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
left: '3%',
|
||||||
|
right: '4%',
|
||||||
|
bottom: '3%',
|
||||||
|
containLabel: true
|
||||||
|
},
|
||||||
|
xAxis: {
|
||||||
|
type: 'category',
|
||||||
|
boundaryGap: false,
|
||||||
|
data: [...new Set(data?.map(item => item.time))]
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
type: 'value'
|
||||||
|
},
|
||||||
|
series: ids?.map(item => {
|
||||||
|
const element = data?.find(i => i?.meter?.id === item)
|
||||||
|
return {
|
||||||
|
name: element?.meter?.address,
|
||||||
|
type: 'line',
|
||||||
|
stack: 'Total',
|
||||||
|
data: data?.filter(ele => ele?.meter?.id === item).map(item => item.number)
|
||||||
|
}})
|
||||||
|
|
||||||
|
};
|
||||||
|
pieChart.setOption(options);
|
||||||
|
// 注意这里一定要返回 chart 实例,否则会影响事件处理等
|
||||||
|
return pieChart;
|
||||||
|
});
|
||||||
},
|
},
|
||||||
async getReadingList() {
|
async getReadingList() {
|
||||||
const { meterId } = this.data;
|
const { meterId } = this.data;
|
||||||
|
@ -109,6 +155,37 @@ Page({
|
||||||
}
|
}
|
||||||
this.setData({ meterReadingList: data })
|
this.setData({ meterReadingList: data })
|
||||||
},
|
},
|
||||||
|
async export() {
|
||||||
|
loadingFunc(async () => {
|
||||||
|
const { queryType, timeType, meterId, year, yearMonth, yearMonthDay } = this.data;
|
||||||
|
let time;
|
||||||
|
switch(timeType) {
|
||||||
|
case 1:
|
||||||
|
time = yearMonth;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
time = year;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
time = yearMonthDay;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
const data = await exportElectricityList({ type: timeType, meter: meterId, time: time })
|
||||||
|
// if (code !== OK) {
|
||||||
|
// alertInfo(message)
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
wx.openDocument({
|
||||||
|
filePath: data.tempFilePath,
|
||||||
|
fileType: 'xlsx',
|
||||||
|
success() {
|
||||||
|
},
|
||||||
|
fail(err) {
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
async getAccountingBalanceList() {
|
async getAccountingBalanceList() {
|
||||||
const { meterId } = this.data;
|
const { meterId } = this.data;
|
||||||
const { code, message, data } = await getAccountingList(meterId)
|
const { code, message, data } = await getAccountingList(meterId)
|
||||||
|
@ -147,11 +224,7 @@ Page({
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
onOk(e) {
|
onOk(e) {
|
||||||
const { type, value = {} } = e.detail;
|
|
||||||
const { id, code } = e.detail.value;
|
const { id, code } = e.detail.value;
|
||||||
console.log('e', e)
|
|
||||||
const { year } = this.data;
|
|
||||||
// const currentYear = years[Number(e)]
|
|
||||||
this.setData({
|
this.setData({
|
||||||
// year: currentYear,
|
// year: currentYear,
|
||||||
meterId: id,
|
meterId: id,
|
||||||
|
|
|
@ -9,7 +9,8 @@
|
||||||
"table": "/components/table/table",
|
"table": "/components/table/table",
|
||||||
"empty": "/components/empty/index",
|
"empty": "/components/empty/index",
|
||||||
"timePicker": "/components/timePicker/index",
|
"timePicker": "/components/timePicker/index",
|
||||||
"accountingCard": "./components/accountingCard/index"
|
"accountingCard": "./components/accountingCard/index",
|
||||||
|
"echarts": "/components/echarts/ec-canvas"
|
||||||
},
|
},
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom"
|
||||||
}
|
}
|
|
@ -53,7 +53,7 @@
|
||||||
<view class="timeText" wx:else> {{year}} </view>
|
<view class="timeText" wx:else> {{year}} </view>
|
||||||
<van-icon name="arrow-down" />
|
<van-icon name="arrow-down" />
|
||||||
</view>
|
</view>
|
||||||
<van-button type="info" size="small"> 导出 </van-button>
|
<van-button type="info" size="small" bind:click="export"> 导出 </van-button>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view wx:elif="{{queryType === 1}}">
|
<view wx:elif="{{queryType === 1}}">
|
||||||
|
@ -94,14 +94,16 @@
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
<!-- <echarts
|
<echarts
|
||||||
style="width:200rpx;height:200rpx;position:relative"
|
style="width:200rpx;height:180rpx;"
|
||||||
id="echarts"
|
id="echarts"
|
||||||
class='mychart-bar'
|
class='mychart-bar'
|
||||||
canvas-id="mychart-bar"
|
canvas-id="mychart-bar"
|
||||||
ec="{{ ec }}"
|
ec="{{ ec }}"
|
||||||
|
forceUseOldCanvas="{{false}}"
|
||||||
|
wx:if="{{list.length}}"
|
||||||
>
|
>
|
||||||
</echarts> -->
|
</echarts>
|
||||||
<custom-picker
|
<custom-picker
|
||||||
title="{{title}}"
|
title="{{title}}"
|
||||||
show="{{show}}"
|
show="{{show}}"
|
||||||
|
|
|
@ -160,7 +160,6 @@ Page({
|
||||||
paySign: data?.paySign,
|
paySign: data?.paySign,
|
||||||
signType: 'RSA',
|
signType: 'RSA',
|
||||||
success: (res) => {
|
success: (res) => {
|
||||||
console.log('success', res)
|
|
||||||
alertSuccess("充值成功")
|
alertSuccess("充值成功")
|
||||||
that.setData({
|
that.setData({
|
||||||
money: null
|
money: null
|
||||||
|
|
|
@ -65,9 +65,8 @@ Page({
|
||||||
|
|
||||||
},
|
},
|
||||||
onChangeYear(e) {
|
onChangeYear(e) {
|
||||||
const { years, codeId } = this.data;
|
const { codeId } = this.data;
|
||||||
const currentYear = e
|
const currentYear = e
|
||||||
console.log('e', e, 'currentYear', currentYear, 'years', years)
|
|
||||||
this.setData({
|
this.setData({
|
||||||
year: currentYear,
|
year: currentYear,
|
||||||
type: "",
|
type: "",
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import apis from '../utils/request';
|
import apis from '../utils/request';
|
||||||
|
import { getConfigByEnv } from "../utils/index"
|
||||||
const { GET, POST, PUT, DELETE } = apis
|
const { GET, POST, PUT, DELETE } = apis
|
||||||
|
|
||||||
// 获取电费账单列表
|
// 获取电费账单列表
|
||||||
|
@ -23,3 +24,20 @@ export const getAccountingList = async function(meter) {
|
||||||
const tenement = wx.getStorageSync('tenement')?.id || ""
|
const tenement = wx.getStorageSync('tenement')?.id || ""
|
||||||
return await GET(`/wx/getAccountingList?tenement=${tenement}&meter=${meter}`);
|
return await GET(`/wx/getAccountingList?tenement=${tenement}&meter=${meter}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 导出电量查询
|
||||||
|
export const exportElectricityList = async function({ meter, type, time }) {
|
||||||
|
const tenement = wx.getStorageSync('tenement')?.id || ""
|
||||||
|
const { api } = getConfigByEnv();
|
||||||
|
return new Promise(resolve => {
|
||||||
|
wx.downloadFile({
|
||||||
|
url: `${api}/wx/getElectricityList/export?tenement=${tenement}&meter=${meter}&type=${type}&time=${time}`,
|
||||||
|
success(res) {
|
||||||
|
resolve(res)
|
||||||
|
},
|
||||||
|
fail(err) {
|
||||||
|
console.log('err', err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
|
@ -220,3 +220,16 @@ export const wxModal = (data) => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export const getPixelRatio = () => {
|
||||||
|
let pixelRatio = 0
|
||||||
|
wx.getSystemInfo({
|
||||||
|
success: function (res) {
|
||||||
|
pixelRatio = res.pixelRatio
|
||||||
|
},
|
||||||
|
fail: function () {
|
||||||
|
pixelRatio = 0
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return pixelRatio
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user