[update] 联调标协会员-会员统计,标准统计

This commit is contained in:
lideqin
2024-03-14 16:25:34 +08:00
parent 5386a24b84
commit 96dfa531ee
7 changed files with 157 additions and 159 deletions
+2 -2
View File
@@ -157,9 +157,9 @@ const memberCopy = (params) => postAction('/member/tbMemberProjectSubitem/copy',
// 标协会员单位信息-批量复制
const memberBatchCopy = (params) => postAction('/member/tbMemberProjectSubitem/copyBatch', params)
// 标协会员-会员统计-曲线图数据获取
const memberStatisticsLineData = (params) => getAction('', params)
const memberStatisticsLineData = (params) => getAction('/statistics/member/lineChart', params)
// 标协会员-会员统计-饼状图数据获取
const memberStatisticsPieData = (params) => getAction('', params)
const memberStatisticsPieData = (params) => getAction('/statistics/member/pieChart', params)
// 工作组成员维护-调账
const workingGroupEditAccount = (param) => getAction('/project/payWorkingGroupSubitem/editAccount', param)
@@ -182,7 +182,7 @@
<status-slot :statu-obj="record" :status-no="text" :status-type="true" status-key="bill"></status-slot>
</template>
<!-- 邮寄-->
<!-- 确收 -->
<template slot="status-mail" slot-scope="text,record">
<status-slot :statu-obj="record" :status-no="text" :status-type="true" status-key="mail"></status-slot>
</template>
@@ -153,7 +153,6 @@ export default {
* 标协会议维护
* */
handleStandardMeeting(record){
console.log(123)
this.$router.push({
path:'/projectManagement/CommitteeMeetingStard',
query:{
@@ -151,8 +151,8 @@
</template>
<!-- 确收 -->
<template slot="status-confirm-get" slot-scope="text,record">
<status-slot :statu-obj="record" :status-no="text" :status-type="true" status-key="confirm"></status-slot>
<template slot="status-mail" slot-scope="text,record">
<status-slot :statu-obj="record" :status-no="text" :status-type="true" status-key="mail"></status-slot>
</template>
<span slot="action" slot-scope="text, record" class="action-span-cell">
@@ -298,8 +298,8 @@ export default {
title: '确收',
align: 'center',
width: 100,
dataIndex: 'confirmGet',
scopedSlots: { customRender: 'status-confirm-get' }
dataIndex: 'affirmIncome',
scopedSlots: { customRender: 'status-mail' }
},
{
title: '操作',
@@ -62,18 +62,25 @@ export default {
}
},
mounted() {
// this.getLineEchartsData()
// this.getPieEchartsData()
this.initLineEcharts()
this.initPieEcharts()
this.getLineEchartsData()
this.getPieEchartsData()
},
methods: {
formatMoney,
// 获取曲线图数据
getLineEchartsData () {
memberStatisticsLineData().then(res => {
const param = {}
const currentYear = Number(new Date().getFullYear())
param.startYear = currentYear - 2
param.endYear = currentYear
memberStatisticsLineData(param).then(res => {
if (res.success) {
this.lineData = res.result
this.lineData = []
for (const index in res.result.year) {
this.lineData.push(
{ year: res.result.year[index], data: res.result.value[index] }
)
}
this.initLineEcharts()
}
})
@@ -82,7 +89,9 @@ export default {
getPieEchartsData () {
memberStatisticsPieData().then(res => {
if (res.success) {
this.pieData = res.result
this.pieData = res.result.map(item => {
return { ...item, name: item.memberNature_dictText }
})
this.initPieEcharts()
}
})
@@ -241,12 +250,10 @@ export default {
chartClickFunc(params) {
console.log(params)
// 获取当前点击的饼状图的名字
// let queryData = {
// name: params.data.name, // 名字
// type: params.dataIndex + 1, // 序号
// departCode: this.queryParam.departCode, // 部门code
// }
this.$refs.stardsMemberStatisticsModal.show()
let queryData = {
memberNature: params.data.memberNature // 会员性质
}
this.$refs.stardsMemberStatisticsModal.show(queryData)
},
}
}
@@ -54,52 +54,55 @@ export default {
{
title: '会议名称',
align: 'center',
dataIndex: 'memberNo',
dataIndex: 'meetingName',
scopedSlots: { customRender: 'text' },
},
{
title: '标准编号',
align: 'center',
dataIndex: 'memberNo',
dataIndex: 'standardNo',
scopedSlots: { customRender: 'text' },
},
{
title: '标准名称',
align: 'center',
dataIndex: 'memberNo',
dataIndex: 'standardName',
scopedSlots: { customRender: 'text' },
},
{
title: '标准类别',
align: 'center',
dataIndex: 'memberNo',
dataIndex: 'standardType_dictText',
scopedSlots: { customRender: 'text' },
},
{
title: '制修订',
align: 'center',
dataIndex: 'memberNo',
dataIndex: 'preparationAndRevision_dictText',
scopedSlots: { customRender: 'text' },
},
{
title: '宣贯人',
align: 'center',
dataIndex: 'memberNo',
dataIndex: 'promoter_dictText',
scopedSlots: { customRender: 'text' },
},
{
title: '宣贯时间',
align: 'center',
dataIndex: 'memberNo',
dataIndex: 'promotionTime',
scopedSlots: { customRender: 'text' },
},
{
title: '宣贯地点',
align: 'center',
dataIndex: 'memberNo',
dataIndex: 'promotionLocation',
scopedSlots: { customRender: 'text' },
}
]
],
url: {
list: '/statistics/standard/standardProjectPage'
}
}
}
}
@@ -49,50 +49,32 @@
<div class="table-text">{{ formatMoney(text) }}</div>
</a-tooltip>
</template>
<!-- 是否打包-->
<template slot="pack" slot-scope="text, record">
<status-slot :statu-obj="record" :status-no="text" :status-type="true"></status-slot>
<template slot="status" slot-scope="text, record">
<status-slot
:statu-obj="record"
:status-no="text"
:status-type="true"
></status-slot>
</template>
<template slot="footer" v-if="dataSource.length > 0">
<!--打包-->
<template slot="status-pack" slot-scope="text,record">
<status-slot :statu-obj="record" :status-no="text" status-key="pack"></status-slot>
</template>
<a-table
size="middle"
ref="footTable"
:rowKey="record => record.id"
:columns="columnsFooter"
:scroll="{x: 1500}"
:dataSource="footerDataSource"
:showHeader="false"
:pagination="false"
class="j-table-force-nowrap footer-table">
<!--需要发票-->
<template slot="status-needInvoice" slot-scope="text,record">
<status-slot :statu-obj="record" :status-no="text"></status-slot>
</template>
<!-- 项目名称-->
<template slot="projectName" slot-scope="text">
<!-- primary-color @click="openDetailModal(record)"-->
<a-tooltip>
<template slot="title">{{ text }}</template>
<div class="table-text " >{{ text }}</div>
</a-tooltip>
</template>
<!-- 开票-->
<template slot="status-bill" slot-scope="text,record">
<status-slot :statu-obj="record" :status-no="text" :status-type="true" status-key="bill"></status-slot>
</template>
<template slot="text" slot-scope="text">
<a-tooltip>
<template slot="title">{{ text }}</template>
<div class="table-text">{{ text }}</div>
</a-tooltip>
</template>
<template slot="allMoney" slot-scope="text">
<a-tooltip>
<template slot="title">{{ formatMoney(text) }}</template>
<div class="table-text">{{ formatMoney(text) }}</div>
</a-tooltip>
</template>
</a-table>
<!-- 邮寄-->
<template slot="status-mail" slot-scope="text,record">
<status-slot :statu-obj="record" :status-no="text" :status-type="true" status-key="mail"></status-slot>
</template>
</a-table>
@@ -101,15 +83,16 @@
</template>
<script>
import {getAction} from '@/api/manage'
const defaultSorter = {
column: 'createTime',
order: 'desc'
}
import { JeroListMixin } from '@/mixins/JeroListMixin'
import { formatMoney } from '@/utils/formatMoney'
import StatusSlot from '@/components/tools/StatusSlot'
export default {
name: 'StardsMemberStatisticsModal',
mixins: [JeroListMixin],
components: {
StatusSlot
},
data () {
return {
unitName: '', // 单位名称
@@ -117,98 +100,104 @@ export default {
width: 1000,
visible: false,
confirmLoading: false,
columns: [],
dataSource: [],
ipagination: {
current: 1,
pageSize: 10,
pageSizeOptions: ['10', '20', '30', '50', '100'],
showTotal: (total, range) => {
return range[0] + '-' + range[1] + ' 共' + total + '条'
columns: [
{
title: '序号',
dataIndex: '',
key: 'rowIndex',
width: 60,
align: 'center',
customRender: function (t, r, index) {
return parseInt(index) + 1
},
},
showQuickJumper: true,
showSizeChanger: true,
total: 0
},
loading: false,
/* 排序参数 */
isorter: {
column: 'createTime',
order: 'desc',
},
{
title: '会员编号',
align: 'center',
dataIndex: 'memberNo',
scopedSlots: { customRender: 'text' },
},
{
title: '会员单位',
align: 'center',
dataIndex: 'companyName',
scopedSlots: { customRender: 'detail' },
},
{
title: '会员联系人',
align: 'center',
dataIndex: 'liaisonManId_dictText',
scopedSlots: { customRender: 'text' },
},
{
title: '待确收金额',
align: 'center',
dataIndex: 'amountReceivable',
scopedSlots: { customRender: 'allMoney' }
},
{
title: '实收金额',
align: 'center',
dataIndex: 'paidAmount',
scopedSlots: { customRender: 'allMoney' }
},
{
title: '预估到账日期',
align: 'center',
dataIndex: 'estimatedArrivalDate',
scopedSlots: { customRender: 'text' }
},
{
title: '打包',
align: 'center',
dataIndex: 'pack',
scopedSlots: { customRender: 'status-pack' },
},
{
title: '需要发票',
align: 'center',
dataIndex: 'invoiceRequirements',
scopedSlots: { customRender: 'status-needInvoice' },
},
{
title: '到账',
align: 'center',
dataIndex: 'inAccount',
scopedSlots: { customRender: 'status' },
},
{
title: '开票',
align: 'center',
dataIndex: 'makeInvoice',
scopedSlots: { customRender: 'status-bill' },
},
{
title: '确收',
align: 'center',
dataIndex: 'affirmIncome',
scopedSlots: { customRender: 'status-mail' },
},
{
title: '提票',
align: 'center',
dataIndex: 'ticketCollection',
scopedSlots: { customRender: 'status-mail' },
},
],
dataSource: [],
url: {
list: ''
}
list: '/statistics/member/pieChartPage'
},
disableMixinCreated: true
}
},
methods: {
formatMoney,
show (param) {
this.loadData(param)
this.filters = Object.assign({}, param)
this.loadData(1)
this.visible = true
},
loadData(arg) {
if (!this.url.list) {
this.$message.error('请设置url.list属性!')
return
}
//加载数据 若传入参数1则加载第一页的内容
if (arg === 1) {
this.ipagination.current = 1
}
let params = this.getQueryParams()//查询条件
this.loading = true
getAction(this.url.list, params).then((res) => {
if (res.success) {
this.dataSource = res.result.pageList.records
// let obj = {
// id: '1',
// title: '总计',
// allMoney: res.result.sumOfMoney || '0.00' + '',
// comeAllMoney: res.result.sumOfReallyMoney || '0.00' + '',
// billMoney: res.result.sumOfBillMoney || '0.00' + '',
// confirmAmount: res.result.sumOfConfirmAmount || '0.00' + ''
// }
// this.footerDataSource = [obj]
if (res.result.pageList.total) {
this.ipagination.total = res.result.pageList.total
} else {
this.ipagination.total = 0
}
}
if (this.dataSource.length > 0) {
this.$nextTick(() => {
this.setScroll()
})
}
if (res.code === 510) {
this.$message.warning(res.message)
}
this.loading = false
}).finally(() => {
this.loading = false
})
},
handleTableChange(pagination, filters, sorter) {
//分页、排序、筛选变化时触发
//筛选
if (Object.keys(sorter).length > 0) {
this.isorter.column = sorter.field
if (sorter.order) {
// 如果当前有列选中筛选条件
this.isorter.order = 'ascend' == sorter.order ? 'asc' : 'desc'
} else {
// 没有筛选值则 isorter 重置为初始值
this.isorter.column = defaultSorter.column
this.isorter.order = defaultSorter.order
}
} else {
this.isorter.column = defaultSorter.column
this.isorter.order = defaultSorter.order
}
this.ipagination = pagination
this.loadData()
},
handleCancel () {
this.visible = false
}