Commit 44a48246 by chenxin

merge

parent 58610fdc
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><link rel="shortcut icon" href=./static/img/favicon.ico><title>GIC后台</title><link rel=stylesheet type=text/css href=static/css/iconfont.css><link rel=stylesheet type=text/css href=static/css/common.css><link href=/marketing/static/css/main.c6a05f592aa4dd7266858dcb2e2a0d94.css rel=stylesheet></head><body><div id=app></div><script src=//web-1251519181.file.myqcloud.com/lib/vue/2.5.2/vue.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vue-router/3.0.2/vue-router.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vuex/3.1.0/vuex.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/elementUI/index.2.5.4.js></script><script src=//web-1251519181.file.myqcloud.com/components/header.2.0.20.js></script><script src=//web-1251519181.file.myqcloud.com/components/footer.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/card.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/store.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/img-preview.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/member-group.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-card.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/confirm-people.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/people.2.0.15.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.04.js></script><script src=//web-1251519181.file.myqcloud.com/components/input.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/delete.2.0.00.js></script><script type=text/javascript src=/marketing/static/js/manifest.0a85049e489e85ac5f0a.js></script><script type=text/javascript src=/marketing/static/js/vendor.41e915fffb6fa2b1b49e.js></script><script type=text/javascript src=/marketing/static/js/main.f8946f3e05345499ede2.js></script></body></html>
\ No newline at end of file
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><link rel="shortcut icon" href=./static/img/favicon.ico><title>GIC后台</title><link rel=stylesheet type=text/css href=static/css/iconfont.css><link rel=stylesheet type=text/css href=static/css/common.css><link href=/marketing/static/css/main.713444cdaef9806a882f97b885f25ac1.css rel=stylesheet></head><body><div id=app></div><script src=//web-1251519181.file.myqcloud.com/lib/vue/2.5.2/vue.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vue-router/3.0.2/vue-router.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vuex/3.1.0/vuex.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/elementUI/index.2.5.4.js></script><script src=//web-1251519181.file.myqcloud.com/components/header.2.0.20.js></script><script src=//web-1251519181.file.myqcloud.com/components/footer.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/card.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/store.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/img-preview.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/member-group.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-card.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/confirm-people.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/people.2.0.25.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.04.js></script><script src=//web-1251519181.file.myqcloud.com/components/input.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/delete.2.0.00.js></script><script type=text/javascript src=/marketing/static/js/manifest.0a85049e489e85ac5f0a.js></script><script type=text/javascript src=/marketing/static/js/vendor.a8993e30b96d0f8d08ca.js></script><script type=text/javascript src=/marketing/static/js/main.37634a54dc3492968d49.js></script></body></html>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -27,7 +27,7 @@
<script src="//web-1251519181.file.myqcloud.com/components/member-group.2.0.01.js"></script>
<script src="//web-1251519181.file.myqcloud.com/components/store-card.2.0.02.js"></script>
<script src="//web-1251519181.file.myqcloud.com/components/confirm-people.2.0.01.js"></script>
<script src="//web-1251519181.file.myqcloud.com/components/people.2.0.15.js"></script>
<script src="//web-1251519181.file.myqcloud.com/components/people.2.0.25.js"></script>
<script src="//web-1251519181.file.myqcloud.com/components/export-excel.2.0.04.js"></script>
<script src="//web-1251519181.file.myqcloud.com/components/input.2.0.00.js"></script>
<script src="//web-1251519181.file.myqcloud.com/components/delete.2.0.00.js"></script>
......
......@@ -183,6 +183,9 @@ a:hover {
.w100{
width: 100px!important;
}
.w110{
width: 110px!important;
}
.w150{
width: 150px!important;
}
......@@ -192,6 +195,9 @@ a:hover {
.w250{
width: 250px!important;
}
.w280{
width: 280px!important;
}
.w300{
width: 300px!important;
}
......@@ -460,6 +466,13 @@ img::after {
.border-radius__default{
border-radius: 4px;
}
.cell-time{
color: #606266;
line-height: 18px;
span{
color:#909399;
}
}
/*隐藏滚轮*/
// ::-webkit-scrollbar {
// display: none;
......
......@@ -190,4 +190,19 @@
// 表格 \n 换行
// .el-table .cell {
// white-space: pre-line;
// }
\ No newline at end of file
// }
// cover
// 微盟适用商品
#wnsysp{
.el-select__tags-text{
display: inline-block;
max-width: 200px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.el-tag__close{
top: -8px;
}
}
\ No newline at end of file
<template>
<div>
<span class="inline-block w100 text-right">微盟适用商品</span>
v2:{{ v2 }}
<el-select class="w250" v-model="v1" filterable placeholder=" 选择商品类目" :loading="loading" @change="handleF1Change">
<el-option v-for="item in f1" :key="item.id" :label="item.title" :value="item.id"></el-option>
</el-select>
<el-select class="w250" v-model="v2" multiple filterable remote reserve-keyword placeholder="选择商品参数" :loading="loading" @change="handleF2Change">
<el-option v-for="item in f2" :key="item.id" :label="item.title" :value="item.id"></el-option>
</el-select>
<el-select class="w250" v-model="v3" multiple filterable remote reserve-keyword placeholder="选择商品参数值" :loading="loading">
<el-option v-for="item in f3" :key="item.id" :label="item.title" :value="item.id"></el-option>
</el-select>
</div>
</template>
<script>
import axios from 'axios';
export default {
name: 'goods-filter',
data() {
return {
f1: [], // 一层的数据
v1: [],
f2: [], // 二层的数据
v2: [],
f3: [], // 三层的数据
v3: [],
loading: false,
list: [] // 行数据存储
};
},
methods: {
// 异步请求
remoteMethod(query) {
if (query !== '') {
this.loading = true;
setTimeout(() => {
this.loading = false;
this.v1 = this.f1.filter(item => {
return item.label.toLowerCase().indexOf(query.toLowerCase()) > -1;
});
}, 200);
} else {
this.v1 = [];
}
},
// 第一层改变 获取第二层数据
handleF1Change(v) {
axios.get(`http://localhost:3000/goods/${v}`).then(res => {
this.f2 = res.data.children.map(v => {
return {
title: v.title,
id: v.id
};
});
this.list[1] = this.f2;
});
},
// 第二层改变 获取第三层数据
handleF2Change(v) {
}
},
mounted() {
axios.get('http://localhost:3000/goods').then(res => {
this.f1 = res.data.map(v => {
return {
title: v.title,
id: v.id
};
});
this.list[0] = this.f1;
});
}
};
</script>
......@@ -33,8 +33,9 @@
</el-table-column>
<el-table-column label="修改时间" prop="updateTimeStr" align="left">
<template slot-scope="scope">
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.updateTime, 'yyyy-MM-dd-HH-mm', true).y }}</p>
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.updateTime, 'yyyy-MM-dd-HH-mm', true).h }}</p>
<p class="cell-time">
{{ formatDateTimeByType(scope.row.updateTime, 'yyyy-MM-dd-HH-mm', true).y }}<br /><span>{{ formatDateTimeByType(scope.row.updateTime, 'yyyy-MM-dd-HH-mm', true).h }}</span>
</p>
</template>
</el-table-column>
<el-table-column label="操作" align="left" v-if="auto">
......
......@@ -51,9 +51,12 @@ export default {
},
{
path: 'sendInfo/:id',
name: '投放记录',
name: '投放记录详情',
component: cardRecordSendInfo,
meta: {}
meta: {
type: 'send',
path: '/card/record/send'
}
},
{
path: 'cache',
......
......@@ -18,6 +18,15 @@ export const cardChannelAnalysis = params => requests(PREFIX + 'card-channel-ana
//卡券营销--卡券库--卡券报表/卡券展架--卡券报表趋势分析图
export const cardTrendEchart = params => requests(PREFIX + 'card-trend-echart', params);
//卡券营销--卡券库--新建/修改卡券--微盟商品适用类目
export const getCategoryList = params => requests(PREFIX + 'get-category-list', params);
//卡券营销--卡券库--新建/修改卡券--商品参数
export const getPropertyList = params => requests(PREFIX + 'get-property-list', params);
//卡券营销--卡券库--新建/修改卡券--商品参数值
export const getPropertyValueList = params => requests(PREFIX + 'get-property-value-list', params);
//卡券营销--卡券库--新建/修改卡券--放入卡券展架--所有展架集合
export const cardGetShelfs = params => requests(PREFIX + 'card-get-shelfs', params);
......@@ -30,6 +39,12 @@ export const saveUpdateCard = params => requests(PREFIX + 'save-update-card', pa
//卡券营销--卡券记录--投放记录/领取记录
export const cardRecordPage = params => requests(PREFIX + 'card-record-page', params);
//卡券营销--卡券记录--投放记录/领取记录 - 投放记录
export const cardPutOnRecord = params => requests(PREFIX + 'card-put-on-record', params);
//卡券营销--卡券记录--投放记录/领取记录 - 投放记录 - 导出
export const exportCardPutOnRecordExcel = config.api + PREFIX + 'export-card-put-on-record-excel';
//卡券营销--卡券记录--投放记录--删除记录
export const deleteCardPuton = params => requests(PREFIX + 'delete-card-puton', params);
......
......@@ -102,6 +102,7 @@ const requests = (url, data = {}, contentTypeIsJSON = false, isSilence = false,
} else {
_opts.params = _query;
}
return new Promise((resolve, reject) => {
let _random = { stamp: Date.now(), url: `${_apiHost + url}` };
if (!isSilence) {
......@@ -109,6 +110,7 @@ const requests = (url, data = {}, contentTypeIsJSON = false, isSilence = false,
pushRequest(_random);
}, MINI_TIME);
}
_opts.headers = Object.assign({}, _opts.headers || {}, { sign: localStorage.getItem('sign') }); // 加入自定义请求头
axios(_opts)
.then(res => {
clearTimeout(_timer);
......
<template>
<section class="dm-wrap">
<el-alert type="info" :closable="false" show-icon class="mb20">
<p slot="title" class="fz14 mb15 info-color line-height1_5">通话录音默认存储3天,如需更长的期限,请在录音设置中开启。</p>
</el-alert>
<div class="pb22 clearfix">
<el-date-picker v-model="dateTime" :picker-options="pickerOptions" class="w250" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="getTableList"></el-date-picker>
<el-select class="dm-select" clearable="" v-model="listParams.callStatus" placeholder="选择通话状态" @change="getTableList">
......@@ -17,8 +14,10 @@
<el-table tooltipEffect="light" :data="tableList" style="width:100%" v-loading="loading">
<el-table-column align="left" width="120" prop="callBeginTime" label="呼叫时间">
<template slot-scope="scope">
{{ formatDateTimeByType(scope.row.callBeginTime, 'yyyy-MM-dd-HH-mm-ss', true).y }} <br />
{{ formatDateTimeByType(scope.row.callBeginTime, 'yyyy-MM-dd-HH-mm-ss', true).h }}
<p class="cell-time">
{{ formatDateTimeByType(scope.row.callBeginTime, 'yyyy-MM-dd-HH-mm-ss', true).y }}<br />
<span>{{ formatDateTimeByType(scope.row.callBeginTime, 'yyyy-MM-dd-HH-mm-ss', true).h }}</span>
</p>
</template>
</el-table-column>
<el-table-column align="left" min-width="150" prop="clerkName" label="主叫">
......@@ -102,6 +101,17 @@ export default {
this.$store.commit('aside_handler', false);
this.$store.commit('mutations_breadcrumb', [{ name: '会员管理', path: '' }, { name: '通话记录', path: '' }]);
this.getTableList();
this.$store.commit(
'mutations_layoutTips',
`<div class="layout--tips">
<i class="el-icon-info"></i>
通话录音默认存储3天,如需更长的期限,请在录音设置中开启。
</div>
`
);
},
beforeDestroy() {
this.$store.commit('mutations_layoutTips', '');
},
methods: {
//列表请求
......
......@@ -8,8 +8,10 @@
<el-table tooltipEffect="light" :data="tableList" style="width: 100%" v-loading="loading">
<el-table-column :show-overflow-tooltip="true" width="100" align="left" prop="createTime" label="操作时间">
<template slot-scope="scope">
<p>{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm', true).y }}</p>
<p>{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm', true).h }}</p>
<p class="cell-time">
{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm', true).y }}<br />
<span>{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm', true).h }}</span>
</p>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" width="160" align="left" prop="orderNumber" label="订单流水号">
......
......@@ -49,8 +49,35 @@
<el-input-number controls-position="right" :min="0" @focus="sale_limit.flag = true" :disabled="isEdit || isInfo" v-model="sale_limit.fee" class="w200"></el-input-number> 元可使用
</div>
<div v-show="form.cardType !== 2"><el-checkbox :disabled="isEdit || isInfo" v-model="goods.flag">适用商品</el-checkbox> <span class="fz12 gray">(至少填写一项)</span></div>
<div class="mb10" v-show="form.cardType !== 2"><span class="inline-block w100 text-right">适用商品</span> <dm-input @focus="goods.flag = true" v-model="goods.ok" :disabled="isEdit || isInfo" class="w300" placeholder="限制18个汉字内" :maxlength="18"></dm-input></div>
<div v-show="form.cardType !== 2" class="mb10"><span class="inline-block w100 text-right">不适用商品</span> <dm-input @focus="goods.flag = true" v-model="goods.no" :disabled="isEdit || isInfo" class="w300" placeholder="限制18个汉字内" :maxlength="18"></dm-input></div>
<div class="mb10" v-show="form.cardType !== 2"><span class="inline-block w110 text-right">适用商品</span> <dm-input @focus="goods.flag = true" v-model="goods.ok" :disabled="isEdit || isInfo" class="w300" placeholder="限制18个汉字内" :maxlength="18"></dm-input></div>
<div v-show="form.cardType !== 2" class="mb10"><span class="inline-block w110 text-right">不适用商品</span> <dm-input @focus="goods.flag = true" v-model="goods.no" :disabled="isEdit || isInfo" class="w300" placeholder="限制18个汉字内" :maxlength="18"></dm-input></div>
<!-- 微盟适用商品 -->
<div v-loading="wmloading" element-loading-spinner="el-icon-loading" element-loading-background="rgba(255, 255, 255, 0)">
<div v-if="(form.cardType === 0 || form.cardType === 1) && form.cardApplyChannel.indexOf('WMmicroMall') !== -1">
<div v-for="(list, idx) in goodsList" :key="idx" class="mb10" id="wnsysp">
<span class="inline-block w110 text-right">
微盟适用商品
<span v-show="goodsList.length !== 1">{{ idx + 1 }}</span>
</span>
<el-select :disabled="isEdit" class="w200" v-model="list.v1" filterable placeholder=" 选择商品类目" clearable :loading="loading" @change="handleF1Change($event, idx)">
<el-option v-for="item in f1" :key="item.id" :label="item.title" :value="item.id"></el-option>
</el-select>
<el-select v-show="list.f2.length > 0" :disabled="isEdit || list.isCopy" class="w200" v-model="list.v2" filterable remote reserve-keyword placeholder="选择商品参数" clearable :loading="loading" @change="handleF2Change($event, idx)">
<el-option v-for="item in list.f2" :key="item.id" :label="item.title" :value="item.id"></el-option>
</el-select>
<el-select v-if="list.f3.length > 0" :disabled="isEdit || list.isCopy" class="w250" v-model="list.v3" multiple filterable remote reserve-keyword placeholder="选择商品参数值" clearable :loading="loading">
<el-option v-for="item in list.f3" :key="item.id" :label="item.title" :value="item.id"></el-option>
</el-select>
<div v-if="isAdd || isCopy" class="inline-block">
<el-button v-if="list.isCopy" type="warning" icon="el-icon-edit" circle @click="getLine(idx)"></el-button>
<el-button v-show="idx === goodsList.length - 1 && goodsList.length < 10" type="primary" icon="el-icon-plus" circle @click="addLine"></el-button>
<el-button icon="el-icon-delete" circle @click="delLine(idx)"></el-button>
</div>
</div>
</div>
</div>
<!-- {{ goodsList }} -->
<!-- {{ coupGoodsWeimobList }} -->
<!-- 兑换券 -->
<div v-show="form.cardType === 2" class="mb10"><el-checkbox :disabled="isEdit || isInfo" v-model="sale_limit.flag">消费条件</el-checkbox> <span class="fz12 gray">(至少填写一项)</span></div>
<div class="mb10" v-show="form.cardType === 2">
......
......@@ -19,8 +19,10 @@
<el-table tooltipEffect="light" :data="recordList" style="width: 100%" v-loading="recordLoading" @sort-change="sortList">
<el-table-column width="100" align="left" prop="receiveTime" label="领取时间" fixed="left">
<template slot-scope="scope">
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.receiveTime, 'yyyy-MM-dd-HH-mm', true).y }}</p>
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.receiveTime, 'yyyy-MM-dd-HH-mm', true).h }}</p>
<p class="cell-time">
{{ formatDateTimeByType(scope.row.receiveTime, 'yyyy-MM-dd-HH-mm', true).y }}<br />
<span>{{ formatDateTimeByType(scope.row.receiveTime, 'yyyy-MM-dd-HH-mm', true).h }}</span>
</p>
</template>
</el-table-column>
<el-table-column width="80" align="left" prop="cardTypeExcel" label="卡券类型"> </el-table-column>
......@@ -31,8 +33,10 @@
<el-table-column min-width="100" align="left" prop="attentionStatus" label="关注状态"> </el-table-column>
<el-table-column width="135" align="left" prop="transferDate" label="关注时间">
<template slot-scope="scope">
<p style="color:#606266;">{{ scope.row.transferDate ? formatDateTimeByType(scope.row.transferDate, 'yyyy-MM-dd-HH-mm', true).y : '--' }}</p>
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.transferDate, 'yyyy-MM-dd-HH-mm', true).h }}</p>
<p class="cell-time">
{{ scope.row.transferDate ? formatDateTimeByType(scope.row.transferDate, 'yyyy-MM-dd-HH-mm', true).y : '--' }}<br />
<span>{{ formatDateTimeByType(scope.row.transferDate, 'yyyy-MM-dd-HH-mm', true).h }}</span>
</p>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" min-width="140" header-align="left" align="left" :key="Math.random()" prop="clerkId" label="会员信息">
......
......@@ -15,14 +15,18 @@
<el-table tooltipEffect="light" :data="recordList" style="width: 100%" v-loading="recordLoading" @sort-change="sortList">
<el-table-column width="100" align="left" prop="receiveTime" label="领取时间" fixed="left" sortable="custom">
<template slot-scope="scope">
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.receiveTime, 'yyyy-MM-dd-HH-mm', true).y }}</p>
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.receiveTime, 'yyyy-MM-dd-HH-mm', true).h }}</p>
<p class="cell-time">
{{ scope.row.receiveTime ? formatDateTimeByType(scope.row.receiveTime, 'yyyy-MM-dd-HH-mm', true).y : '--' }}<br />
<span>{{ formatDateTimeByType(scope.row.receiveTime, 'yyyy-MM-dd-HH-mm-ss', true).h }}</span>
</p>
</template>
</el-table-column>
<el-table-column width="100" align="left" prop="writeOffTime" label="核销时间" fixed="left" sortable="custom">
<template slot-scope="scope">
<p style="color:#606266;">{{ scope.row.useTime ? formatDateTimeByType(scope.row.useTime, 'yyyy-MM-dd-HH-mm', true).y : '--' }}</p>
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.useTime, 'yyyy-MM-dd-HH-mm', true).h }}</p>
<p class="cell-time">
{{ scope.row.useTime ? formatDateTimeByType(scope.row.useTime, 'yyyy-MM-dd-HH-mm', true).y : '--' }}<br />
<span>{{ formatDateTimeByType(scope.row.useTime, 'yyyy-MM-dd-HH-mm-ss', true).h }}</span>
</p>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" min-width="140" header-align="left" align="left" :key="Math.random()" prop="clerkId" label="会员信息">
......
......@@ -6,8 +6,10 @@
<el-table tooltipEffect="light" :data="recordList" style="width: 100%" row-key="putonTime" v-loading="loading">
<el-table-column width="100" align="left" prop="putonTime" label="投放时间" fixed="left">
<template slot-scope="scope">
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.putonTime, 'yyyy-MM-dd-HH-mm', true).y }}</p>
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.putonTime, 'yyyy-MM-dd-HH-mm', true).h }}</p>
<p class="cell-time">
{{ formatDateTimeByType(scope.row.putonTime, 'yyyy-MM-dd-HH-mm-ss', true).y }}<br />
<span>{{ formatDateTimeByType(scope.row.putonTime, 'yyyy-MM-dd-HH-mm-ss', true).h }}</span>
</p>
</template>
</el-table-column>
<el-table-column width="150" align="left" prop="cardName" label="卡券名称">
......@@ -30,7 +32,7 @@
<template slot-scope="scope">
<el-button type="text" v-if="scope.row.putonStatus === 2 || scope.row.putonStatus === 3" @click="$router.push('/card/groupinfo/' + scope.row.putonId)">详情</el-button>
<el-button type="text" v-if="scope.row.putonStatus !== 2 && scope.row.putonStatus !== 3" @click="$router.push('/card/groupsend/' + scope.row.putonId)">编辑</el-button>
<!-- <el-button type="text" @click="$router.push('/card/record/sendInfo/' + scope.row.putonId)">记录</el-button> -->
<el-button type="text" v-if="scope.row.putonTime > nowDate" @click="$router.push('/card/record/sendInfo/' + scope.row.putonId)">记录</el-button>
<dm-delete v-if="scope.row.putonStatus !== 2" @confirm="delData(scope.row)" tips="是否删除该投放记录?">
<el-button type="text">删除</el-button>
</dm-delete>
......@@ -45,6 +47,8 @@ import { cardRecordPage, deleteCardPuton } from '@/service/api/cardApi.js';
import { formatDateTimeByType } from '@/utils/index.js';
import timeCounts from '@/components/timeCount/index.vue';
import tableMethods from '@/mixins/tableMethods.js';
const nowDate = new Date('2019-05-24 00:00:00'); // 该日期之前无操作-记录按钮
export default {
name: 'record-send',
mixins: [tableMethods],
......@@ -53,11 +57,12 @@ export default {
},
data() {
return {
nowDate,
formatDateTimeByType,
loading: false,
recordList: [],
recordHeader: [
{ label: '活动名称', prop: 'putonName', minWidth: '150', tooltip: true, align: 'left' },
{ label: '活动名称', prop: 'putonName', tooltip: true, align: 'left' },
{ label: '投放人数', prop: 'issuingQuantity', width: '80', align: 'left' },
{ label: '领取数量', prop: 'getedQuantity', width: '80', align: 'left' },
{
......@@ -94,9 +99,20 @@ export default {
};
},
created() {
this.$store.commit(
'mutations_layoutTips',
`<div class="layout--tips">
<i class="el-icon-info"></i>
历史数据限制:${formatDateTimeByType(nowDate, 'yyyy-MM-dd')}之前的卡券投放计划未保存详细投放录。
</div>
`
);
this.getTableList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券记录', path: '' }, { name: '投放记录', path: '' }]);
},
beforeDestroy() {
this.$store.commit('mutations_layoutTips', '');
},
methods: {
//获取列表
getTableList() {
......@@ -115,7 +131,7 @@ export default {
.then(res => {
if (res.errorCode === 0) {
this.$tips({ type: 'success', message: '删除成功!' });
this.cardRecordPage();
this.getTableList();
} else {
this.$tips({ type: 'error', message: '删除失败!' });
}
......
......@@ -17,8 +17,10 @@
</el-table-column>
<el-table-column label="批次时间" align="left" width="120" prop="execTime">
<template slot-scope="scope">
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.execTime, 'yyyy-MM-dd-HH-mm-ss', true).y }}</p>
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.execTime, 'yyyy-MM-dd-HH-mm-ss', true).h }}</p>
<p class="cell-time">
{{ formatDateTimeByType(scope.row.execTime, 'yyyy-MM-dd-HH-mm-ss', true).y }}<br />
<span>{{ formatDateTimeByType(scope.row.execTime, 'yyyy-MM-dd-HH-mm-ss', true).h }}</span>
</p>
</template>
</el-table-column>
<el-table-column label="操作" align="left" width="220" fixed="right">
......
......@@ -21,8 +21,10 @@
</el-table-column>
<el-table-column label="发送时间" align="left" width="120" prop="createTime">
<template slot-scope="scope">
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss', true).y }}</p>
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss', true).h }}</p>
<p class="cell-time">
{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss', true).y }}<br />
<span>{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss', true).h }}</span>
</p>
</template>
</el-table-column>
</el-table>
......
......@@ -15,7 +15,7 @@
width: 500px;
}
.inline-block {
vertical-align: middle;
/* vertical-align: middle; */
display:inline-block!important;
}
.block{
......@@ -119,7 +119,8 @@
.dm-marketing__opt{
background: #FFFFFF;
border: 1px solid rgba(235,238,245,1);
box-shadow: 0px 1px 20px 0px rgba(0,0,0,0.15);
-webkit-box-shadow: 0px 1px 20px 0px rgba(0,0,0,0.15);
box-shadow: 0px 1px 20px 0px rgba(0,0,0,0.15);
padding:0 20px;
}
.dm-marketing__opt--label{
......@@ -223,7 +224,8 @@
background: #fff;
border:1px solid #E4E7ED;
border-radius:4px;
box-shadow: 0px 2px 8px 0px rgba(0,0,0,0.10);
-webkit-box-shadow: 0px 2px 8px 0px rgba(0,0,0,0.10);
box-shadow: 0px 2px 8px 0px rgba(0,0,0,0.10);
}
.dm-imgText__item__mask{
position: absolute;
......@@ -312,7 +314,8 @@
background: #fff;
border:1px solid #E4E7ED;
border-radius:4px;
box-shadow: 0px 2px 8px 0px rgba(0,0,0,0.10);
-webkit-box-shadow: 0px 2px 8px 0px rgba(0,0,0,0.10);
box-shadow: 0px 2px 8px 0px rgba(0,0,0,0.10);
}
.dm-wxa__item{
padding:15px;
......
......@@ -49,7 +49,7 @@
<el-table-column min-width="140" header-align="left" align="left" prop="memberId" label="会员信息">
<template slot-scope="scope">
<a class="ellipsis-100" :href="'/member/#/wechatmemberDetail?memberId=' + scope.row.memberId" target="_blank">
<a class="ellipsis-100" :href="`${window.location.origin}/member/#/wechatmemberDetail?memberId=${scope.row.memberId}`" target="_blank">
<img class="vertical-middle table__avatar--40" :src="filterAvatar(scope.row.thirdImgUrl)" width="60" height="60" />
<div class="inline-block vertical-middle">
<p class="table-name--ellipsis">{{ scope.row.memberName || '--' }}</p>
......@@ -118,6 +118,7 @@ export default {
mixins: [tableMethods, filterAvater],
data() {
return {
window: window,
storeGroupData: {},
formatDateTimeByType,
loading: false,
......
......@@ -13,8 +13,10 @@
<el-table tooltipEffect="light" :data="tableList" style="width: 100%" v-loading="loading" element-loading-text="拼命加载中">
<el-table-column :show-overflow-tooltip="true" min-width="120" align="left" :key="Math.random()" prop="createTime" label="评价时间">
<template slot-scope="scope">
<p style="color:#606266">{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm', true).y }}</p>
<p style="color:#606266">{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm', true).h }}</p>
<p class="cell-time">
{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss', true).y }}<br />
<span>{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss', true).h }}</span>
</p>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" min-width="200" align="left" :key="Math.random()" prop="storeName" label="门店">
......@@ -25,7 +27,7 @@
</el-table-column>
<el-table-column :show-overflow-tooltip="true" min-width="200" header-align="left" align="left" :key="Math.random()" prop="memberId" label="会员信息">
<template slot-scope="scope">
<a :href="'/member/#/wechatmemberDetail?memberId=' + scope.row.memberId" target="_blank">
<a :href="`${window.location.origin}/member/#/wechatmemberDetail?memberId=${scope.row.memberId}`" target="_blank">
<img class="vertical-middle table__avatar--40" :src="scope.row.thirdImgUrl || defaultAvatar" width="60" height="60" />
<div class="inline-block vertical-middle">
<p class="table-name--ellipsis">{{ scope.row.memberName || '--' }}</p>
......@@ -62,6 +64,7 @@ export default {
mixins: [filterAvater],
data() {
return {
window: window,
formatDateTimeByType,
loading: false,
tableList: [],
......
......@@ -4,7 +4,7 @@ export default {
editAlert() {
return new Promise((resolve, reject) => {
if (this.isEdit) {
this.$confirm('若已修改本次游戏奖品,已发放的积分和卡券无法回溯,后果自负?', '提示', {
this.$confirm('游戏设置的修改保存后生效,历史数据不受影响', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
......
......@@ -93,8 +93,10 @@ export default {
tooltip: true,
align: 'left',
formatter: function(row) {
const date = formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss', true);
return row.gameStartTime ? date.y + '<br/>' + date.h : '';
return `<p class="cell-time">
${formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss', true).y}<br />
<span>${formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss', true).h}</span>
</p>`;
}
},
{
......@@ -104,8 +106,10 @@ export default {
tooltip: true,
align: 'left',
formatter: function(row) {
const date = formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss', true);
return row.gameEndTime ? date.y + '<br/>' + date.h : '';
return `<p class="cell-time">
${formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss', true).y}<br />
<span>${formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss', true).h}</span>
</p>`;
}
},
{ label: '参与人数', prop: 'userCount', width: '100', align: 'left' },
......
......@@ -12,8 +12,10 @@
<el-table tooltipEffect="light" :data="recordList" style="width:100%" v-loading="loading">
<el-table-column :min-width="150" align="left" label="中奖时间">
<template slot-scope="scope">
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.winDate, 'yyyy-MM-dd-HH-mm-ss', true).y }}</p>
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.winDate, 'yyyy-MM-dd-HH-mm-ss', true).h }}</p>
<p class="cell-time">
{{ formatDateTimeByType(scope.row.winDate, 'yyyy-MM-dd-HH-mm-ss', true).y }}<br />
<span>{{ formatDateTimeByType(scope.row.winDate, 'yyyy-MM-dd-HH-mm-ss', true).h }}</span>
</p>
</template>
</el-table-column>
<el-table-column :min-width="150" align="left" label="会员信息">
......
......@@ -92,8 +92,10 @@ export default {
tooltip: true,
align: 'left',
formatter: function(row) {
const date = formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss', true);
return row.gameStartTime ? date.y + '<br/>' + date.h : '';
return `<p class="cell-time">
${formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss', true).y}<br />
<span>${formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss', true).h}</span>
</p>`;
}
},
{
......@@ -103,8 +105,10 @@ export default {
tooltip: true,
align: 'left',
formatter: function(row) {
const date = formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss', true);
return row.gameEndTime ? date.y + '<br/>' + date.h : '';
return `<p class="cell-time">
${formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss', true).y}<br />
<span>${formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss', true).h}</span>
</p>`;
}
},
{ label: '参与人数', prop: 'userCount', width: '100', align: 'left' },
......
......@@ -12,8 +12,10 @@
<el-table tooltipEffect="light" :data="recordList" style="width:100%" v-loading="loading">
<el-table-column :min-width="150" align="left" label="中奖时间">
<template slot-scope="scope">
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.winDate, 'yyyy-MM-dd-HH-mm-ss', true).y }}</p>
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.winDate, 'yyyy-MM-dd-HH-mm-ss', true).h }}</p>
<p class="cell-time">
{{ formatDateTimeByType(scope.row.winDate, 'yyyy-MM-dd-HH-mm-ss', true).y }}<br />
<span>{{ formatDateTimeByType(scope.row.winDate, 'yyyy-MM-dd-HH-mm-ss', true).h }}</span>
</p>
</template>
</el-table-column>
<el-table-column :min-width="150" align="left" label="会员信息">
......
......@@ -76,8 +76,10 @@ export default {
tooltip: true,
align: 'left',
formatter: function(row) {
const date = formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss', true);
return row.gameStartTime ? date.y + '<br/>' + date.h : '';
return `<p class="cell-time">
${formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss', true).y}<br />
<span>${formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss', true).h}</span>
</p>`;
}
},
{
......@@ -87,8 +89,10 @@ export default {
tooltip: true,
align: 'left',
formatter: function(row) {
const date = formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss', true);
return row.gameEndTime ? date.y + '<br/>' + date.h : '';
return `<p class="cell-time">
${formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss', true).y}<br />
<span>${formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss', true).h}</span>
</p>`;
}
},
{ label: '参与人数', prop: 'cyrs', width: '100', align: 'left' },
......
......@@ -24,8 +24,10 @@
</el-table-column>
<el-table-column :min-width="100" align="left" label="中奖时间" prop="createTime">
<template slot-scope="scope">
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss', true).y }}</p>
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss', true).h }}</p>
<p class="cell-time">
{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss', true).y }}<br />
<span>{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss', true).h }}</span>
</p>
</template>
</el-table-column>
<el-table-column v-for="(v, i) in rankHeader" :show-overflow-tooltip="v.tooltip" :width="v.width" :min-width="v.minWidth" :align="v.align" :key="i" :prop="v.prop" :label="v.label" :formatter="v.formatter"></el-table-column>
......
......@@ -74,8 +74,10 @@ export default {
tooltip: true,
align: 'left',
formatter: function(row) {
const date = formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss', true);
return row.gameStartTime ? date.y + '<br/>' + date.h : '';
return `<p class="cell-time">
${formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss', true).y}<br />
<span>${formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss', true).h}</span>
</p>`;
}
},
{
......@@ -85,8 +87,10 @@ export default {
tooltip: true,
align: 'left',
formatter: function(row) {
const date = formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss', true);
return row.gameEndTime ? date.y + '<br/>' + date.h : '';
return `<p class="cell-time">
${formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss', true).y}<br />
<span>${formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss', true).h}</span>
</p>`;
}
},
{ label: '参与人数', prop: 'cyrs', width: '100', align: 'left' },
......
......@@ -44,8 +44,10 @@
</el-table-column>
<el-table-column :min-width="100" align="left" label="玩游戏时间" prop="createTime">
<template slot-scope="scope">
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss', true).y }}</p>
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss', true).h }}</p>
<p class="cell-time">
{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss', true).y }}<br />
<span>{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss', true).h }}</span>
</p>
</template>
</el-table-column>
<el-table-column v-for="(v, i) in recordHeader" :show-overflow-tooltip="v.tooltip" :width="v.width" :min-width="v.minWidth" :align="v.align" :key="i" :prop="v.prop" :label="v.label" :formatter="v.formatter"></el-table-column>
......
......@@ -68,8 +68,10 @@ export default {
tooltip: true,
align: 'left',
formatter: function(row) {
const date = formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss', true);
return row.gameStartTime ? date.y + '<br/>' + date.h : '';
return `<p class="cell-time">
${formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss', true).y}<br />
<span>${formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss', true).h}</span>
</p>`;
}
},
{
......@@ -79,8 +81,10 @@ export default {
tooltip: true,
align: 'left',
formatter: function(row) {
const date = formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss', true);
return row.gameEndTime ? date.y + '<br/>' + date.h : '';
return `<p class="cell-time">
${formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss', true).y}<br />
<span>${formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss', true).h}</span>
</p>`;
}
},
{ label: '参与人数', prop: 'cyrs', width: '100', align: 'left' },
......
......@@ -47,8 +47,10 @@
</el-table-column>
<el-table-column :min-width="100" align="left" label="玩游戏时间" prop="createTime">
<template slot-scope="scope">
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss', true).y }}</p>
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss', true).h }}</p>
<p class="cell-time">
{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss', true).y }}<br />
<span>{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss', true).h }}</span>
</p>
</template>
</el-table-column>
<el-table-column v-for="(v, i) in recordHeader" :show-overflow-tooltip="v.tooltip" :width="v.width" :min-width="v.minWidth" :align="v.align" :key="i" :prop="v.prop" :label="v.label" :formatter="v.formatter"></el-table-column>
......
......@@ -79,8 +79,9 @@
</el-table-column>
<el-table-column :min-width="100" align="left" label="上报时间" prop="backTime">
<template slot-scope="scope">
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.backTime, 'yyyy-MM-dd-HH-mm-ss', true).y }}</p>
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.backTime, 'yyyy-MM-dd-HH-mm-ss', true).h }}</p>
<p class="cell-time">
{{ formatDateTimeByType(scope.row.backTime, 'yyyy-MM-dd-HH-mm-ss', true).y }}<br /><span>{{ formatDateTimeByType(scope.row.backTime, 'yyyy-MM-dd-HH-mm-ss', true).h }}</span>
</p>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="false" :min-width="150" align="left" label="短信内容" prop="remark">
......
......@@ -14,8 +14,9 @@
<el-table tooltipEffect="light" :data="messageList" style="width: 100%" row-key="sendTime" v-loading="recordLoading">
<el-table-column :min-width="100" align="left" label="发送时间" prop="sendTime">
<template slot-scope="scope">
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.sendTime, 'yyyy-MM-dd-HH-mm-ss', true).y }}</p>
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.sendTime, 'yyyy-MM-dd-HH-mm-ss', true).h }}</p>
<p class="cell-time">
{{ formatDateTimeByType(scope.row.sendTime, 'yyyy-MM-dd-HH-mm-ss', true).y }}<br /><span>{{ formatDateTimeByType(scope.row.sendTime, 'yyyy-MM-dd-HH-mm-ss', true).h }}</span>
</p>
</template>
</el-table-column>
<el-table-column v-for="(v, i) in recordHeader" :show-overflow-tooltip="v.tooltip" :width="v.width" :min-width="v.minWidth" :align="v.align" :key="i" :prop="v.prop" :label="v.label" :formatter="v.formatter" :fixed="v.fixed"></el-table-column>
......
......@@ -75,8 +75,10 @@ export default {
align: 'left',
sortable: 'custom',
formatter: function(row) {
const date = formatDateTimeByType(row.updateTime, 'yyyy-MM-dd-HH-mm-ss', true);
return row.updateTime ? date.y + '<br/>' + date.h : '';
return `<p class="cell-time">
${formatDateTimeByType(row.updateTime, 'yyyy-MM-dd-HH-mm-ss', true).y}<br />
<span>${formatDateTimeByType(row.updateTime, 'yyyy-MM-dd-HH-mm-ss', true).h}</span>
</p>`;
}
}
],
......
......@@ -19,8 +19,9 @@
<el-table tooltipEffect="light" :data="recordList" style="width: 100%" row-key="sendTime" v-loading="loading">
<el-table-column :min-width="100" align="left" label="时间" prop="createTime">
<template slot-scope="scope">
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss', true).y }}</p>
<p style="color:#606266;">{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss', true).h }}</p>
<p class="cell-time">
{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss', true).y }}<br /><span>{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss', true).h }}</span>
</p>
</template>
</el-table-column>
<el-table-column v-for="(v, i) in recordHeader" :show-overflow-tooltip="v.tooltip" :width="v.width" :min-width="v.minWidth" :align="v.align" :key="i" :prop="v.prop" :label="v.label" :formatter="v.formatter" :fixed="v.fixed" :render-header="v.renderHeader"></el-table-column>
......
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