Commit 4175364e by huaying

Merge branch 'feature/9月-基础迭代'

parents a2fa4113 c430dbf4
......@@ -6,6 +6,7 @@
<title></title>
<link rel="stylesheet" href="//at.alicdn.com/t/font_688955_2dxzdzrb3a7.css">
<link rel="stylesheet" href="//at.alicdn.com/t/font_3276801_5bjk41qthxj.css">
<script src="//at.alicdn.com/t/c/font_3380872_ytparjbow6j.js"></script>
<script src="//at.alicdn.com/t/font_3276801_5bjk41qthxj.js"></script>
</head>
<body style="background-color: #f0f2f5;min-width: 1400px;">
......
......@@ -12,6 +12,13 @@
<p class="batch-txt">{{ list.length ? '存在分组正在被以下模块使用,请先删除对应的内容后再来删除分组。' : '删除后无法恢复,确认要删除该分组吗?' }}</p>
</div>
<div v-if="operNum == 2">
<!-- 选择分类:<el-select v-model="groupId" placeholder="请选择分类" v-loadmore="loadMoreGroupList" filterable remote :remote-method="searchGroupList" class="select-classify">
<el-option v-for="el in groupList" :key="el.memberTagGroupClassifyId" :value="el.memberTagGroupClassifyId" :label="el.classifyName"></el-option>
<i class="el-icon-search" slot="prefix"></i>
</el-select> -->
选择分组:<dm-select-scroller :width="305" clearable :data="groupList" v-model="groupId" placeholder="请选择分类" @load="loadMoreGroupList" @remote-search="searchGroupList" :loading="loadings" :total-count="totalCountGounp" :props="propsGroup"></dm-select-scroller>
</div>
<!-- <div v-if="operNum == 2">
<p class="title">
所有分类
</p>
......@@ -22,7 +29,7 @@
</li>
</ul>
<p class="group-name">选中的分类:{{ groupName }}</p>
</div>
</div> -->
<template v-if="operNum == 0 || operNum == 1">
<p v-for="(item, index) in list" :key="index" class="item">
{{ item.groupName }}<a :href="item.businessLink" target="_blank" @click="isOpenPage = true">{{ item.businessModuleName }}-{{ item.businessName }}</a>
......@@ -56,11 +63,36 @@ export default {
operNum: -1,
groupList: [],
groupName: '',
groupId: '',
listIndex: -1,
list: [],
loading: false
params: {
classifyName: '',
pageNum: 1,
totalPage: 1
},
totalCountGounp: 0,
loading: false,
loadings: false,
propsGroup: {
label: 'classifyName',
value: 'memberTagGroupClassifyId'
}
};
},
directives: {
loadmore: {
inserted(el, binding) {
const SELECTDOWN_DOM = el.querySelector('.el-select-dropdown .el-select-dropdown__wrap');
SELECTDOWN_DOM.addEventListener('scroll', function() {
const CONDITION = this.scrollHeight - this.scrollTop -100 <= this.clientHeight;
if (CONDITION && !this.loadings) {
binding.value();
}
})
}
}
},
methods: {
confirmBatch() {
......@@ -96,14 +128,13 @@ export default {
}
});
} else if (batchNum == 2) {
if (!this.groupName) {
if (!this.groupId) {
this.$message.warning({
message: '请先选择的会员分组的分类'
});
return;
}
let index = this.groupList.findIndex(el => el.classifyName === this.groupName);
param.memberTagGroupClassifyId = this.groupList[index].memberTagGroupClassifyId;
param.memberTagGroupClassifyId = this.groupId;
batchChangeGroup(param)
.then(res => {
if (res.errorCode == 0) {
......@@ -129,27 +160,53 @@ export default {
// 关
closeBatch() {
this.batchDialog = false;
this.groupId = '';
this.params.totalPage = 1;
this.params.classifyName = '';
this.params.pageNum = 1;
this.$emit('update:batchVisiable', false);
},
searchGroupList(classifyName) {
this.params.classifyName = classifyName;
this.params.pageNum = 1;
this.getMemberGroupList();
},
loadMoreGroupList() {
if (this.params.pageNum + 1 > this.params.totalPage) {
return
}
this.params.pageNum++;
this.getMemberGroupList();
},
getMemberGroupList() {
const { classifyName, pageNum } = this.params;
this.loadings = true;
memberGroupList({
classifyName,
pageNum,
pageSize: 20,
type: 0,
requestProject: 'gic-member-tag-web',
pageSize: 99999
})
.then(res => {
if (res.errorCode == 0) {
console.log(res.result)
const { result} = res.result;
this.groupList = result.filter(el => el.classifyName != '未分类' && el.classifyName != null).map(item => ({
...item,
edit: false
}));
}
})
.catch(err => {
console.log(err);
});
}).then(res => {
const { errorCode, result } = res;
if (pageNum == 1) {
this.groupList = [];
}
if (errorCode != 0) return;
if (Array.isArray(result.result)) {
this.groupList = this.groupList.concat(result.result.filter(el => el.classifyName != '未分类' && el.classifyName != null));
}
this.params.totalPage = result.totalPage;
this.totalCountGounp = result.totalCount || 0;
}).catch(() => {
if (pageNum == 1) {
this.groupList = [];
}
}).finally(() => {
setTimeout(()=>{
this.loadings = false;
}, 500)
});
},
checkGroup() {
this.loading = true;
......@@ -180,7 +237,9 @@ export default {
batchVisiable(newval) {
newval && [1,0].includes(this.operateNumber) && this.checkGroup();
this.batchDialog = newval;
this.getMemberGroupList();
if (newval) {
this.getMemberGroupList();
}
},
operateNumber(newval) {
this.operNum = newval;
......@@ -196,6 +255,14 @@ export default {
</script>
<style lang="scss" scoped>
.select-classify {
width: 305px;
/deep/ .el-input__prefix {
display: flex;
align-items: center;
margin-left: 5px;
}
}
.batch-txt {
padding-left: 35px;
padding-top: 7px;
......
......@@ -183,6 +183,7 @@
<label class="inline-block middle label-unit m-r-8">最近</label
><el-input v-model="parent.fixedRecentTimeRecent" placeholder="请输入1-730" class="m-r-8" style="width: 120px" @blur="value => toEditInput(value, 'fixedRecentTimeRecent', parent)"></el-input
><label class="inline-block middle label-unit"></label>
<span class="tips m-l-8 middle">统计当天之前的数据</span>
</div>
</div>
</div>
......@@ -422,7 +423,7 @@
</div>
<div class="m-t-20">
<label class="inline-block w-98"></label>
<el-checkbox v-model="parent.timeAfterChecked">
<el-checkbox v-model="parent.timeAfterChecked" style="margin-right: 0">
</el-checkbox>
<el-select v-model="parent.timeSelect" placeholder="请选择" class="w-86 m-l-8">
......@@ -437,11 +438,11 @@
></el-input>
<template v-if="parent.timeRadio == 1">
<label class="inline-block middle label-unit m-l-8"></label>
<label class="inline-block middle label-tip">正整数,最大365</label>
<label class="inline-block middle label-tip">正整数,最大365,统计当天之前的数据</label>
</template>
<template v-if="parent.timeRadio == 2">
<label class="inline-block middle label-unit m-l-8"></label>
<label class="inline-block middle label-tip">正整数,最大24</label>
<label class="inline-block middle label-tip">正整数,最大24,统计当月之前的数据</label>
</template>
</div>
</div>
......@@ -582,7 +583,7 @@
<el-radio label="3"></el-radio>
</el-radio-group>
</div>
<template v-if="['haobanWechatRelatedTime','onceCostTime'].includes(currentKey)">
<template v-if="['haobanWechatRelatedTime','onceCostTime', 'lastMarketingTime', 'allChannelOnceCostTime'].includes(currentKey)">
<div class="m-t-20" v-if="parent.timeRadio!=='1'">
<label class="inline-block w-98"></label>
<el-checkbox v-model="parent.timeChecked" @change="currentDayChange($event, parent)">
......@@ -613,15 +614,16 @@
></el-input>
<template v-if="parent.timeRadio == 1">
<label class="inline-block middle label-unit m-l-8"></label>
<label class="inline-block middle label-tip">正整数,最大730</label>
<!-- lastCostTime:最近消费时间 -->
<label class="inline-block middle label-tip">{{ tagData.tagCode == 'lastCostTime' ? '统计当天之前的数据' : '正整数,最大730,统计当天之前的数据' }}</label>
</template>
<template v-if="parent.timeRadio == 2">
<label class="inline-block middle label-unit m-l-8"></label>
<label class="inline-block middle label-tip">正整数,最大24</label>
<label class="inline-block middle label-tip">{{ tagData.tagCode == 'lastCostTime' ? '统计当月之前的数据' : '正整数,最大24,统计当月之前的数据' }}</label>
</template>
<template v-if="parent.timeRadio == 3">
<label class="inline-block middle label-unit m-l-8"></label>
<label class="inline-block middle label-tip">正整数,最大2</label>
<label class="inline-block middle label-tip">{{ tagData.tagCode == 'lastCostTime' ? '统计当年之前的数据' : '正整数,最大2,统计当年之前的数据' }}</label>
</template>
</div>
</div>
......@@ -629,7 +631,7 @@
</div>
</template>
<template v-if="parent.templateCode == 'tag050'">
<div class="m-b-20" :key="'tag17' + pindex">
<div :key="'tag17' + pindex">
<label class="inline-block m-r-20 label-unit" style="width: 108px;text-align: right">
最近关联时间
<el-tooltip placement="top" open-delay="100">
......@@ -786,15 +788,18 @@
></el-input>
<template v-if="parent.timeRadio == 1">
<label class="inline-block middle label-unit m-l-8"></label>
<label class="inline-block middle label-tip">正整数,最大365</label>
<!-- <label class="inline-block middle label-tip">正整数,最大365</label> -->
<label class="inline-block middle label-tip">统计当天之前的数据</label>
</template>
<template v-if="parent.timeRadio == 2">
<label class="inline-block middle label-unit m-l-8"></label>
<label class="inline-block middle label-tip">正整数,最大24</label>
<!-- <label class="inline-block middle label-tip">正整数,最大24</label> -->
<label class="inline-block middle label-tip">统计当月之前的数据</label>
</template>
<template v-if="parent.timeRadio == 3">
<label class="inline-block middle label-unit m-l-8"></label>
<label class="inline-block middle label-tip">正整数,最大2</label>
<!-- <label class="inline-block middle label-tip">正整数,最大2</label> -->
<label class="inline-block middle label-tip">统计当年之前的数据</label>
</template>
</div>
</div>
......@@ -999,7 +1004,7 @@
</div>
</template>
<template v-if="parent.templateCode == 'tag040'">
<label class="inline-block m-r-20 label-unit" style="width: 108px;text-align: right">
<label class="inline-block m-r-20 m-b-20 label-unit" style="width: 108px;text-align: right">
关联渠道
<el-tooltip placement="top" open-delay="100">
<div slot="content">关联渠道为当前客户关联的线上渠道,根据关联状态实时变化</div>
......@@ -1010,6 +1015,11 @@
<el-radio v-for="item in parent.options" :key="item.key" :label="item.key">{{ item.value }}</el-radio>
</el-radio-group>
</template>
<template v-if="parent.templateCode == 'tag060'">
<el-checkbox-group v-model="parent.checked">
<el-checkbox v-for="item in parent.options" :key="item.key" :label="item.key">{{ item.value }}</el-checkbox>
</el-checkbox-group>
</template>
<!-- 会员标签嵌入卡券选择器 com024 -->
<!-- v-if="parent.templateCode == 'com024'" -->
......@@ -1426,6 +1436,9 @@ export default {
tag040: {
radioType: '1100',
},
tag060: {
checked: []
},
cardListData: [],
com024: {},
com025: {},
......@@ -1589,6 +1602,7 @@ export default {
this.tagData.tagId = data.tagId;
this.tagData.tagType = data.tagType;
this.tagData.tagName = data.tagName;
this.tagData.tagCode = data.tagCode;
this.currentKey = data.columnKey;
this.tagData.isActive = data.isActive;
this.tagData.isMultiple = data.isMultiple;
......@@ -1845,9 +1859,22 @@ export default {
key: [1,2].includes(this.tagData.tagType) ? this.tagData.tagId : this.currentKey,
requestProject: 'gic-member-tag-web'
};
if (data.templateCode == 'tag040') {
this.templateData.push(data);
}
this.axios.post(`${this.baseUrl}${url}`, qs.stringify(para))
.then(res => {
let resData = res;
if (data.templateCode == 'tag040') {
data.options = resData.data.result;
const index = this.templateData.findIndex(el => el.esScreeningWidgetId == data.esScreeningWidgetId);
if (index >= 0) {
this.templateData.splice(index, 1, data);
} else {
this.templateData.push(data);
}
return;
}
if (this.tagData.tagType != 1 && this.currentKey != 'tag') {
if (resData.data.errorCode == 0) {
data.options = resData.data.result;
......@@ -2242,7 +2269,8 @@ export default {
case 'tag050':
for (let i = 0; i < this.templateData.length; i++) {
if (this.templateData[i].templateCode === 'tag050') {
let templateDate = tagParams.template[0];
const index = tagParams.template.findIndex(el => el.templateCode == 'tag050');
let templateDate = tagParams.template[index];
// 判断是那个时间段
// 固定时段
this.templateData[i].radio = templateDate.radio; // 时段
......@@ -2443,6 +2471,10 @@ export default {
value = tagValue.val[0].data.value;
this.templateData[i].radioType = value;
break;
case 'tag060':
value = tagValue.val[0].data.value;
this.templateData[i].checked = value.split(' ');
break;
case 'tag024':
const getTag024Data = this.hasTemplate('tag024');
......@@ -2632,7 +2664,7 @@ export default {
}
.relative-range {
width: 526px;
width: 670px;
height: 191px;
padding: 19px;
background: #f3f6f9;
......@@ -2819,7 +2851,7 @@ export default {
display: flex;
}
.radio {
margin-left: 10px;
margin-left: 26px;
margin-bottom: 20px;
}
.flex-direction {
......
......@@ -564,7 +564,7 @@ export default {
}
}
}
if (code == 'tag050' && that.templateData.length > 0) {
if (code == 'tag050') {
switch(Number(that.templateData[0].radio)) {
case 0:
tagValue.time[0].compute = 'all';
......@@ -918,12 +918,14 @@ export default {
// 数字区间 = >= <= qu区间
if (code == 'com001') {
const numReg = /^(-?\d+)(\.\d+)?$/;
for (let k of this.templateData) {
if (k.templateCode == 'com001') {
// tagValue.val[0].data.compute = k.symbol;
tagValue.val[0].data.compute = k.symbol == '区间' ? 'between' : k.symbol;
if (k.symbol != '区间') {
if (!k.num) {
// if (!k.num) {
if (!numReg.test(k.num + '')) {
this.$message.warning({
message: '请完善区间值!'
});
......@@ -936,7 +938,8 @@ export default {
}
tagValue.val[0].data.value = k.num;
} else {
if (!k.numRange[0] || !k.numRange[1]) {
// if (!k.numRange[0] || !k.numRange[1]) {
if (!numReg.test(k.numRange[0]) || !numReg.test(k.numRange[1])) {
this.$message.warning({
message: '请完善区间值!'
});
......@@ -992,6 +995,10 @@ export default {
this.postTemplateData.selectedVal.push(abbr.join(' '));
this.postTemplateData.conditionList = this.com022.conditionsList;
}
if (code == 'tag060' && (!Array.isArray(that.templateData[0].checked) || that.templateData[0].checked.length == 0)) {
this.$message.error('请完善标签值');
return false;
}
/* 属于/不属于+ 选项 */
......@@ -1164,6 +1171,133 @@ export default {
tagValue.val[0].data.value = ele.radioType;
that.postTemplateData.selectedVal.push(ele.options.find(item => item.key == ele.radioType).value);
}
if (ele.templateCode == 'tag050') {
switch(Number(ele.radio)) {
case 0:
tagValue.time[0].compute = 'all';
tagValue.time[0].value = '';
that.postTemplateData.selectedVal.push('所有时间');
break;
case 1:
tagValue.time[0].compute = 'between';
tagValue.time[0].value = ele.dateRangeValue.join(',')
that.postTemplateData.selectedVal.push(ele.dateRangeValue[0].split(' ')[0] + '至' + ele.dateRangeValue[1].split(' ')[0]);
break;
case 2:
// tagValue.time[0].compute = 'lastday';
// tagValue.time[0].value = that.templateData[0].dateRangeValue
// 天
// timeAfterChecked 最近/之后
// timeChecked 当天/年/月
if (ele.timeRadio == 1) {
/** 同时选择
* lastdayHasToday 最近几天包含今天
* afterdayHasToday 之后几天包含今天
*/
if (ele.timeChecked && ele.timeAfterChecked) {
if (ele.timeSelect == 1) {
tagValue.time[0].compute = 'lastdayHasToday';
tagValue.time[0].value = String(ele.timeInput);
that.postTemplateData.selectedVal.push(`最近 ${ele.timeInput}天包含当天`);
ele.timeInput = '';
}
that.postTemplateData.template = that.templateData;
tagParams = that.postTemplateData;
}
//天 当天
if (ele.timeChecked && !ele.timeAfterChecked) {
tagValue.time[0].compute = 'today'
tagValue.time[0].value = '1';
that.postTemplateData.selectedVal.push('当天');
ele.timeInput = '';
}
if (ele.timeAfterChecked && !ele.timeChecked) {
if (ele.timeSelect == 1) {
// 最近
tagValue.time[0].compute = 'lastday';
tagValue.time[0].value = String(ele.timeInput);
that.postTemplateData.selectedVal.push(`最近 ${ele.timeInput} 天`);
}
}
}
// 月
if (ele.timeRadio == 2) {
/**
* lastmonthHasCurrentMonth 最近几月包含当月
* aftermonthHasCurrentMonth 之后几月包含当月
*/
if (ele.timeChecked && ele.timeAfterChecked) {
if (ele.timeSelect == 1) {
tagValue.time[0].compute = 'lastmonthHasCurrentMonth';
tagValue.time[0].value = String(ele.timeInput);
that.postTemplateData.selectedVal.push(`最近 ${ele.timeInput} 月包含当月`);
ele.timeInput = '';
}
that.postTemplateData.template = that.templateData;
tagParams = that.postTemplateData;
}
//月 当月
if (ele.timeChecked && !ele.timeAfterChecked) {
tagValue.time[0].compute = 'currentMonth';
tagValue.time[0].value = '1';
that.postTemplateData.selectedVal.push('当月');
ele.timeInput = '';
}
// 最近/之后
if (ele.timeAfterChecked && !ele.timeChecked) {
if (ele.timeSelect == 1) {
// 最近
tagValue.time[0].compute = 'lastmonth';
tagValue.time[0].value = String(ele.timeInput);
that.postTemplateData.selectedVal.push(`最近 ${ele.timeInput} 月`);
}
}
}
// 年
if (ele.timeRadio == 3) {
/**
* lastyearHasCurrentYear 最近几年包含当年
* afteryearHasCurrentYear 之后几年包含当年
*/
if (ele.timeChecked && ele.timeAfterChecked) {
if (ele.timeSelect == 1) {
tagValue.time[0].compute = 'lastyearHasCurrentYear';
tagValue.time[0].value = String(ele.timeInput);
that.postTemplateData.selectedVal.push(`最近 ${ele.timeInput} 年包含当年`);
ele.timeInput = '';
}
that.postTemplateData.template = that.templateData;
tagParams = that.postTemplateData;
}
//年 当年
if (ele.timeChecked && !ele.timeAfterChecked) {
tagValue.time[0].compute = 'currentYear';
tagValue.time[0].value = '1';
that.postTemplateData.selectedVal.push('当年');
ele.timeInput = '';
}
// 最近/之后
if (ele.timeAfterChecked && !ele.timeChecked) {
if (ele.timeSelect == 1) {
// 最近
tagValue.time[0].compute = 'lastyear';
tagValue.time[0].value = String(ele.timeInput);
that.postTemplateData.selectedVal.push(`最近 ${ele.timeInput} 年`);
}
}
}
break;
}
}
if (ele.templateCode == 'tag060') {
tagValue.val[0].data.value = ele.checked.join(' ');
ele.checked.forEach(item => {
that.postTemplateData.selectedVal.push(ele.options.find(k => item == k.key).value);
});
}
}
}
......@@ -1535,12 +1669,17 @@ export default {
* 天/月/年输入
*/
toEditDateInput(e, radio, parent) {
const codeList = ['firstCostTime', 'allChannelLastCostTime', 'allChannelFirstCostTime', 'lastCostTime'];
const code = parent.templateCode;
let newNum;
newNum = Number(e.target.value) ? Math.floor(e.target.value) : 1;
if (newNum <= 0) {
newNum = 1;
}
if (codeList.some(el => el == this.tagData.tagCode)) {
parent.timeInput = newNum;
return;
}
// 天
if (code != 'tag020' && code != 'tag050' && newNum > 365 && radio == 1) {
newNum = 365;
......
......@@ -90,7 +90,7 @@ export default {
.checkwrap-item {
/*-ms-flex: 25%;
flex: 25%;*/
width: 25%;
width: 33%;
}
.line-30 {
......
......@@ -26,6 +26,8 @@ server.interceptors.response.use(
const data = response.data;
if (data.errorCode == 0) {
return data;
} else if (data.errorCode == '200009') {
return data;
} else {
// 根据不同的状态码来做一些操作 例如 token不合法 token过期 没有权限之类的'
Message({
......
......@@ -54,7 +54,10 @@
<span>
<div class="flex">
<span class="table-member__img inline-block middle border-box m-r-10">
<img :src="scope.row.thirdImgUrl ? scope.row.thirdImgUrl : require('../../assets/group/member_img.png')" />
<img v-if="scope.row.thirdImgUrl" class="member-icon" :src="scope.row.thirdImgUrl" />
<svg v-else aria-hidden="true" class="member-icon">
<use xlink:href="#icon-user-default"></use>
</svg>
</span>
<div class="inline-block">
<span>{{ scope.row.memberName }}<span class="tips" v-if="scope.row.nickName"> ({{ scope.row.nickName }})</span></span>
......@@ -226,6 +229,34 @@
<template v-if="item.code === 'highCostPaid'">
<span>{{scope.row.highCostPaid}}</span>
</template>
<!-- 销售次数(全渠道) -->
<template v-if="item.code === 'allChannelCostTimes'">
<span>{{scope.row.allChannelCostTimes}}</span>
</template>
<!-- 最高单笔/实付(全渠道) -->
<template v-if="item.code === 'allChannelHighCostPaid'">
<span>{{scope.row.allChannelHighCostPaid}}</span>
</template>
<!-- 最近消费时间(全渠道) -->
<template v-if="item.code === 'allChannelLastCostTime'">
<span>{{scope.row.allChannelLastCostTime | formatTimeYMD}}</span>
</template>
<!-- 客单价(全渠道) -->
<template v-if="item.code === 'allChannelAvgCost'">
<span>{{scope.row.allChannelAvgCost}}</span>
</template>
<!-- 连带率(全渠道) -->
<template v-if="item.code === 'allChannelAvgNumber'">
<span>{{scope.row.allChannelAvgNumber}}</span>
</template>
<!-- 平均折扣率(全渠道) -->
<template v-if="item.code === 'allChannelDiscountRate'">
<span>{{scope.row.allChannelDiscountRate}}</span>
</template>
<!-- 消费总额/实付(全渠道) -->
<template v-if="item.code === 'allChannelCostAllPaid'">
<span>{{scope.row.allChannelCostAllPaid}}</span>
</template>
</template>
</el-table-column>
<el-table-column label="添加标签时间" width="200">
......@@ -835,9 +866,10 @@ export default {
text-align: center;
border-radius: 50%;
overflow: hidden;
img {
.member-icon {
display: inline-block;
width: 100%;
height: 100%;
vertical-align: middle;
border-radius: 4px;
}
......
<template>
<el-dialog :visible.sync="visible" custom-class="delete-dialog" width="416px" @close="onClose">
<div class="dialog-content">
<i class="el-alert__icon el-icon-warning is-big icon" />
<i class="el-alert__icon el-icon-warning is-big icons" />
<h2>{{ title }}</h2>
<div v-loading="loading">
<p class="desc">{{ desc }}</p>
......@@ -132,8 +132,8 @@ export default {
.ml10 {
margin-left: 10px;
}
.icon {
font-size: 21px;
.icons {
font-size: 21px !important;
position: absolute;
color: #fa8c16;
left: 30px;
......
......@@ -54,7 +54,7 @@ export default {
listsParams: {
// type: '', // 类型 0:客户分组,1:固化分组
pageNum: 1, // 页码,从1开始
pageSize: 20, // 页面大小
pageSize: 40, // 页面大小
totalPage: 1,
classifyName: '' // 分类名
},
......@@ -82,7 +82,7 @@ export default {
this.getMemberGroupList();
},
onScroll(e) {
if ((e.target.scrollTop + e.target.clientHeight) >= this.lists.length * 40) {
if ((e.target.scrollTop + e.target.clientHeight) >= this.lists.length * 40 && !this.memberGroupLoading) {
this.onPageNumChange();
}
},
......@@ -261,7 +261,8 @@ export default {
</script>
<style lang="scss" scoped>
.add-category, .search-box {
.add-category,
.search-box {
padding: 0 15px;
}
.add-group {
......@@ -289,8 +290,8 @@ export default {
margin: 0 4px;
}
&:hover {
color: #2F54EB;
background: #F2F3F5;
color: #2f54eb;
background: #f2f3f5;
.icon:hover {
background: RGBA(229, 230, 235, 1);
}
......@@ -308,23 +309,22 @@ export default {
color: #303133;
overflow-y: auto;
.active-li {
color: #2F54EB;
background-color: #ebeffe;
.wrap span{
padding-left: 6px;
color: #2f54eb;
background-color: #ebeffe;
.wrap span {
padding-left: 6px;
color: #2f54eb;
}
.icon:hover {
background: #d8defc;
}
}
.wrap span{
.wrap span {
padding-left: 6px;
color: #303133;
}
}
.more {
line-height: 26px;
text-align: center;
......
......@@ -79,7 +79,10 @@
<span>
<div class="flex">
<span class="table-member__img inline-block middle border-box m-r-10">
<img :src="scope.row.thirdImgUrl ? scope.row.thirdImgUrl : require('../../assets/group/member_img.png')" />
<img v-if="scope.row.thirdImgUrl" class="member-icon" :src="scope.row.thirdImgUrl" />
<svg v-else aria-hidden="true" class="member-icon">
<use xlink:href="#icon-user-default"></use>
</svg>
</span>
<div class="inline-block">
<span>{{ scope.row.memberName }}<span class="tips" v-if="scope.row.nickName"> ({{ scope.row.nickName }})</span></span>
......@@ -251,6 +254,34 @@
<template v-if="item.code === 'highCostPaid'">
<span>{{scope.row.highCostPaid}}</span>
</template>
<!-- 销售次数(全渠道) -->
<template v-if="item.code === 'allChannelCostTimes'">
<span>{{scope.row.allChannelCostTimes}}</span>
</template>
<!-- 最高单笔/实付(全渠道) -->
<template v-if="item.code === 'allChannelHighCostPaid'">
<span>{{scope.row.allChannelHighCostPaid}}</span>
</template>
<!-- 最近消费时间(全渠道) -->
<template v-if="item.code === 'allChannelLastCostTime'">
<span>{{scope.row.allChannelLastCostTime | formatTimeYMD}}</span>
</template>
<!-- 客单价(全渠道) -->
<template v-if="item.code === 'allChannelAvgCost'">
<span>{{scope.row.allChannelAvgCost}}</span>
</template>
<!-- 连带率(全渠道) -->
<template v-if="item.code === 'allChannelAvgNumber'">
<span>{{scope.row.allChannelAvgNumber}}</span>
</template>
<!-- 平均折扣率(全渠道) -->
<template v-if="item.code === 'allChannelDiscountRate'">
<span>{{scope.row.allChannelDiscountRate}}</span>
</template>
<!-- 消费总额/实付(全渠道) -->
<template v-if="item.code === 'allChannelCostAllPaid'">
<span>{{scope.row.allChannelCostAllPaid}}</span>
</template>
</template>
</el-table-column>
<el-table-column label-class-name="table-header__handle" :min-width="160" fixed="right">
......@@ -883,7 +914,7 @@ export default {
.table-member__img {
text-align: center;
img {
.member-icon {
display: inline-block;
width: 40px;
height: 40px;
......
......@@ -624,6 +624,12 @@ export default {
if (res.data.errorCode == 0) {
showMsg.showmsg(this.ruleForm.memberTagGroupId ? '编辑成功' : '新增成功', 'success');
this.changeRoute('/memberGroupList');
}else if(res.data.errorCode == '200009'){
this.$alert(res.data.message, '提示', {
confirmButtonText: '知道了',
type: 'warning',
customClass: 'addNewGroupClass'
})
} else {
this.$message.warning(res.data.message);
}
......
......@@ -76,10 +76,11 @@
</el-popover>
</template>
</el-table-column>
<el-table-column prop="latestUpdateTime" min-width="100" label="更新时间">
<el-table-column prop="latestUpdateTime" width="100" label="更新时间">
<template slot-scope="scope">
<p class="h-18">{{ scope.row.latestUpdateTime | formatTimeYMD }}</p>
<p class="h-18">{{ scope.row.latestUpdateTime | formatTimeHMS }}</p>
<!-- <p class="h-18">{{ scope.row.latestUpdateTime | formatTimeYMD }}</p>
<p class="h-18">{{ scope.row.latestUpdateTime | formatTimeHMS }}</p> -->
{{scope.row.latestUpdateTime}}
</template>
</el-table-column>
<el-table-column prop="state" label="状态" min-width="80">
......@@ -128,10 +129,11 @@
<el-table-column label="创建人" prop="createUserName" min-width="110" v-if="[2,3].includes($store.state.departAuth) || $store.state.isSuperAdmin">
<template slot-scope="{ row }">{{ row.createUserName || '--'}}</template>
</el-table-column>
<el-table-column prop="createTime" min-width="100" label="创建时间">
<el-table-column prop="createTime" width="100" label="创建时间">
<template slot-scope="scope">
<p class="h-18">{{ scope.row.createTime | formatTimeYMD }}</p>
<p class="h-18">{{ scope.row.createTime | formatTimeHMS }}</p>
<!-- <p class="h-18">{{ scope.row.createTime | formatTimeYMD }}</p>
<p class="h-18">{{ scope.row.createTime | formatTimeHMS }}</p> -->
{{scope.row.createTime}}
</template>
</el-table-column>
<el-table-column label="操作" width="180" fixed="right" v-if="$getButtonLimit($buttonCode.memberTagDelGroup) || $getButtonLimit($buttonCode.memberTagFixedPile)">
......@@ -246,8 +248,9 @@
</el-table-column>
<el-table-column label="最近更新时间" width="110">
<template slot-scope="scope">
<p class="h-18">{{ scope.row.latestUpdateTime | formatTimeYMD }}</p>
<p class="h-18">{{ scope.row.latestUpdateTime | formatTimeHMS }}</p>
<!-- <p class="h-18">{{ scope.row.latestUpdateTime | formatTimeYMD }}</p>
<p class="h-18">{{ scope.row.latestUpdateTime | formatTimeHMS }}</p> -->
{{scope.row.latestUpdateTime}}
</template>
</el-table-column>
<el-table-column prop="state" label="状态" min-width="70">
......@@ -295,11 +298,12 @@
<el-table-column label="创建人" min-width="110" prop="createUserName" v-if="[2,3].includes($store.state.departAuth) || $store.state.isSuperAdmin">
<template slot-scope="{ row }">{{ row.createUserName || '--'}}</template>
</el-table-column>
<el-table-column prop="recentUpdateDate" min-width="100" label="到期时间">
<el-table-column prop="recentUpdateDate" width="100" label="到期时间">
<template slot-scope="scope">
<template v-if="!scope.row.isRealTime">
<p class="h-18">{{ scope.row.effectiveDate | formatTimeYMD }}</p>
<p class="h-18">{{ scope.row.effectiveDate | formatTimeHMS }}</p>
<!-- <p class="h-18">{{ scope.row.effectiveDate | formatTimeYMD }}</p>
<p class="h-18">{{ scope.row.effectiveDate | formatTimeHMS }}</p> -->
{{scope.row.effectiveDate}}
</template>
<template v-else>--</template>
</template>
......@@ -307,15 +311,19 @@
<el-table-column prop="updateTime" min-width="110" label="最近编辑时间">
<template slot-scope="scope">
<p class="h-18">{{ scope.row.updateTime ? dateformat(new Date(scope.row.updateTime), 'yyyy-MM-dd') : '--' }}</p>
<p class="h-18">{{ scope.row.updateTime ? dateformat(new Date(scope.row.updateTime), 'hh:mm:ss') : '--' }}</p>
<template v-if="scope.row.updateTime">
<p class="h-18">{{ scope.row.updateTime ? dateformat(new Date(scope.row.updateTime), 'yyyy-MM-dd') : '--' }}</p>
<p class="h-18">{{ scope.row.updateTime ? dateformat(new Date(scope.row.updateTime), 'hh:mm:ss') : '--' }}</p>
</template>
<template v-else>--</template>
</template>
</el-table-column>
<el-table-column prop="createTime" min-width="100" label="创建时间">
<el-table-column prop="createTime" width="100" label="创建时间">
<template slot-scope="scope">
<p class="h-18">{{ scope.row.createTime | formatTimeYMD }}</p>
<p class="h-18">{{ scope.row.createTime | formatTimeHMS }}</p>
<!-- <p class="h-18">{{ scope.row.createTime | formatTimeYMD }}</p>
<p class="h-18">{{ scope.row.createTime | formatTimeHMS }}</p> -->
{{ scope.row.createTime}}
</template>
</el-table-column>
......@@ -373,7 +381,7 @@
<div class="right-box" v-show="isTagRecommend">
<div class="common-wrap__opt flex-between">
<div class="desc">覆盖人数于每日上午8点半进行更新</div>
<div class="tips">覆盖人数于每日上午8点半进行更新,仅统计线下订单</div>
<!-- <div class="batch-option">
<el-button type="primary" class="fr ghost-btn" @click="isNew = !isNew">{{ `查看${isNew ? '旧' : '新'}版金字塔会员分层` }}</el-button>
</div> -->
......@@ -395,8 +403,9 @@
</el-table-column>
<el-table-column label="最近更新时间" prop="latestUpdateTime" min-width="100">
<template slot-scope="scope">
<p class="h-18">{{ scope.row.latestUpdateTime | formatTimeYMD }}</p>
<p class="h-18">{{ scope.row.latestUpdateTime | formatTimeHMS }}</p>
<!-- <p class="h-18">{{ scope.row.latestUpdateTime | formatTimeYMD }}</p>
<p class="h-18">{{ scope.row.latestUpdateTime | formatTimeHMS }}</p> -->
{{scope.row.latestUpdateTime}}
</template>
</el-table-column>
<el-table-column label="分类名称" prop="groupClassifyName" min-width="100">
......
......@@ -55,7 +55,10 @@
<span>
<div class="flex">
<span class="table-member__img inline-block middle border-box m-r-10">
<img :src="scope.row.thirdImgUrl ? scope.row.thirdImgUrl : require('../../assets/group/member_img.png')" />
<img v-if="scope.row.thirdImgUrl" class="member-icon" :src="scope.row.thirdImgUrl" />
<svg v-else aria-hidden="true" class="member-icon">
<use xlink:href="#icon-user-default"></use>
</svg>
</span>
<div class="inline-block">
<span>{{ scope.row.memberName }}<span class="tips" v-if="scope.row.nickName"> ({{ scope.row.nickName }})</span></span>
......@@ -227,6 +230,34 @@
<template v-if="item.code === 'highCostPaid'">
<span>{{scope.row.highCostPaid}}</span>
</template>
<!-- 消费总额/实付(全渠道) -->
<template v-if="item.code == 'allChannelCostAllPaid'">
<span>{{scope.row.allChannelCostAllPaid}}</span>
</template>
<!-- 消费次数(全渠道) -->
<template v-if="item.code == 'allChannelCostTimes'">
<span>{{scope.row.allChannelCostTimes}}</span>
</template>
<!-- 最高单笔/实付(全渠道) -->
<template v-if="item.code == 'allChannelHighCostPaid'">
<span>{{scope.row.allChannelHighCostPaid}}</span>
</template>
<!-- 最近消费时间(全渠道) -->
<template v-if="item.code == 'allChannelLastCostTime'">
<span>{{scope.row.allChannelLastCostTime | formatTimeYMD}}</span>
</template>
<!-- 客单价(全渠道) -->
<template v-if="item.code == 'allChannelAvgCost'">
<span>{{scope.row.allChannelAvgCost}}</span>
</template>
<!-- 连带率(全渠道) -->
<template v-if="item.code == 'allChannelAvgNumber'">
<span>{{scope.row.allChannelAvgNumber}}</span>
</template>
<!-- 平均折扣(全渠道) -->
<template v-if="item.code == 'allChannelDiscountRate'">
<span>{{scope.row.allChannelDiscountRate}}</span>
</template>
</template>
</el-table-column>
<el-table-column label-class-name="table-header__handle" v-if="$getButtonLimit($buttonCode.memberTagToCheck)" fixed="right" :min-width="160">
......@@ -853,7 +884,7 @@ export default {
.table-member__img {
text-align: center;
img {
.member-icon {
display: inline-block;
width: 40px;
height: 40px;
......
......@@ -519,13 +519,19 @@ export default {
addNewGroup(param)
.then(res => {
if (res.errorCode == 0) {
console.log(this.tagConfig.fixedType);
// console.log(this.tagConfig.fixedType);
const type = this.tagConfig.fixedType ? 'fixed' : '';
this.$router.push({ path: 'memberGroupList', query: { type } });
}else if(res.errorCode == '200009'){
this.$alert(res.message, '提示', {
confirmButtonText: '知道了',
type: 'warning',
customClass: 'addNewGroupClass'
})
}
})
.catch(err => {
console.log(err);
console.log(err, 'oooo');
});
},
expendsGroupList() {
......@@ -678,7 +684,8 @@ export default {
this.loadMemberTagList({
searchName: this.memberTag,
showSearchResult: true,
id: this.groupId
// id: this.groupId
id: this.activeTag != 'system' ? this.groupId : ''
});
this.pageNum = 1;
// this.handTag = null;
......@@ -960,6 +967,12 @@ export default {
.member-tag .el-tabs__header {
margin-bottom: 0;
}
.addNewGroupClass .el-message-box__status.el-icon-warning {
top: 12px !important;
&::before {
font-size: 21px !important;
}
}
</style>
<style lang="scss" scoped>
.deal-list-mask {
......
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