web-base-admin/src/views/statistics/underDirectAddNew.vue

464 lines
13 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="page">
<topBar
v-if="topList.length > 0"
:top-list="topList"
:moren="moren"
/>
<div class="main">
<div class="form_all">
<el-form ref="select" :model="select" label-width="auto">
<el-row :gutter="10">
<el-col :span="4">
<TopMemberSelect ref="topMemberSelect" @change="topMemberHandleChange" />
</el-col>
<el-col :span="4">
<el-form-item :label="'会员编号'">
<el-input v-model="select.memberCode" clearable />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="'会员姓名'">
<el-input v-model="select.memberName" clearable />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="'订单类型'" prop="orderType">
<el-select
v-model="select.orderType"
clearable
:placeholder="'请选择'"
>
<el-option
v-for="(item, index) in orderTypeList"
:key="index"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="'真实奖衔'">
<el-select
v-model="select.pkAwards"
clearable
:placeholder="'请选择'"
>
<el-option
v-for="item in awardsList"
:key="item.pkId"
:label="item.awardsName"
:value="item.pkId"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="'隶属体系'">
<el-select
v-model="select.pkVertex"
clearable
:placeholder="'请选择'"
>
<el-option
v-for="item in vertexList"
:key="item.pkId"
:label="item.vertexName"
:value="item.pkId"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="'隶属团队'">
<el-select
v-model="select.pkTeamCode"
clearable
:placeholder="'请选择'"
>
<el-option
v-for="item in teamList"
:key="item.pkId"
:label="item.teamName"
:value="item.pkId"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="'国家'">
<el-select
v-model="select.pkCountry"
size="medium"
filterable
:placeholder="'请选择'"
>
<el-option
v-for="item in countryList"
:key="item.pkCountry"
:label="item.name"
:value="item.pkCountry"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="订单日期">
<el-date-picker
v-model="creationTime"
value-format="yyyy-MM-dd"
type="daterange"
:range-separator="'至'"
:start-placeholder="'开始日期'"
:end-placeholder="'结束日期'"
@change="changeTime"
/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-button type="primary" @click="getDataList">
{{ '搜索' }}</el-button>
<el-button type="" @click="reset"> {{ '重置' }}</el-button>
</el-col>
</el-row>
</el-form>
</div>
<div class="maintop">
<div class="mainbtn">
<!-- <el-button size="small"
@click="openDig"
v-hasButtons="['MissionAdd']"
class="addBtn">{{'添加'}}</el-button> -->
<el-button
size="small"
style="background-color: #ffad41"
class="thebtn1"
@click="handleExport"
>
{{ '导出' }}</el-button>
</div>
</div>
<div class="maintable">
<el-table
v-loading="loading"
:data="tableData"
style="width: 100%"
height="700px"
:header-cell-style="{ background: '#EEEEEE' }"
:row-class-name="tableRowClassName"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" />
<el-table-column align="center" prop="picture" label="国旗">
<template slot-scope="scope">
<div class="tem">
<img :src="scope.row.nationalFlag1" alt="">
</div>
</template>
</el-table-column>
<el-table-column
align="center"
prop="shortName"
:label="'国家'"
/>
<el-table-column
align="center"
prop="memberCode"
:label="'会员编号'"
/>
<el-table-column
align="center"
prop="memberName"
:label="'会员姓名'"
/>
<el-table-column align="center" prop="phone" :label="'联系方式'" />
<el-table-column
align="center"
prop="orderTypeVal"
:label="'订单类型'"
/>
<el-table-column
align="center"
prop="awardsName"
:label="'真实奖衔'"
/>
<el-table-column
align="center"
prop="vertexName"
:label="'隶属体系'"
/>
<el-table-column
align="center"
prop="pkTeamCode"
:label="'隶属团队'"
/>
<el-table-column
align="center"
prop="orderAmount"
label="新增金额(¥)"
/>
<el-table-column
align="center"
prop="orderAchieve"
:label="'新增业绩' + '(PV)'"
/>
<!-- <el-table-column align="center"
prop="payTime"
label="订单日期">
</el-table-column> -->
</el-table>
</div>
</div>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getDataList"
/>
</div>
</template>
<script>
import topBar from '@/components/topBar'
import * as api from '@/api/business.js'
import * as log from '@/api/logistics'
import TopMemberSelect from '@/components/top-member-select'
import { getAwardsListChiose } from '@/api/level'
import { getvertexValue } from '@/api/financialCase'
import { userCountryList } from '@/api/site.js'
import { getMonthFirstDayAndBeforeDay } from '@/utils/date'
export default {
name: 'UnderDirectAddNew',
components: {
topBar,
TopMemberSelect
},
data() {
return {
creationTime: [],
select: {
orderType: 1,
memberCode: ''
},
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 50
},
total: 0,
tableData: [],
loading: false,
awardsList: [],
vertexList: [],
teamList: [],
countryList: [],
orderTypeList: [],
moren: 'underDirectAddNew',
topList: [
{
name: '伞下直推新增业绩(新)',
path: 'underDirectAddNew'
}
],
monthFirstday: '',
monthLastday: ''
}
},
mounted() {
const [startDate, endDate] = getMonthFirstDayAndBeforeDay()
this.select.startPayTime = startDate
this.select.endPayTime = endDate
this.creationTime = [startDate, endDate]
// 获取列表
this.getDataList()
this.getData()
},
methods: {
topMemberHandleChange(val) {
if (val) {
this.select.memberCode = val
this.getDataList()
}
},
getStartTime() {
const date = new Date()
date.setDate(1) // 将当前时间的日期设置成第一天
const year = date.getFullYear() // 得到当前年份
let month = date.getMonth() + 1 // 得到当前月份0-11月份+1是当前月份
month = month >= 10 ? month : '0' + month // 补零
let day = date.getDate() // 得到当前天数实际是本月第一天因为前面setDate(1) 设置过了
day = day >= 10 ? day : '0' + day // 补零
return year + '-' + month + '-' + day
},
getEndTime() {
const date = new Date()
const year = date.getFullYear() // 得到当前年份
let month = date.getMonth() + 1 // 得到当前月份0-11月份+1是当前月份
month = month >= 10 ? month : '0' + month // 补零
let day = date.getDate() // 得到当前天数实际是本月第一天因为前面setDate(1) 设置过了
day = day >= 10 ? day : '0' + day // 补零
return year + '-' + month + '-' + day + ' '
},
// 真实奖衔下拉选
getData() {
getAwardsListChiose().then((res) => {
this.awardsList = res.rows
})
getvertexValue().then((res) => {
this.vertexList = res.data
})
api.teamList().then((res) => {
this.teamList = res.data
})
userCountryList().then((res) => {
this.countryList = res.data
})
log.getUnderAddOrderTypeNew().then((res) => {
this.orderTypeList = res.data
})
},
reset() {
this.$refs.topMemberSelect.reset()
this.select = {
orderType: 1
}
this.creationTime = []
this.getDataList()
},
changeTime(val) {
this.select.startPayTime = val ? val[0] : ''
this.select.endPayTime = val ? val[1] : ''
},
getDataList() {
this.loading = true
api
.directAddNewList(Object.assign({}, this.queryParams, this.select))
.then((res) => {
this.tableData = res.rows
this.total = res.total
this.loading = false
})
},
handleSelectionChange(val) {},
/** 导出按钮操作 */
handleExport() {
this.$confirm('是否确认导出所有数据项?', '警告', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then((_) => {
this.download(
'/report/manager/member-report/export-direct-push-new-up',
Object.assign({}, this.queryParams, this.select),
`伞下直推新增业绩(新)${new Date().getTime()}.xlsx`
)
})
},
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return 'warning-row'
} else if (rowIndex % 2 == 0) {
return 'success-row'
}
return ''
}
}
}
</script>
<style scoped lang="scss">
::v-deep .el-table .warning-row {
background: #f9f9f9;
}
::v-deep .el-table .success-row {
background: #ffffff;
}
::v-deep .el-table thead {
color: #000000;
}
::v-deep .el-select {
width: 100%;
}
.uploadIcon ::v-deep .el-upload--picture-card {
display: none !important; /* 上传按钮隐藏 */
}
.page {
padding: 20px;
background: #f9f9f9;
font-size: 14px;
.main {
background: #ffffff;
border-radius: 8px;
box-shadow: 0px 2px 20px 0px rgba(238, 238, 238, 0.5);
.form_all {
padding: 0px 20px 0 20px;
// margin-bottom: 20px;
background: #fff;
border-radius: 8px;
}
.maintop {
display: flex;
padding: 0px 0px;
justify-content: space-between;
align-items: center;
background: #f8f8f8;
.mainbtn {
.thebtn1 {
background: #3181e5;
color: #ffffff;
}
.thebtn2 {
background: #ffad41;
color: #ffffff;
}
}
.maintitle {
font-size: 10px;
font-family: MicrosoftYaHei;
color: #999999;
}
}
}
.tem {
display: flex;
align-items: center;
justify-content: center;
img {
width: 30px;
height: 30px;
margin-right: 3px;
}
}
.isRed {
color: #ed1d25;
}
.isGreen {
color: #1ab62b;
}
.bgImg {
width: 48px;
height: 48px;
}
}
.openClose {
text-align: right;
margin-right: 10px;
color: #3181e5;
}
.dizhi {
::v-deep .el-cascader {
width: 100%;
}
}
::v-deep .el-date-editor.el-input,
.el-date-editor.el-input__inner {
width: 100%;
}
</style>