Commit 3d91e9e7 by crushh

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

parents cce0e8c8 934e3cd4
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<el-option label="按导购" value="1"></el-option> <el-option label="按导购" value="1"></el-option>
<!-- <el-option label="按会员" value="2"></el-option> --> <!-- <el-option label="按会员" value="2"></el-option> -->
</el-select> </el-input </el-select> </el-input
><el-date-picker class="m-l-10 w-330" style="width: 330px" prefix-icon="el-icon-time" :picker-options="pickerOptions" v-model="conditionObj.dateRange" @change="changeDate" :editable="false" :value-format="'yyyy-MM-dd'" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间"> </el-date-picker><el-button :disabled="!tableData.length ? true : false" class="m-l-10 export-btn" type="primary" :loading="loadingBtn" @click="exportExcel"><i class="iconfont icon-icon_yunxiazai p-r-6"></i>导出核销记录</el-button> ><el-date-picker class="m-l-10 w-330" style="width: 330px" prefix-icon="el-icon-time" :picker-options="pickerOptions" v-model="conditionObj.dateRange" @change="changeDate" :editable="false" :value-format="'yyyy-MM-dd'" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间"> </el-date-picker><el-button :disabled="!tableData.length ? true : false" class="m-l-10 export-btn" type="primary" :loading="loadingBtn" @click="exportExcel">导出核销记录</el-button>
</div> </div>
</div> </div>
<div> <div>
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
<el-option label="按导购" value="1"></el-option> <el-option label="按导购" value="1"></el-option>
<!-- <el-option label="按会员" value="2"></el-option> --> <!-- <el-option label="按会员" value="2"></el-option> -->
</el-select> </el-input </el-select> </el-input
><el-date-picker class="m-l-10" style="width: 272px;" prefix-icon="el-icon-time" :picker-options="pickerOptions" v-model="conditionObj.dateRange" @change="changeDate" :editable="false" :value-format="'yyyy-MM-dd'" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间"> </el-date-picker><el-button :disabled="!tableData.length ? true : false" class="m-l-10 export-btn" type="primary" :loading="loadingBtn" @click="exportExcel"><i class="iconfont icon-icon_yunxiazai p-r-6"></i>导出发送记录</el-button> ><el-date-picker class="m-l-10" style="width: 272px;" prefix-icon="el-icon-time" :picker-options="pickerOptions" v-model="conditionObj.dateRange" @change="changeDate" :editable="false" :value-format="'yyyy-MM-dd'" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间"> </el-date-picker><el-button :disabled="!tableData.length ? true : false" class="m-l-10 export-btn" type="primary" :loading="loadingBtn" @click="exportExcel">导出发送记录</el-button>
</div> </div>
</div> </div>
<div> <div>
......
...@@ -31,7 +31,8 @@ ...@@ -31,7 +31,8 @@
<span style="font-size:14px;" class="m-l-10">创建时间:</span><el-date-picker class="m-l-10" v-model="conditionObj.dateRange" @change="changeDate" :editable="false" :value-format="'yyyy-MM-dd'" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> </el-date-picker> <span style="font-size:14px;" class="m-l-10">创建时间:</span><el-date-picker class="m-l-10" v-model="conditionObj.dateRange" @change="changeDate" :editable="false" :value-format="'yyyy-MM-dd'" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> </el-date-picker>
</div> </div>
<div class="table-condition-right"> <div class="table-condition-right">
<el-button type="danger" @click="multDel">批量删除</el-button><el-button :loading="loadingBtn" type="primary" @click="exportExcel"><i class="iconfont icon-icon_yunxiazai p-r-6"></i>导出</el-button> <el-button type="danger" @click="multDel">批量删除</el-button>
<el-button :loading="loadingBtn" type="primary" @click="exportExcel">导出</el-button>
</div> </div>
</div> </div>
<el-table class="select-table" ref="multipleTable" :key="tableRefresh" v-loading="loading" :data="tableData" tooltip-effect="dark" :style="{ width: '100%', minHeight: tableH }" @selection-change="handleSelectionChange"> <el-table class="select-table" ref="multipleTable" :key="tableRefresh" v-loading="loading" :data="tableData" tooltip-effect="dark" :style="{ width: '100%', minHeight: tableH }" @selection-change="handleSelectionChange">
...@@ -371,7 +372,7 @@ export default { ...@@ -371,7 +372,7 @@ export default {
*/ */
toDetail(index, row) { toDetail(index, row) {
let that = this; let that = this;
that.$router.push(`taskViewDetail?ecmId=${row.ecmId}`); that.$router.push(`taskViewDetail?ecmId=${row.ecmId}&ecmName=${row.ecmName}`);
}, },
/** /**
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
<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-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>
<el-table-column prop="sendStatus" label="发送状态" width="176"> <el-table-column prop="sendStatus" label="发送状态" width="176">
...@@ -25,10 +26,12 @@ ...@@ -25,10 +26,12 @@
</el-table> </el-table>
<el-pagination background layout="prev, pager, next" :total="total" :page-size="pageParams.pageSize" style="text-align:right;" @current-change="handlePageChange"> </el-pagination> <el-pagination background layout="prev, pager, next" :total="total" :page-size="pageParams.pageSize" style="text-align:right;" @current-change="handlePageChange"> </el-pagination>
</div> </div>
<export-dialog :dialogVisible="exportDialog" @export="exportExcel" @update:dialogVisible="changeExportDialog" />
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import { getRequest } from '@/api/api'; import { getRequest, postExcel } from '@/api/api';
import exportDialog from '@/components/common/export-dialog.vue';
import errMsg from '@/common/js/error'; import errMsg from '@/common/js/error';
export default { export default {
props: { props: {
...@@ -37,9 +40,17 @@ export default { ...@@ -37,9 +40,17 @@ export default {
default() { default() {
return {}; return {};
} }
},
enableDownloadCompleteData: {
type: [Number, String],
default() {
return 0;
}
} }
}, },
components: {}, components: {
exportDialog
},
data() { data() {
return { return {
loading: false, loading: false,
...@@ -87,10 +98,58 @@ export default { ...@@ -87,10 +98,58 @@ export default {
tableData: [], tableData: [],
// 0未发送 1已发送 2发送失败 // 0未发送 1已发送 2发送失败
statusClassName: ['bg-C0C4CC', 'bg-33AF4A', 'bg-F5222D'], statusClassName: ['bg-C0C4CC', 'bg-33AF4A', 'bg-F5222D'],
statusLabel: ['未发送', '已发送', '发送失败'] statusLabel: ['未发送', '已发送', '发送失败'],
loadingBtn: false
}; };
}, },
methods: { methods: {
beforeExportExcel() {
if (this.enableDownloadCompleteData == 1) {
this.exportDialog = true;
} else {
this.exportExcel(0);
}
},
changeExportDialog() {
this.exportDialog = false;
this.multipleSelection = [];
},
/**
* 导出
*/
exportExcel(type) {
this.loadingBtn = true;
let para = {};
postExcel('/haoban-app-tel-task-three-web/task/export-task-view-store-list', para)
.then(res => {
this.loadingBtn = false;
if (!res.data) {
errMsg.errorMsg('暂无数据');
return false;
}
// let resData = res.data;
const blob = new Blob([res.data], {
type: 'application/vnd.ms-excel'
});
const fileName = `话务任务视图详情门店报表.csv`;
const elink = document.createElement('a');
elink.download = fileName;
elink.style.display = 'none';
elink.href = URL.createObjectURL(blob);
document.body.appendChild(elink);
elink.click();
URL.revokeObjectURL(elink.href); // 释放URL 对象
document.body.removeChild(elink);
// errMsg.errorMsg(resData);
})
.catch(function(error) {
this.loadingBtn = false;
this.$message.error({
duration: 1000,
message: error.message
});
});
},
close() { close() {
this.$emit('close'); this.$emit('close');
}, },
...@@ -190,4 +249,9 @@ export default { ...@@ -190,4 +249,9 @@ export default {
>>> .el-table__empty-block { >>> .el-table__empty-block {
min-height: 150px; min-height: 150px;
} }
.btn {
height: 32px;
margin-bottom: 20px;
float: right;
}
</style> </style>
...@@ -99,6 +99,21 @@ const timeStampToYmd = function(data) { ...@@ -99,6 +99,21 @@ const timeStampToYmd = function(data) {
}; };
/** /**
* 时间戳---> 年-月-日
* @param timestamp
*/
const timeStampToYmd2 = function(data) {
if (!data) {
return;
}
let date = new Date(data - 1000 * 60 * 60 * 24);
let month = date.getMonth() + 1;
let day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
let newMonth = month < 10 ? '0' + month : month;
return `${date.getFullYear()}-${newMonth}-${day}`;
};
/**
* 时间戳---> 时:分:秒 * 时间戳---> 时:分:秒
* @param timestamp * @param timestamp
*/ */
...@@ -193,6 +208,7 @@ export default { ...@@ -193,6 +208,7 @@ export default {
timeStampToHms, timeStampToHms,
formatTimeYmdHms, formatTimeYmdHms,
formatPhoneNum, formatPhoneNum,
timeStampToYmd2,
formatName, formatName,
timeStampSpace, timeStampSpace,
formatTime formatTime
......
...@@ -21,6 +21,9 @@ ...@@ -21,6 +21,9 @@
<el-input placeholder="请输入卡券名称" maxlength="50" v-model="searchInput" class="w-264" style="width: 264px;" @keyup.native="value => toInput(value, searchInput)" clearable @clear="clearInput"> <i slot="prefix" class="el-input__icon el-icon-search"></i> </el-input> <el-input placeholder="请输入卡券名称" maxlength="50" v-model="searchInput" class="w-264" style="width: 264px;" @keyup.native="value => toInput(value, searchInput)" clearable @clear="clearInput"> <i slot="prefix" class="el-input__icon el-icon-search"></i> </el-input>
<span style="font-size:14px;" class="m-l-10">卡券创建时间:</span> <span style="font-size:14px;" class="m-l-10">卡券创建时间:</span>
<el-date-picker v-model="dateRange" @change="changeDate" :editable="false" :value-format="'yyyy-MM-dd'" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> </el-date-picker> <el-date-picker v-model="dateRange" @change="changeDate" :editable="false" :value-format="'yyyy-MM-dd'" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> </el-date-picker>
<el-select class="m-l-10" v-model="cardStatus" placeholder="卡券状态" @change="changeCardStatus">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select>
</div> </div>
<el-table class="select-table" ref="multipleTable" v-loading="loading" :data="tableData" tooltip-effect="dark" style="width: calc(100% - 3px);"> <el-table class="select-table" ref="multipleTable" v-loading="loading" :data="tableData" tooltip-effect="dark" style="width: calc(100% - 3px);">
<el-table-column prop="" label="卡券名称" show-overflow-tooltip> <el-table-column prop="" label="卡券名称" show-overflow-tooltip>
...@@ -29,7 +32,7 @@ ...@@ -29,7 +32,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="" label="" width="96"> <el-table-column prop="" label="" width="96">
<template slot="header" slot-scope="scope"> <template #header>
<el-tooltip class="item" effect="dark" content="发送卡券数量,包含扫码发券数" placement="right"> <el-tooltip class="item" effect="dark" content="发送卡券数量,包含扫码发券数" placement="right">
<span style="cursor: pointer;padding-bottom: 2px; border-bottom: 1px dashed #2F54EB;">发送数量</span> <span style="cursor: pointer;padding-bottom: 2px; border-bottom: 1px dashed #2F54EB;">发送数量</span>
</el-tooltip> </el-tooltip>
...@@ -60,7 +63,7 @@ ...@@ -60,7 +63,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column width="150"> <el-table-column width="150">
<template slot="header" slot-scope="scope"> <template #header>
<el-tooltip class="item" effect="dark" content="发送卡券的导购总人数,次日刷新" placement="right"> <el-tooltip class="item" effect="dark" content="发送卡券的导购总人数,次日刷新" placement="right">
<span style="cursor: pointer;padding-bottom: 2px; border-bottom: 1px dashed #2F54EB;">导购人数</span> <span style="cursor: pointer;padding-bottom: 2px; border-bottom: 1px dashed #2F54EB;">导购人数</span>
</el-tooltip> </el-tooltip>
...@@ -74,6 +77,16 @@ ...@@ -74,6 +77,16 @@
{{ scope.row.createTime | formatTimeStamp }} {{ scope.row.createTime | formatTimeStamp }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column width="200" label="卡券模板有效期">
<template slot-scope="scope">
{{ scope.row.templateValidity }}
</template>
</el-table-column>
<el-table-column width="100" label="卡券状态">
<template slot-scope="scope">
<span :style="scope.row.statusCode == 2 ? 'color:#F5222D' : ''"> {{ scope.row.statusCode | formatStatusCode }}</span>
</template>
</el-table-column>
<el-table-column prop="" width="200" label="操作" fixed="right"> <el-table-column prop="" width="200" label="操作" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" @click="showSendRecord(scope.$index, scope.row, '1')">发送记录</el-button> <el-button type="text" @click="showSendRecord(scope.$index, scope.row, '1')">发送记录</el-button>
...@@ -113,6 +126,7 @@ export default { ...@@ -113,6 +126,7 @@ export default {
dateRange: '', dateRange: '',
searchInput: '', searchInput: '',
tableData: [], tableData: [],
cardStatus: '',
loading: false, loading: false,
// 分页参数 // 分页参数
currentPage: 1, currentPage: 1,
...@@ -121,12 +135,29 @@ export default { ...@@ -121,12 +135,29 @@ export default {
getRecordShow: false, getRecordShow: false,
sendRecordShow: false, sendRecordShow: false,
coupCardId: '', coupCardId: '',
cardName: '' cardName: '',
options: [
{ label: '全部', value: '' },
{ label: '已过期', value: 2 },
{ label: '正常', value: 1 }
]
}; };
}, },
filters: { filters: {
percenteNum(val) { percenteNum(val) {
return val > 0 ? Number(val * 100).toFixed(2) + '%' : Number(val).toFixed(2) + '%'; return val > 0 ? Number(val * 100).toFixed(2) + '%' : Number(val).toFixed(2) + '%';
},
formatStatusCode(value) {
let val = '--';
switch (value) {
case 1:
val = '正常';
break;
case 2:
val = '已过期';
break;
}
return val;
} }
}, },
watch: { watch: {
...@@ -147,6 +178,10 @@ export default { ...@@ -147,6 +178,10 @@ export default {
this.currentPage = 1; this.currentPage = 1;
this.getTableList(); this.getTableList();
}, },
changeCardStatus() {
this.currentPage = 1;
this.getTableList();
},
showGetRecord(index, row) { showGetRecord(index, row) {
const that = this; const that = this;
that.coupCardId = row.coupCardId; that.coupCardId = row.coupCardId;
...@@ -221,7 +256,8 @@ export default { ...@@ -221,7 +256,8 @@ export default {
pageNum: that.currentPage, // 当前页 pageNum: that.currentPage, // 当前页
pageSize: that.pageSize, // 一页显示个数 pageSize: that.pageSize, // 一页显示个数
startDate: this.dateRange[0] || '', startDate: this.dateRange[0] || '',
endDate: this.dateRange[1] || '' endDate: this.dateRange[1] || '',
cardStatus: this.cardStatus
}; };
postRequest('/haoban-app-customer-web/cardCoupon/find-card-log-page', para) postRequest('/haoban-app-customer-web/cardCoupon/find-card-log-page', para)
.then(res => { .then(res => {
......
...@@ -18,6 +18,15 @@ ...@@ -18,6 +18,15 @@
</div> </div>
<div v-else class="card-add-btn text-center cursor-pointer" @click="showCard"><span class="el-icon-plus font-12 color-909399"></span><span class="font-14 color-909399 p-l-8">添加卡券</span></div> <div v-else class="card-add-btn text-center cursor-pointer" @click="showCard"><span class="el-icon-plus font-12 color-909399"></span><span class="font-14 color-909399 p-l-8">添加卡券</span></div>
</el-form-item> </el-form-item>
<el-form-item prop="coupCardId">
<span slot="label">
<el-tooltip class="item" effect="dark" content="此领取次数表示导购将该卡券发送给顾客后可领取的总次数,顾客可将该卡券转发给他人,但领取次数受此控制" placement="top-start"> <span style="cursor: pointer;padding-bottom: 2px; border-bottom: 1px dashed #2F54EB;">领取次数</span></el-tooltip>
</span>
<el-radio-group v-model="radio">
<el-radio :label="1">固定1次</el-radio>
<el-radio :label="0">不限次数</el-radio>
</el-radio-group>
</el-form-item>
<div class="el-form-item el-form-item--large"> <div class="el-form-item el-form-item--large">
<label for="name" class="el-form-item__label" style="width: 120px; cursor: pointer;"> <label for="name" class="el-form-item__label" style="width: 120px; cursor: pointer;">
<el-tooltip class="item" effect="dark" content="卡券的发送范围设置" placement="top-start"> <span style="cursor: pointer;padding-bottom: 2px; border-bottom: 1px dashed #2F54EB;">选择发送范围</span></el-tooltip> <el-tooltip class="item" effect="dark" content="卡券的发送范围设置" placement="top-start"> <span style="cursor: pointer;padding-bottom: 2px; border-bottom: 1px dashed #2F54EB;">选择发送范围</span></el-tooltip>
...@@ -156,7 +165,8 @@ export default { ...@@ -156,7 +165,8 @@ export default {
}, },
cardSelectShow: false, cardSelectShow: false,
addTag: true, // 默认是添加 addTag: true, // 默认是添加
loadingBtn: false loadingBtn: false,
radio: 1
}; };
}, },
methods: { methods: {
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
</div> </div>
<div class="table-condition-right"> <div class="table-condition-right">
<el-button type="danger" @click="multDel">批量删除</el-button> <el-button type="danger" @click="multDel">批量删除</el-button>
<el-button type="primary" :loading="loadingBtn" @click="exportExcel"><i class="iconfont icon-icon_yunxiazai p-r-6"></i>导出</el-button> <el-button type="primary" :loading="loadingBtn" @click="exportExcel">导出</el-button>
</div> </div>
</div> </div>
<el-table class="select-table" ref="multipleTable" v-loading="loading" :data="tableData" tooltip-effect="dark" :style="{ width: '100%', minHeight: tableH }" @selection-change="handleSelectionChange"> <el-table class="select-table" ref="multipleTable" v-loading="loading" :data="tableData" tooltip-effect="dark" :style="{ width: '100%', minHeight: tableH }" @selection-change="handleSelectionChange">
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<el-date-picker style="width:310px" class="m-l-10" v-model="conditionObj.dateRange" @change="changeDate" :editable="false" :value-format="'yyyy-MM'" type="monthrange" align="right" unlink-panels range-separator="至" start-placeholder="开始月份" end-placeholder="结束月份"> </el-date-picker> <el-date-picker style="width:310px" class="m-l-10" v-model="conditionObj.dateRange" @change="changeDate" :editable="false" :value-format="'yyyy-MM'" type="monthrange" align="right" unlink-panels range-separator="至" start-placeholder="开始月份" end-placeholder="结束月份"> </el-date-picker>
</div> </div>
<div class="table-condition-right"> <div class="table-condition-right">
<el-button type="primary" :loading="loadingBtn" @click="exportExcel"><i class="iconfont icon-icon_yunxiazai p-r-6"></i>导出</el-button> <el-button type="primary" :loading="loadingBtn" @click="exportExcel">导出</el-button>
</div> </div>
</div> </div>
<el-table class="select-table" ref="multipleTable" v-loading="loading" :data="tableData" tooltip-effect="dark" :style="{ width: '100%', minHeight: tableH }"> <el-table class="select-table" ref="multipleTable" v-loading="loading" :data="tableData" tooltip-effect="dark" :style="{ width: '100%', minHeight: tableH }">
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
<div class="table-search m-t-20"> <div class="table-search m-t-20">
<div class="flex flex-space-between"> <div class="flex flex-space-between">
<div><gic-select-group-mult :selectData="groupIds" @checkGroupIds="checkGroupIds"> </gic-select-group-mult><span class="font-14 color-606266 p-l-10">筛选条件下,昨日人员名单如下:</span></div> <div><gic-select-group-mult :selectData="groupIds" @checkGroupIds="checkGroupIds"> </gic-select-group-mult><span class="font-14 color-606266 p-l-10">筛选条件下,昨日人员名单如下:</span></div>
<el-button type="primary" :loading="loadingBtn" @click="exportExcel"><i class="iconfont icon-icon_yunxiazai p-r-6"></i>导出</el-button> <el-button type="primary" :loading="loadingBtn" @click="exportExcel">导出</el-button>
</div> </div>
</div> </div>
<div class="m-t-20"> <div class="m-t-20">
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
<div> <div>
<el-date-picker v-model="selectTableDay" :value-format="'yyyy-MM-dd'" type="date" placeholder="选择日期" :clearable="false" :picker-options="pickerOptions" @change="changeTableDate"> </el-date-picker><gic-select-group-mult class="m-l-10" :selectData="groupIds" @checkGroupIds="checkGroupIds"> </gic-select-group-mult><span class="font-14 color-606266 p-l-10">当日筛选区域下门店总计为 {{ total }} 家:</span> <el-date-picker v-model="selectTableDay" :value-format="'yyyy-MM-dd'" type="date" placeholder="选择日期" :clearable="false" :picker-options="pickerOptions" @change="changeTableDate"> </el-date-picker><gic-select-group-mult class="m-l-10" :selectData="groupIds" @checkGroupIds="checkGroupIds"> </gic-select-group-mult><span class="font-14 color-606266 p-l-10">当日筛选区域下门店总计为 {{ total }} 家:</span>
</div> </div>
<el-button type="primary" :loading="loadingBtn" @click="exportExcel"><i class="iconfont icon-icon_yunxiazai p-r-6"></i>导出</el-button> <el-button type="primary" :loading="loadingBtn" @click="exportExcel">导出</el-button>
</div> </div>
</div> </div>
<div class="m-t-20"> <div class="m-t-20">
......
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
<div> <div>
<el-date-picker v-model="selectEndDay" :value-format="'yyyy-MM-dd'" type="date" placeholder="选择日期" :clearable="false" :picker-options="pickerOptions" @change="changeTableDate"> </el-date-picker><gic-select-group-mult class="m-l-10" :selectData="groupIds" @checkGroupIds="checkGroupIds"> </gic-select-group-mult><span class="font-14 color-606266 p-l-10">筛选条件下,{{ activeName == 'second' ? '未' : '' }}登录人员有 {{ total }} 人,名单如下:</span> <el-date-picker v-model="selectEndDay" :value-format="'yyyy-MM-dd'" type="date" placeholder="选择日期" :clearable="false" :picker-options="pickerOptions" @change="changeTableDate"> </el-date-picker><gic-select-group-mult class="m-l-10" :selectData="groupIds" @checkGroupIds="checkGroupIds"> </gic-select-group-mult><span class="font-14 color-606266 p-l-10">筛选条件下,{{ activeName == 'second' ? '未' : '' }}登录人员有 {{ total }} 人,名单如下:</span>
</div> </div>
<el-button type="primary" :loading="loadingBtn" @click="exportExcel"><i class="iconfont icon-icon_yunxiazai p-r-6"></i>导出</el-button> <el-button type="primary" :loading="loadingBtn" @click="exportExcel">导出</el-button>
</div> </div>
</div> </div>
<div class="m-t-20"> <div class="m-t-20">
......
...@@ -10,23 +10,28 @@ ...@@ -10,23 +10,28 @@
<div role="alert" class="el-alert el-alert--info flex flex-align-start "> <div role="alert" class="el-alert el-alert--info flex flex-align-start ">
<i class="el-alert__icon el-icon-warning font-12 color-2f54eb"></i> <i class="el-alert__icon el-icon-warning font-12 color-2f54eb"></i>
<div class="el-alert__content"> <div class="el-alert__content">
<span class="el-alert__title color-303133 font-13">筛选时间:{{ dateStart | timeStampToYmd }}{{ dateEnd | timeStampToYmd }}</span> <span class="el-alert__title color-303133 font-13">筛选时间:{{ dateStart | timeStampToYmd2 }}{{ dateEnd | timeStampToYmd2 }}</span>
</div> </div>
</div> </div>
</div> </div>
<div class="table-condition-search m-t-20 flex flex-align-center"> <div class="table-condition-search flex flex-space-between m-t-20">
<div class="table-condition-left">
<span style="font-size:14px;margin-right:-4px;">创建时间:</span><el-date-picker prefix-icon="el-icon-time" :picker-options="pickerOptions" v-model="pageParams.date" @change="reFetch" :value-format="'yyyy-MM-dd'" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间"> </el-date-picker> <span style="font-size:14px;margin-right:-4px;">创建时间:</span><el-date-picker prefix-icon="el-icon-time" :picker-options="pickerOptions" v-model="pageParams.date" @change="reFetch" :value-format="'yyyy-MM-dd'" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间"> </el-date-picker>
<el-select class="w-103 m-l-10" v-model="pageParams.finishOverStatus" slot="prepend" placeholder="所有完成情况" @change="reFetch"> <el-select class="w-103 m-l-10" v-model="pageParams.finishOverStatus" slot="prepend" placeholder="所有完成情况" @change="reFetch">
<el-option :label="item.text" :value="item.id" v-for="item in filterOpts" :key="'filter' + item.id"></el-option> <el-option :label="item.text" :value="item.id" v-for="item in filterOpts" :key="'filter' + item.id"></el-option>
</el-select> </el-select>
<el-input placeholder="请输入任务标题" prefix-icon="el-icon-search" v-model="pageParams.taskTitle" class="w-260 m-l-10" @change="reFetch" clearable> </el-input> <el-input placeholder="请输入任务标题" prefix-icon="el-icon-search" v-model="pageParams.taskTitle" class="w-260 m-l-10" @change="reFetch" clearable> </el-input>
</div> </div>
<div class="table-condition-right">
<el-button :loading="loadingBtn" type="primary" @click="exportExcel">导出</el-button>
</div>
</div>
<div class="m-t-20"> <div class="m-t-20">
<el-table v-loading="loading" class="select-table" ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%;"> <el-table v-loading="loading" class="select-table" ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%;">
<el-table-column label="任务标题" show-overflow-tooltip min-width="120"> <el-table-column label="任务标题" show-overflow-tooltip min-width="120">
<template slot-scope="scope">{{ scope.row.taskTitle || '--' }}</template> <template slot-scope="scope">{{ scope.row.taskTitle || '--' }}</template>
</el-table-column> </el-table-column>
<el-table-column prop="" label="指派对象" min-width="200"> <el-table-column prop="" label="导购" min-width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="flex flex-align-center personal-info"> <div class="flex flex-align-center personal-info">
<el-image :src="scope.row.executeClerkClerkImgUrl || headDefault" fit="cover"></el-image> <el-image :src="scope.row.executeClerkClerkImgUrl || headDefault" fit="cover"></el-image>
...@@ -83,7 +88,7 @@ ...@@ -83,7 +88,7 @@
import salesleadsTaskinfo from '@/components/review/salesleads-task-info.vue'; import salesleadsTaskinfo from '@/components/review/salesleads-task-info.vue';
import headDefault from '@/assets/head_default.jpg'; import headDefault from '@/assets/head_default.jpg';
import navCrumb from '@/components/nav/nav.vue'; import navCrumb from '@/components/nav/nav.vue';
import { getRequest, postRequest } from '@/api/api'; import { getRequest, postRequest, postExcel } from '@/api/api';
import errMsg from '@/common/js/error'; import errMsg from '@/common/js/error';
import { _debounce } from '@/common/js/public'; import { _debounce } from '@/common/js/public';
import detailPreview from '@/components/review/salesleads-detail-preview.vue'; import detailPreview from '@/components/review/salesleads-detail-preview.vue';
...@@ -120,7 +125,8 @@ export default { ...@@ -120,7 +125,8 @@ export default {
finishOverStatus: '0', finishOverStatus: '0',
taskType: 2, taskType: 2,
pageNum: 1, pageNum: 1,
pageSize: 20 pageSize: 20,
date: []
}, },
filterOpts: [], filterOpts: [],
overdueOpts: [ overdueOpts: [
...@@ -153,14 +159,69 @@ export default { ...@@ -153,14 +159,69 @@ export default {
pickerOptions: { pickerOptions: {
disabledDate: time => { disabledDate: time => {
const end = new Date(); const end = new Date();
return time.getTime() < end.getTime() - 3600 * 1000 * 24 * 365 || time.getTime() > end.getTime(); return time.getTime() < end.getTime() - 3600 * 1000 * 24 * 365 || time.getTime() > end.getTime() - 3600 * 1000 * 24;
}
} }
},
loadingBtn: false
}; };
}, },
computed: {}, computed: {},
methods: { methods: {
/** /**
* 导出
*/
exportExcel(type) {
this.loadingBtn = true;
let para = {};
postExcel('/haoban-app-tel-task-three-web/task/export-task-view-store-list', para)
.then(res => {
this.loadingBtn = false;
if (!res.data) {
errMsg.errorMsg('暂无数据');
return false;
}
// let resData = res.data;
const blob = new Blob([res.data], {
type: 'application/vnd.ms-excel'
});
const fileName = `话务任务视图详情门店报表.csv`;
const elink = document.createElement('a');
elink.download = fileName;
elink.style.display = 'none';
elink.href = URL.createObjectURL(blob);
document.body.appendChild(elink);
elink.click();
URL.revokeObjectURL(elink.href); // 释放URL 对象
document.body.removeChild(elink);
// errMsg.errorMsg(resData);
})
.catch(function(error) {
this.loadingBtn = false;
this.$message.error({
duration: 1000,
message: error.message
});
});
},
/**
* 取得间隔三个月的日期
*/
initDataRange() {
let date = new Date(new Date().getTime() - 24 * 3600 * 1000);
let nowTime = date.getTime() - 90 * 24 * 3600 * 1000;
let year = date.getFullYear();
let month = date.getMonth() + 1;
let day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
let newMonth = month < 10 ? '0' + month : month;
let startDate = new Date(nowTime);
let startYear = startDate.getFullYear();
let startMonth = startDate.getMonth() + 1;
let startDay = startDate.getDate() < 10 ? '0' + startDate.getDate() : startDate.getDate();
let startNewMonth = startMonth < 10 ? '0' + startMonth : startMonth;
return [`${startYear}-${startNewMonth}-${startDay}`, `${year}-${newMonth}-${day}`];
},
/**
* 路由跳转 * 路由跳转
*/ */
changeRoute(path) { changeRoute(path) {
...@@ -298,6 +359,7 @@ export default { ...@@ -298,6 +359,7 @@ export default {
}, },
mounted() { mounted() {
const that = this; const that = this;
this.pageParams.date = this.initDataRange();
that.getFilterOpts(); that.getFilterOpts();
that.$nextTick(() => { that.$nextTick(() => {
that.getTableList(); that.getTableList();
...@@ -418,14 +480,5 @@ export default { ...@@ -418,14 +480,5 @@ export default {
margin-right: 10px; margin-right: 10px;
} }
} }
.point {
display: inline-block;
width: 6px;
height: 6px;
vertical-align: top;
margin-top: 8px;
border-radius: 100%;
margin-right: 5px;
}
</style> </style>
<style lang="sass"></style> <style lang="sass"></style>
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<div role="alert" class="el-alert el-alert--info flex flex-align-start "> <div role="alert" class="el-alert el-alert--info flex flex-align-start ">
<i class="el-alert__icon el-icon-warning font-12 color-2f54eb"></i> <i class="el-alert__icon el-icon-warning font-12 color-2f54eb"></i>
<div class="el-alert__content"> <div class="el-alert__content">
<span class="el-alert__title color-303133 font-13">仅展示近一年数据,数据截取时间:{{ dateStart | timeStampToYmd }}{{ dateEnd | timeStampToYmd }}</span> <span class="el-alert__title color-303133 font-13">仅展示近一年数据,数据截取时间:{{ dateStart | timeStampToYmd2 }}{{ dateEnd | timeStampToYmd2 }}</span>
</div> </div>
</div> </div>
<el-popover placement="bottom-start" width="550" trigger="click" popper-class="salesleads-popover"> <el-popover placement="bottom-start" width="550" trigger="click" popper-class="salesleads-popover">
...@@ -20,11 +20,16 @@ ...@@ -20,11 +20,16 @@
</div> </div>
</el-popover> </el-popover>
</div> </div>
<div class="table-condition-search m-t-20"> <div class="table-condition-search flex flex-space-between m-t-20">
<div class="table-condition-left">
<el-input placeholder="请输入门店名称" prefix-icon="el-icon-search" v-model="pageParams.storeName" class="w-260" @change="reFetch" clearable> </el-input> <el-input placeholder="请输入门店名称" prefix-icon="el-icon-search" v-model="pageParams.storeName" class="w-260" @change="reFetch" clearable> </el-input>
<gic-select-group :brandId="brandId" class="m-l-10" :width="213" :selectData="pageParams.storeGroup" @checkGroupIds="checkGroupIds"> </gic-select-group> <gic-select-group :brandId="brandId" class="m-l-10" :width="213" :selectData="pageParams.storeGroup" @checkGroupIds="checkGroupIds"> </gic-select-group>
<el-date-picker class="m-l-10" prefix-icon="el-icon-time" :picker-options="pickerOptions" v-model="pageParams.date" @change="reFetch" :value-format="'yyyy-MM-dd'" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间"> </el-date-picker> <el-date-picker class="m-l-10" prefix-icon="el-icon-time" :picker-options="pickerOptions" v-model="pageParams.date" @change="reFetch" :value-format="'yyyy-MM-dd'" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间"> </el-date-picker>
</div> </div>
<div class="table-condition-right">
<el-button :loading="loadingBtn" type="primary" @click="exportExcel">导出</el-button>
</div>
</div>
<div class="m-t-20"> <div class="m-t-20">
<el-table v-loading="loading" class="select-table" ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%;"> <el-table v-loading="loading" class="select-table" ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%;">
<el-table-column label="门店名称" show-overflow-tooltip> <el-table-column label="门店名称" show-overflow-tooltip>
...@@ -33,6 +38,9 @@ ...@@ -33,6 +38,9 @@
<p style="color:#909399">{{ scope.row.storeCode }}</p> <p style="color:#909399">{{ scope.row.storeCode }}</p>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="" label="门店分组">
<template slot-scope="scope">{{ scope.row.storeGroupName || '--' }}</template>
</el-table-column>
<el-table-column prop="" label="任务总数"> <el-table-column prop="" label="任务总数">
<template slot-scope="scope">{{ scope.row.taskCnt || '--' }}</template> <template slot-scope="scope">{{ scope.row.taskCnt || '--' }}</template>
</el-table-column> </el-table-column>
...@@ -68,7 +76,7 @@ ...@@ -68,7 +76,7 @@
<script> <script>
import gicSelectGroup from '@/components/common/gic-select-group.vue'; import gicSelectGroup from '@/components/common/gic-select-group.vue';
import navCrumb from '@/components/nav/nav.vue'; import navCrumb from '@/components/nav/nav.vue';
import { getRequest } from '@/api/api'; import { getRequest, postExcel } from '@/api/api';
import errMsg from '@/common/js/error'; import errMsg from '@/common/js/error';
import { _debounce } from '@/common/js/public'; import { _debounce } from '@/common/js/public';
export default { export default {
...@@ -105,7 +113,8 @@ export default { ...@@ -105,7 +113,8 @@ export default {
pageParams: { pageParams: {
pageNum: 1, pageNum: 1,
pageSize: 20, pageSize: 20,
storeGroup: [] storeGroup: [],
date: []
}, },
// 分页参数 // 分页参数
total: 0, total: 0,
...@@ -124,13 +133,68 @@ export default { ...@@ -124,13 +133,68 @@ export default {
pickerOptions: { pickerOptions: {
disabledDate: time => { disabledDate: time => {
const end = new Date(); const end = new Date();
return time.getTime() < end.getTime() - 3600 * 1000 * 24 * 365 || time.getTime() > end.getTime(); return time.getTime() < end.getTime() - 3600 * 1000 * 24 * 365 || time.getTime() > end.getTime() - 3600 * 1000 * 24;
}
} }
},
loadingBtn: false
}; };
}, },
computed: {}, computed: {},
methods: { methods: {
/**
* 取得间隔三个月的日期
*/
initDataRange() {
let date = new Date(new Date().getTime() - 24 * 3600 * 1000);
let nowTime = date.getTime() - 90 * 24 * 3600 * 1000;
let year = date.getFullYear();
let month = date.getMonth() + 1;
let day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
let newMonth = month < 10 ? '0' + month : month;
let startDate = new Date(nowTime);
let startYear = startDate.getFullYear();
let startMonth = startDate.getMonth() + 1;
let startDay = startDate.getDate() < 10 ? '0' + startDate.getDate() : startDate.getDate();
let startNewMonth = startMonth < 10 ? '0' + startMonth : startMonth;
return [`${startYear}-${startNewMonth}-${startDay}`, `${year}-${newMonth}-${day}`];
},
/**
* 导出
*/
exportExcel(type) {
this.loadingBtn = true;
let para = {};
postExcel('/haoban-app-tel-task-three-web/task/export-task-view-store-list', para)
.then(res => {
this.loadingBtn = false;
if (!res.data) {
errMsg.errorMsg('暂无数据');
return false;
}
// let resData = res.data;
const blob = new Blob([res.data], {
type: 'application/vnd.ms-excel'
});
const fileName = `话务任务视图详情门店报表.csv`;
const elink = document.createElement('a');
elink.download = fileName;
elink.style.display = 'none';
elink.href = URL.createObjectURL(blob);
document.body.appendChild(elink);
elink.click();
URL.revokeObjectURL(elink.href); // 释放URL 对象
document.body.removeChild(elink);
// errMsg.errorMsg(resData);
})
.catch(function(error) {
this.loadingBtn = false;
this.$message.error({
duration: 1000,
message: error.message
});
});
},
checkGroupIds: function(nodes) { checkGroupIds: function(nodes) {
const that = this; const that = this;
that.pageParams.storeGroup = nodes; that.pageParams.storeGroup = nodes;
...@@ -237,6 +301,7 @@ export default { ...@@ -237,6 +301,7 @@ export default {
}, },
mounted() { mounted() {
const that = this; const that = this;
this.pageParams.date = this.initDataRange();
that.getTableList(); that.getTableList();
if (this.$route.query.ecmPlanId) { if (this.$route.query.ecmPlanId) {
that.$emit('showTab', '212', '2121'); that.$emit('showTab', '212', '2121');
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
<div role="alert" class="el-alert el-alert--info flex flex-align-start "> <div role="alert" class="el-alert el-alert--info flex flex-align-start ">
<i class="el-alert__icon el-icon-warning font-12 color-2f54eb"></i> <i class="el-alert__icon el-icon-warning font-12 color-2f54eb"></i>
<div class="el-alert__content"> <div class="el-alert__content">
<span class="el-alert__title color-303133 font-13">仅展示近一年数据,数据截取时间:{{ dateStart | timeStampToYmd }}{{ dateEnd | timeStampToYmd }}</span> <span class="el-alert__title color-303133 font-13">仅展示近一年数据,数据截取时间:{{ dateStart | timeStampToYmd2 }}{{ dateEnd | timeStampToYmd2 }}</span>
</div> </div>
</div> </div>
<el-popover placement="bottom-start" width="550" trigger="click" popper-class="salesleads-popover"> <el-popover placement="bottom-start" width="550" trigger="click" popper-class="salesleads-popover">
...@@ -29,10 +29,15 @@ ...@@ -29,10 +29,15 @@
</div> </div>
</el-popover> </el-popover>
</div> </div>
<div class="table-condition-search m-t-20"> <div class="table-condition-search flex flex-space-between m-t-20">
<div class="table-condition-left">
<el-input placeholder="请输入计划名称" prefix-icon="el-icon-search" v-model="pageParams.ecmPlanName" class="w-260" @change="reFetch" clearable @clear="clearInput"> </el-input> <el-input placeholder="请输入计划名称" prefix-icon="el-icon-search" v-model="pageParams.ecmPlanName" class="w-260" @change="reFetch" clearable @clear="clearInput"> </el-input>
<el-date-picker class="m-l-10" prefix-icon="el-icon-time" :picker-options="pickerOptions" v-model="pageParams.date" @change="reFetch" :value-format="'yyyy-MM-dd'" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间"> </el-date-picker> <el-date-picker class="m-l-10" prefix-icon="el-icon-time" :picker-options="pickerOptions" v-model="pageParams.date" @change="reFetch" :value-format="'yyyy-MM-dd'" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间"> </el-date-picker>
</div> </div>
<div class="table-condition-right">
<el-button :loading="loadingBtn" type="primary" @click="exportExcel">导出</el-button>
</div>
</div>
<div class="m-t-20"> <div class="m-t-20">
<el-table v-loading="loading" class="select-table" ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%;"> <el-table v-loading="loading" class="select-table" ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%;">
<el-table-column label="计划名称" show-overflow-tooltip> <el-table-column label="计划名称" show-overflow-tooltip>
...@@ -73,7 +78,7 @@ ...@@ -73,7 +78,7 @@
</template> </template>
<script> <script>
import navCrumb from '@/components/nav/nav.vue'; import navCrumb from '@/components/nav/nav.vue';
import { getRequest } from '@/api/api'; import { getRequest, postExcel } from '@/api/api';
import errMsg from '@/common/js/error'; import errMsg from '@/common/js/error';
import { _debounce } from '@/common/js/public'; import { _debounce } from '@/common/js/public';
...@@ -107,7 +112,8 @@ export default { ...@@ -107,7 +112,8 @@ export default {
pageParams: { pageParams: {
pageNum: 1, pageNum: 1,
pageSize: 20, pageSize: 20,
taskType: 2 taskType: 2,
date: []
}, },
// 分页参数 // 分页参数
total: 0, total: 0,
...@@ -126,13 +132,65 @@ export default { ...@@ -126,13 +132,65 @@ export default {
pickerOptions: { pickerOptions: {
disabledDate: time => { disabledDate: time => {
const end = new Date(); const end = new Date();
return time.getTime() < end.getTime() - 3600 * 1000 * 24 * 365 || time.getTime() > end.getTime(); return time.getTime() < end.getTime() - 3600 * 1000 * 24 * 365 || time.getTime() > end.getTime() - 3600 * 1000 * 24;
}
} }
},
loadingBtn: false
}; };
}, },
computed: {}, computed: {},
methods: { methods: {
exportExcel(type) {
this.loadingBtn = true;
let para = {};
postExcel('/haoban-app-tel-task-three-web/task/export-task-view-store-list', para)
.then(res => {
this.loadingBtn = false;
if (!res.data) {
errMsg.errorMsg('暂无数据');
return false;
}
// let resData = res.data;
const blob = new Blob([res.data], {
type: 'application/vnd.ms-excel'
});
const fileName = `话务任务视图详情门店报表.csv`;
const elink = document.createElement('a');
elink.download = fileName;
elink.style.display = 'none';
elink.href = URL.createObjectURL(blob);
document.body.appendChild(elink);
elink.click();
URL.revokeObjectURL(elink.href); // 释放URL 对象
document.body.removeChild(elink);
// errMsg.errorMsg(resData);
})
.catch(function(error) {
this.loadingBtn = false;
this.$message.error({
duration: 1000,
message: error.message
});
});
},
/**
* 取得间隔三个月的日期
*/
initDataRange() {
let date = new Date(new Date().getTime() - 24 * 3600 * 1000);
let nowTime = date.getTime() - 90 * 24 * 3600 * 1000;
let year = date.getFullYear();
let month = date.getMonth() + 1;
let day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
let newMonth = month < 10 ? '0' + month : month;
let startDate = new Date(nowTime);
let startYear = startDate.getFullYear();
let startMonth = startDate.getMonth() + 1;
let startDay = startDate.getDate() < 10 ? '0' + startDate.getDate() : startDate.getDate();
let startNewMonth = startMonth < 10 ? '0' + startMonth : startMonth;
return [`${startYear}-${startNewMonth}-${startDay}`, `${year}-${newMonth}-${day}`];
},
/** /**
* 路由跳转 * 路由跳转
*/ */
...@@ -214,6 +272,7 @@ export default { ...@@ -214,6 +272,7 @@ export default {
}, },
mounted() { mounted() {
const that = this; const that = this;
this.pageParams.date = this.initDataRange();
that.getTableList(); that.getTableList();
that.$emit('showTab', 212); that.$emit('showTab', 212);
document.documentElement.style.backgroundColor = '#f0f2f5'; document.documentElement.style.backgroundColor = '#f0f2f5';
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
</div> </div>
<div class="table-condition-right"> <div class="table-condition-right">
<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><i class="iconfont icon-icon_yunxiazai p-r-6"></i>导出</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-if="enableDownloadCompleteData == 0"></i>
</el-tooltip> </el-tooltip>
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
<template>{{ ' ' }}</template> <template>{{ ' ' }}</template>
</el-table-column> </el-table-column>
<el-table-column prop="title" label="任务标题" show-overflow-tooltip></el-table-column> <el-table-column prop="title" label="任务标题" show-overflow-tooltip></el-table-column>
<el-table-column label="指派对象" show-overflow-tooltip width="170"> <el-table-column label="导购" show-overflow-tooltip width="170">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="flex flex-pack-center flex-start"> <div class="flex flex-pack-center flex-start">
<el-popover placement="top-start" width="300" trigger="hover" @show="showSingleInfo(scope.row.clerkId)"> <el-popover placement="top-start" width="300" trigger="hover" @show="showSingleInfo(scope.row.clerkId)">
...@@ -140,7 +140,7 @@ ...@@ -140,7 +140,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="逾期情况"> <el-table-column label="逾期情况">
<template slot-scope="scope">{{ scope.row.isOverTime }}</template> <template slot-scope="scope"> <span class="point" :style="'background:' + overdueStyle[scope.row.isOverTime] + ';'"></span>{{ scope.row.isOverTime }}</template>
</el-table-column> </el-table-column>
<el-table-column label="完成情况"> <el-table-column label="完成情况">
<template #header> <template #header>
...@@ -156,6 +156,7 @@ ...@@ -156,6 +156,7 @@
</el-tooltip> </el-tooltip>
</template> </template>
<template slot-scope="scope"> <template slot-scope="scope">
<span class="point" :style="'background:' + taskStyle[scope.row.taskStatus] + ';'"></span>
{{ scope.row.isCompleted }} {{ scope.row.isCompleted }}
</template> </template>
</el-table-column> </el-table-column>
...@@ -254,6 +255,17 @@ export default { ...@@ -254,6 +255,17 @@ export default {
title: '', title: '',
taskType: '1' taskType: '1'
}, },
overdueStyle: {
已逾期: '#F5222D',
未逾期: '#2F54EB'
},
taskStyle: {
2: '#33AF4A',
5: '#33AF4A',
1: '#F5222D',
3: '#F5222D',
4: '#F5222D'
},
completedOptions: [ completedOptions: [
{ {
label: '所有完成情况', label: '所有完成情况',
......
...@@ -21,7 +21,7 @@ import taskViewDetail from '@/components/app/taskViewDetail.vue'; ...@@ -21,7 +21,7 @@ import taskViewDetail from '@/components/app/taskViewDetail.vue';
</div> </div>
<div class="table-condition-right"> <div class="table-condition-right">
<el-button type="danger" @click="multDel">批量删除</el-button> <el-button type="danger" @click="multDel">批量删除</el-button>
<el-button :loading="loadingBtn" type="primary" @click="beforeExportExcel"><i class="iconfont icon-icon_yunxiazai p-r-6"></i>导出</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-if="enableDownloadCompleteData == 0"></i>
</el-tooltip> </el-tooltip>
...@@ -41,6 +41,9 @@ import taskViewDetail from '@/components/app/taskViewDetail.vue'; ...@@ -41,6 +41,9 @@ import taskViewDetail from '@/components/app/taskViewDetail.vue';
</template> </template>
<template slot-scope="{ $index }"><p :key="$index"></p></template> <template slot-scope="{ $index }"><p :key="$index"></p></template>
</el-table-column> </el-table-column>
<el-table-column label="门店分组" width="120" show-overflow-tooltip>
<template slot-scope="scope">{{ scope.row.storeGroupName }}</template>
</el-table-column>
<el-table-column label="门店名称" width="120" show-overflow-tooltip> <el-table-column label="门店名称" width="120" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<div style="width: 100%;white-space:nowrap;overflow:hidden;text-overflow: ellipsis;">{{ scope.row.storeName }}</div> <div style="width: 100%;white-space:nowrap;overflow:hidden;text-overflow: ellipsis;">{{ scope.row.storeName }}</div>
...@@ -187,6 +190,7 @@ export default { ...@@ -187,6 +190,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,
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,
......
...@@ -11,9 +11,7 @@ ...@@ -11,9 +11,7 @@
<div class="task-set-content boder-box"> <div class="task-set-content boder-box">
<div class="task-set-cell"> <div class="task-set-cell">
<div class="set-line-item flex"> <div class="set-line-item flex">
<el-tooltip class="item" effect="dark" content="代理商户默认关闭双向呼叫功能,如需开通请联系达摩运营或实施进行开通" placement="top-start" :open-delay="200"> <span class="set-line-item_title text-right"> <i style="cursor: pointer;font-style: normal;padding-bottom: 2px;" class="font-14 color-606266">话务任务拨打</i></span>
<span class="set-line-item_title text-right"> <i style="cursor: pointer;font-style: normal;padding-bottom: 2px; border-bottom: 1px dashed rgb(47, 84, 235);" class="font-14 color-606266">话务任务拨打</i></span>
</el-tooltip>
<el-checkbox-group v-model="setObj.taskCallTypes"> <el-checkbox-group v-model="setObj.taskCallTypes">
<el-checkbox :label="item.value" v-for="item in options" :key="item.value"> <el-checkbox :label="item.value" v-for="item in options" :key="item.value">
<el-tooltip class="item" effect="dark" placement="top-start" :open-delay="200"> <el-tooltip class="item" effect="dark" placement="top-start" :open-delay="200">
......
...@@ -425,3 +425,12 @@ ...@@ -425,3 +425,12 @@
.transfor-body .el-tree-node>.el-tree-node__children { .transfor-body .el-tree-node>.el-tree-node__children {
overflow: unset; overflow: unset;
} }
.point {
display: inline-block;
width: 6px;
height: 6px;
vertical-align: top;
margin-top: 8px;
border-radius: 100%;
margin-right: 5px;
}
\ No newline at end of file
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