Commit 7a0ebf6c by crushh

Merge branch 'feature/十月迭代' into dev

parents 5256771c ef5a97aa
...@@ -304,7 +304,7 @@ export default { ...@@ -304,7 +304,7 @@ export default {
const blob = new Blob([res.data], { const blob = new Blob([res.data], {
type: 'application/vnd.ms-excel' type: 'application/vnd.ms-excel'
}); });
const fileName = `话务任务门店任务报表.csv`; const fileName = `话务任务门店任务报表.xls`;
const elink = document.createElement('a'); const elink = document.createElement('a');
elink.download = fileName; elink.download = fileName;
elink.style.display = 'none'; elink.style.display = 'none';
......
...@@ -16,6 +16,9 @@ ...@@ -16,6 +16,9 @@
<el-tabs v-model="activeName" @tab-click="handleTabClick"> <el-tabs v-model="activeName" @tab-click="handleTabClick">
<el-tab-pane :label="`${tab.label}(${countList[tab.type]})`" :name="tab.name" v-for="tab in tabsList" :key="tab.name"></el-tab-pane> <el-tab-pane :label="`${tab.label}(${countList[tab.type]})`" :name="tab.name" v-for="tab in tabsList" :key="tab.name"></el-tab-pane>
</el-tabs> </el-tabs>
<el-tooltip content="导出结果中会员姓名、手机号等敏感信息将进行加密,实现隐私保护" placement="top">
<i class="el-icon-warning-outline font-14 p-l-6 icon" v-show="enableDownloadCompleteData == 0"></i>
</el-tooltip>
<el-button :loading="loadingBtn" type="primary" class="btn" @click="beforeExportExcel">导出</el-button> <el-button :loading="loadingBtn" type="primary" class="btn" @click="beforeExportExcel">导出</el-button>
<el-table :data="tableData" style="width: 100%" height="200" v-loading="loading"> <el-table :data="tableData" style="width: 100%" height="200" v-loading="loading">
<el-table-column prop="memberName" label="会员姓名" show-overflow-tooltip> </el-table-column> <el-table-column prop="memberName" label="会员姓名" show-overflow-tooltip> </el-table-column>
...@@ -46,7 +49,15 @@ export default { ...@@ -46,7 +49,15 @@ export default {
default() { default() {
return 0; return 0;
} }
} },
date: {
type: [Array],
default() {
return [];
}
},
storeId: '',
ecmPlanName: ''
}, },
components: { components: {
exportDialog exportDialog
...@@ -99,7 +110,8 @@ export default { ...@@ -99,7 +110,8 @@ export default {
// 0未发送 1已发送 2发送失败 // 0未发送 1已发送 2发送失败
statusClassName: ['bg-C0C4CC', 'bg-33AF4A', 'bg-F5222D'], statusClassName: ['bg-C0C4CC', 'bg-33AF4A', 'bg-F5222D'],
statusLabel: ['未发送', '已发送', '发送失败'], statusLabel: ['未发送', '已发送', '发送失败'],
loadingBtn: false loadingBtn: false,
exportDialog: false
}; };
}, },
methods: { methods: {
...@@ -119,8 +131,24 @@ export default { ...@@ -119,8 +131,24 @@ export default {
*/ */
exportExcel(type) { exportExcel(type) {
this.loadingBtn = true; this.loadingBtn = true;
let para = {}; let url = '/haoban-task-manage-web/market/clue/export/store-view-task-detail-comp-detail';
postExcel('/haoban-app-tel-task-three-web/task/export-task-view-store-list', para) console.log(this.date);
let para = {
enterpriseId: sessionStorage.getItem('userInfoBrandId'),
dataType: type,
pageNum: this.pageParams.pageNum,
pageSize: this.pageParams.pageSize,
taskId: this.pageParams.taskId,
storeId: this.storeId,
sendStatus: this.tabsList[this.activeName].params
};
let fileName = this.date.length ? `群发任务-门店视图-任务详情-完成详情_${this.date[0]}${this.date[1]}.xls` : `群发任务-门店视图-任务详情-完成详情.xls`;
if (this.ecmPlanName) {
para.ecmPlanName = this.ecmPlanName;
url = '/haoban-task-manage-web/market/clue/export/plan-view-task-store-task-comp-detail';
fileName = this.date.length ? `群发任务-计划视图-任务门店详情-任务详情-完成详情_${this.date[0]}${this.date[1]}.xls` : `群发任务-计划视图-任务门店详情-任务详情-完成详情.xls`;
}
postExcel(url, para)
.then(res => { .then(res => {
this.loadingBtn = false; this.loadingBtn = false;
if (!res.data) { if (!res.data) {
...@@ -131,7 +159,6 @@ export default { ...@@ -131,7 +159,6 @@ export default {
const blob = new Blob([res.data], { const blob = new Blob([res.data], {
type: 'application/vnd.ms-excel' type: 'application/vnd.ms-excel'
}); });
const fileName = `话务任务视图详情门店报表.csv`;
const elink = document.createElement('a'); const elink = document.createElement('a');
elink.download = fileName; elink.download = fileName;
elink.style.display = 'none'; elink.style.display = 'none';
...@@ -254,4 +281,8 @@ export default { ...@@ -254,4 +281,8 @@ export default {
margin-bottom: 20px; margin-bottom: 20px;
float: right; float: right;
} }
.icon {
float: right;
margin: 10px 0 0 5px;
}
</style> </style>
...@@ -75,7 +75,7 @@ ...@@ -75,7 +75,7 @@
<el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="pageParams.pageNum" :page-sizes="[20, 40, 60, 80]" :page-size="pageParams.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"> </el-pagination> <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="pageParams.pageNum" :page-sizes="[20, 40, 60, 80]" :page-size="pageParams.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"> </el-pagination>
</div> </div>
</div> </div>
<salesleads-taskinfo :item="finishDetail" v-if="finishDetailShow" @close="close"></salesleads-taskinfo> <salesleads-taskinfo :item="finishDetail" :enableDownloadCompleteData="enableDownloadCompleteData" :date="pageParams.date" :storeId="$route.params.id" :ecmPlanName="$route.query.ecmPlanName" v-if="finishDetailShow" @close="close"></salesleads-taskinfo>
<detail-preview ref="detailPreview" :previewData="previewData" v-model="previewVisible" @closePreview="closePreview"></detail-preview> <detail-preview ref="detailPreview" :previewData="previewData" v-model="previewVisible" @closePreview="closePreview"></detail-preview>
</div> </div>
</div> </div>
...@@ -101,6 +101,12 @@ export default { ...@@ -101,6 +101,12 @@ export default {
default() { default() {
return ''; return '';
} }
},
enableDownloadCompleteData: {
type: String,
default() {
return '';
}
} }
}, },
data() { data() {
...@@ -173,8 +179,25 @@ export default { ...@@ -173,8 +179,25 @@ export default {
*/ */
exportExcel(type) { exportExcel(type) {
this.loadingBtn = true; this.loadingBtn = true;
let para = {}; let url = '/haoban-task-manage-web/market/clue/export/store-view-task-detail';
postExcel('/haoban-app-tel-task-three-web/task/export-task-view-store-list', para) let para = {
enterpriseId: sessionStorage.getItem('userInfoBrandId'),
dataType: 1,
pageNum: this.pageParams.pageNum,
pageSize: this.pageParams.pageSize,
startTime: this.pageParams.date[0],
endTime: this.pageParams.date[1],
storeId: this.$route.params.id,
taskTitle: this.pageParams.taskTitle,
finishOverStatus: this.pageParams.finishOverStatus
};
let fileName = this.pageParams.date.length ? `群发任务-门店视图-任务详情_${para.startTime}${para.endTime}.xls` : `群发任务-门店视图-任务详情.xls`;
if (this.$route.query.hasOwnProperty('ecmPlanName')) {
para.ecmPlanName = this.$route.query.ecmPlanName;
url = '/haoban-task-manage-web/market/clue/export/plan-view-task-store-task-detail';
fileName = this.pageParams.date.length ? `群发任务-计划视图-任务门店详情-任务详情_${para.startTime}${para.endTime}.xls` : `群发任务-计划视图-任务门店详情-任务详情.xls`;
}
postExcel(url, para)
.then(res => { .then(res => {
this.loadingBtn = false; this.loadingBtn = false;
if (!res.data) { if (!res.data) {
...@@ -185,7 +208,6 @@ export default { ...@@ -185,7 +208,6 @@ export default {
const blob = new Blob([res.data], { const blob = new Blob([res.data], {
type: 'application/vnd.ms-excel' type: 'application/vnd.ms-excel'
}); });
const fileName = `话务任务视图详情门店报表.csv`;
const elink = document.createElement('a'); const elink = document.createElement('a');
elink.download = fileName; elink.download = fileName;
elink.style.display = 'none'; elink.style.display = 'none';
...@@ -223,6 +245,7 @@ export default { ...@@ -223,6 +245,7 @@ export default {
*/ */
changeDate(e) { changeDate(e) {
if (!e) { if (!e) {
this.pageParams.date = [];
this.$store.dispatch('changeSales', []); this.$store.dispatch('changeSales', []);
} else { } else {
this.$store.dispatch('changeSales', e); this.$store.dispatch('changeSales', e);
...@@ -354,6 +377,7 @@ export default { ...@@ -354,6 +377,7 @@ export default {
}, },
mounted() { mounted() {
const that = this; const that = this;
console.log(this.enableDownloadCompleteData);
that.getFilterOpts(); that.getFilterOpts();
that.$nextTick(() => { that.$nextTick(() => {
that.getTableList(); that.getTableList();
......
...@@ -114,6 +114,7 @@ export default { ...@@ -114,6 +114,7 @@ export default {
pageNum: 1, pageNum: 1,
pageSize: 20, pageSize: 20,
storeGroup: [], storeGroup: [],
storeName: '',
date: this.$store.state.salesDate date: this.$store.state.salesDate
}, },
// 分页参数 // 分页参数
...@@ -144,10 +145,30 @@ export default { ...@@ -144,10 +145,30 @@ export default {
/** /**
* 导出 * 导出
*/ */
exportExcel(type) { exportExcel() {
this.loadingBtn = true; this.loadingBtn = true;
let para = {}; let url = '/haoban-task-manage-web/market/clue/export/store-view';
postExcel('/haoban-app-tel-task-three-web/task/export-task-view-store-list', para) let para = {
...this.pageParams,
enterpriseId: sessionStorage.getItem('userInfoBrandId'),
qywxEnterpriseId: JSON.parse(localStorage.getItem('userInfos')).wxEnterpriseId,
startTime: this.pageParams.date[0],
endTime: this.pageParams.date[1]
};
if (this.pageParams.storeGroup) {
let storeGroups = [];
this.pageParams.storeGroup.forEach(ele => {
storeGroups.push(ele.storeGroupId);
});
para.storeGroupIds = storeGroups.join(',') || '';
}
let fileName = this.pageParams.date.length ? `群发任务-门店视图_${para.startTime}${para.endTime}.xls` : `群发任务-门店视图.xls`;
if (this.$route.query.hasOwnProperty('ecmPlanName')) {
para = { ...para, ...this.$route.query };
url = '/haoban-task-manage-web/market/clue/export/plan-view-task-store-detail';
fileName = this.pageParams.date.length ? `群发任务-计划视图-任务门店详情_${para.startTime}${para.endTime}.xls` : `群发任务-计划视图-任务门店详情.xls`;
}
postExcel(url, para)
.then(res => { .then(res => {
this.loadingBtn = false; this.loadingBtn = false;
if (!res.data) { if (!res.data) {
...@@ -158,7 +179,6 @@ export default { ...@@ -158,7 +179,6 @@ export default {
const blob = new Blob([res.data], { const blob = new Blob([res.data], {
type: 'application/vnd.ms-excel' type: 'application/vnd.ms-excel'
}); });
const fileName = `话务任务视图详情门店报表.csv`;
const elink = document.createElement('a'); const elink = document.createElement('a');
elink.download = fileName; elink.download = fileName;
elink.style.display = 'none'; elink.style.display = 'none';
...@@ -201,6 +221,7 @@ export default { ...@@ -201,6 +221,7 @@ export default {
*/ */
changeDate(e) { changeDate(e) {
if (!e) { if (!e) {
this.pageParams.date = [];
this.$store.dispatch('changeSales', []); this.$store.dispatch('changeSales', []);
} else { } else {
this.$store.dispatch('changeSales', e); this.$store.dispatch('changeSales', e);
...@@ -277,7 +298,7 @@ export default { ...@@ -277,7 +298,7 @@ export default {
}, },
showDetail(item) { showDetail(item) {
if (this.$route.query.ecmPlanId) { if (this.$route.query.ecmPlanId) {
this.$router.push(`grStoreDetail/${item.storeId}?tab=2&ecmPlanId=${this.$route.query.ecmPlanId}`); this.$router.push(`grStoreDetail/${item.storeId}?tab=2&ecmPlanId=${this.$route.query.ecmPlanId}&ecmPlanName=${this.$route.query.ecmPlanName}`);
} else { } else {
this.$router.push(`grStoreDetail/${item.storeId}`); this.$router.push(`grStoreDetail/${item.storeId}`);
} }
......
...@@ -113,6 +113,7 @@ export default { ...@@ -113,6 +113,7 @@ export default {
pageNum: 1, pageNum: 1,
pageSize: 20, pageSize: 20,
taskType: 2, taskType: 2,
ecmPlanName: '',
date: this.$store.state.salesDate date: this.$store.state.salesDate
}, },
// 分页参数 // 分页参数
...@@ -142,8 +143,14 @@ export default { ...@@ -142,8 +143,14 @@ export default {
methods: { methods: {
exportExcel(type) { exportExcel(type) {
this.loadingBtn = true; this.loadingBtn = true;
let para = {}; let para = {
postExcel('/haoban-app-tel-task-three-web/task/export-task-view-store-list', para) ...this.pageParams,
enterpriseId: sessionStorage.getItem('userInfoBrandId'),
qywxEnterpriseId: JSON.parse(localStorage.getItem('userInfos')).wxEnterpriseId,
startTime: this.pageParams.date[0],
endTime: this.pageParams.date[1]
};
postExcel('/haoban-task-manage-web/market/clue/export/plan-view', para)
.then(res => { .then(res => {
this.loadingBtn = false; this.loadingBtn = false;
if (!res.data) { if (!res.data) {
...@@ -154,7 +161,7 @@ export default { ...@@ -154,7 +161,7 @@ export default {
const blob = new Blob([res.data], { const blob = new Blob([res.data], {
type: 'application/vnd.ms-excel' type: 'application/vnd.ms-excel'
}); });
const fileName = `话务任务视图详情门店报表.csv`; const fileName = this.pageParams.date.length ? `群发任务-计划视图_${para.startTime}${para.endTime}.xls` : `群发任务-计划视图.xls`;
const elink = document.createElement('a'); const elink = document.createElement('a');
elink.download = fileName; elink.download = fileName;
elink.style.display = 'none'; elink.style.display = 'none';
...@@ -193,6 +200,7 @@ export default { ...@@ -193,6 +200,7 @@ export default {
*/ */
changeDate(e) { changeDate(e) {
if (!e) { if (!e) {
this.pageParams.date = [];
this.$store.dispatch('changeSales', []); this.$store.dispatch('changeSales', []);
} else { } else {
this.$store.dispatch('changeSales', e); this.$store.dispatch('changeSales', e);
...@@ -257,7 +265,7 @@ export default { ...@@ -257,7 +265,7 @@ export default {
}); });
}, },
showDetail(item) { showDetail(item) {
this.$router.push(`grStoreList?ecmPlanId=${item.ecmPlanId}`); this.$router.push(`grStoreList?ecmPlanId=${item.ecmPlanId}&ecmPlanName=${item.ecmPlanName}`);
} }
}, },
watch: { watch: {
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
<el-button type="danger" @click="multDel">批量删除</el-button> <el-button type="danger" @click="multDel">批量删除</el-button>
<el-button class="m-l-10" type="primary" :loading="loadingBtn" @click="beforeExportExcel" plain>导出</el-button> <el-button class="m-l-10" type="primary" :loading="loadingBtn" @click="beforeExportExcel" plain>导出</el-button>
<el-tooltip content="导出结果中会员姓名、手机号等敏感信息将进行加密,实现隐私保护" placement="top"> <el-tooltip content="导出结果中会员姓名、手机号等敏感信息将进行加密,实现隐私保护" placement="top">
<i class="el-icon-warning-outline font-14 p-l-6" v-if="enableDownloadCompleteData == 0"></i> <i class="el-icon-warning-outline font-14 p-l-6" v-show="enableDownloadCompleteData == 0"></i>
</el-tooltip> </el-tooltip>
</div> </div>
</div> </div>
...@@ -384,7 +384,7 @@ export default { ...@@ -384,7 +384,7 @@ export default {
const blob = new Blob([res.data], { const blob = new Blob([res.data], {
type: 'application/vnd.ms-excel' type: 'application/vnd.ms-excel'
}); });
const fileName = `门店任务导购报表.csv`; const fileName = `门店任务导购报表.xls`;
const elink = document.createElement('a'); const elink = document.createElement('a');
elink.download = fileName; elink.download = fileName;
elink.style.display = 'none'; elink.style.display = 'none';
......
...@@ -306,7 +306,7 @@ export default { ...@@ -306,7 +306,7 @@ export default {
const blob = new Blob([res.data], { const blob = new Blob([res.data], {
type: 'application/vnd.ms-excel' type: 'application/vnd.ms-excel'
}); });
const fileName = `${that.tableData[0] ? that.tableData[0].storeName : ''}门店任务报表.csv`; const fileName = `${that.tableData[0] ? that.tableData[0].storeName : ''}门店任务报表.xls`;
const elink = document.createElement('a'); const elink = document.createElement('a');
elink.download = fileName; elink.download = fileName;
elink.style.display = 'none'; elink.style.display = 'none';
......
...@@ -23,7 +23,7 @@ import taskViewDetail from '@/components/app/taskViewDetail.vue'; ...@@ -23,7 +23,7 @@ import taskViewDetail from '@/components/app/taskViewDetail.vue';
<el-button type="danger" @click="multDel">批量删除</el-button> <el-button type="danger" @click="multDel">批量删除</el-button>
<el-button :loading="loadingBtn" type="primary" @click="beforeExportExcel">导出</el-button> <el-button :loading="loadingBtn" type="primary" @click="beforeExportExcel">导出</el-button>
<el-tooltip content="导出结果中会员姓名、手机号等敏感信息将进行加密,实现隐私保护" placement="top"> <el-tooltip content="导出结果中会员姓名、手机号等敏感信息将进行加密,实现隐私保护" placement="top">
<i class="el-icon-warning-outline font-14 p-l-6" v-if="enableDownloadCompleteData == 0"></i> <i class="el-icon-warning-outline font-14 p-l-6" v-show="enableDownloadCompleteData == 0"></i>
</el-tooltip> </el-tooltip>
</div> </div>
</div> </div>
...@@ -189,7 +189,7 @@ export default { ...@@ -189,7 +189,7 @@ export default {
startDate: that.conditionObj.dateRange[0] || '', startDate: that.conditionObj.dateRange[0] || '',
endDate: that.conditionObj.dateRange[1] || '', endDate: that.conditionObj.dateRange[1] || '',
ecmId: that.$route.query.ecmId, ecmId: that.$route.query.ecmId,
ecmName: this.$route.query.ecmName, ecmPlanName: this.$route.query.ecmName,
storeIds: that.selectRadio == 1 ? '' : that.multipleSelection.map(ele => ele.storeId).join(','), // 门店分组,数组 storeIds: that.selectRadio == 1 ? '' : that.multipleSelection.map(ele => ele.storeId).join(','), // 门店分组,数组
gicEnterpriseId: that.activeBrand, // 品牌 id gicEnterpriseId: that.activeBrand, // 品牌 id
selectType: that.selectRadio == 2 && that.multipleSelection.length ? 0 : this.selectRadio, selectType: that.selectRadio == 2 && that.multipleSelection.length ? 0 : this.selectRadio,
...@@ -206,7 +206,7 @@ export default { ...@@ -206,7 +206,7 @@ export default {
const blob = new Blob([res.data], { const blob = new Blob([res.data], {
type: 'application/vnd.ms-excel' type: 'application/vnd.ms-excel'
}); });
const fileName = `话务任务视图详情门店报表.csv`; const fileName = `话务任务视图详情门店报表.xls`;
const elink = document.createElement('a'); const elink = document.createElement('a');
elink.download = fileName; elink.download = fileName;
elink.style.display = 'none'; elink.style.display = 'none';
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment