Commit abed2206 by crushh

update: dist

parent bcd57e42
......@@ -120,3 +120,6 @@ export const aiOutboundStoreGroupSplit = params => requests('/api-marketing/stat
// 活动转换门店分组数据
export const aiTransformStoreGroupSplit = params => requests('/api-marketing/statistics/ai-transform-store-group-split', params, true, false, 'get');
// 客户明细导出
export const exportAiCustomDetail = '/api-marketing/statistics/export-ai-custom-detail';
......@@ -13,4 +13,7 @@ export const saveStoreSignSetting = params => requests(PREFIX + 'save', params);
// 门店签到配置查询
export const getStoreSignDetail = params => requests(PREFIX + 'get-detail', params);
// 门店签到计划删除
export const delSignPlan = params => requests(PREFIX + 'del-sign-plan', params);
\ No newline at end of file
export const delSignPlan = params => requests(PREFIX + 'del-sign-plan', params);
// 门店签到导出
export const exportStoreSign = config.api + PREFIX + 'export-store-sign';
\ No newline at end of file
......@@ -2,6 +2,7 @@
<div class="data-detail">
<div v-if="analyseFlag" class="page-tip">活动转化金额每天更新 1 次</div>
<el-input v-model="search.search" @change="handleCurrentChange(1)" type="text" placeholder="请输入姓名/昵称/手机号/会员卡号" prefix-icon="el-icon-search" clearable class="search-bar"></el-input>
<el-button class="fr" type="primary" icon="iconfont fz14 icon-cp-xiazai" @click="exportExcel" size="small" :disabled="!total"> 查询结果导出</el-button>
<el-table :data="tableData" v-loading="loading">
<el-table-column label="基本信息" min-width="200px" show-overflow-tooltip fixed="left">
<div slot-scope="{ row }" class="member-info">
......@@ -42,13 +43,14 @@
</div>
</el-table-column>
</el-table>
<vue-gic-export-excel :dialogVisible.sync="dialogVisible" :dataArr="tableData" :type="2" :excelUrl="excelUrl" :params="params" :projectName="projectName"></vue-gic-export-excel>
<dm-pagination v-if="total > 0" background @size-change="handleSizeChange" @current-change="handleCurrentChange" :total="total" :current-page="search.pageNum" :page-size="search.pageSize" :page-sizes="[20, 40, 60, 80]" layout="total, sizes, prev, pager, next"></dm-pagination>
</div>
</template>
<script>
import { formatDateTimeByType } from '@/utils/index.js';
import { getCustomDetail } from '@/service/api/aiApi.js';
import { getCustomDetail, exportAiCustomDetail } from '@/service/api/aiApi.js';
export default {
name: 'AiDataDetail',
......@@ -65,7 +67,10 @@ export default {
},
tableData: [],
total: 0,
loading: false
loading: false,
dialogVisible: false,
excelUrl: '', // 下载数据的地址
params: {} // 传递的参数
};
},
created() {
......@@ -76,6 +81,16 @@ export default {
console.log('mounted3');
},
methods: {
exportExcel() {
this.params = {
search: this.search.search,
analyseFlag: this.analyseFlag ? 1 : 0,
smsFlag: this.showSendTime ? 1 : 0,
activityId: this.search.activityId
};
this.dialogVisible = true;
this.excelUrl = exportAiCustomDetail;
},
getData() {
this.loading = true;
getCustomDetail(this.search)
......
<template>
<div class="defineTime">
<p class="tips">自定义时段不少于4个小时</p>
<p class="tips">自定义时段不少于1个小时</p>
<el-form :model="form" ref="defineTime">
<div class="flex" v-for="(v, i) in form.timeRangeList" :key="i">
<el-form-item class="mt10" :prop="'timeRangeList.' + i + '.startTime'" :rules="[{ validator: validateTime(i) }, { validator: validateStarTime(v, i) }]">
......@@ -132,8 +132,8 @@ export default {
let start = new Date(new Date().toLocaleDateString() + ' ' + item.startTime).getTime();
minutes = (end - start) / 60000 + minutes;
});
if (minutes < 240) {
this.$message.error('自定义时段不少于4个小时');
if (minutes < 60) {
this.$message.error('自定义时段不少于1个小时');
return;
}
},
......
<template>
<section class="card-record-get" v-loading="recordLoading">
<div class="page-tip">当天的卡券领取记录数据可在隔天下载完整内容</div>
<div class="page-tip">当天的卡券领取记录数据可在隔天下载完整内容<br />导出数据只支持近两年数据</div>
<!-- 条件筛选区 -->
<div class="pb20">
<el-input clearable v-model="listParams.search" style="width:240px" placeholder="请输入会员信息/卡券代码" @change="refresh"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
......@@ -112,7 +112,7 @@
</div>
<div class="ml20">
<el-radio v-model="confirm.radio" :label="1">所有卡券领取时期段导出</el-radio>
<el-date-picker clearable v-model="confirm.dateTime" class="block mt10 mb10" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
<el-date-picker clearable v-model="confirm.dateTime" value-format="timestamp" :picker-options="pickerOptions" class="block mt10 mb10" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="confirmClose">取 消</el-button>
......@@ -128,7 +128,6 @@ import { cardRecordPage, coupcardDestroy, exportReceivedRecordExcel } from '@/se
import cardOrder from './card-order';
import tableMethods from '@/mixins/tableMethods.js';
import filterAvater from '@/mixins/filterAvater.js';
export default {
name: 'record-get',
mixins: [tableMethods, filterAvater],
......@@ -182,7 +181,19 @@ export default {
dialogVisible: false,
excelUrl: '', // 下载数据的地址
params: {}, // 传递的参数
dataArr: []
dataArr: [],
pickerOptions: {
disabledDate: time => {
let y = new Date().getFullYear() - 1;
let isLeap = (0 === y % 4 && 0 === y % 100) || 0 === y % 400;
let days = isLeap ? 366 : 365;
let preY = new Date().getFullYear() - 2;
let preYisLeap = (0 === preY % 4 && 0 === preY % 100) || 0 === preY % 400;
let prevDays = preYisLeap ? 366 : 365;
// let monthDayNum = new Date().getDate() + 1;
return time.getTime() < Date.now() - (days * 8.64e7 + prevDays * 8.64e7) || time.getTime() >= new Date().getTime();
}
}
};
},
computed: {
......
......@@ -4,7 +4,9 @@
<el-date-picker class="w250" v-model="pageParams.time" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="refresh"></el-date-picker>
<el-input v-model="pageParams.storeName" class="w300" placeholder="请输入门店名称或门店code" clearable @change="refresh"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
<el-input v-model="pageParams.memberInfo" class="w300" placeholder="会员姓名/手机号/签到计划" clearable @change="refresh"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
<el-button class="fr" type="primary" icon="iconfont fz14 icon-cp-xiazai" @click="exportExcel" size="small" :disabled="!total"> 查询结果导出</el-button>
</div>
<el-table tooltipEffect="light" :data="tableList" style="width: 100%">
<el-table-column :show-overflow-tooltip="true" align="left" prop="createTime" label="签到时间">
<template slot-scope="scope">
......@@ -32,12 +34,13 @@
</el-table-column>
<el-table-column :show-overflow-tooltip="true" align="left" prop="prizeTxt" label="签到福利"></el-table-column>
</el-table>
<vue-gic-export-excel :dialogVisible.sync="dialogVisible" :dataArr="tableList" :type="2" :excelUrl="excelUrl" :params="params" :projectName="projectName"></vue-gic-export-excel>
<dm-pagination v-show="tableList.length" background class="dm-pagination" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="pageParams.currentPage" :page-sizes="[20, 40, 60, 80]" :page-size="pageParams.pageSize" layout="total, sizes, prev, pager, next" :total="total"></dm-pagination>
</section>
</template>
<script>
import { getPageSignLog } from '@/service/api/storeSign.js';
import { getPageSignLog, exportStoreSign } from '@/service/api/storeSign.js';
import { formatDateTimeByType } from '@/utils/index.js';
export default {
name: 'sign-record',
......@@ -54,7 +57,10 @@ export default {
tableList: [],
// 门店单选
storeName: '',
storeDialog: false
storeDialog: false,
dialogVisible: false,
excelUrl: '', // 下载数据的地址
params: {} // 传递的参数
};
},
created() {
......@@ -85,6 +91,17 @@ export default {
this.loading = false;
}
},
exportExcel() {
const params = { storeName: this.pageParams.storeName, memberInfo: this.pageParams.memberInfo };
if (this.pageParams.time) {
params.startTime = formatDateTimeByType(params.time[0], 'yyyy-MM-dd');
params.endTime = formatDateTimeByType(params.time[1], 'yyyy-MM-dd');
delete params.time;
}
this.params = params;
this.dialogVisible = true;
this.excelUrl = exportStoreSign;
},
refresh() {
this.pageParams.currentPage = '1';
this.fetch();
......
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