Commit 66892c14 by caoyanzhi

update: ai营销-提交日志

parent 8f664406
......@@ -6,7 +6,7 @@
<el-option v-for="(item, key) in statusMap" :key="key" :value="key" :label="item"></el-option>
</el-select>
</div>
<el-table :data="tableData" v-loading="loading">
<el-table :data="tableData" v-loading="loading" tooltipEffect="light">
<el-table-column label="活动名称" prop="activityName" min-width="273px" show-overflow-tooltip></el-table-column>
<el-table-column label="营销人数" prop="totalCount" min-width="116px" :formatter="(row, col, val) => val || 0"></el-table-column>
<el-table-column label="已外呼数" prop="successCount" min-width="116px" :formatter="(row, col, val) => val || 0"></el-table-column>
......@@ -65,7 +65,9 @@ export default {
};
},
created() {
const { startTime, endTime } = this.$route.query;
this.search.activityId = this.$route.params.id;
this.search.dateRange = [this.formatDateTimeByType(startTime, 'yyyy-MM-dd'), this.formatDateTimeByType(endTime, 'yyyy-MM-dd')];
this.getData();
},
methods: {
......
<template>
<div>
提交未执行
<div class="logs">
<div class="search-bar">
<el-date-picker @change="handleCurrentChange(1)" class="search-date" v-model="search.dateRange" value-format="yyyy-MM-dd" type="daterange" range-separator="~" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
<el-button type="primary" :disabled="total == 0" @click="handleExportData"><i class="iconfont icon-xiazai" style="margin-right: 10px"></i>批量导出</el-button>
</div>
<el-table :data="tableData" v-loading="loading" tooltipEffect="light" @selection-change="handleSelectionChange">
<el-table-column type="selection"></el-table-column>
<el-table-column label="活动名称" prop="activityName" min-width="330px" show-overflow-tooltip></el-table-column>
<el-table-column label="未执行人" prop="totalCount" min-width="240px" :formatter="(row, col, val) => val || 0"></el-table-column>
<el-table-column label="未执行原因" prop="execRemark" min-width="260px" show-overflow-tooltip :formatter="(row, col, val) => val || '--'"></el-table-column>
<el-table-column label="批次时间" prop="createTime" min-width="240px" :formatter="(row, col, val) => (val ? formatDateTimeByType(val) : '--')"></el-table-column>
</el-table>
<dm-pagination v-show="total > 0" background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="search.pageNum" :page-size="search.pageSize" :total="total" :page-sizes="[20, 40, 60, 80]" layout="total, sizes, prev, pager, next"> </dm-pagination>
<vue-gic-export-excel :dialogVisible.sync="exportData.dialogVisible" :dataArr="tableData" :params="exportData.params" type="2" excelUrl="/api-marketing/export-ai-member-log" projectName="marketing"></vue-gic-export-excel>
</div>
</template>
<script>
import { getLogs } from '@/service/api/aiApi.js';
import { formatDateTimeByType } from '@/utils/index.js';
export default {
name: 'LogsUnrun'
name: 'LogsUnrun',
data() {
return {
formatDateTimeByType,
search: {
activityId: '', // 活动ID
dateRange: [],
type: 2, // 1:提交执行 2:未执行
pageNum: 1,
pageSize: 20
},
loading: false,
total: 0,
tableData: [],
exportData: {
dialogVisible: false,
selectedId: [],
params: {
activityName: '', // 营销活动名称
startTime: '', // 开始时间
endTime: '', // 结束时间
dataType: '' // 1:脱敏 2:完整
}
}
};
},
created() {
const { activityName, startTime, endTime } = this.$route.query;
this.search.activityId = this.$route.params.id;
this.search.dateRange = [this.formatDateTimeByType(startTime, 'yyyy-MM-dd'), this.formatDateTimeByType(endTime, 'yyyy-MM-dd')];
this.exportData.params.activityName = activityName;
this.getData();
},
methods: {
getData() {
const { activityId, dateRange, type, pageNum, pageSize } = this.search;
const params = { activityId, type, pageNum, pageSize };
params.startTime = '';
params.endTime = '';
if (Array.isArray(dateRange)) {
params.startTime = dateRange[0] || '';
params.endTime = dateRange[1] || '';
}
this.loading = true;
getLogs(params)
.then(res => {
const { result, totalCount } = res.result;
this.tableData = result;
this.total = totalCount;
})
.finally(() => (this.loading = false));
},
handleCurrentChange(currentPage) {
this.search.pageNum = currentPage;
this.getData();
},
handleSizeChange(pageSize) {
this.search.pageSize = pageSize;
this.handleCurrentChange(1);
},
handleExportData() {
if (this.exportData.selectedId.length == 0) {
return this.$message.warning('请选择要导出的数据');
}
this.exportData.dialogVisible = true;
if (Array.isArray(this.search.dateRange)) {
this.exportData.params.startTime = this.search.dateRange[0];
this.exportData.params.endTime = this.search.dateRange[1];
}
},
handleSelectionChange(val) {
this.exportData.selectedId = val.map(v => v.planId);
}
}
};
</script>
<style lang="scss" scoped>
.logs {
padding: 0 20px 20px;
}
.search-bar {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
.search-date {
width: 256px;
}
}
</style>
......@@ -11,11 +11,11 @@
<script>
import LogsRuned from './logs-runed.vue';
import LogsUnrn from './logs-unrun.vue';
import LogsUnrun from './logs-unrun.vue';
export default {
name: 'Logs',
components: { LogsRuned, LogsUnrn },
components: { LogsRuned, LogsUnrun },
data() {
return {
activeName: 'first'
......
......@@ -164,7 +164,15 @@ export default {
visible: row => {
return row.log_flag === 1;
},
handler: row => this.$router.push('/ai/logs/' + row.activityId)
handler: row =>
this.$router.push({
path: '/ai/logs/' + row.activityId,
query: {
activityName: row.activityName,
startTime: row.beginDate,
endTime: row.endDate
}
})
},
{
text: '数据统计',
......
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