Merge branch 'bd-dev' of gitee.com:cabbage_qd/web-base-admin into bd-online

This commit is contained in:
woody 2025-05-22 09:35:11 +08:00
commit 97c74ae3d9
31 changed files with 1987 additions and 1955 deletions

View File

@ -1261,7 +1261,7 @@ export default {
printWindow.document.close() printWindow.document.close()
printWindow.focus() printWindow.focus()
printWindow.print() printWindow.print()
printWindow.close() // printWindow.close()
} else { } else {
const printContent = document.getElementById('print-content2') const printContent = document.getElementById('print-content2')
const printWindow = window.open('', '_blank') // edge const printWindow = window.open('', '_blank') // edge
@ -1269,7 +1269,7 @@ export default {
printWindow.document.close() printWindow.document.close()
printWindow.focus() printWindow.focus()
printWindow.print() printWindow.print()
printWindow.close() // printWindow.close()
} }
}) })
}, },

View File

@ -1,5 +1,5 @@
<template> <template>
<el-form-item label="顶点会员"> <el-form-item label="系统编号">
<el-select <el-select
v-model="pkVertex" v-model="pkVertex"
clearable clearable
@ -52,6 +52,3 @@ export default {
} }
</script> </script>
<style>
</style>

View File

@ -193,8 +193,27 @@
/> />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="" label="" />
<el-table-column align="center" prop="" label="" /> <el-table-column align="center" prop="expandSmall" label="对碰业绩(小)">
<template slot-scope="scope">
<el-input
v-model.number="scope.row.expandSmall"
clearable
type="number"
:disabled="ifupdate"
/>
</template>
</el-table-column>
<el-table-column align="center" prop="expandBig" label="对碰业绩(大)">
<template slot-scope="scope">
<el-input
v-model.number="scope.row.expandBig"
clearable
type="number"
:disabled="ifupdate"
/>
</template>
</el-table-column>
</el-table> </el-table>
<el-table <el-table

View File

@ -2,43 +2,41 @@
<div class="page"> <div class="page">
<topBar <topBar
v-if="topList.length > 0" v-if="topList.length > 0"
:topList="topList" :top-list="topList"
:moren="moren" :moren="moren"
></topBar> />
<div class="main"> <div class="main">
<div class="form_all"> <div class="form_all">
<el-form ref="select" :model="select" label-width="auto"> <el-form ref="select" :model="select" label-width="auto">
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="4"> <el-col :span="4">
<el-form-item label="服务编号"> <el-form-item label="服务编号">
<el-input clearable v-model="select.serviceCode"></el-input> <el-input v-model="select.serviceCode" clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'会员编号'"> <el-form-item :label="'会员编号'">
<el-input clearable v-model="select.memberCode"></el-input> <el-input v-model="select.memberCode" clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="创建时间"> <el-form-item label="创建时间">
<el-date-picker <el-date-picker
v-model="creationTime" v-model="creationTime"
@change="changeTime"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
type="daterange" type="daterange"
:clearable="false" :clearable="false"
:range-separator="'至'" :range-separator="'至'"
:start-placeholder="'开始日期'" :start-placeholder="'开始日期'"
:end-placeholder="'结束日期'" :end-placeholder="'结束日期'"
> @change="changeTime"
</el-date-picker> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-button type="primary" @click="getList"> <el-button type="primary" @click="getList">
{{ '搜索' }}</el-button {{ '搜索' }}</el-button>
>
<el-button type="" @click="reset"> {{ '重置' }}</el-button> <el-button type="" @click="reset"> {{ '重置' }}</el-button>
</el-col> </el-col>
</el-row> </el-row>
@ -49,30 +47,28 @@
<el-button <el-button
v-has-buttons="['ServiceNumberAdd']" v-has-buttons="['ServiceNumberAdd']"
size="small" size="small"
@click="openDig"
class="addBtn" class="addBtn"
>{{ '添加' }}</el-button @click="openDig"
> >{{ '添加' }}</el-button>
<el-button <el-button
size="small"
@click="handleExport"
v-hasButtons="['ServiceNumberExport']" v-hasButtons="['ServiceNumberExport']"
size="small"
class="exportBtn" class="exportBtn"
@click="handleExport"
> >
{{ '导出' }}</el-button {{ '导出' }}</el-button>
>
</div> </div>
</div> </div>
<div class="maintable"> <div class="maintable">
<el-table <el-table
:data="tableData"
v-loading="loading" v-loading="loading"
:data="tableData"
style="width: 100%" style="width: 100%"
:header-cell-style="{ background: '#EEEEEE' }" :header-cell-style="{ background: '#EEEEEE' }"
:row-class-name="tableRowClassName" :row-class-name="tableRowClassName"
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
> >
<el-table-column type="selection" width="55"> </el-table-column> <el-table-column type="selection" width="55" />
<el-table-column align="center" prop="serviceCode" label="服务编号" /> <el-table-column align="center" prop="serviceCode" label="服务编号" />
<el-table-column <el-table-column
align="center" align="center"
@ -85,7 +81,6 @@
:label="'会员姓名'" :label="'会员姓名'"
/> />
<el-table-column align="center" prop="nickName" label="会员昵称" />
<el-table-column <el-table-column
align="center" align="center"
prop="gradeName" prop="gradeName"
@ -109,10 +104,10 @@
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@click="handleDelete(scope.row.memberCode)"
type="text"
v-has-buttons="['ServiceNumberDelete']" v-has-buttons="['ServiceNumberDelete']"
type="text"
size="small" size="small"
@click="handleDelete(scope.row.memberCode)"
> >
{{ '删除' }} {{ '删除' }}
</el-button> </el-button>
@ -142,20 +137,20 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="'会员编号'" prop="memberCode"> <el-form-item :label="'会员编号'" prop="memberCode">
<el-input <el-input
clearable
v-model="form.memberCode" v-model="form.memberCode"
clearable
:placeholder="'请选择'" :placeholder="'请选择'"
@blur="checkName" @blur="checkName"
></el-input> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="'会员姓名'"> <el-form-item :label="'会员姓名'">
<el-input <el-input
disabled
v-model="form.memberName" v-model="form.memberName"
disabled
:placeholder="'请输入会员姓名'" :placeholder="'请输入会员姓名'"
></el-input> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -172,61 +167,61 @@
</template> </template>
<script> <script>
import topBar from "@/components/topBar"; import topBar from '@/components/topBar'
import * as api from "@/api/configManage.js"; import * as api from '@/api/configManage.js'
export default { export default {
name: "ServiceNumber", name: 'ServiceNumber',
components: { components: {
topBar, topBar
}, },
data() { data() {
return { return {
moren: "serviceNumber", moren: 'serviceNumber',
topList: [ topList: [
{ {
name: "服务编号配置", name: '服务编号配置',
path: "serviceNumber", path: 'serviceNumber'
}, }
], ],
select: {}, select: {},
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 50, pageSize: 50
}, },
total: 0, total: 0,
dialogVisible: false, dialogVisible: false,
tableData: [], tableData: [],
loading: false, loading: false,
form: {}, form: {},
dialogTitle: "", dialogTitle: '',
rules: { rules: {
memberCode: [ memberCode: [
{ required: true, message: '请输入', trigger: "blur" }, { required: true, message: '请输入', trigger: 'blur' }
], ]
}, },
multipleSelection: [], multipleSelection: [],
creationTime: [], creationTime: []
}; }
}, },
mounted() { mounted() {
// //
this.getList(); this.getList()
}, },
methods: { methods: {
changeTime(val) { changeTime(val) {
this.select.startDate = val ? val[0] : ""; this.select.startDate = val ? val[0] : ''
this.select.endDate = val ? val[1] : ""; this.select.endDate = val ? val[1] : ''
}, },
checkName() { checkName() {
api api
.checkMemberDetail({ memberCode: this.form.memberCode }) .checkMemberDetail({ memberCode: this.form.memberCode })
.then((res) => { .then((res) => {
this.$set(this.form, "memberName", res.data.memberName); this.$set(this.form, 'memberName', res.data.memberName)
}); })
}, },
handleSelectionChange(val) { handleSelectionChange(val) {
this.multipleSelection = val; this.multipleSelection = val
}, },
onSubmit(formName) { onSubmit(formName) {
this.$refs[formName].validate((valid) => { this.$refs[formName].validate((valid) => {
@ -235,93 +230,93 @@ export default {
if (res.code == 200) { if (res.code == 200) {
this.$message({ this.$message({
message: res.msg, message: res.msg,
type: "success", type: 'success'
}); })
this.dialogVisible = false; this.dialogVisible = false
// //
this.getList(); this.getList()
this.$refs[formName].resetFields(); this.$refs[formName].resetFields()
this.$refs[formName].clearValidate(); this.$refs[formName].clearValidate()
} }
}); })
} else { } else {
return false; return false
} }
}); })
}, },
reset() { reset() {
this.select = {}; this.select = {}
this.creationTime = []; this.creationTime = []
this.queryParams = { this.queryParams = {
pageNum: 1, pageNum: 1,
pageSize: 50, pageSize: 50
}; }
this.getList(); this.getList()
}, },
// //
handleDelete(code) { handleDelete(code) {
this.$confirm('确认删除?', '提示', { this.$confirm('确认删除?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: "warning", type: 'warning'
}).then(() => { }).then(() => {
api api
.delServiceNumber({ .delServiceNumber({
memberCode: code, memberCode: code
}) })
.then((res) => { .then((res) => {
this.$message({ this.$message({
message: res.msg, message: res.msg,
type: "success", type: 'success'
}); })
this.getList(); this.getList()
}); })
}); })
}, },
openDig() { openDig() {
this.form = {}; this.form = {}
this.dialogVisible = true; this.dialogVisible = true
this.dialogTitle = '添加'; this.dialogTitle = '添加'
}, },
getList() { getList() {
this.loading = true; this.loading = true
api api
.getServiceNumberList(Object.assign({}, this.queryParams, this.select)) .getServiceNumberList(Object.assign({}, this.queryParams, this.select))
.then((res) => { .then((res) => {
this.tableData = res.rows; this.tableData = res.rows
this.total = res.total; this.total = res.total
this.loading = false; this.loading = false
}); })
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
this.$confirm('是否确认导出所有数据项?', '警告', { this.$confirm('是否确认导出所有数据项?', '警告', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: "warning", type: 'warning'
}).then((_) => { }).then((_) => {
this.download( this.download(
"/member/manage/member-service-code/export", '/member/manage/member-service-code/export',
Object.assign({}, this.queryParams, this.select), Object.assign({}, this.queryParams, this.select),
`服务编号配置-${new Date().getTime()}.xlsx` `服务编号配置-${new Date().getTime()}.xlsx`
); )
}); })
}, },
handleClose() { handleClose() {
this.dialogVisible = false; this.dialogVisible = false
}, },
tableRowClassName({ row, rowIndex }) { tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) { if (rowIndex % 2 == 1) {
return "warning-row"; return 'warning-row'
} else if (rowIndex % 2 == 0) { } else if (rowIndex % 2 == 0) {
return "success-row"; return 'success-row'
}
return ''
}
}
} }
return "";
},
},
};
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
::v-deep .el-table .warning-row { ::v-deep .el-table .warning-row {
@ -455,4 +450,3 @@ export default {
margin-top: 0; margin-top: 0;
} }
</style> </style>

View File

@ -56,7 +56,7 @@
</div> </div>
<!-- 业绩数据卡片 (统一结构) --> <!-- 业绩数据卡片 (统一结构) -->
<div class="dashboard-card-group dashboard-card-group--performance-overview"> <div class="dashboard-card-group dashboard-card-group--performance-overview">
<div class="dashboard-card-title">金额汇总</div> <div class="dashboard-card-title">新增业绩</div>
<div class="performance-overview-container"> <div class="performance-overview-container">
<!-- 本月业绩 --> <!-- 本月业绩 -->
<div class="performance-section performance-section--month"> <div class="performance-section performance-section--month">
@ -629,7 +629,7 @@ export default {
/* 当月会员卡片 - 最高优先级 */ /* 当月会员卡片 - 最高优先级 */
.dashboard-card--month-member { .dashboard-card--month-member {
background: linear-gradient(135deg, #f6d365 0%, #fda085 100%); /* 恢复原有的橙色渐变,更醒目 */ background: linear-gradient(135deg, #f6d365 0%, #fda085 100%); /* 恢复原有的橙色渐变,更醒目 */
order: 1; /* 通过flex order调整顺序如果父级是flex */ order: 3; /* 通过flex order调整顺序如果父级是flex */
/* 或者通过更强的视觉样式,如边框、阴影 */ /* 或者通过更强的视觉样式,如边框、阴影 */
box-shadow: 0 6px 15px 0 rgba(253,160,133,0.3); box-shadow: 0 6px 15px 0 rgba(253,160,133,0.3);
transform: scale(1.02); /* 轻微放大 */ transform: scale(1.02); /* 轻微放大 */
@ -670,7 +670,7 @@ export default {
/* 今日会员卡片 - 普通优先级 */ /* 今日会员卡片 - 普通优先级 */
.dashboard-card--today-member { .dashboard-card--today-member {
background: linear-gradient(135deg, #c3dae6 0%, #a4c1d2 100%); /* 柔和的灰蓝色 */ background: linear-gradient(135deg, #c3dae6 0%, #a4c1d2 100%); /* 柔和的灰蓝色 */
order: 3; order: 1;
box-shadow: 0 2px 8px 0 rgba(164,193,210,0.2); box-shadow: 0 2px 8px 0 rgba(164,193,210,0.2);
} }
.dashboard-card--today-member .dashboard-card-label { .dashboard-card--today-member .dashboard-card-label {
@ -780,7 +780,7 @@ export default {
/* 本月业绩区块 - 最高优先级 */ /* 本月业绩区块 - 最高优先级 */
.performance-section--month { .performance-section--month {
order: 1; /* 在 performance-overview-container 内的顺序 */ order: 3; /* 在 performance-overview-container 内的顺序 */
background: linear-gradient(135deg, #f3f9e6 0%, #e4f5d8 100%); /* 非常淡雅的绿色渐变 */ background: linear-gradient(135deg, #f3f9e6 0%, #e4f5d8 100%); /* 非常淡雅的绿色渐变 */
border-color: #a3d9a5; /* 边框颜色与渐变协调 */ border-color: #a3d9a5; /* 边框颜色与渐变协调 */
box-shadow: 0 6px 15px rgba(163, 217, 165, 0.3); box-shadow: 0 6px 15px rgba(163, 217, 165, 0.3);
@ -844,7 +844,7 @@ export default {
/* 今日业绩区块 - 普通优先级 */ /* 今日业绩区块 - 普通优先级 */
.performance-section--today { .performance-section--today {
order: 3; order: 1;
background: linear-gradient(135deg, #e3f2fd 0%, #d0e7fa 100%); /* 非常淡雅的蓝色渐变 */ background: linear-gradient(135deg, #e3f2fd 0%, #d0e7fa 100%); /* 非常淡雅的蓝色渐变 */
border-color: #90caf9; /* 边框颜色 */ border-color: #90caf9; /* 边框颜色 */
box-shadow: 0 3px 10px rgba(144, 202, 249, 0.2); box-shadow: 0 3px 10px rgba(144, 202, 249, 0.2);
@ -987,7 +987,7 @@ export default {
/* 本月充值区块 - 最高优先级 */ /* 本月充值区块 - 最高优先级 */
.recharge-section--month { .recharge-section--month {
order: 1; /* 在 recharge-summary-container 内的顺序 */ order: 3; /* 在 recharge-summary-container 内的顺序 */
background: linear-gradient(135deg, #f6eafd 0%, #e9dffc 100%); /* 更淡雅的紫色渐变 */ background: linear-gradient(135deg, #f6eafd 0%, #e9dffc 100%); /* 更淡雅的紫色渐变 */
border-color: #d1bcf3; border-color: #d1bcf3;
box-shadow: 0 6px 18px rgba(209, 188, 243, 0.35); box-shadow: 0 6px 18px rgba(209, 188, 243, 0.35);
@ -1037,7 +1037,7 @@ export default {
/* 今日充值区块 - 普通优先级 */ /* 今日充值区块 - 普通优先级 */
.recharge-section--today { .recharge-section--today {
order: 3; order: 1;
background: linear-gradient(135deg, #e6f4e7 0%, #d8ebd9 100%); /* 非常淡的灰绿色 */ background: linear-gradient(135deg, #e6f4e7 0%, #d8ebd9 100%); /* 非常淡的灰绿色 */
border-color: #b2dfdb; border-color: #b2dfdb;
box-shadow: 0 3px 12px rgba(178, 223, 219, 0.25); box-shadow: 0 3px 12px rgba(178, 223, 219, 0.25);

View File

@ -438,7 +438,7 @@ export default {
getLabel() { getLabel() {
return function (type) { return function (type) {
if (type == "1") { if (type == "1") {
return "顶点编号"; return "系统编号";
} else if (type == "2") { } else if (type == "2") {
return "体系编号"; return "体系编号";
} else if (type == "3") { } else if (type == "3") {

View File

@ -250,7 +250,7 @@ import {
getMemberSettlePeriod, getMemberSettlePeriod,
getUrlBase getUrlBase
} from '@/api/archityecture' } from '@/api/archityecture'
import TopMemberSelect from './components/top-member-select.vue' import TopMemberSelect from '@/components/top-member-select/index.vue'
import { isLocals } from '../../../utils/numberToCurrency' import { isLocals } from '../../../utils/numberToCurrency'
export default { export default {
name: 'Azjg2', name: 'Azjg2',

View File

@ -244,7 +244,7 @@ import {
getUrlBase getUrlBase
} from '@/api/archityecture' } from '@/api/archityecture'
import { isLocals } from '../../../utils/numberToCurrency' import { isLocals } from '../../../utils/numberToCurrency'
import TopMemberSelect from './components/top-member-select.vue' import TopMemberSelect from '@/components/top-member-select/index.vue'
export default { export default {
name: 'Azjg3', name: 'Azjg3',
components: { components: {

View File

@ -232,7 +232,7 @@ import {
getUrlBase getUrlBase
} from '@/api/archityecture' } from '@/api/archityecture'
import { isLocals } from '../../../utils/numberToCurrency' import { isLocals } from '../../../utils/numberToCurrency'
import TopMemberSelect from './components/top-member-select.vue' import TopMemberSelect from '@/components/top-member-select/index.vue'
export default { export default {
name: 'Azjg4', name: 'Azjg4',
components: { components: {

View File

@ -50,12 +50,12 @@
</el-row></el-form> </el-row></el-form>
</div> </div>
<div class="theorgtree"> <div class="theorgtree">
<!-- <div class="lefttop"> <div class="lefttop">
<div class="single" v-for="(item, index) in avaerInfoList" :key="index"> <div v-for="(item, index) in rangeList" :key="index" class="single">
<img :src="item.value" alt="" /> <div class="colorbox" :style="{background: item.color}" />
<div class="singletitle">{{ item.name }}</div> <div class="singletitle">{{ item.gradeName }}</div>
</div>
</div> </div>
</div> -->
<div class="tree"> <div class="tree">
<div class="tree-content" @mousedown.stop="move" @wheel="handleWheel"> <div class="tree-content" @mousedown.stop="move" @wheel="handleWheel">
<div :style="{ transform: `scale(${scale})` }"> <div :style="{ transform: `scale(${scale})` }">
@ -74,159 +74,6 @@
</div> </div>
</div> </div>
</div> </div>
<el-dialog
:visible.sync="ifShow"
:close-on-click-modal="false"
width="516px"
>
<div class="rendercontent">
<div ref="htmlContent">
<div class="toprender">
<div class="leftimg">
<img
class="img1"
:src="'data:image/png;base64,' + treeData.avatarUrlBase64"
>
<img
class="img2"
:src="'data:image/png;base64,' + treeData.countryUrl2Base64"
>
</div>
<div class="centerbox">
<div class="lineboex">
<div class="linetitle">{{ '会员编号' }}</div>
<div class="linecontent">{{ treeData.memberCode }}</div>
</div>
<div class="lineboex">
<div class="linetitle">{{ '会员姓名' }}</div>
<div class="linecontent">{{ treeData.name }}</div>
</div>
<div class="lineboex">
<div class="linetitle">安置部门</div>
<div class="linecontent">{{ `${treeData.placeDept}部门` }}</div>
</div>
<div class="lineboex">
<div class="linetitle">{{ '支付日期' }}</div>
<div class="linecontent">{{ treeData.payDate }}</div>
</div>
</div>
<div class="rightimg">
<img
:src="
'data:image/png;base64,' + treeData.settleCountryUrl2Base64
"
>
<div>{{ '结算国家' }}</div>
</div>
</div>
<div class="bottomrender">
<div class="flexbox">
<div class="thetitle">{{ '业绩' }}({{ isLocals() }})</div>
<div class="linecontent">{{ '真实新增' }}</div>
<div class="linecontent">首购新增</div>
<div class="linecontent">复购新增</div>
<div class="linecontent">真实累计</div>
<div class="linecontent">首购累计</div>
<div class="linecontent">复购累计</div>
<div class="linecontent">首购结余</div>
<div class="linecontent">复购结余</div>
<!-- <div class="linecontent">新増套数</div>
<div class="linecontent">累计套数</div> -->
</div>
<div class="flexbox">
<div class="thetitle">左区</div>
<div class="linecontent">{{ treeData.leftRealNewPv }}</div>
<div class="linecontent">{{ treeData.leftFirstPurchaseAdd }}</div>
<div class="linecontent">
{{ treeData.leftRepeatPurchaseAdd }}
</div>
<div class="linecontent">{{ treeData.leftRealTotal }}</div>
<div class="linecontent">{{ treeData.leftFirstTotal }}</div>
<div class="linecontent">
{{ treeData.leftRepeatPurchaseTotal }}
</div>
<div class="linecontent">{{ treeData.leftFirstSurplus }}</div>
<div class="linecontent">
{{ treeData.leftRepeatPurchaseSurplus }}
</div>
<!-- <div class="linecontent">{{ treeData.aNewBox || 0 }}</div>
<div class="linecontent">{{ treeData.aSumBox || 0 }}</div> -->
</div>
<div class="flexbox">
<div class="thetitle">右区</div>
<div class="linecontent">{{ treeData.rightRealNewPv }}</div>
<div class="linecontent">
{{ treeData.rightFirstPurchaseAdd }}
</div>
<div class="linecontent">
{{ treeData.rightRepeatPurchaseAdd }}
</div>
<div class="linecontent">{{ treeData.rightRealTotal }}</div>
<div class="linecontent">{{ treeData.rightFirstTotal }}</div>
<div class="linecontent">
{{ treeData.rightRepeatPurchaseTotal }}
</div>
<div class="linecontent">{{ treeData.rightFirstSurplus }}</div>
<div class="linecontent">
{{ treeData.rightRepeatPurchaseSurplus }}
</div>
<!-- <div class="linecontent">{{ treeData.bNewBox || 0 }}</div>
<div class="linecontent">{{ treeData.bSumBox || 0 }}</div> -->
</div>
</div>
</div>
<div class="footerbox">
<div class="footerbtn btn1" @click="downloadImage">下载图片</div>
<div class="footerbtn btn2" @click="copyText">复制文字</div>
<!-- <div class="footerbtn btn3" @click="goTop(treeData)">置顶</div> -->
</div>
</div>
</el-dialog>
<div v-show="false" ref="copyContent" class="copyContent">
<div>{{ '会员编号' }}{{ treeData.memberCode }}</div>
<div>{{ '会员姓名' }}{{ treeData.name }}</div>
<div>{{ '支付日期' }}{{ treeData.payDate }}</div>
<div>{{ '业绩' }}({{ isLocals() }})&nbsp;&nbsp;左区&nbsp;&nbsp;右区</div>
<div>
真实新增&nbsp;&nbsp;{{ treeData.leftRealNewPv }}&nbsp;&nbsp;{{
treeData.rightRealNewPv
}}
</div>
<div>
首购新增&nbsp;&nbsp;{{ treeData.leftFirstPurchaseAdd }}&nbsp;&nbsp;{{
treeData.rightFirstPurchaseAdd
}}
</div>
<div>
复购新增{{ treeData.leftRepeatPurchaseAdd }}&nbsp;&nbsp;
{{ treeData.rightRepeatPurchaseAdd }}
</div>
<div>
真实累计{{ treeData.leftRealTotal }}&nbsp;&nbsp;{{
treeData.rightRealTotal
}}
</div>
<div>
首购累计{{ treeData.leftFirstTotal }}&nbsp;&nbsp;{{
treeData.rightFirstTotal
}}
</div>
<div>
复购累计 {{ treeData.leftRepeatPurchaseTotal }}&nbsp;&nbsp;{{
treeData.rightRepeatPurchaseTotal
}}
</div>
<div>
首购结余{{ treeData.leftFirstSurplus }}&nbsp;&nbsp;{{
treeData.rightFirstSurplus
}}
</div>
<div>
复购结余 {{ treeData.leftRepeatPurchaseSurplus }}&nbsp;&nbsp;{{
treeData.rightRepeatPurchaseSurplus
}}
</div>
</div>
</div> </div>
</template> </template>
@ -240,38 +87,20 @@ import {
getUrlBase getUrlBase
} from '@/api/archityecture' } from '@/api/archityecture'
import { isLocals } from '../../../utils/numberToCurrency' import { isLocals } from '../../../utils/numberToCurrency'
import TopMemberSelect from './components/top-member-select.vue' import TopMemberSelect from '@/components/top-member-select/index.vue'
import tabBarMixin from './mixins/tab-bar'
import { getgradeRanglist } from '@/api/level'
export default { export default {
name: 'Azjg5', name: 'Azjg5',
components: { components: {
topBar, topBar,
TopMemberSelect TopMemberSelect
}, },
mixins: [tabBarMixin],
data() { data() {
return { return {
moren: 'azjg5', moren: 'azjg5',
topList: [
{
name: '方案一',
path: 'azjg'
},
{
name: '方案二',
path: 'azjg2'
},
{
name: '方案三',
path: 'azjg3'
},
{
name: '方案四',
path: 'azjg4'
},
{
name: '方案五',
path: 'azjg5'
}
],
queryParams: { queryParams: {
memberSettlePeriodId: '', // memberSettlePeriodId: '', //
memberCode: '', // memberCode: '', //
@ -283,7 +112,7 @@ export default {
treeData: {}, treeData: {},
ifShow: false, ifShow: false,
memberSettlePeriodList: [], // memberSettlePeriodList: [], //
rangeList: [], //
cantz: 1, // 0,1 cantz: 1, // 0,1
scale: 1, scale: 1,
loading: false loading: false
@ -291,9 +120,19 @@ export default {
}, },
created() { created() {
// this.getSearch() // this.getSearch()
this.getRangeList()
this.getAvarerInfo() this.getAvarerInfo()
}, },
methods: { methods: {
getBorderColor(grade) {
const color = this.rangeList.find((item) => item.gradeName === grade)?.color
return color || '#e0e0e0'
},
getRangeList() {
getgradeRanglist().then((res) => {
this.rangeList = res.data || []
})
},
TopMemberHandleChange(val) { TopMemberHandleChange(val) {
if (val) { if (val) {
this.queryParams.memberCode = val this.queryParams.memberCode = val
@ -309,31 +148,6 @@ export default {
} }
}, },
isLocals, isLocals,
copyText() {
const copyContent = this.$refs.copyContent
const textLines = Array.from(copyContent.querySelectorAll('div')).map(
(div) => div.textContent.trim()
)
const text = textLines.join('\n')
const tempInput = document.createElement('textarea')
tempInput.value = text
document.body.appendChild(tempInput)
tempInput.select()
try {
document.execCommand('copy')
this.$message({
message: '复制成功',
type: 'success'
})
} catch (error) {
this.$message({
message: '复制失败',
type: 'warning'
})
}
tempInput.remove()
window.getSelection().removeAllRanges()
},
// //
goback() { goback() {
this.queryParams.memberCode = this.data.parentMemberCode this.queryParams.memberCode = this.data.parentMemberCode
@ -417,57 +231,41 @@ export default {
onMouseout(e, data) { onMouseout(e, data) {
this.basicSwitch = false this.basicSwitch = false
}, },
// <div class="xrBox">
// <div class="neibox" on-click={() => this.showPover(data)}>
// <div class="topbox">
// <img src={data.avatarUrl}></img>
// </div>
// <div class="centerbox">
// <div class="cflexbox">
// <img src={data.countryUrl}></img>
// <div class="matitle">{data.memberCode}</div>
// </div>
// <div class="cflexbox">
// <img src={data.settleCountryUrl}></img>
// <div class="matitle">{data.name}</div>
// </div>
// </div>
// <div class="footerbox">
// {/* */}
// <div class="ftopbtn" on-click={() => {event.stopPropagation(),this.goTop(data)}}></div>
// </div>
// </div>
// </div>
// //
renderContent(h, data) { renderContent(h, data) {
if (!data || Object.keys(data).length === 0) { if (!data || Object.keys(data).length === 0) {
return return
} }
//
const borderColor = this.getBorderColor(data.gradeName)
// rgba0.25boxShadowshadowColor
return ( return (
<div class='xrBox'> <div
class='xrBox'
style={{
border: `4px solid ${borderColor}`,
borderRadius: '12px',
boxShadow: `0 4px 18px 0 ${borderColor}40, 0 0 0 4px #fff`, //
padding: '0',
background: '#fff',
transition: 'box-shadow 0.3s, border-color 0.3s'
}}
>
{/* 判断data.codeName是否为空 */} {/* 判断data.codeName是否为空 */}
<div class='neibox'> <div class='neibox'>
{data.memberCode ? ( {data.memberCode ? (
<div > <div
on-contextmenu={() => this.rightClick(this.$event, data)}
>
<div class='topbox'> <div class='topbox'>
<div>{data.name}</div> <div>{data.name}</div>
<div>{data.memberCode}</div> <div>{data.memberCode}</div>
<div>{data.awardsName}</div>
<div>{data.placeDept}部门</div> <div>{data.placeDept}部门</div>
{/* <div>{data.name}</div> {/* <div>{data.name}</div>
<div>会员编号{data.memberCode}</div> */} <div>会员编号{data.memberCode}</div> */}
</div> </div>
<div class='footerbox'>
{/* 阻止冒泡事件 */}
<div
class='ftopbtn'
style={{ backgroundColor: data.color }}
on-click={() => {
event.stopPropagation(), this.goTop(data)
}}
>
{'置顶'}
</div>
</div>
</div> </div>
) : null} ) : null}
</div> </div>
@ -479,20 +277,12 @@ export default {
this.queryParams.memberCode = row.memberCode this.queryParams.memberCode = row.memberCode
this.getSearch() this.getSearch()
}, },
showPover(row) { rightClick(e, data) {
getUrlBase({ event.preventDefault()
countryUrl2: row.countryUrl2, this.queryParams.memberCode = data.memberCode
settleCountryUrl2: row.settleCountryUrl2, this.getSearch()
avatarUrl: row.avatarUrl
}).then((res) => {
this.treeData = row
this.treeData.countryUrl2Base64 = res.countryUrl2Base64
this.treeData.settleCountryUrl2Base64 = res.settleCountryUrl2Base64
this.treeData.avatarUrlBase64 = res.avatarUrlBase64
this.ifShow = true
})
}, },
// //
NodeClick(e, data) {}, NodeClick(e, data) {},
// //
@ -661,24 +451,30 @@ export default {
} }
.lefttop { .lefttop {
display: flex; display: flex;
justify-items: center;
align-items: center; align-items: center;
padding-left: 20px; padding: 10px 0 10px 20px;
background: #ffffff; background: #fff;
border-radius: 8px;
margin-bottom: 10px;
}
.single { .single {
margin: 0 5px; display: flex;
img { flex-direction: column;
width: 40px; align-items: center;
height: 40px; margin-right: 16px;
border-radius: 50%; }
// box-shadow: 0px 2px 20px 0px rgba(204, 204, 204, 0.5); .colorbox {
width: 24px;
height: 24px;
border-radius: 6px;
border: 1px solid #e0e0e0;
box-shadow: 0 2px 6px rgba(0,0,0,0.06);
margin-bottom: 4px;
} }
.singletitle { .singletitle {
text-align: center; font-size: 12px;
font-size: 10px; color: #333;
font-family: PingFang SC-Regular, PingFang SC; margin-top: 2px;
}
}
} }
::v-deep .org-tree-node-label .org-tree-node-label-inner { ::v-deep .org-tree-node-label .org-tree-node-label-inner {
padding: 0; padding: 0;

View File

@ -255,39 +255,19 @@ import {
getMemberSettlePeriod, getMemberSettlePeriod,
getUrlBase getUrlBase
} from '@/api/archityecture' } from '@/api/archityecture'
import TopMemberSelect from './components/top-member-select.vue' import TopMemberSelect from '@/components/top-member-select/index.vue'
import { isLocals } from '../../../utils/numberToCurrency' import { isLocals } from '../../../utils/numberToCurrency'
import tabBarMixin from './mixins/tab-bar'
export default { export default {
name: 'Azjg', name: 'Azjg',
components: { components: {
topBar, topBar,
TopMemberSelect TopMemberSelect
}, },
mixins: [tabBarMixin],
data() { data() {
return { return {
moren: 'azjg', moren: 'azjg',
topList: [
{
name: '方案一',
path: 'azjg'
},
{
name: '方案二',
path: 'azjg2'
},
{
name: '方案三',
path: 'azjg3'
},
{
name: '方案四',
path: 'azjg4'
},
{
name: '方案五',
path: 'azjg5'
}
],
queryParams: { queryParams: {
memberSettlePeriodId: '', // memberSettlePeriodId: '', //
memberCode: '', // memberCode: '', //

View File

@ -0,0 +1,16 @@
export default {
data() {
return {
topList: [
{
name: '方案一',
path: 'azjg'
},
{
name: '方案五',
path: 'azjg5'
}
]
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -289,7 +289,7 @@
</el-table-column> --> </el-table-column> -->
<el-table-column align="center" prop="cover" :label="'商品主图'"> <el-table-column align="center" prop="cover" :label="'商品主图'">
<template slot-scope="scope"> <template slot-scope="scope">
<img class="bgImg" :src="scope.row.cover" alt=""> <img class="bgImg" :src="scope.row.cover || scope.row.cover1" alt="">
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -316,7 +316,6 @@
/> />
<el-table-column align="center" prop="tempName" label="支付比例" /> <el-table-column align="center" prop="tempName" label="支付比例" />
<el-table-column <el-table-column
align="center" align="center"
prop="productName" prop="productName"

View File

@ -359,7 +359,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col v-show="form.specialArea == 3" :span="8"> <!-- <el-col v-show="form.specialArea == 3" :span="8">
<el-form-item label="发起人收益"> <el-form-item label="发起人收益">
<el-input <el-input
v-model="form.makerIncome" v-model="form.makerIncome"
@ -367,7 +367,7 @@
:placeholder="'请输入'" :placeholder="'请输入'"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col> -->
<el-col :span="24"> <el-col :span="24">
<el-form-item :label="'保证标签'"> <el-form-item :label="'保证标签'">
<el-checkbox-group v-model="form.pkGuaranteeLabel"> <el-checkbox-group v-model="form.pkGuaranteeLabel">
@ -538,20 +538,15 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <!-- <el-col :span="8">
<el-form-item <el-form-item
:label="'视频封面'" :label="'视频封面'"
prop="cover" prop="cover"
> >
<!-- <el-input clearable v-model="form.name"
:placeholder="'请输入'"></el-input> -->
<!-- <UpDataImg :maxLength="1"
ref="upImg"
@getImg="getImg2"
@delImg="delImg2"></UpDataImg> -->
<imageUpload v-model="form.cover" /> <imageUpload v-model="form.cover" />
</el-form-item> </el-form-item>
</el-col> </el-col> -->
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
@ -1139,22 +1134,22 @@ export default {
isFreeMail: [ isFreeMail: [
{ required: true, message: '请选择包邮类型', trigger: 'change' } { required: true, message: '请选择包邮类型', trigger: 'change' }
], ],
videoUrl: [ // videoUrl: [
{ required: true, message: '请上传商品视频', trigger: 'blur' } // { required: true, message: '', trigger: 'blur' }
], // ],
cover: [{ required: true, message: '请上传视频主图', trigger: 'blur' }], // cover: [{ required: true, message: '', trigger: 'blur' }],
cover1: [ cover1: [
{ required: true, message: '请上传图片', trigger: 'blur' } { required: true, message: '请上传图片', trigger: 'blur' }
], ],
cover2: [ // cover2: [
{ required: true, message: '请上传图片', trigger: 'blur' } // { required: true, message: '', trigger: 'blur' }
], // ],
cover3: [ // cover3: [
{ required: true, message: '请上传图片', trigger: 'blur' } // { required: true, message: '', trigger: 'blur' }
], // ],
cover4: [ // cover4: [
{ required: true, message: '请上传图片', trigger: 'blur' } // { required: true, message: '', trigger: 'blur' }
], // ],
details: [ details: [
{ required: true, message: '请输入商品详情', trigger: 'blur' } { required: true, message: '请输入商品详情', trigger: 'blur' }
], ],
@ -1295,6 +1290,7 @@ export default {
background: 'rgba(0, 0, 0, 0.7)' background: 'rgba(0, 0, 0, 0.7)'
}) })
this.$store.commit('settings/GGMX_SETTING', []) this.$store.commit('settings/GGMX_SETTING', [])
this.form.cover = this.form.cover1
api.waresSave(this.form).then((res) => { api.waresSave(this.form).then((res) => {
loading.close() loading.close()
if (res.code == 200) { if (res.code == 200) {

View File

@ -549,12 +549,6 @@
:label="'会员姓名'" :label="'会员姓名'"
width="180" width="180"
/> />
<el-table-column
v-if="allTxt.nickName"
align="center"
prop="nickName"
label="会员昵称"
/>
<el-table-column <el-table-column
v-if="allTxt.phone" v-if="allTxt.phone"
align="center" align="center"

View File

@ -301,7 +301,7 @@
<el-table-column <el-table-column
align="center" align="center"
prop="orderCode" prop="orderCode"
width="130" min-width="170"
:label="'订单编号'" :label="'订单编号'"
/> />
<el-table-column <el-table-column

View File

@ -1451,6 +1451,13 @@ export default {
}) })
return false return false
} else { } else {
if (!this.selectData.selSkuNameList || !this.selectData.selSkuList) {
this.$message({
message: '请产品选择规格',
type: 'warning'
})
return false
}
const obj = { const obj = {
pkProduct: this.selectData.pkId, pkProduct: this.selectData.pkId,
productCode: this.selectData.productCode, productCode: this.selectData.productCode,

View File

@ -1,9 +1,3 @@
<!--
* @Descripttion:
* @version:
* @Author: kBank
* @Date: 2022-10-24 15:45:01
-->
<template> <template>
<div class="page"> <div class="page">
<topBar <topBar
@ -52,35 +46,37 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item label="真实奖衔"> <el-form-item label="荣誉奖衔">
<el-input <el-select
v-model="select.pkAwards" v-model="select.pkAwards"
clearable clearable
:placeholder="'请选择'"
>
<el-option
v-for="item in awardsList"
:key="item.pkId"
:label="item.awardsName"
:value="item.pkId"
/> />
</el-form-item> </el-select>
</el-col>
<el-col :span="4">
<el-form-item label="结算国家">
<el-input
v-model="select.pkSettleCountry"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="自然国家">
<el-input
v-model="select.pkCountry"
clearable
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item label="是否结算"> <el-form-item label="是否结算">
<el-input <el-select
v-model="select.settlementFlag" v-model="select.settlementFlag"
clearable clearable
placeholder="请选择"
>
<el-option
label="是"
:value="0"
/> />
<el-option
label="否"
:value="1"
/>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- <el-col :span="4"> <!-- <el-col :span="4">
@ -146,6 +142,7 @@
align="center" align="center"
prop="memberCode" prop="memberCode"
label="会员编号" label="会员编号"
min-width="110"
/> />
<el-table-column <el-table-column
align="center" align="center"
@ -156,16 +153,19 @@
align="center" align="center"
prop="phone" prop="phone"
label="联系方式" label="联系方式"
min-width="130"
/> />
<el-table-column <el-table-column
align="center" align="center"
prop="parentCode" prop="parentCode"
label="推荐编号" label="推荐编号"
min-width="110"
/> />
<el-table-column <el-table-column
align="center" align="center"
prop="placeParentCode" prop="placeParentCode"
label="安置编号" label="安置编号"
min-width="110"
/> />
<el-table-column <el-table-column
align="center" align="center"
@ -188,20 +188,11 @@
prop="orderSourceVal" prop="orderSourceVal"
label="注册类型" label="注册类型"
/> />
<el-table-column
align="center"
prop="settleCountryName"
label="结算国家"
/>
<el-table-column
align="center"
prop="countryName"
label="自然国家"
/>
<el-table-column <el-table-column
align="center" align="center"
prop="pkAwardKeyVal" prop="pkAwardKeyVal"
label="真实奖衔" label="荣誉奖衔"
/> />
<el-table-column <el-table-column
align="center" align="center"
@ -228,20 +219,54 @@
<el-table-column <el-table-column
align="center" align="center"
prop="creationTime" prop="creationTime"
label="注册日期"
min-width="160"
/>
<el-table-column
align="center"
label="选购产品" label="选购产品"
min-width="200" min-width="200"
show-overflow-tooltip >
/> <template slot-scope="scope">
<div v-for="(item,idx) in scope.row.detailList || []" :key="idx">
<el-tooltip :content="item.productName" placement="top" :disabled="!item.productName || item.productName.length < 15">
<div style="overflow: hidden; text-overflow: ellipsis; white-space: nowrap;">
{{ item.productName }}
</div>
</el-tooltip>
</div>
</template>
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="creationTime"
label="产品规格" label="产品规格"
/> min-width="180"
>
<template slot-scope="scope">
<div v-for="(item,idx) in scope.row.detailList || []" :key="idx">
<el-tooltip :content="item.specsName" placement="top" :disabled="!item.specsName || item.specsName.length < 10">
<div style="overflow: hidden; text-overflow: ellipsis; white-space: nowrap;">
{{ item.specsName }}
</div>
</el-tooltip>
</div>
</template>
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="creationTime"
label="产品数量" label="产品数量"
/> min-width="180"
>
<template slot-scope="scope">
<div v-for="(item,idx) in scope.row.detailList || []" :key="idx">
<el-tooltip :content="String(item.quantity)" placement="top" :disabled="String(item.quantity).length < 5">
<div style="overflow: hidden; text-overflow: ellipsis; white-space: nowrap;">
{{ item.quantity }}
</div>
</el-tooltip>
</div>
</template>
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="recName" prop="recName"
@ -306,6 +331,9 @@
<script> <script>
import topBar from '@/components/topBar' import topBar from '@/components/topBar'
import * as api from '@/api/specialBusiness.js' import * as api from '@/api/specialBusiness.js'
import {
getAwardsListChiose
} from '@/api/level'
export default { export default {
name: 'Bzpz', name: 'Bzpz',
components: { components: {
@ -339,19 +367,30 @@ export default {
name: '注册列表', name: '注册列表',
path: 'rigiestList' path: 'rigiestList'
} }
] ],
awardsList: []
} }
}, },
mounted() { mounted() {
//
this.getDataList() this.getDataList()
this.getAwardsListOpts()
}, },
methods: { methods: {
getAwardsListOpts() {
getAwardsListChiose().then((res) => {
this.awardsList = res.rows
})
},
handleChange1() {}, handleChange1() {},
reset() { reset() {
this.select = {} this.select = {}
this.creationTime = [] this.creationTime = []
this.creationTime1 = [] this.creationTime1 = []
this.queryParams = {
pageNum: 1,
pageSize: 50
}
this.getDataList()
}, },
changeTime(val) { changeTime(val) {
this.select.startDate = val ? val[0] : '' this.select.startDate = val ? val[0] : ''
@ -435,9 +474,9 @@ export default {
}) })
}, },
tableRowClassName({ row, rowIndex }) { tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) { if (rowIndex % 2 === 1) {
return 'warning-row' return 'warning-row'
} else if (rowIndex % 2 == 0) { } else if (rowIndex % 2 === 0) {
return 'success-row' return 'success-row'
} }
return '' return ''

File diff suppressed because it is too large Load Diff

View File

@ -411,6 +411,7 @@ import * as apis from '@/api/product.js'
import * as api_s from '@/api/financial.js' import * as api_s from '@/api/financial.js'
import topBar from '@/components/topBar' import topBar from '@/components/topBar'
import { pickDetail } from '@/api/manage' import { pickDetail } from '@/api/manage'
import * as man from '@/api/manage'
export default { export default {
components: { components: {
topBar topBar
@ -663,11 +664,21 @@ export default {
type: 'warning' type: 'warning'
}) })
} else { } else {
this.$router.push({ const params = {
path: 'rechargeQc', detailList: dataList,
query: { signType: 0, //
data: JSON.stringify(dataList), remark: '', //
approvalBusiness: 700 fileList: [], // []
userIdList: [], // []
sendIdList: [] // []
}
man.rechargeConfirm(params).then((res) => {
if (res.code === 200) {
this.$message({
message: res.msg,
type: 'success'
})
this.$router.go(-1)
} }
}) })
} }
@ -685,14 +696,26 @@ export default {
} }
) )
}) })
this.$router.push({ const params = {
path: 'rechargeQc', detailList: dataList
query: { }
data: JSON.stringify(dataList), man.rechargeDel(params).then((res) => {
approvalBusiness: 701, if (res.code === 200) {
type: this.deled this.$message({
message: res.msg,
type: 'success'
})
this.$router.go(-1)
} }
}) })
// this.$router.push({
// path: 'rechargeQc',
// query: {
// data: JSON.stringify(dataList),
// approvalBusiness: 701,
// type: this.deled
// }
// })
}, },
getPage(allData) { getPage(allData) {
this.allData = allData this.allData = allData

View File

@ -224,15 +224,6 @@
:label="'服务收益' + '($)'" :label="'服务收益' + '($)'"
:formatter="stateFormat" :formatter="stateFormat"
/> --> /> -->
<el-table-column
v-if="allTxt.cloudPurIncomeOri"
align="center"
prop="cloudPurIncomeOri"
width="130"
:label="$t('极差收益') + `(${isLocalSymbol()})`"
:formatter="stateFormat"
/>
<!-- <el-table-column <!-- <el-table-column
v-if="allTxt.cloudPurIncome" v-if="allTxt.cloudPurIncome"
align="center" align="center"

View File

@ -198,7 +198,7 @@ export default {
], ],
menuList: [ menuList: [
{ {
text: "顶点编号", text: "系统编号",
prop: "memberCode", prop: "memberCode",
}, },
{ {

View File

@ -87,38 +87,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4">
<el-form-item :label="'来源国家'">
<el-select
v-model="select.sourceCountry"
clearable
placeholder=""
>
<el-option
v-for="item in countryList"
:key="item.value"
:label="item.name"
:value="item.pkId"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="'结算国家'">
<el-select
v-model="select.settleCountry"
clearable
placeholder=""
>
<el-option
v-for="item in countryList"
:key="item.value"
:label="item.name"
:value="item.pkId"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'隶属体系'"> <el-form-item :label="'隶属体系'">
<el-select v-model="select.pkVertex" clearable placeholder=""> <el-select v-model="select.pkVertex" clearable placeholder="">
@ -131,23 +100,6 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4">
<el-form-item :label="'隶属团队'">
<el-select
v-model="select.pkTeamCode"
clearable
placeholder=""
>
<el-option
v-for="item in memberList"
:key="item.value"
:label="item.teamName"
:value="item.pkId"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'结算期数'"> <el-form-item :label="'结算期数'">
<div style="display: flex"> <div style="display: flex">
@ -261,13 +213,7 @@
width="130" width="130"
:label="'订单类型'" :label="'订单类型'"
/> />
<el-table-column
v-if="dataRole.includes('sourceCountryName')"
align="center"
prop="sourceCountryName"
width="130"
:label="'来源国家'"
/>
<el-table-column <el-table-column
v-if="dataRole.includes('sourceMemberCode')" v-if="dataRole.includes('sourceMemberCode')"
align="center" align="center"
@ -314,13 +260,7 @@
:label="'来源业绩' + '($)'" :label="'来源业绩' + '($)'"
:formatter="stateFormat" :formatter="stateFormat"
/> --> /> -->
<el-table-column
v-if="dataRole.includes('settleCountry')"
align="center"
prop="settleCountry"
width="130"
:label="'结算国家'"
/>
<el-table-column <el-table-column
v-if="dataRole.includes('memberCode')" v-if="dataRole.includes('memberCode')"
align="center" align="center"
@ -347,7 +287,7 @@
align="center" align="center"
prop="pkAwardsVal" prop="pkAwardsVal"
width="130" width="130"
:label="'真实奖衔'" :label="'荣誉奖衔'"
/> />
<!-- <el-table-column--> <!-- <el-table-column-->
<!-- v-for="item in menuList"--> <!-- v-for="item in menuList"-->
@ -433,13 +373,27 @@
:formatter="stateFormat" :formatter="stateFormat"
/> />
<el-table-column <el-table-column
v-if="dataRole.includes('pretaxIncomeOri')"
align="center" align="center"
prop="pretaxIncomeOri" prop="pretaxIncomeOri"
width="130" width="130"
:label="'税前收益' + `(${isLocalSymbol()})`" :label="'税前收益' + `(${isLocalSymbol()})`"
:formatter="stateFormat" :formatter="stateFormat"
/> />
<el-table-column
v-if="dataRole.includes('pretaxIncomeOri')"
align="center"
prop="backPoints"
width="130"
:label="'重消收益 ' + `(${isLocalSymbol()})`"
:formatter="stateFormat"
/>
<el-table-column
align="center"
prop="serviceSpend"
width="130"
:label="'平台服务费' + `(${isLocalSymbol()})`"
:formatter="stateFormat"
/>
<el-table-column <el-table-column
v-if="dataRole.includes('realIncomeOri')" v-if="dataRole.includes('realIncomeOri')"
align="center" align="center"
@ -574,7 +528,6 @@ import topBar from '@/components/topBar'
import * as api from '@/api/settle.js' import * as api from '@/api/settle.js'
import { classifyUpdate, classifySave } from '@/api/product' import { classifyUpdate, classifySave } from '@/api/product'
import * as log from '@/api/logistics' import * as log from '@/api/logistics'
import { getcountryAllList } from '@/api/exchangerate'
import { bonusSource, exportBonusSouce } from '@/api/bonus' import { bonusSource, exportBonusSouce } from '@/api/bonus'
import { isLocals, isLocalSymbol, stateFormat } from '@/utils/numberToCurrency' import { isLocals, isLocalSymbol, stateFormat } from '@/utils/numberToCurrency'
import { getRoleMenu } from '@/api/notice' import { getRoleMenu } from '@/api/notice'
@ -741,7 +694,6 @@ export default {
memberList: [], memberList: [],
yieldList: [], yieldList: [],
yieldStatus: [], yieldStatus: [],
countryList: [],
orderTypeList: [], orderTypeList: [],
pkMemberTeam: [], pkMemberTeam: [],
pkVertex: [], pkVertex: [],
@ -879,10 +831,6 @@ export default {
log.getOrderType().then((res) => { log.getOrderType().then((res) => {
this.orderTypeList = res.data this.orderTypeList = res.data
}) })
//
getcountryAllList().then((res) => {
this.countryList = res.data
})
}, },
changeTime(val) { changeTime(val) {
if (val) { if (val) {

View File

@ -233,7 +233,7 @@ export default {
}, },
{ {
id: 1, id: 1,
text: '顶点编号', text: '系统编号',
checked: true, checked: true,
prop: 'memberCode' prop: 'memberCode'
}, },

View File

@ -236,7 +236,7 @@ export default {
], ],
menuList: [ menuList: [
{ {
text: "顶点编号", text: "系统编号",
prop: "memberCode", prop: "memberCode",
}, },
{ {

View File

@ -426,14 +426,7 @@
:label="'首购实发小计' + '($)'" :label="'首购实发小计' + '($)'"
:formatter="stateFormat" :formatter="stateFormat"
/> --> /> -->
<el-table-column
v-if="allTxt.cloudRealSubtotalOri"
align="center"
prop="cloudRealSubtotalOri"
width="130"
:label="'云代实发小计' + `(${isLocalSymbol()})`"
:formatter="stateFormat"
/>
<!-- <el-table-column <!-- <el-table-column
v-if="allTxt.cloudRealSubtotal" v-if="allTxt.cloudRealSubtotal"
align="center" align="center"
@ -1079,17 +1072,6 @@ export default {
this.getDataList() this.getDataList()
}, },
getMenu(e, id) {
if (e && id == 0) {
this.menuList.forEach((item) => {
this.$set(item, 'checked', true)
})
} else if (!e && id == 0) {
this.menuList.forEach((item) => {
this.$set(item, 'checked', false)
})
}
},
getData() { getData() {
api.accountList().then((res) => { api.accountList().then((res) => {
this.acList = res.data this.acList = res.data

View File

@ -6,110 +6,147 @@
--> -->
<template> <template>
<div class="page"> <div class="page">
<topBar v-if="topList.length > 0" <topBar
:topList="topList" v-if="topList.length > 0"
:moren="moren"></topBar> :top-list="topList"
:moren="moren"
/>
<div class="main"> <div class="main">
<div class="form_all"> <div class="form_all">
<el-form ref="select" <el-form
ref="select"
:model="select" :model="select"
label-width="auto"> label-width="auto"
>
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="4">
<TopMemberSelect ref="topMemberSelect" @change="topMemberHandleChange" />
</el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'会员编号'"> <el-form-item :label="'会员编号'">
<el-input clearable <el-input
v-model="select.memberCode"></el-input> v-model="select.memberCode"
clearable
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'会员姓名'"> <el-form-item :label="'会员姓名'">
<el-input clearable <el-input
v-model="select.memberName"></el-input> v-model="select.memberName"
clearable
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'订单类型'" <el-form-item
prop="orderType"> :label="'订单类型'"
<el-select clearable prop="orderType"
>
<el-select
v-model="select.orderType" v-model="select.orderType"
:placeholder="'请选择'"> clearable
<el-option v-for="(item, index) in orderTypeList" :placeholder="'请选择'"
>
<el-option
v-for="(item, index) in orderTypeList"
:key="index" :key="index"
:label="item.label" :label="item.label"
:value="item.value"></el-option> :value="item.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'真实奖衔'"> <el-form-item :label="'真实奖衔'">
<el-select clearable <el-select
v-model="select.pkAwards"
clearable
:placeholder="'请选择'" :placeholder="'请选择'"
v-model="select.pkAwards"> >
<el-option v-for="item in awardsList" <el-option
v-for="item in awardsList"
:key="item.pkId" :key="item.pkId"
:label="item.awardsName" :label="item.awardsName"
:value="item.pkId"></el-option> :value="item.pkId"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'隶属体系'"> <el-form-item :label="'隶属体系'">
<el-select clearable <el-select
v-model="select.pkVertex"
clearable
:placeholder="'请选择'" :placeholder="'请选择'"
v-model="select.pkVertex"> >
<el-option v-for="item in vertexList" <el-option
v-for="item in vertexList"
:key="item.pkId" :key="item.pkId"
:label="item.vertexName" :label="item.vertexName"
:value="item.pkId"></el-option> :value="item.pkId"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'隶属团队'"> <el-form-item :label="'隶属团队'">
<el-select clearable <el-select
v-model="select.pkTeamCode"
clearable
:placeholder="'请选择'" :placeholder="'请选择'"
v-model="select.pkTeamCode"> >
<el-option v-for="item in teamList" <el-option
v-for="item in teamList"
:key="item.pkId" :key="item.pkId"
:label="item.teamName" :label="item.teamName"
:value="item.pkId"></el-option> :value="item.pkId"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'国家'"> <el-form-item :label="'国家'">
<el-select v-model="select.pkCountry" <el-select
v-model="select.pkCountry"
size="medium" size="medium"
filterable filterable
:placeholder="'请选择'"> :placeholder="'请选择'"
<el-option v-for="item in countryList" >
<el-option
v-for="item in countryList"
:key="item.pkCountry" :key="item.pkCountry"
:label="item.name" :label="item.name"
:value="item.pkCountry"> :value="item.pkCountry"
</el-option> />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="订单日期"> <el-form-item label="订单日期">
<el-date-picker v-model="creationTime" <el-date-picker
@change="changeTime" v-model="creationTime"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
type="daterange" type="daterange"
:range-separator="'至'" :range-separator="'至'"
:start-placeholder="'开始日期'" :start-placeholder="'开始日期'"
:end-placeholder="'结束日期'"> :end-placeholder="'结束日期'"
</el-date-picker> @change="changeTime"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-button type="primary" <el-button
@click="getDataList"> {{ '搜索' }}</el-button> type="primary"
<el-button type="" @click="getDataList"
@click="reset"> {{ '重置' }}</el-button> > {{ '搜索' }}</el-button>
<el-button
type=""
@click="reset"
> {{ '重置' }}</el-button>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
@ -120,73 +157,93 @@
@click="openDig" @click="openDig"
v-hasButtons="['MissionAdd']" v-hasButtons="['MissionAdd']"
class="addBtn">{{'添加'}}</el-button> --> class="addBtn">{{'添加'}}</el-button> -->
<el-button size="small" <el-button
@click="handleExport" size="small"
style="background-color: #ffad41" style="background-color: #ffad41"
class="thebtn1"> {{ '导出' }}</el-button> class="thebtn1"
@click="handleExport"
> {{ '导出' }}</el-button>
</div> </div>
</div> </div>
<div class="maintable"> <div class="maintable">
<el-table :data="tableData" <el-table
v-loading="loading" v-loading="loading"
:data="tableData"
style="width: 100%" style="width: 100%"
height="700px" height="700px"
:header-cell-style="{ background: '#EEEEEE' }" :header-cell-style="{ background: '#EEEEEE' }"
:row-class-name="tableRowClassName" :row-class-name="tableRowClassName"
@selection-change="handleSelectionChange"> @selection-change="handleSelectionChange"
<el-table-column type="selection" >
width="55"> </el-table-column> <el-table-column
<el-table-column align="center" type="selection"
width="55"
/>
<el-table-column
align="center"
prop="picture" prop="picture"
label="国旗"> label="国旗"
>
<template slot-scope="scope"> <template slot-scope="scope">
<div class="tem"> <div class="tem">
<img :src="scope.row.nationalFlag1" <img
alt=""> :src="scope.row.nationalFlag1"
alt=""
>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" <el-table-column
align="center"
prop="shortName" prop="shortName"
:label="'国家'"> :label="'国家'"
</el-table-column> />
<el-table-column align="center" <el-table-column
align="center"
prop="memberCode" prop="memberCode"
:label="'会员编号'"> :label="'会员编号'"
</el-table-column> />
<el-table-column align="center" <el-table-column
align="center"
prop="memberName" prop="memberName"
:label="'会员姓名'"> :label="'会员姓名'"
</el-table-column> />
<el-table-column align="center" <el-table-column
align="center"
prop="phone" prop="phone"
:label="'联系方式'"> :label="'联系方式'"
</el-table-column> />
<el-table-column align="center" <el-table-column
align="center"
prop="orderTypeVal" prop="orderTypeVal"
:label="'订单类型'"> :label="'订单类型'"
</el-table-column> />
<el-table-column align="center" <el-table-column
align="center"
prop="awardsName" prop="awardsName"
:label="'真实奖衔'"> :label="'真实奖衔'"
</el-table-column> />
<el-table-column align="center" <el-table-column
align="center"
prop="vertexName" prop="vertexName"
:label="'隶属体系'"> :label="'隶属体系'"
</el-table-column> />
<el-table-column align="center" <el-table-column
align="center"
prop="pkTeamCode" prop="pkTeamCode"
:label="'隶属团队'"> :label="'隶属团队'"
</el-table-column> />
<el-table-column align="center" <el-table-column
align="center"
prop="orderAmount" prop="orderAmount"
label="新增金额(¥)"> label="新增金额(¥)"
</el-table-column> />
<el-table-column align="center" <el-table-column
align="center"
prop="orderAchieve" prop="orderAchieve"
:label="'新增业绩'+'(PV)'"> :label="'新增业绩'+'(PV)'"
</el-table-column> />
<!-- <el-table-column align="center" <!-- <el-table-column align="center"
prop="payTime" prop="payTime"
label="订单日期"> label="订单日期">
@ -194,11 +251,13 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<pagination v-show="total>0" <pagination
v-show="total>0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
@pagination="getDataList" /> @pagination="getDataList"
/>
</div> </div>
</template> </template>
@ -210,10 +269,12 @@ import * as log from '@/api/logistics'
import { getAwardsListChiose } from '@/api/level' import { getAwardsListChiose } from '@/api/level'
import { getvertexValue } from '@/api/financialCase' import { getvertexValue } from '@/api/financialCase'
import { userCountryList } from '@/api/site.js' import { userCountryList } from '@/api/site.js'
import TopMemberSelect from '@/components/top-member-select'
export default { export default {
name: 'Bzpz', name: 'Bzpz',
components: { components: {
topBar, topBar,
TopMemberSelect
}, },
data() { data() {
return { return {
@ -224,7 +285,7 @@ export default {
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 50, pageSize: 50
}, },
total: 0, total: 0,
tableData: [], tableData: [],
@ -238,9 +299,9 @@ export default {
topList: [ topList: [
{ {
name: '伞下直推新增业绩', name: '伞下直推新增业绩',
path: 'underDirectAdd', path: 'underDirectAdd'
}, }
], ]
} }
}, },
mounted() { mounted() {
@ -255,24 +316,30 @@ export default {
// this.getEYesNoList() // this.getEYesNoList()
}, },
methods: { methods: {
topMemberHandleChange(val) {
if (val) {
this.select.memberCode = val
this.getDataList()
}
},
getStartTime() { getStartTime() {
const date = new Date(); const date = new Date()
date.setDate(1); // date.setDate(1) //
const year = date.getFullYear(); // const year = date.getFullYear() //
let month = date.getMonth() + 1; // 0-11+1 let month = date.getMonth() + 1 // 0-11+1
month = month >= 10 ? month : "0" + month; // month = month >= 10 ? month : '0' + month //
let day = date.getDate(); // setDate(1) let day = date.getDate() // setDate(1)
day = day >= 10 ? day : "0" + day; // day = day >= 10 ? day : '0' + day //
return year + "-" + month + "-" + day; return year + '-' + month + '-' + day
}, },
getEndTime() { getEndTime() {
let date = new Date(); const date = new Date()
let year = date.getFullYear(); // const year = date.getFullYear() //
let month = date.getMonth() + 1; // 0-11+1 let month = date.getMonth() + 1 // 0-11+1
month = month >= 10 ? month : "0" + month; // month = month >= 10 ? month : '0' + month //
let day = date.getDate(); // setDate(1) let day = date.getDate() // setDate(1)
day = day >= 10 ? day : "0" + day; // day = day >= 10 ? day : '0' + day //
return year + "-" + month + "-" + day + " "; return year + '-' + month + '-' + day + ' '
}, },
// //
getData() { getData() {
@ -293,25 +360,26 @@ export default {
}) })
}, },
getStartTime() { getStartTime() {
const date = new Date(); const date = new Date()
date.setDate(1); // date.setDate(1) //
const year = date.getFullYear(); // const year = date.getFullYear() //
let month = date.getMonth() + 1; // 0-11+1 let month = date.getMonth() + 1 // 0-11+1
month = month >= 10 ? month : "0" + month; // month = month >= 10 ? month : '0' + month //
let day = date.getDate(); // setDate(1) let day = date.getDate() // setDate(1)
day = day >= 10 ? day : "0" + day; // day = day >= 10 ? day : '0' + day //
return year + "-" + month + "-" + day; return year + '-' + month + '-' + day
}, },
getEndTime() { getEndTime() {
let date = new Date(); const date = new Date()
let year = date.getFullYear(); // const 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
month = month >= 10 ? month : "0" + month; // month = month >= 10 ? month : '0' + month //
let day = date.getDate(); // setDate(1) let day = date.getDate() // setDate(1)
day = day >= 10 ? day : "0" + day; // day = day >= 10 ? day : '0' + day //
return year + "-" + month + "-" + day + " "; return year + '-' + month + '-' + day + ' '
}, },
reset() { reset() {
this.$refs.topMemberSelect.reset()
this.select = { this.select = {
orderType: 1 orderType: 1
} }
@ -338,7 +406,7 @@ export default {
this.$confirm('是否确认导出所有数据项?', '警告', { this.$confirm('是否确认导出所有数据项?', '警告', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning', type: 'warning'
}).then((_) => { }).then((_) => {
this.download( this.download(
'report/manager/member-report/export-direct-push-new', 'report/manager/member-report/export-direct-push-new',
@ -354,8 +422,8 @@ export default {
return 'success-row' return 'success-row'
} }
return '' return ''
}, }
}, }
} }
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">

View File

@ -2,28 +2,31 @@
<div class="page"> <div class="page">
<topBar <topBar
v-if="topList.length > 0" v-if="topList.length > 0"
:topList="topList" :top-list="topList"
:moren="moren" :moren="moren"
></topBar> />
<div class="main"> <div class="main">
<div class="form_all"> <div class="form_all">
<el-form ref="select" :model="select" label-width="auto"> <el-form ref="select" :model="select" label-width="auto">
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="4">
<TopMemberSelect ref="topMemberSelect" @change="topMemberHandleChange" />
</el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'会员编号'"> <el-form-item :label="'会员编号'">
<el-input clearable v-model="select.memberCode"></el-input> <el-input v-model="select.memberCode" clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'会员姓名'"> <el-form-item :label="'会员姓名'">
<el-input clearable v-model="select.memberName"></el-input> <el-input v-model="select.memberName" clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'订单类型'" prop="orderType"> <el-form-item :label="'订单类型'" prop="orderType">
<el-select <el-select
clearable
v-model="select.orderType" v-model="select.orderType"
clearable
:placeholder="'请选择'" :placeholder="'请选择'"
> >
<el-option <el-option
@ -31,23 +34,23 @@
:key="index" :key="index"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
></el-option> />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'真实奖衔'"> <el-form-item :label="'真实奖衔'">
<el-select <el-select
v-model="select.pkAwards"
clearable clearable
:placeholder="'请选择'" :placeholder="'请选择'"
v-model="select.pkAwards"
> >
<el-option <el-option
v-for="item in awardsList" v-for="item in awardsList"
:key="item.pkId" :key="item.pkId"
:label="item.awardsName" :label="item.awardsName"
:value="item.pkId" :value="item.pkId"
></el-option> />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -55,32 +58,32 @@
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'隶属体系'"> <el-form-item :label="'隶属体系'">
<el-select <el-select
v-model="select.pkVertex"
clearable clearable
:placeholder="'请选择'" :placeholder="'请选择'"
v-model="select.pkVertex"
> >
<el-option <el-option
v-for="item in vertexList" v-for="item in vertexList"
:key="item.pkId" :key="item.pkId"
:label="item.vertexName" :label="item.vertexName"
:value="item.pkId" :value="item.pkId"
></el-option> />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'隶属团队'"> <el-form-item :label="'隶属团队'">
<el-select <el-select
v-model="select.pkTeamCode"
clearable clearable
:placeholder="'请选择'" :placeholder="'请选择'"
v-model="select.pkTeamCode"
> >
<el-option <el-option
v-for="item in teamList" v-for="item in teamList"
:key="item.pkId" :key="item.pkId"
:label="item.teamName" :label="item.teamName"
:value="item.pkId" :value="item.pkId"
></el-option> />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -97,8 +100,7 @@
:key="item.pkCountry" :key="item.pkCountry"
:label="item.name" :label="item.name"
:value="item.pkCountry" :value="item.pkCountry"
> />
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -106,20 +108,18 @@
<el-form-item label="订单日期"> <el-form-item label="订单日期">
<el-date-picker <el-date-picker
v-model="creationTime" v-model="creationTime"
@change="changeTime"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
type="daterange" type="daterange"
:range-separator="'至'" :range-separator="'至'"
:start-placeholder="'开始日期'" :start-placeholder="'开始日期'"
:end-placeholder="'结束日期'" :end-placeholder="'结束日期'"
> @change="changeTime"
</el-date-picker> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-button type="primary" @click="getDataList"> <el-button type="primary" @click="getDataList">
{{ '搜索' }}</el-button {{ '搜索' }}</el-button>
>
<el-button type="" @click="reset"> {{ '重置' }}</el-button> <el-button type="" @click="reset"> {{ '重置' }}</el-button>
</el-col> </el-col>
</el-row> </el-row>
@ -133,29 +133,28 @@
class="addBtn">{{'添加'}}</el-button> --> class="addBtn">{{'添加'}}</el-button> -->
<el-button <el-button
size="small" size="small"
@click="handleExport"
style="background-color: #ffad41" style="background-color: #ffad41"
class="thebtn1" class="thebtn1"
@click="handleExport"
> >
{{ '导出' }}</el-button {{ '导出' }}</el-button>
>
</div> </div>
</div> </div>
<div class="maintable"> <div class="maintable">
<el-table <el-table
:data="tableData"
v-loading="loading" v-loading="loading"
:data="tableData"
style="width: 100%" style="width: 100%"
height="700px" height="700px"
:header-cell-style="{ background: '#EEEEEE' }" :header-cell-style="{ background: '#EEEEEE' }"
:row-class-name="tableRowClassName" :row-class-name="tableRowClassName"
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
> >
<el-table-column type="selection" width="55"> </el-table-column> <el-table-column type="selection" width="55" />
<el-table-column align="center" prop="picture" label="国旗"> <el-table-column align="center" prop="picture" label="国旗">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="tem"> <div class="tem">
<img :src="scope.row.nationalFlag1" alt="" /> <img :src="scope.row.nationalFlag1" alt="">
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
@ -163,59 +162,49 @@
align="center" align="center"
prop="shortName" prop="shortName"
:label="'国家'" :label="'国家'"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="memberCode" prop="memberCode"
:label="'会员编号'" :label="'会员编号'"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="memberName" prop="memberName"
:label="'会员姓名'" :label="'会员姓名'"
> />
</el-table-column> <el-table-column align="center" prop="phone" :label="'联系方式'" />
<el-table-column align="center" prop="phone" :label="'联系方式'">
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="orderTypeVal" prop="orderTypeVal"
:label="'订单类型'" :label="'订单类型'"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="awardsName" prop="awardsName"
:label="'真实奖衔'" :label="'真实奖衔'"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="vertexName" prop="vertexName"
:label="'隶属体系'" :label="'隶属体系'"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="pkTeamCode" prop="pkTeamCode"
:label="'隶属团队'" :label="'隶属团队'"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="orderAmount" prop="orderAmount"
label="新增金额(¥)" label="新增金额(¥)"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="orderAchieve" prop="orderAchieve"
:label="'新增业绩' + '(PV)'" :label="'新增业绩' + '(PV)'"
> />
</el-table-column>
<!-- <el-table-column align="center" <!-- <el-table-column align="center"
prop="payTime" prop="payTime"
label="订单日期"> label="订单日期">
@ -234,28 +223,29 @@
</template> </template>
<script> <script>
import topBar from "@/components/topBar"; import topBar from '@/components/topBar'
import * as api from "@/api/business.js"; import * as api from '@/api/business.js'
import * as log from "@/api/logistics"; import * as log from '@/api/logistics'
import TopMemberSelect from '@/components/top-member-select'
import { getAwardsListChiose } from "@/api/level"; import { getAwardsListChiose } from '@/api/level'
import { getvertexValue } from "@/api/financialCase"; import { getvertexValue } from '@/api/financialCase'
import { userCountryList } from "@/api/site.js"; import { userCountryList } from '@/api/site.js'
export default { export default {
name: "UnderDirectAddNew", name: 'UnderDirectAddNew',
components: { components: {
topBar, topBar,
TopMemberSelect
}, },
data() { data() {
return { return {
creationTime: [], creationTime: [],
select: { select: {
orderType: 1, orderType: 1
}, },
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 50, pageSize: 50
}, },
total: 0, total: 0,
tableData: [], tableData: [],
@ -265,86 +255,93 @@ export default {
teamList: [], teamList: [],
countryList: [], countryList: [],
orderTypeList: [], orderTypeList: [],
moren: "underDirectAddNew", moren: 'underDirectAddNew',
topList: [ topList: [
{ {
name: "伞下直推新增业绩(新)", name: '伞下直推新增业绩(新)',
path: "underDirectAddNew", path: 'underDirectAddNew'
}, }
], ],
monthFirstday: "", monthFirstday: '',
monthLastday: "", monthLastday: ''
}; }
}, },
mounted() { mounted() {
var s1 = this.getStartTime(); var s1 = this.getStartTime()
var s2 = this.getEndTime(); var s2 = this.getEndTime()
this.select.startPayTime = s1; this.select.startPayTime = s1
this.select.endPayTime = s2; this.select.endPayTime = s2
this.creationTime = [s1, s2]; this.creationTime = [s1, s2]
// //
this.getDataList(); this.getDataList()
this.getData(); this.getData()
}, },
methods: { methods: {
topMemberHandleChange(val) {
if (val) {
this.select.memberCode = val
this.getDataList()
}
},
getStartTime() { getStartTime() {
const date = new Date(); const date = new Date()
date.setDate(1); // date.setDate(1) //
const year = date.getFullYear(); // const year = date.getFullYear() //
let month = date.getMonth() + 1; // 0-11+1 let month = date.getMonth() + 1 // 0-11+1
month = month >= 10 ? month : "0" + month; // month = month >= 10 ? month : '0' + month //
let day = date.getDate(); // setDate(1) let day = date.getDate() // setDate(1)
day = day >= 10 ? day : "0" + day; // day = day >= 10 ? day : '0' + day //
return year + "-" + month + "-" + day; return year + '-' + month + '-' + day
}, },
getEndTime() { getEndTime() {
let date = new Date(); const date = new Date()
let year = date.getFullYear(); // const year = date.getFullYear() //
let month = date.getMonth() + 1; // 0-11+1 let month = date.getMonth() + 1 // 0-11+1
month = month >= 10 ? month : "0" + month; // month = month >= 10 ? month : '0' + month //
let day = date.getDate(); // setDate(1) let day = date.getDate() // setDate(1)
day = day >= 10 ? day : "0" + day; // day = day >= 10 ? day : '0' + day //
return year + "-" + month + "-" + day + " "; return year + '-' + month + '-' + day + ' '
}, },
// //
getData() { getData() {
getAwardsListChiose().then((res) => { getAwardsListChiose().then((res) => {
this.awardsList = res.rows; this.awardsList = res.rows
}); })
getvertexValue().then((res) => { getvertexValue().then((res) => {
this.vertexList = res.data; this.vertexList = res.data
}); })
api.teamList().then((res) => { api.teamList().then((res) => {
this.teamList = res.data; this.teamList = res.data
}); })
userCountryList().then((res) => { userCountryList().then((res) => {
this.countryList = res.data; this.countryList = res.data
}); })
log.getUnderAddOrderTypeNew().then((res) => { log.getUnderAddOrderTypeNew().then((res) => {
this.orderTypeList = res.data; this.orderTypeList = res.data
}); })
}, },
reset() { reset() {
this.$refs.topMemberSelect.reset()
this.select = { this.select = {
orderType: 1, orderType: 1
}; }
this.creationTime = []; this.creationTime = []
this.getDataList(); this.getDataList()
}, },
changeTime(val) { changeTime(val) {
this.select.startPayTime = val ? val[0] : ""; this.select.startPayTime = val ? val[0] : ''
this.select.endPayTime = val ? val[1] : ""; this.select.endPayTime = val ? val[1] : ''
}, },
getDataList() { getDataList() {
this.loading = true this.loading = true
api api
.directAddNewList(Object.assign({}, this.queryParams, this.select)) .directAddNewList(Object.assign({}, this.queryParams, this.select))
.then((res) => { .then((res) => {
this.tableData = res.rows; this.tableData = res.rows
this.total = res.total; this.total = res.total
this.loading = false this.loading = false
}); })
}, },
handleSelectionChange(val) {}, handleSelectionChange(val) {},
/** 导出按钮操作 */ /** 导出按钮操作 */
@ -352,25 +349,25 @@ export default {
this.$confirm('是否确认导出所有数据项?', '警告', { this.$confirm('是否确认导出所有数据项?', '警告', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: "warning", type: 'warning'
}).then((_) => { }).then((_) => {
this.download( this.download(
"/report/manager/member-report/export-direct-push-new-up", '/report/manager/member-report/export-direct-push-new-up',
Object.assign({}, this.queryParams, this.select), Object.assign({}, this.queryParams, this.select),
`伞下直推新增业绩(新)${new Date().getTime()}.xlsx` `伞下直推新增业绩(新)${new Date().getTime()}.xlsx`
); )
}); })
}, },
tableRowClassName({ row, rowIndex }) { tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) { if (rowIndex % 2 == 1) {
return "warning-row"; return 'warning-row'
} else if (rowIndex % 2 == 0) { } else if (rowIndex % 2 == 0) {
return "success-row"; return 'success-row'
}
return ''
}
}
} }
return "";
},
},
};
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
::v-deep .el-table .warning-row { ::v-deep .el-table .warning-row {
@ -463,4 +460,3 @@ export default {
width: 100%; width: 100%;
} }
</style> </style>

View File

@ -2,36 +2,42 @@
<div class="page"> <div class="page">
<topBar <topBar
v-if="topList.length > 0" v-if="topList.length > 0"
:topList="topList" :top-list="topList"
:moren="moren" :moren="moren"
></topBar> />
<div class="thetopbox"> <div class="thetopbox">
<el-form label-width="100px"> <el-form label-width="100px">
<el-row> <el-row>
<el-col :span="4">
<TopMemberSelect
ref="topMemberSelect"
@change="topMemberHandleChange"
/>
</el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'会员编号'" prop="memberCode"> <el-form-item :label="'会员编号'" prop="memberCode">
<el-input clearable v-model="queryParams.memberCode"></el-input> <el-input v-model="queryParams.memberCode" clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'会员姓名'" prop="memberName"> <el-form-item :label="'会员姓名'" prop="memberName">
<el-input clearable v-model="queryParams.memberName"></el-input> <el-input v-model="queryParams.memberName" clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'订单类型'" prop="orderType"> <el-form-item :label="'订单类型'" prop="orderType">
<el-select <el-select
v-model="queryParams.orderType"
clearable clearable
:placeholder="'请选择'" :placeholder="'请选择'"
v-model="queryParams.orderType"
> >
<el-option <el-option
v-for="item in orderTypeList" v-for="item in orderTypeList"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
></el-option> />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -39,48 +45,48 @@
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'真实奖衔'" prop="pkAwards"> <el-form-item :label="'真实奖衔'" prop="pkAwards">
<el-select <el-select
v-model="queryParams.pkAwards"
clearable clearable
:placeholder="'请选择'" :placeholder="'请选择'"
v-model="queryParams.pkAwards"
> >
<el-option <el-option
v-for="item in awardsList" v-for="item in awardsList"
:key="item.pkId" :key="item.pkId"
:label="item.awardsName" :label="item.awardsName"
:value="item.pkId" :value="item.pkId"
></el-option> />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'隶属体系'" prop="pkVertex"> <el-form-item :label="'隶属体系'" prop="pkVertex">
<el-select <el-select
v-model="queryParams.pkVertex"
clearable clearable
:placeholder="'请选择'" :placeholder="'请选择'"
v-model="queryParams.pkVertex"
> >
<el-option <el-option
v-for="item in vertexList" v-for="item in vertexList"
:key="item.pkId" :key="item.pkId"
:label="item.vertexName" :label="item.vertexName"
:value="item.pkId" :value="item.pkId"
></el-option> />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'隶属团队'" prop="pkTeamCode"> <el-form-item :label="'隶属团队'" prop="pkTeamCode">
<el-select <el-select
v-model="queryParams.pkTeamCode"
clearable clearable
:placeholder="'请选择'" :placeholder="'请选择'"
v-model="queryParams.pkTeamCode"
> >
<el-option <el-option
v-for="item in memberTeamList" v-for="item in memberTeamList"
:key="item.pkId" :key="item.pkId"
:label="item.teamName" :label="item.teamName"
:value="item.pkId" :value="item.pkId"
></el-option> />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -104,15 +110,14 @@
<el-form-item :label="'订单日期'" prop="thetimes"> <el-form-item :label="'订单日期'" prop="thetimes">
<el-date-picker <el-date-picker
v-model="queryParams.thetimes" v-model="queryParams.thetimes"
@change="changeTime"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
type="daterange" type="daterange"
:clearable="false" :clearable="false"
:range-separator="'至'" :range-separator="'至'"
:start-placeholder="'开始日期'" :start-placeholder="'开始日期'"
:end-placeholder="'结束日期'" :end-placeholder="'结束日期'"
> @change="changeTime"
</el-date-picker> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
@ -126,11 +131,9 @@
} }
" "
> >
{{ '搜索' }}</el-button {{ '搜索' }}</el-button>
>
<el-button class="my_reset" @click="reChongzhi"> <el-button class="my_reset" @click="reChongzhi">
{{ '重置' }}</el-button {{ '重置' }}</el-button>
>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
@ -140,21 +143,19 @@
<div class="maintop"> <div class="maintop">
<div class="mainbtn"> <div class="mainbtn">
<el-button size="small" class="thebtn1" @click="handleExport"> <el-button size="small" class="thebtn1" @click="handleExport">
{{ '导出' }}</el-button {{ '导出' }}</el-button>
>
</div> </div>
</div> </div>
<div class="maintable"> <div class="maintable">
<el-table <el-table
:data="tableData"
v-loading="loading" v-loading="loading"
:data="tableData"
height="680px" height="680px"
style="width: 100%" style="width: 100%"
:header-cell-style="{ background: '#EEEEEE' }" :header-cell-style="{ background: '#EEEEEE' }"
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
> >
<el-table-column prop="colsele" type="selection" width="55"> <el-table-column prop="colsele" type="selection" width="55" />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
@ -166,7 +167,7 @@
style="width: 44px; height: 44px; border-radius: 50%" style="width: 44px; height: 44px; border-radius: 50%"
:src="scope.row.nationalFlag" :src="scope.row.nationalFlag"
alt="" alt=""
/> >
</template> </template>
</el-table-column> </el-table-column>
@ -175,74 +176,63 @@
prop="shortName" prop="shortName"
:label="'国家'" :label="'国家'"
min-width="120px" min-width="120px"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="memberCode" prop="memberCode"
:label="'会员编号'" :label="'会员编号'"
min-width="120px" min-width="120px"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="memberName" prop="memberName"
:label="'会员姓名'" :label="'会员姓名'"
min-width="120px" min-width="120px"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="phone" prop="phone"
:label="'联系方式'" :label="'联系方式'"
min-width="120px" min-width="120px"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="awardsName" prop="awardsName"
:label="'真实奖衔'" :label="'真实奖衔'"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="vertexName" prop="vertexName"
:label="'隶属体系'" :label="'隶属体系'"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="teamCodeName" prop="teamCodeName"
:label="'隶属团队'" :label="'隶属团队'"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="leftNewAddAmount" prop="leftNewAddAmount"
:label="'左区新增金额'" :label="'左区新增金额'"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="rightNewAddAmount" prop="rightNewAddAmount"
:label="'右区新增金额'" :label="'右区新增金额'"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="leftNewAddAchieve" prop="leftNewAddAchieve"
min-width="100px" min-width="100px"
:label="'左区新增业绩' + `(PV)`" :label="'左区新增业绩' + `(PV)`"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="rightNewAddAchieve" prop="rightNewAddAchieve"
min-width="100px" min-width="100px"
:label="'右区新增业绩' + `(PV)`" :label="'右区新增业绩' + `(PV)`"
> />
</el-table-column>
<!-- <el-table-column <!-- <el-table-column
min-width="120px" min-width="120px"
align="center" align="center"
@ -264,33 +254,35 @@
</template> </template>
<script> <script>
import topBar from "@/components/topBar"; import topBar from '@/components/topBar'
import * as sta from "@/api/statistics"; import * as sta from '@/api/statistics'
import * as log from "@/api/logistics"; import * as log from '@/api/logistics'
import { getAwardsListChiose } from "@/api/level"; import { getAwardsListChiose } from '@/api/level'
import { getcountryAllList } from "@/api/exchangerate"; import { getcountryAllList } from '@/api/exchangerate'
import { getvertexValue, getmemberTeamList } from "@/api/financialCase"; import { getvertexValue, getmemberTeamList } from '@/api/financialCase'
import { isLocals, isLocalSymbol } from "@/utils/numberToCurrency"; import { isLocals, isLocalSymbol } from '@/utils/numberToCurrency'
import TopMemberSelect from '@/components/top-member-select/index.vue'
export default { export default {
name: "UnderPlacementPer", name: 'UnderPlacementPer',
components: { components: {
topBar, topBar,
TopMemberSelect
}, },
data() { data() {
return { return {
moren: "underPlacementPer", moren: 'underPlacementPer',
topList: [ topList: [
{ {
name: '伞下新增安置业绩', name: '伞下新增安置业绩',
path: "underPlacementPer", path: 'underPlacementPer'
}, }
], ],
tableData: [], tableData: [],
loading: false, loading: false,
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 50, pageSize: 50,
thetimes: [], thetimes: []
}, },
total: 0, total: 0,
multipleSelection: [], multipleSelection: [],
@ -298,103 +290,109 @@ export default {
memberTeamList: [], memberTeamList: [],
vertexList: [], vertexList: [],
countryList: [], countryList: [],
orderTypeList: [], orderTypeList: []
}; }
}, },
created() { created() {
this.getSearch(); this.getSearch()
this.getOthers(); this.getOthers()
var s1 = this.getStartTime(); var s1 = this.getStartTime()
var s2 = this.getEndTime(); var s2 = this.getEndTime()
this.queryParams.startPayTime = s1; this.queryParams.startPayTime = s1
this.queryParams.endPayTime = s2; this.queryParams.endPayTime = s2
this.queryParams.thetimes = [s1, s2]; this.queryParams.thetimes = [s1, s2]
}, },
methods: { methods: {
isLocalSymbol, isLocalSymbol,
isLocals, isLocals,
topMemberHandleChange(val) {
if (val) {
this.queryParams.memberCode = val
this.getSearch()
}
},
getStartTime() { getStartTime() {
const date = new Date(); const date = new Date()
date.setDate(1); // date.setDate(1) //
const year = date.getFullYear(); // const year = date.getFullYear() //
let month = date.getMonth() + 1; // 0-11+1 let month = date.getMonth() + 1 // 0-11+1
month = month >= 10 ? month : "0" + month; // month = month >= 10 ? month : '0' + month //
let day = date.getDate(); // setDate(1) let day = date.getDate() // setDate(1)
day = day >= 10 ? day : "0" + day; // day = day >= 10 ? day : '0' + day //
return year + "-" + month + "-" + day; return year + '-' + month + '-' + day
}, },
getEndTime() { getEndTime() {
let date = new Date(); const date = new Date()
let year = date.getFullYear(); // const year = date.getFullYear() //
let month = date.getMonth() + 1; // 0-11+1 let month = date.getMonth() + 1 // 0-11+1
month = month >= 10 ? month : "0" + month; // month = month >= 10 ? month : '0' + month //
let day = date.getDate(); // setDate(1) let day = date.getDate() // setDate(1)
day = day >= 10 ? day : "0" + day; // day = day >= 10 ? day : '0' + day //
return year + "-" + month + "-" + day + " "; return year + '-' + month + '-' + day + ' '
}, },
changeTime(val) { changeTime(val) {
this.queryParams.startPayTime = val[0]; this.queryParams.startPayTime = val[0]
this.queryParams.endPayTime = val[1]; this.queryParams.endPayTime = val[1]
}, },
getOthers() { getOthers() {
getAwardsListChiose().then((res) => { getAwardsListChiose().then((res) => {
this.awardsList = res.rows; this.awardsList = res.rows
}); })
getmemberTeamList().then((res) => { getmemberTeamList().then((res) => {
this.memberTeamList = res.rows; this.memberTeamList = res.rows
}); })
getvertexValue().then((res) => { getvertexValue().then((res) => {
this.vertexList = res.data; this.vertexList = res.data
}); })
getcountryAllList().then((res) => { getcountryAllList().then((res) => {
this.countryList = res.data; this.countryList = res.data
}); })
// //
log.getUnderAddOrderType().then((res) => { log.getUnderAddOrderType().then((res) => {
this.orderTypeList = res.data; this.orderTypeList = res.data
}); })
}, },
// //
handleExport() { handleExport() {
this.$confirm('是否确认导出所有数据项?', '警告', { this.$confirm('是否确认导出所有数据项?', '警告', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: "warning", type: 'warning'
}).then((_) => { }).then((_) => {
this.download( this.download(
"/report/manager/member-report/member-resettle-achieve-export", '/report/manager/member-report/member-resettle-achieve-export',
{ ...this.queryParams }, { ...this.queryParams },
`${'伞下新增安置业绩'}${new Date().getTime()}.xlsx` `${'伞下新增安置业绩'}${new Date().getTime()}.xlsx`
); )
}); })
}, },
handleSelectionChange(val) { handleSelectionChange(val) {
this.multipleSelection = val; this.multipleSelection = val
}, },
reChongzhi() { reChongzhi() {
this.$refs.topMemberSelect.reset()
this.queryParams = { this.queryParams = {
pageNum: 1, pageNum: 1,
pageSize: 50, pageSize: 50,
thetimes: [], thetimes: []
}; }
this.getSearch(); this.getSearch()
}, },
getSearch() { getSearch() {
this.loading = true this.loading = true
sta.getResettleAchieve(this.queryParams).then((res) => { sta.getResettleAchieve(this.queryParams).then((res) => {
this.loading = false this.loading = false
if (res.code == 200) { if (res.code == 200) {
this.tableData = res.rows; this.tableData = res.rows
this.total = res.total; this.total = res.total
} }
}); })
}, },
getCzNum() { getCzNum() {
this.queryParams.pageNum = 1; this.queryParams.pageNum = 1
}, }
}, }
}; }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -469,4 +467,3 @@ export default {
} }
} }
</style> </style>

View File

@ -2,36 +2,39 @@
<div class="page"> <div class="page">
<topBar <topBar
v-if="topList.length > 0" v-if="topList.length > 0"
:topList="topList" :top-list="topList"
:moren="moren" :moren="moren"
></topBar> />
<div class="thetopbox"> <div class="thetopbox">
<el-form label-width="100px"> <el-form label-width="100px">
<el-row> <el-row>
<el-col :span="4">
<TopMemberSelect ref="topMemberSelect" @change="topMemberHandleChange" />
</el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'会员编号'" prop="memberCode"> <el-form-item :label="'会员编号'" prop="memberCode">
<el-input clearable v-model="queryParams.memberCode"></el-input> <el-input v-model="queryParams.memberCode" clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'会员姓名'" prop="memberName"> <el-form-item :label="'会员姓名'" prop="memberName">
<el-input clearable v-model="queryParams.memberName"></el-input> <el-input v-model="queryParams.memberName" clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'订单类型'" prop="orderType"> <el-form-item :label="'订单类型'" prop="orderType">
<el-select <el-select
v-model="queryParams.orderType"
clearable clearable
:placeholder="'请选择'" :placeholder="'请选择'"
v-model="queryParams.orderType"
> >
<el-option <el-option
v-for="item in orderTypeList" v-for="item in orderTypeList"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
></el-option> />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -39,48 +42,48 @@
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'真实奖衔'" prop="pkAwards"> <el-form-item :label="'真实奖衔'" prop="pkAwards">
<el-select <el-select
v-model="queryParams.pkAwards"
clearable clearable
:placeholder="'请选择'" :placeholder="'请选择'"
v-model="queryParams.pkAwards"
> >
<el-option <el-option
v-for="item in awardsList" v-for="item in awardsList"
:key="item.pkId" :key="item.pkId"
:label="item.awardsName" :label="item.awardsName"
:value="item.pkId" :value="item.pkId"
></el-option> />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'隶属体系'" prop="pkVertex"> <el-form-item :label="'隶属体系'" prop="pkVertex">
<el-select <el-select
v-model="queryParams.pkVertex"
clearable clearable
:placeholder="'请选择'" :placeholder="'请选择'"
v-model="queryParams.pkVertex"
> >
<el-option <el-option
v-for="item in vertexList" v-for="item in vertexList"
:key="item.pkId" :key="item.pkId"
:label="item.vertexName" :label="item.vertexName"
:value="item.pkId" :value="item.pkId"
></el-option> />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="'隶属团队'" prop="pkTeamCode"> <el-form-item :label="'隶属团队'" prop="pkTeamCode">
<el-select <el-select
v-model="queryParams.pkTeamCode"
clearable clearable
:placeholder="'请选择'" :placeholder="'请选择'"
v-model="queryParams.pkTeamCode"
> >
<el-option <el-option
v-for="item in memberTeamList" v-for="item in memberTeamList"
:key="item.pkId" :key="item.pkId"
:label="item.teamName" :label="item.teamName"
:value="item.pkId" :value="item.pkId"
></el-option> />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -104,15 +107,14 @@
<el-form-item :label="'订单日期'" prop="thetimes"> <el-form-item :label="'订单日期'" prop="thetimes">
<el-date-picker <el-date-picker
v-model="queryParams.thetimes" v-model="queryParams.thetimes"
@change="changeTime"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
type="daterange" type="daterange"
:clearable="false" :clearable="false"
:range-separator="'至'" :range-separator="'至'"
:start-placeholder="'开始日期'" :start-placeholder="'开始日期'"
:end-placeholder="'结束日期'" :end-placeholder="'结束日期'"
> @change="changeTime"
</el-date-picker> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
@ -126,11 +128,9 @@
} }
" "
> >
{{ '搜索' }}</el-button {{ '搜索' }}</el-button>
>
<el-button class="my_reset" @click="reChongzhi"> <el-button class="my_reset" @click="reChongzhi">
{{ '重置' }}</el-button {{ '重置' }}</el-button>
>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
@ -140,21 +140,19 @@
<div class="maintop"> <div class="maintop">
<div class="mainbtn"> <div class="mainbtn">
<el-button size="small" class="thebtn1" @click="handleExport"> <el-button size="small" class="thebtn1" @click="handleExport">
{{ '导出' }}</el-button {{ '导出' }}</el-button>
>
</div> </div>
</div> </div>
<div class="maintable"> <div class="maintable">
<el-table <el-table
:data="tableData"
v-loading="loading" v-loading="loading"
:data="tableData"
height="680px" height="680px"
style="width: 100%" style="width: 100%"
:header-cell-style="{ background: '#EEEEEE' }" :header-cell-style="{ background: '#EEEEEE' }"
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
> >
<el-table-column prop="colsele" type="selection" width="55"> <el-table-column prop="colsele" type="selection" width="55" />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
@ -166,7 +164,7 @@
style="width: 44px; height: 44px; border-radius: 50%" style="width: 44px; height: 44px; border-radius: 50%"
:src="scope.row.nationalFlag" :src="scope.row.nationalFlag"
alt="" alt=""
/> >
</template> </template>
</el-table-column> </el-table-column>
@ -175,74 +173,63 @@
prop="shortName" prop="shortName"
:label="'国家'" :label="'国家'"
min-width="120px" min-width="120px"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="memberCode" prop="memberCode"
:label="'会员编号'" :label="'会员编号'"
min-width="120px" min-width="120px"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="memberName" prop="memberName"
:label="'会员姓名'" :label="'会员姓名'"
min-width="120px" min-width="120px"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="phone" prop="phone"
:label="'联系方式'" :label="'联系方式'"
min-width="120px" min-width="120px"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="awardsName" prop="awardsName"
:label="'真实奖衔'" :label="'真实奖衔'"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="vertexName" prop="vertexName"
:label="'隶属体系'" :label="'隶属体系'"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="teamCodeName" prop="teamCodeName"
:label="'隶属团队'" :label="'隶属团队'"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="leftNewAddAmount" prop="leftNewAddAmount"
:label="'左区新增金额'" :label="'左区新增金额'"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="rightNewAddAmount" prop="rightNewAddAmount"
:label="'右区新增金额'" :label="'右区新增金额'"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="leftNewAddAchieve" prop="leftNewAddAchieve"
min-width="100px" min-width="100px"
:label="'左区新增业绩' + `(PV)`" :label="'左区新增业绩' + `(PV)`"
> />
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="rightNewAddAchieve" prop="rightNewAddAchieve"
min-width="100px" min-width="100px"
:label="'右区新增业绩' + `(PV)`" :label="'右区新增业绩' + `(PV)`"
> />
</el-table-column>
<!-- <el-table-column <!-- <el-table-column
min-width="120px" min-width="120px"
align="center" align="center"
@ -264,33 +251,35 @@
</template> </template>
<script> <script>
import topBar from "@/components/topBar"; import topBar from '@/components/topBar'
import * as sta from "@/api/statistics"; import * as sta from '@/api/statistics'
import * as log from "@/api/logistics"; import * as log from '@/api/logistics'
import { getAwardsListChiose } from "@/api/level"; import { getAwardsListChiose } from '@/api/level'
import { getcountryAllList } from "@/api/exchangerate"; import { getcountryAllList } from '@/api/exchangerate'
import { getvertexValue, getmemberTeamList } from "@/api/financialCase"; import { getvertexValue, getmemberTeamList } from '@/api/financialCase'
import { isLocals, isLocalSymbol } from "@/utils/numberToCurrency"; import { isLocals, isLocalSymbol } from '@/utils/numberToCurrency'
import TopMemberSelect from '@/components/top-member-select/index.vue'
export default { export default {
name: "UnderPlacementPerNew", name: 'UnderPlacementPerNew',
components: { components: {
topBar, topBar,
TopMemberSelect
}, },
data() { data() {
return { return {
moren: "underPlacementPerNew", moren: 'underPlacementPerNew',
topList: [ topList: [
{ {
name: "伞下新増安置业绩(新)", name: '伞下新増安置业绩(新)',
path: "underPlacementPerNew", path: 'underPlacementPerNew'
}, }
], ],
tableData: [], tableData: [],
loading: false, loading: false,
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 50, pageSize: 50,
thetimes: [], thetimes: []
}, },
total: 0, total: 0,
multipleSelection: [], multipleSelection: [],
@ -298,103 +287,109 @@ export default {
memberTeamList: [], memberTeamList: [],
vertexList: [], vertexList: [],
countryList: [], countryList: [],
orderTypeList: [], orderTypeList: []
}; }
}, },
created() { created() {
this.getSearch(); this.getSearch()
this.getOthers(); this.getOthers()
var s1 = this.getStartTime(); var s1 = this.getStartTime()
var s2 = this.getEndTime(); var s2 = this.getEndTime()
this.queryParams.startPayTime = s1; this.queryParams.startPayTime = s1
this.queryParams.endPayTime = s2; this.queryParams.endPayTime = s2
this.queryParams.thetimes = [s1, s2]; this.queryParams.thetimes = [s1, s2]
}, },
methods: { methods: {
isLocalSymbol, isLocalSymbol,
isLocals, isLocals,
topMemberHandleChange(val) {
if (val) {
this.queryParams.memberCode = val
this.getSearch()
}
},
getStartTime() { getStartTime() {
const date = new Date(); const date = new Date()
date.setDate(1); // date.setDate(1) //
const year = date.getFullYear(); // const year = date.getFullYear() //
let month = date.getMonth() + 1; // 0-11+1 let month = date.getMonth() + 1 // 0-11+1
month = month >= 10 ? month : "0" + month; // month = month >= 10 ? month : '0' + month //
let day = date.getDate(); // setDate(1) let day = date.getDate() // setDate(1)
day = day >= 10 ? day : "0" + day; // day = day >= 10 ? day : '0' + day //
return year + "-" + month + "-" + day; return year + '-' + month + '-' + day
}, },
getEndTime() { getEndTime() {
let date = new Date(); const date = new Date()
let year = date.getFullYear(); // const year = date.getFullYear() //
let month = date.getMonth() + 1; // 0-11+1 let month = date.getMonth() + 1 // 0-11+1
month = month >= 10 ? month : "0" + month; // month = month >= 10 ? month : '0' + month //
let day = date.getDate(); // setDate(1) let day = date.getDate() // setDate(1)
day = day >= 10 ? day : "0" + day; // day = day >= 10 ? day : '0' + day //
return year + "-" + month + "-" + day + " "; return year + '-' + month + '-' + day + ' '
}, },
changeTime(val) { changeTime(val) {
this.queryParams.startPayTime = val[0]; this.queryParams.startPayTime = val[0]
this.queryParams.endPayTime = val[1]; this.queryParams.endPayTime = val[1]
}, },
getOthers() { getOthers() {
getAwardsListChiose().then((res) => { getAwardsListChiose().then((res) => {
this.awardsList = res.rows; this.awardsList = res.rows
}); })
getmemberTeamList().then((res) => { getmemberTeamList().then((res) => {
this.memberTeamList = res.rows; this.memberTeamList = res.rows
}); })
getvertexValue().then((res) => { getvertexValue().then((res) => {
this.vertexList = res.data; this.vertexList = res.data
}); })
getcountryAllList().then((res) => { getcountryAllList().then((res) => {
this.countryList = res.data; this.countryList = res.data
}); })
// //
log.getUnderAddOrderTypeNew().then((res) => { log.getUnderAddOrderTypeNew().then((res) => {
this.orderTypeList = res.data; this.orderTypeList = res.data
}); })
}, },
// //
handleExport() { handleExport() {
this.$confirm('是否确认导出所有数据项?', '警告', { this.$confirm('是否确认导出所有数据项?', '警告', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: "warning", type: 'warning'
}).then((_) => { }).then((_) => {
this.download( this.download(
"/report/manager/member-report/member-resettle-achieve_up_export", '/report/manager/member-report/member-resettle-achieve_up_export',
{ ...this.queryParams }, { ...this.queryParams },
`伞下新増安置业绩(新)${new Date().getTime()}.xlsx` `伞下新増安置业绩(新)${new Date().getTime()}.xlsx`
); )
}); })
}, },
handleSelectionChange(val) { handleSelectionChange(val) {
this.multipleSelection = val; this.multipleSelection = val
}, },
reChongzhi() { reChongzhi() {
this.$refs.topMemberSelect.reset()
this.queryParams = { this.queryParams = {
pageNum: 1, pageNum: 1,
pageSize: 50, pageSize: 50,
thetimes: [], thetimes: []
}; }
this.getSearch(); this.getSearch()
}, },
getSearch() { getSearch() {
this.loading = true this.loading = true
sta.getResettleAchieveNew(this.queryParams).then((res) => { sta.getResettleAchieveNew(this.queryParams).then((res) => {
this.loading = false this.loading = false
if (res.code == 200) { if (res.code == 200) {
this.tableData = res.rows; this.tableData = res.rows
this.total = res.total; this.total = res.total
} }
}); })
}, },
getCzNum() { getCzNum() {
this.queryParams.pageNum = 1; this.queryParams.pageNum = 1
}, }
}, }
}; }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -469,4 +464,3 @@ export default {
} }
} }
</style> </style>