web-zk-admin/src/views/statistics/underDirectPushBox.vue

527 lines
15 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

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

<!--
* @Descripttion:
* @version:
* @Author: kBank
* @Date: 2022-10-24 15:45:01
-->
<template>
<div class="page">
<topBar
v-if="topList.length > 0"
:topList="topList"
:moren="moren"
></topBar>
<div class="main">
<div class="form_all">
<el-form ref="select" :model="select" label-width="auto">
<el-row :gutter="10">
<el-col :span="4">
<el-form-item :label="'会员编号'">
<el-input clearable v-model="select.memberCode"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="订单日期">
<el-date-picker
v-model="creationTime"
@change="changeTime"
value-format="yyyy-MM-dd"
type="daterange"
:range-separator="'至'"
:start-placeholder="'开始日期'"
:end-placeholder="'结束日期'"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="4">
<el-button type="primary" @click="getDataList">
{{ '搜索' }}</el-button
>
<el-button type="" @click="reset"> {{ '重置' }}</el-button>
</el-col>
</el-row>
</el-form>
</div>
<div class="maintop">
<div class="mainbtn">
<!-- <el-button size="small"
@click="openDig"
v-hasButtons="['MissionAdd']"
class="addBtn">{{'添加'}}</el-button> -->
<!-- <el-button
size="small"
@click="handleExport"
style="background-color: #ffad41"
class="thebtn1"
>
{{ '导出' }}</el-button
> -->
<el-button
size="small"
v-hasButtons="['memberDown']"
@click="importTemplate"
style="background-color: #009b58; color: #fff; margin-left: 15px"
class="thebtn2"
>
{{ '下载模板' }}</el-button
>
<el-button
size="small"
class="thebtn2"
v-hasButtons="['memberImport']"
style="background-color: #ff6723; color: #fff"
@click="handleImport"
>
{{ '导入' }}</el-button
>
</div>
</div>
<div class="maintable">
<el-table
:data="tableData"
v-loading="loading"
style="width: 100%"
height="700px"
:header-cell-style="{ background: '#EEEEEE' }"
:row-class-name="tableRowClassName"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"> </el-table-column>
<el-table-column align="center" prop="picture" label="国旗">
<template slot-scope="scope">
<div class="tem">
<img :src="scope.row.nationalFlag1" alt="" />
</div>
</template>
</el-table-column>
<el-table-column
align="center"
prop="shortName"
:label="'国家'"
>
</el-table-column>
<el-table-column
align="center"
prop="memberCode"
:label="'会员编号'"
>
</el-table-column>
<el-table-column
align="center"
prop="memberName"
:label="'会员姓名'"
>
</el-table-column>
<el-table-column align="center" prop="phone" :label="'联系方式'">
</el-table-column>
<!-- <el-table-column
align="center"
prop="orderTypeVal"
:label="'订单类型'"
>
</el-table-column> -->
<el-table-column
align="center"
prop="awardsName"
:label="'荣誉奖衔'"
>
</el-table-column>
<el-table-column
align="center"
prop="vertexName"
:label="'隶属体系'"
>
</el-table-column>
<el-table-column
align="center"
prop="teamName"
:label="'隶属团队'"
>
</el-table-column>
<el-table-column align="center" prop="totalBox" label="新增盒数">
</el-table-column>
<el-table-column align="center" prop="bigAreaBox" label="大区盒数">
</el-table-column>
<el-table-column align="center" prop="smallAreaBox" label="小区盒数">
</el-table-column>
<!-- <el-table-column align="center"
prop="payTime"
label="订单日期">
</el-table-column> -->
</el-table>
</div>
</div>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getDataList"
/>
<el-dialog
:title="upload.title"
:close-on-click-modal="false"
:visible.sync="upload.open"
width="600px"
append-to-body
>
<el-upload
ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:on-exceed="handleExceed"
:auto-upload="false"
drag
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
{{ '将文件拖到此处,或' }}
<em>{{ '点击上传' }}</em>
</div>
<div class="el-upload__tip" style="color: red" slot="tip">
{{ '提示仅允许导入“xls”或“xlsx”格式文件' }}
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">{{
'确认'
}}</el-button>
<el-button @click="upload.open = false">{{
'取消'
}}</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import topBar from "@/components/topBar";
import * as api from "@/api/business.js";
import * as log from "@/api/logistics";
import { getToken } from "@/utils/auth";
import { getAwardsListChiose } from "@/api/level";
import { getvertexValue } from "@/api/financialCase";
import { userCountryList } from "@/api/site.js";
export default {
name: "Bzpz",
components: {
topBar,
},
data() {
return {
creationTime: [],
select: {
orderType: 1,
},
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 50,
},
total: 0,
tableData: [],
loading: false,
awardsList: [],
vertexList: [],
teamList: [],
countryList: [],
orderTypeList: [],
moren: "underDirectPushBox",
topList: [
{
name: "伞下直推新增盒数",
path: "underDirectPushBox",
},
],
upload: {
// 是否显示弹出层(物流导入)
open: false,
// 弹出层标题(物流导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的物流数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url:
process.env.VUE_APP_BASE_API +
"/report/manager/member-report/batch-importData",
},
};
},
mounted() {
var s1 = this.getStartTime();
var s2 = this.getEndTime();
this.select.startPayTime = s1;
this.select.endPayTime = s2;
this.creationTime = [s1, s2];
// 获取列表
this.getDataList();
this.getData();
// this.getEYesNoList()
},
methods: {
details(row) {
this.$router.push({
path: "UnderDirectAddNewDetil",
query: {
data: JSON.stringify(row),
search: JSON.stringify(this.creationTime),
},
});
},
handleImport() {
this.upload.title = "导入";
this.upload.open = true;
},
// 文件上传中处理
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
var fileName = response.fileName;
if (fileName != undefined && fileName != "") {
}
if (response.code == 200) {
let queryString = `/report/manager/member-report/export-direct-push-box?memberCodeStr=${encodeURIComponent(
response.data.memberCodeStr
)}&startPayTime=${encodeURIComponent(
response.data.startPayTime
)}&endPayTime=${encodeURIComponent(response.data.endPayTime)}`;
this.download(
queryString,
{},
`${this.$t("伞下直推新增盒数")}${new Date().getTime()}.xlsx`
);
}
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
let str = "";
this.$alert("", '上传成功', {
dangerouslyUseHTMLString: true,
});
},
// 上传文件数量超出后的动作
handleExceed() {
this.upload.isUploading = false;
this.msgInfo('仅可上传一个文件哦');
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
importTemplate() {
this.download(
"/report/manager/member-report/download",
{},
`${this.$t("伞下直推新增盒数")}${new Date().getTime()}.xlsx`
);
},
getStartTime() {
const date = new Date();
date.setDate(1); // 将当前时间的日期设置成第一天
const year = date.getFullYear(); // 得到当前年份
let month = date.getMonth() + 1; // 得到当前月份0-11月份+1是当前月份
month = month >= 10 ? month : "0" + month; // 补零
let day = date.getDate(); // 得到当前天数实际是本月第一天因为前面setDate(1) 设置过了
day = day >= 10 ? day : "0" + day; // 补零
return year + "-" + month + "-" + day;
},
getEndTime() {
let date = new Date();
let year = date.getFullYear(); // 得到当前年份
let month = date.getMonth() + 1; // 得到当前月份0-11月份+1是当前月份
month = month >= 10 ? month : "0" + month; // 补零
let day = date.getDate(); // 得到当前天数实际是本月第一天因为前面setDate(1) 设置过了
day = day >= 10 ? day : "0" + day; // 补零
return year + "-" + month + "-" + day + " ";
},
//荣誉奖衔下拉选
getData() {
getAwardsListChiose().then((res) => {
this.awardsList = res.rows;
});
getvertexValue().then((res) => {
this.vertexList = res.data;
});
api.teamList().then((res) => {
this.teamList = res.data;
});
userCountryList().then((res) => {
this.countryList = res.data;
});
log.getUnderAddOrderType().then((res) => {
this.orderTypeList = res.data;
});
},
getStartTime() {
const date = new Date();
date.setDate(1); // 将当前时间的日期设置成第一天
const year = date.getFullYear(); // 得到当前年份
let month = date.getMonth() + 1; // 得到当前月份0-11月份+1是当前月份
month = month >= 10 ? month : "0" + month; // 补零
let day = date.getDate(); // 得到当前天数实际是本月第一天因为前面setDate(1) 设置过了
day = day >= 10 ? day : "0" + day; // 补零
return year + "-" + month + "-" + day;
},
getEndTime() {
let date = new Date();
let year = date.getFullYear(); // 得到当前年份
let month = date.getDate() === 1 ? date.getMonth() : date.getMonth() + 1; // 得到当前月份0-11月份+1是当前月份
month = month >= 10 ? month : "0" + month; // 补零
let day = date.getDate(); // 得到当前天数实际是本月第一天因为前面setDate(1) 设置过了
day = day >= 10 ? day : "0" + day; // 补零
return year + "-" + month + "-" + day + " ";
},
reset() {
this.select = {
orderType: 1,
};
this.creationTime = [];
this.getDataList();
},
changeTime(val) {
this.select.startPayTime = val ? val[0] : "";
this.select.endPayTime = val ? val[1] : "";
},
getDataList() {
this.loading = true;
api
.directPushBoxlsList(Object.assign({}, this.queryParams, this.select))
.then((res) => {
this.tableData = res.rows;
this.total = res.total;
this.loading = false;
});
},
handleSelectionChange(val) {},
/** 导出按钮操作 */
handleExport() {
this.$confirm('是否确认导出所有数据项?', '警告', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: "warning",
}).then((_) => {
this.download(
"report/manager/member-report/export-direct-push-new",
Object.assign({}, this.queryParams, this.select),
`伞下直推新增业绩${new Date().getTime()}.xlsx`
);
});
},
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return "warning-row";
} else if (rowIndex % 2 == 0) {
return "success-row";
}
return "";
},
},
};
</script>
<style scoped lang="scss">
::v-deep .el-table .warning-row {
background: #f9f9f9;
}
::v-deep .el-table .success-row {
background: #ffffff;
}
::v-deep .el-table thead {
color: #000000;
}
::v-deep .el-select {
width: 100%;
}
.uploadIcon ::v-deep .el-upload--picture-card {
display: none !important; /* 上传按钮隐藏 */
}
.page {
padding: 20px;
background: #f9f9f9;
font-size: 14px;
.main {
background: #ffffff;
border-radius: 8px;
box-shadow: 0px 2px 20px 0px rgba(238, 238, 238, 0.5);
.form_all {
padding: 0px 20px 0 20px;
// margin-bottom: 20px;
background: #fff;
border-radius: 8px;
}
.maintop {
display: flex;
padding: 0px 0px;
justify-content: space-between;
align-items: center;
background: #f8f8f8;
.mainbtn {
.thebtn1 {
background: #3181e5;
color: #ffffff;
}
.thebtn2 {
background: #ffad41;
color: #ffffff;
}
}
.maintitle {
font-size: 10px;
font-family: MicrosoftYaHei;
color: #999999;
}
}
}
.tem {
display: flex;
align-items: center;
justify-content: center;
img {
width: 30px;
height: 30px;
margin-right: 3px;
}
}
.isRed {
color: #ed1d25;
}
.isGreen {
color: #1ab62b;
}
.bgImg {
width: 48px;
height: 48px;
}
}
.openClose {
text-align: right;
margin-right: 10px;
color: #3181e5;
}
.dizhi {
::v-deep .el-cascader {
width: 100%;
}
}
::v-deep .el-date-editor.el-input,
.el-date-editor.el-input__inner {
width: 100%;
}
</style>