| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244 |
- const _Http = getApp().globalData.http,
- currency = require("../../utils/currency"),
- CNY = (value, symbol = "¥", precision = 2) => currency(value, {
- symbol,
- precision
- }).format();
- import * as echarts from '../ec-canvas/echarts';
- Component({
- properties: {
- },
- options: {
- addGlobalClass: true
- },
- lifetimes: {
- attached: function () {
- getApp().globalData.Language.getLanguagePackage(this)
- }
- },
- data: {
- "content": {
- dataid: wx.getStorageSync('userMsg').userid,
- username: wx.getStorageSync('userMsg').name,
- enddate: new Date().toISOString().split('T')[0],
- where: {}
- },
- accounts: [],
- accountno: "",
- },
- methods: {
- async getList(init = false) {
- let accounts = []
- if (!this.data.accounts.length) accounts = await _Http.basic({
- "id": 20221008134803,
- "content": {
- "isExport": 0,
- "pageNumber": 1,
- "pageSize": 100,
- "where": {
- "condition": ""
- }
- },
- })
- let content = this.data.content
- const {
- dataid,
- type,
- username,
- isleave
- } = getCurrentPages()[getCurrentPages().length - 1].data;
- if (content.dataid != dataid || content.type != type || isleave != isleave) init = true
- content.dataid = dataid;
- content.type = type;
- content.username = username;
- content.where.isleave = isleave;
- let dividend = wx.getStorageSync('languagecode') == 'ZH' ? 10000 : 1000;
- try {
- content.accountno = accounts.data[0].accountno
- this.setData({
- accounts: accounts.data.map(v => {
- if (Math.abs(v.balance) > dividend) {
- v.balance = CNY(v.balance / wx.getStorageSync('languagecode') == 'ZH' ? 10000 : 1000)
- v.conversion = true;
- } else {
- v.balance = CNY(v.balance)
- v.conversion = false;
- }
- v.remarks = v.accountname
- v.value = v.accountno
- return v
- }),
- content
- })
- } catch (error) {
- }
- _Http.basic({
- "id": 20231019151704,
- content
- }).then(res => {
- console.log("客户余额", res)
- this.selectComponent("#Filtrate").onCancel();
- if (res.code != '1') return wx.showToast({
- title: res.data,
- icon: "none"
- })
- this.setData({
- accounts: res.data.accountclass.map(v => {
- if (Math.abs(v.balance) > dividend) {
- v.balance = CNY(v.balance / wx.getStorageSync('languagecode') == 'ZH' ? 10000 : 1000)
- v.conversion = true;
- } else {
- v.balance = CNY(v.balance)
- v.conversion = false;
- }
- v.remarks = v.accountname
- v.value = v.accountno
- return v
- })
- })
- this.initChart(res.data)
- })
- },
- initChart(data) {
- const dividend = wx.getStorageSync('languagecode') == 'ZH' ? 10000 : 1000,
- colors = ['#6CD2A1', '#5F9DFC', '#ECB937'],
- getMapText = getApp().globalData.Language.getMapText;
- const option = {
- color: colors,
- tooltip: {
- trigger: 'axis',
- },
- legend: {
- data: [`${getMapText('去年同期金额')}(${getMapText('万元')})`, `${getMapText('本期金额')}(${getMapText('万元')})`, `${getMapText('同比增长率')}`],
- },
- xAxis: [{
- type: 'category',
- axisTick: {
- alignWithLabel: true
- },
- data: data.tbzzl.map(v => v.date),
- axisLabel: {
- interval: 0,
- rotate: 45
- }
- }],
- yAxis: [{
- type: 'value',
- name: '',
- position: 'right',
- offset: 80,
- alignTicks: true,
- axisLine: {
- show: true,
- },
- axisLabel: {
- formatter: '{value}'
- }
- },
- {
- type: 'value',
- name: '',
- position: 'left',
- alignTicks: true,
- axisLine: {
- show: false,
- },
- axisLabel: {
- formatter: '{value}',
- rotate: 45
- }
- },
- {
- type: 'value',
- name: '',
- position: 'right',
- alignTicks: true,
- offset: 80,
- axisLine: {
- show: false,
- lineStyle: {
- color: colors[1]
- }
- },
- axisLabel: {
- formatter: '{value}'
- }
- },
- ],
- series: [{
- name: `${getMapText('去年同期金额')}(${getMapText('万元')})`,
- type: 'bar',
- data: data.balance.filter(v => v.name == '去年同期金额').map(v => (v.value / dividend).toFixed(2)),
- smooth: true
- },
- {
- name: `${getMapText('本期金额')}(${getMapText('万元')})`,
- type: 'bar',
- yAxisIndex: 1,
- data: data.balance.filter(v => v.name == '本年金额').map(v => (v.value / dividend).toFixed(2)),
- smooth: true
- },
- {
- name: getMapText('同比增长率'),
- type: 'line',
- yAxisIndex: 2,
- data: data.tbzzl.map(v => (v.value * 100).toFixed(2)),
- smooth: true
- }
- ]
- };
- this.chartComponent = this.selectComponent('#mychart');
- this.chartComponent.init((canvas, width, height, dpr) => {
- const chart = echarts.init(canvas, null, {
- width,
- height,
- devicePixelRatio: dpr
- });
- chart.setOption(option);
- return chart;
- });
- },
- changeDate({
- detail
- }) {
- this.setData({
- "content.enddate": detail
- })
- this.getList(true)
- },
- changeType({
- detail
- }) {
- this.setData({
- "content.accountno": detail
- })
- this.getList(true)
- },
- changeType1(e) {
- let {
- item
- } = e.currentTarget.dataset;
- this.changeType({
- detail: item.accountno
- })
- },
- toDetail() {
- let content = this.data.content;
- wx.navigateTo({
- url: '/salesPanel/customerBlance/detail?content=' + JSON.stringify(content)
- })
- },
- showExplain(e) {
- const {
- name
- } = e.currentTarget.dataset;
- getApp().globalData.Language.modeBoxPrompts(getApp().globalData.Language.getMapText('统计到当前查询时间为止的客户') + getApp().globalData.Language.getMapText(name) + getApp().globalData.Language.getMapText('总余额'))
- },
- }
- })
|