feat(performanceTotal): 业绩汇总字段调整

This commit is contained in:
woody 2025-07-18 15:27:30 +08:00
parent 2b980be59d
commit 5c63375e18
1 changed files with 218 additions and 454 deletions

View File

@ -6,65 +6,83 @@
-->
<template>
<div class="page">
<topBar v-if="topList.length > 0"
:topList="topList"
:moren="moren"></topBar>
<topBar
v-if="topList.length > 0"
:top-list="topList"
:moren="moren"
/>
<div class="main">
<el-form ref="select"
<el-form
ref="select"
:model="select"
style="padding:0 10px 0 10px;background: #fff"
label-width="auto">
label-width="auto"
>
<el-row :gutter="20">
<!-- 一层 -->
<el-col :span="4">
<el-form-item :label="'结算期数'">
<el-input clearable
v-model="select.memberSettlePeriodId"></el-input>
<el-input
v-model="select.memberSettlePeriodId"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="'币种展示'">
<el-select clearable
<el-select
v-model="select.pkCurrency"
clearable
placeholder=""
v-model="select.pkCurrency">
<el-option v-for="item in acList"
>
<el-option
v-for="item in acList"
:key="item.value"
:label="item.label"
:value="item.value"></el-option>
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="'结算日期'">
<el-date-picker v-model="creationTime"
@change="changeTime"
<el-date-picker
v-model="creationTime"
value-format="yyyy-MM-dd"
type="daterange"
format="yyyy-MM-dd"
:range-separator="'至'"
:start-placeholder="'开始日期'"
:end-placeholder="'结束日期'">
</el-date-picker>
:end-placeholder="'结束日期'"
@change="changeTime"
/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="'隶属体系'">
<el-cascader :options="verList"
<el-cascader
v-model="select.pkBdVertexStred"
@change="getPkBdVertexStr"
:options="verList"
:props="props"
collapse-tags
clearable></el-cascader>
clearable
@change="getPkBdVertexStr"
/>
</el-form-item>
</el-col>
<el-col :span="4"
<el-col
:span="4"
>
<el-button type="primary"
<el-button
type="primary"
size="small"
class="my_search"
@click="getDataList"> {{ '搜索' }}</el-button>
<el-button class="my_reset"
@click="reset"> {{ '重置' }}</el-button>
@click="getDataList"
> {{ '搜索' }}</el-button>
<el-button
class="my_reset"
@click="reset"
> {{ '重置' }}</el-button>
</el-col>
</el-row>
<!-- <el-row>
@ -98,10 +116,12 @@
</el-form>
<div class="maintop">
<div class="mainbtn">
<el-button size="small"
<el-button
v-has-buttons="['performanceTotalExport']"
size="small"
class="thebtn2"
@click="handleExport"
class="thebtn2"> {{ '导出' }}</el-button>
> {{ '导出' }}</el-button>
</div>
<!-- <div>
<el-dropdown :hide-on-click="false">
@ -119,382 +139,127 @@
</div>
<div class="maintable">
<div class="itemTrading">
<el-table :data="tableData"
<el-table
ref="mainTable"
v-loading="loading"
height='730px'
:data="tableData"
height="730px"
style="width: 100%"
:header-cell-style="{ background: '#EEEEEE' }"
:row-class-name="tableRowClassName"
@selection-change="handleSelectionChange"
:summary-method="getSummaries"
show-summary>
<el-table-column type="selection"
width="55"> </el-table-column>
show-summary
@selection-change="handleSelectionChange"
>
<el-table-column
type="selection"
width="55"
/>
<!-- <el-table-column align="center"
prop="numberPeriods"
width="150"
v-if="dataList[0].key"
:label="'结算期数'">
</el-table-column> -->
<el-table-column align="center"
<el-table-column
v-if="allTxt.settleDate"
align="center"
prop="settleDate"
width="150"
v-if="allTxt.settleDate"
:label="'结算时间'">
</el-table-column>
<el-table-column align="center"
prop="registerAmount"
:label="'结算时间'"
/>
<el-table-column
v-if="allTxt.registerAmount"
align="center"
prop="registerAmount"
:formatter="stateFormat"
width="160"
:label="'注册金额'+`(¥)`">
</el-table-column>
<el-table-column align="center"
prop="registerAmountDollar"
v-if="allTxt.registerAmountDollar"
:formatter="stateFormat"
width="160"
:label="'注册金额'+`($)`">
</el-table-column>
<el-table-column align="center"
prop="registerAmountLocality"
v-if="allTxt.registerAmountLocality"
:formatter="stateFormat"
width="160"
:label="'注册金额'+`(${isLocalSymbol()})`">
</el-table-column>
<el-table-column align="center"
prop="registerPv"
:label="'注册金额'"
/>
<el-table-column
v-if="allTxt.registerPv"
align="center"
prop="registerPv"
:formatter="stateFormat"
width="160"
:label="'注册业绩'+`(¥)`">
</el-table-column>
<el-table-column align="center"
prop="registerPvDollar"
v-if="allTxt.registerPvDollar"
:formatter="stateFormat"
width="160"
:label="'注册业绩'+`($)`">
</el-table-column>
<el-table-column align="center"
prop="registerPvLocality"
v-if="allTxt.registerPvLocality"
:formatter="stateFormat"
width="160"
:label="'注册业绩'+`(${isLocalSymbol()})`">
</el-table-column>
<el-table-column align="center"
prop="upgradeAmount"
:label="'注册业绩'"
/>
<el-table-column
v-if="allTxt.upgradeAmount"
align="center"
prop="upgradeAmount"
:formatter="stateFormat"
width="160"
:label="'升级金额'+`(¥)`">
</el-table-column>
<el-table-column align="center"
prop="upgradeAmountDollar"
v-if="allTxt.upgradeAmountDollar"
:formatter="stateFormat"
width="160"
:label="'升级金额'+`($)`">
</el-table-column>
<el-table-column align="center"
prop="upgradeAmountLocality"
v-if="allTxt.upgradeAmountLocality"
:formatter="stateFormat"
width="160"
:label="'升级金额'+`(${isLocalSymbol()})`">
</el-table-column>
<el-table-column align="center"
prop="upgradePv"
:label="'升级金额'"
/>
<el-table-column
v-if="allTxt.upgradePv"
align="center"
prop="upgradePv"
:formatter="stateFormat"
width="160"
:label="'升级业绩'+`(¥)`">
</el-table-column>
<el-table-column align="center"
prop="upgradePvDollar"
v-if="allTxt.upgradePvDollar"
:formatter="stateFormat"
width="160"
:label="'升级业绩'+`($)`">
</el-table-column>
<el-table-column align="center"
prop="upgradePvLocality"
v-if="allTxt.upgradePvLocality"
:formatter="stateFormat"
width="160"
:label="'升级业绩'+`(${isLocalSymbol()})`">
</el-table-column>
:label="'升级业绩'"
/>
<el-table-column align="center"
<el-table-column
v-if="allTxt.firstPurchaseAmount"
align="center"
prop="firstPurchaseAmount"
:formatter="stateFormat"
width="160"
:label="'首购金额'+`(¥)`">
</el-table-column>
<el-table-column align="center"
v-if="allTxt.firstPurchaseAmountDollar"
prop="firstPurchaseAmountDollar"
:formatter="stateFormat"
width="160"
:label="'首购金额'+`($)`">
</el-table-column>
<el-table-column align="center"
v-if="allTxt.firstPurchaseAmountLocality"
prop="firstPurchaseAmountLocality"
:formatter="stateFormat"
width="160"
:label="'首购金额'+`(${isLocalSymbol()})`">
</el-table-column>
<el-table-column align="center"
:label="'首购金额'"
/>
<el-table-column
v-if="allTxt.firstPurchasePv"
align="center"
prop="firstPurchasePv"
:formatter="stateFormat"
width="160"
:label="'首购业绩'+`(¥)`">
</el-table-column>
<el-table-column align="center"
v-if="allTxt.firstPurchasePvDollar"
prop="firstPurchasePvDollar"
:formatter="stateFormat"
width="160"
:label="'首购业绩'+`($)`">
</el-table-column>
<el-table-column align="center"
v-if="allTxt.firstPurchasePvLocality"
prop="firstPurchasePvLocality"
:formatter="stateFormat"
width="160"
:label="'首购业绩'+`(${isLocalSymbol()})`">
</el-table-column>
<el-table-column align="center"
prop="tripartiteAmount"
v-if="allTxt.tripartiteAmount&&getUser.user.pkCountry==1"
:formatter="stateFormat"
width="160"
:label="'三方' +'金额'+`(¥)`">
</el-table-column>
<el-table-column align="center"
prop="tripartiteAmountDollar"
v-if="allTxt.tripartiteAmountDollar&&getUser.user.pkCountry==1"
:formatter="stateFormat"
width="160"
:label="'三方' +'金额'+`($)`">
</el-table-column>
<el-table-column align="center"
prop="tripartiteAmountLocality"
v-if="allTxt.tripartiteAmountLocality&&getUser.user.pkCountry==1"
:formatter="stateFormat"
width="160"
:label="'三方' +'金额'+`(${isLocalSymbol()})`">
</el-table-column>
<el-table-column align="center"
prop="tripartitePv"
v-if="allTxt.tripartitePv&&getUser.user.pkCountry==1"
:formatter="stateFormat"
width="160"
:label="'三方' +'业绩'+`(¥)`">
</el-table-column>
<el-table-column align="center"
prop="tripartitePvDollar"
v-if="allTxt.tripartitePvDollar&&getUser.user.pkCountry==1"
:formatter="stateFormat"
width="160"
:label="'三方' +'业绩'+`($)`">
</el-table-column>
<el-table-column align="center"
prop="tripartitePvLocality"
v-if="allTxt.tripartitePvLocality&&getUser.user.pkCountry==1"
:formatter="stateFormat"
width="160"
:label="'三方' +'业绩'+`(${isLocalSymbol()})`">
</el-table-column>
:label="'首购业绩'"
/>
<!-- <el-table-column align="center"
prop="directSupplyAmount"
v-if="allTxt.directSupplyAmount"
:formatter="stateFormat"
width="160"
:label="'直供金额'+`(¥)`">
</el-table-column>
<el-table-column align="center"
prop="directSupplyAmountDollar"
v-if="allTxt.directSupplyAmountDollar"
:formatter="stateFormat"
width="160"
:label="'直供金额'+`($)`">
</el-table-column>
<el-table-column align="center"
prop="directSupplyAmountLocality"
v-if="allTxt.directSupplyAmountLocality"
:formatter="stateFormat"
width="160"
:label="'直供金额'+`(${isLocalSymbol()})`">
</el-table-column> -->
<!-- <el-table-column align="center"
prop="directSupplyPv"
v-if="allTxt.directSupplyPv"
:formatter="stateFormat"
width="160"
:label="'直供业绩'+`(¥)`">
</el-table-column>
<el-table-column align="center"
prop="directSupplyPvDollar"
v-if="allTxt.directSupplyPvDollar"
:formatter="stateFormat"
width="160"
:label="'直供业绩'+`($)`">
</el-table-column>
<el-table-column align="center"
prop="directSupplyPvLocality"
v-if="allTxt.directSupplyPvLocality"
:formatter="stateFormat"
width="160"
:label="'直供业绩'+`(${isLocalSymbol()})`">
</el-table-column> -->
<el-table-column align="center"
prop="fansAmount"
v-if="allTxt.fansAmount&&getUser.user.pkCountry==1"
:formatter="stateFormat"
width="150"
:label="'海粉金额'+`(¥)`">
</el-table-column>
<el-table-column align="center"
prop="fansAmountDollar"
v-if="allTxt.fansAmountDollar&&getUser.user.pkCountry==1"
:formatter="stateFormat"
width="150"
:label="'海粉金额'+`($)`">
</el-table-column>
<el-table-column align="center"
prop="fansAmountLocality"
v-if="allTxt.fansAmountLocality&&getUser.user.pkCountry==1"
:formatter="stateFormat"
width="150"
:label="'海粉金额'+`(${isLocalSymbol()})`">
</el-table-column>
<el-table-column align="center"
prop="hiFunPv"
v-if="allTxt.hiFunPv&&getUser.user.pkCountry==1"
:formatter="stateFormat"
width="150"
:label="'海粉业绩'+`(¥)`">
</el-table-column>
<el-table-column align="center"
prop="hiFunPvDollar"
v-if="allTxt.hiFunPvDollar&&getUser.user.pkCountry==1"
:formatter="stateFormat"
width="150"
:label="'海粉业绩'+`($)`">
</el-table-column>
<el-table-column align="center"
prop="hiFunPvLocality"
v-if="allTxt.hiFunPvLocality&&getUser.user.pkCountry==1"
:formatter="stateFormat"
width="150"
:label="'海粉业绩'+`(${isLocalSymbol()})`">
</el-table-column>
<el-table-column align="center"
prop="repurchaseAmount"
<el-table-column
v-if="allTxt.repurchaseAmount"
align="center"
prop="repurchaseAmount"
:formatter="stateFormat"
width="160"
:label="'复购金额'+`(¥)`">
</el-table-column>
<el-table-column align="center"
v-if="allTxt.repurchaseAmountDollar"
prop="repurchaseAmountDollar"
:formatter="stateFormat"
width="150"
:label="'复购金额'+'($)'">
</el-table-column>
<el-table-column align="center"
v-if="allTxt.repurchaseAmountLocality"
prop="repurchaseAmountLocality"
:formatter="stateFormat"
width="150"
:label="'复购金额'+`(${isLocalSymbol()})`">
</el-table-column>
<el-table-column align="center"
:label="'复购金额'"
/>
<el-table-column
v-if="allTxt.repurchasePv"
align="center"
prop="repurchasePv"
:formatter="stateFormat"
width="150"
:label="'复购业绩'+'(¥)'">
</el-table-column>
<el-table-column align="center"
v-if="allTxt.repurchasePvDollar"
prop="repurchasePvDollar"
:formatter="stateFormat"
width="150"
:label="'复购业绩'+'($)'">
</el-table-column>
<el-table-column align="center"
v-if="allTxt.repurchasePvLocality"
prop="repurchasePvLocality"
:formatter="stateFormat"
width="150"
:label="'复购业绩'+`(${isLocalSymbol()})`">
</el-table-column>
<el-table-column align="center"
:label="'复购业绩'"
/>
<el-table-column
v-if="allTxt.amountTotal"
align="center"
prop="amountTotal"
:formatter="stateFormat"
width="150"
:label="'金额总计'+'(¥)'">
</el-table-column>
<el-table-column align="center"
v-if="allTxt.amountTotalDollar"
prop="amountTotalDollar"
:formatter="stateFormat"
width="150"
:label="'金额总计'+'($)'">
</el-table-column>
<el-table-column align="center"
v-if="allTxt.amountTotalLocality"
prop="amountTotalLocality"
:formatter="stateFormat"
width="150"
:label="'金额总计'+`(${isLocalSymbol()})`">
</el-table-column>
<el-table-column align="center"
:label="'金额总计'"
/>
<el-table-column
v-if="allTxt.pvTotal"
align="center"
prop="pvTotal"
:formatter="stateFormat"
width="150"
:label="'业绩汇总'+'(¥)'">
</el-table-column>
<el-table-column align="center"
v-if="allTxt.pvTotalDollar"
prop="pvTotalDollar"
:formatter="stateFormat"
width="150"
:label="'业绩汇总'+'($)'">
</el-table-column>
<el-table-column align="center"
v-if="allTxt.pvTotalLocality"
prop="pvTotalLocality"
:formatter="stateFormat"
width="150"
:label="'业绩汇总'+`(${isLocalSymbol()})`">
</el-table-column>
:label="'业绩汇总'"
/>
</el-table>
</div>
<!-- <div class="heji">
<div class="dis"
v-for="item in menuList"
:key="item.id"
v-if="item.checked&&item.id != 0&&item.id > 13">
<div>{{ item.text }}</div>
<div>{{ tableData[item.prop] }}</div>
</div>
</div> -->
</div>
</div>
<!-- <pagination v-show="total>0"
@ -518,7 +283,7 @@ import { mapGetters } from 'vuex'
export default {
name: 'Bzpz',
components: {
topBar,
topBar
},
filters: {
isAgree(val) {
@ -527,60 +292,60 @@ export default {
} else {
return '禁止'
}
},
}
},
data() {
return {
typeList: [
{
value: 0,
label: '前台',
label: '前台'
},
{
value: 1,
label: '后台',
},
label: '后台'
}
],
digList: [
{
value: 0,
label: '允许',
label: '允许'
},
{
value: 1,
label: '禁止',
},
label: '禁止'
}
],
creationTime: [],
creationTime1: [],
select: {
pkVertex: [],
pkMemberTeam: [],
pkMemberTeam: []
},
//
queryParams: {
pageNum: 1,
pageSize: 50,
pageSize: 50
},
addOrEdit: '',
total: 0,
dialogVisible: false,
tableData: [],
loading:false,
loading: false,
moren: '/settlementCenter/performanceTotal',
topList: [
{
name: '业绩汇总',
path: '/settlementCenter/performanceTotal',
},
path: '/settlementCenter/performanceTotal'
}
],
form: {
name: '',
name: ''
},
rules: {
name: [
{ required: true, message: '请输入规格类型', trigger: 'blur' },
],
{ required: true, message: '请输入规格类型', trigger: 'blur' }
]
},
acList: [],
verList: [],
@ -592,8 +357,8 @@ export default {
expandTrigger: 'hover',
value: 'pkId',
label: 'vertexName',
children: 'childList',
},
children: 'childList'
}
}
},
computed: {
@ -615,15 +380,15 @@ export default {
methods: {
getPkBdVertexStr(e) {
console.log('%c [ e ]-616', 'font-size:13px; background:#d9149a; color:#ff58de;', e)
let arr = e.map((item) => item[1])
let pkBdVertexStr = arr.join(',')
const arr = e.map((item) => item[1])
const pkBdVertexStr = arr.join(',')
this.$set(this.select, 'pkBdVertexStr', pkBdVertexStr)
},
getStartTime() {
let date = new Date()
const date = new Date()
// console.error(date.getDate()==1?date.getMonth():date.getMonth() + 1)
let year = date.getFullYear() //
let month = date.getDate()===1?date.getMonth():date.getMonth() + 1 // 0-11+1
const year = date.getFullYear() //
let month = date.getDate() === 1 ? date.getMonth() : date.getMonth() + 1 // 0-11+1
date.setDate(1) //
month = month >= 10 ? month : '0' + month //
let day = date.getDate() // setDate(1)
@ -631,32 +396,32 @@ export default {
return year + '-' + month + '-' + day
},
getEndTime() {
var date = new Date();
var date = new Date()
var year = date.getFullYear() //
let month = date.getDate()===1?date.getMonth():date.getMonth() + 1 // 0-11+1
let month = date.getDate() === 1 ? date.getMonth() : date.getMonth() + 1 // 0-11+1
var day = date.getDate()
let day1 = date.getDate()
const day1 = date.getDate()
// 0
if (month >= 1 && month <= 9) {
month = "0" + month;
month = '0' + month
}
if (day >= 0 && day <= 9) {
day = "0" + day;
day = '0' + day
}
if(day1==1){
if (day1 == 1) {
var date2 = new Date()
var year2 = date2.getFullYear()
var month2 = date2.getMonth()
var dates = new Date(year2, month2 , 0).getDate()
var dates = new Date(year2, month2, 0).getDate()
day = dates
}
return year + "-" + month + "-" + day
return year + '-' + month + '-' + day
},
isLocalSymbol,
toThousandthAndKeepDecimal,
getUserRole() {
getRoleMenu('performanceTotal').then((res) => {
let obj = {}
const obj = {}
res.data.forEach((item) => {
obj[item] = 1
})
@ -671,7 +436,7 @@ export default {
this.creationTime = ''
this.select = {
pkVertex: [],
pkMemberTeam: [],
pkMemberTeam: []
}
},
getData() {
@ -705,8 +470,8 @@ export default {
this.$router.push({
path: 'noticeList/details',
query: {
pkId: id,
},
pkId: id
}
})
},
/** 导出按钮操作 */
@ -714,7 +479,7 @@ export default {
this.$confirm('是否确认导出所有数据项?', '警告', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
type: 'warning'
}).then((_) => {
this.download(
'member/manage/member-structure/export',
@ -751,10 +516,10 @@ export default {
}
})
// sums
let arr = ['', '小计']
const arr = ['', '小计']
sums.forEach((item) => {
if (typeof item == 'number') {
if (typeof item === 'number') {
arr.push(toThousandthAndKeepDecimal(item))
}
})
@ -768,7 +533,7 @@ export default {
this.$confirm('确认删除?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
type: 'warning'
}).then(() => {
api.classifyDel(id).then((res) => {
this.getDataList()
@ -788,7 +553,7 @@ export default {
if (res.code == 200) {
this.$message({
message: res.msg,
type: 'success',
type: 'success'
})
this.dialogVisible = false
//
@ -809,7 +574,7 @@ export default {
},
openDig() {
this.$router.push({
path: 'noticeList/details',
path: 'noticeList/details'
})
},
getDataList() {
@ -821,8 +586,7 @@ export default {
api
.memberStructure(Object.assign({}, this.queryParams, this.select))
.then((res) => {
this.loading = false
this.loading = false
this.tableData = res.data
// this.total = res.total
})
@ -850,8 +614,8 @@ this.loading = false
return 'success-row'
}
return ''
},
},
}
}
}
</script>
<style scoped lang="scss">