Commit f30b5885 by huaying

fix: 活码列表

parent edbbf9af
...@@ -21,6 +21,7 @@ Vue.axios.defaults.timeout = 500000; ...@@ -21,6 +21,7 @@ Vue.axios.defaults.timeout = 500000;
let local = window.location.origin; let local = window.location.origin;
const userInfos = JSON.parse(sessionStorage.getItem('userInfos') || '{}'); const userInfos = JSON.parse(sessionStorage.getItem('userInfos') || '{}');
let gicHost = typeof userInfos.gicHost == 'string' ? userInfos.gicHost.replace(/\/$/, '') : ''; let gicHost = typeof userInfos.gicHost == 'string' ? userInfos.gicHost.replace(/\/$/, '') : '';
console.log(gicHost);
if (local.indexOf('localhost') >= 0) { if (local.indexOf('localhost') >= 0) {
gicHost = local; gicHost = local;
} }
......
...@@ -3,17 +3,17 @@ ...@@ -3,17 +3,17 @@
<div class="border-box"> <div class="border-box">
<div class="list-body flex"> <div class="list-body flex">
<div class="list-left border-box"> <div class="list-left border-box">
<group-list ref="groupListRef"></group-list> <group-list ref="groupListRef" @updateList="getCurrentGroupID"></group-list>
</div> </div>
<div class="list-right p-20 border-box"> <div class="list-right p-20 border-box">
<dm-sub-title text="配置标签" class="m-b-10"> <dm-sub-title text="配置标签" class="m-b-10">
<div class="title"> <div class="title">
<span>员工活码</span> <span>员工活码</span>
<span class="info-content cur-po"><i class="el-icon-info info-icon"></i>指标说明</span> <span class="info-content cur-po"><i class="iconfont-hb3 iconzhibiaoshuoming info-icon"></i>指标说明</span>
</div> </div>
</dm-sub-title> </dm-sub-title>
<select-clerk @change="onChange"></select-clerk> <select-clerk @change="onChange"></select-clerk>
<act-code-table></act-code-table> <act-code-table :currentGroupId="currentGroupId"></act-code-table>
</div> </div>
</div> </div>
</div> </div>
...@@ -31,11 +31,27 @@ export default { ...@@ -31,11 +31,27 @@ export default {
SelectClerk SelectClerk
}, },
data() { data() {
return {}; return {
currentGroupId: null
};
}, },
methods: { methods: {
onChange(data) { onChange(data) {
console.log(data); console.log(data);
},
getCurrentGroupID(CurGroupId) {
this.currentGroupId = CurGroupId;
}
},
watch: {
currentGroupId: {
handler: function(val) {
console.log(val, 111);
if (val != null) {
this.currentGroupId = val;
}
},
immediate: true
} }
} }
}; };
......
...@@ -9,13 +9,14 @@ ...@@ -9,13 +9,14 @@
</el-form-item> </el-form-item>
</template> </template>
<template #member> <template #member>
<el-form-item label="使用成员" prop="memberType"> <el-form-item label="使用成员" :rules="[{ required: true, message: '请选择使用成员', trigger: 'blur' }]">
<el-radio-group v-model="form.memberType"> <el-radio-group v-model="form.memberType">
<el-radio :label="1">全部成员</el-radio> <el-radio :label="1">全部成员</el-radio>
<el-radio :label="2">部分成员</el-radio> <el-radio :label="2">部分成员</el-radio>
</el-radio-group> </el-radio-group>
<br /> <br />
<el-button plain class="ylbtn" v-if="form.memberType == 2"><i class="iconfont-components3 icon-cp-PlusOutlined addPic"></i>添加成员</el-button> <!-- <el-button plain class="ylbtn" v-if="form.memberType == 2"><i class="iconfont-components3 icon-cp-PlusOutlined addPic"></i>添加成员</el-button> -->
<select-clerk v-if="form.memberType == 2" @change="onChange"></select-clerk>
</el-form-item> </el-form-item>
</template> </template>
</setActCode> </setActCode>
...@@ -23,18 +24,24 @@ ...@@ -23,18 +24,24 @@
</template> </template>
<script> <script>
import setActCode from '../../../components/actCodeSet.vue'; import setActCode from '@/views/salesleads/components/actCodeSet.vue';
import SelectClerk from '../../components/select-clerk/index.vue';
export default { export default {
components: { setActCode }, components: { setActCode, SelectClerk },
data() { data() {
return { return {
form: { form: {
hmType: 1, hmType: 1,
clerkIdList: 1,
memberType: 1 memberType: 1
} }
}; };
}, },
methods: {} methods: {
onChange(data) {
console.log(data);
}
}
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
......
<template> <template>
<section> <section>
<div class="mb-10 mt-20 pl-16 pr-15"> <div class="mb-10 mt-20 pl-16 pr-15">
<el-input placeholder="请输入分组名称" maxlength="50" v-model="searchGroupInput" @keyup.native="value => searchGroup(value)"> <!-- @keyup.native="value => searchGroup(value)" -->
<el-input placeholder="请输入分组名称" maxlength="50" v-model="searchGroupInput" @change="searchGroup">
<i slot="prefix" class="el-input__icon el-icon-search"></i> <i slot="prefix" class="el-input__icon el-icon-search"></i>
</el-input> </el-input>
</div> </div>
...@@ -12,15 +13,21 @@ ...@@ -12,15 +13,21 @@
<span :title="listItem.groupName" class="listItemName overflow-ellipsis">{{ listItem.groupName }}</span> <span :title="listItem.groupName" class="listItemName overflow-ellipsis">{{ listItem.groupName }}</span>
<span>{{ `(${listItem.referNum})` }}</span> <span>{{ `(${listItem.referNum})` }}</span>
</div> </div>
<el-popover placement="bottom" trigger="hover" v-if="isShowGroupListItemMore(listItem)"> <el-popover placement="bottom" trigger="click" v-if="isShowGroupListItemMore(listItem)">
<p class="more" @click="editGroupListItem(listItem)">编辑</p> <p class="more" @click="editGroupListItem(listItem)">编辑</p>
<p class="more" @click="delGroupListItem(listItem)" v-if="!listItem.referNum">删除</p> <p class="more" @click="delGroupListItem(listItem)" v-if="!listItem.referNum">删除</p>
<i slot="reference" class="iconfont-hb3 icongengduo icon"></i> <i slot="reference" class="iconfont-hb3 icongengduo icon iconhover" v-if="listItem.groupName != '全部分组' && listItem.groupName != '默认分组'"></i>
</el-popover> </el-popover>
</li> </li>
<li>
<div class="el-loading-spinner" style="width: 86%;" v-if="groupLoading">
<i class="el-icon-loading"></i>
</div>
</li>
</ul> </ul>
<p v-if="searchTip" class="searchTip">没有找到和“{{ searchGroupInput }}”相关的内容</p>
</div> </div>
<div class="add-category"> <div class="add-category" v-if="searchGroupInput == ''">
<el-button type="primary" class="ghost-btn add-group" @click="addGroup">新增分组</el-button> <el-button type="primary" class="ghost-btn add-group" @click="addGroup">新增分组</el-button>
</div> </div>
<!-- 新增/编辑分组 --> <!-- 新增/编辑分组 -->
...@@ -45,22 +52,18 @@ import { getRequest } from '@/api/api'; ...@@ -45,22 +52,18 @@ import { getRequest } from '@/api/api';
export default { export default {
name: 'staffActCodeGroupList', name: 'staffActCodeGroupList',
data() { data() {
const groupList = [
{
groupName: '全部分组',
referNum: 11,
groupId: 1
}
// {
// groupName: '默认分组',
// referNum: 10,
// groupId: 2
// }
];
return { return {
searchTip: false,
groupLoading: false,
currentListItemUuid: 1, currentListItemUuid: 1,
searchGroupInput: '', searchGroupInput: '',
groupList: groupList, groupList: [
{
groupName: '全部分组',
referNum: '',
groupId: null
}
],
scrollLoad: false, scrollLoad: false,
title: '新增分组', title: '新增分组',
addOrEditGroupDialog: false, addOrEditGroupDialog: false,
...@@ -75,7 +78,12 @@ export default { ...@@ -75,7 +78,12 @@ export default {
// 分页相关 // 分页相关
pageNum: 1, pageNum: 1,
allPageNum: 1, allPageNum: 1,
pageSize: 20,
pageP: {
groupName: '',
pageNum: 1,
pageSize: 20 pageSize: 20
}
}; };
}, },
created() { created() {
...@@ -83,19 +91,8 @@ export default { ...@@ -83,19 +91,8 @@ export default {
}, },
methods: { methods: {
load() { load() {
// const length = this.groupList.length; if (this.allPageNum > this.pageP.pageNum) {
// if (length > 50) { this.pageP.pageNum++;
// return (this.scrollLoad = true);
// }
// for (let index = 0; index < 6; index++) {
// this.groupList.push({
// groupName: '单人分组',
// number: length + index,
// groupId: length + index
// });
// }
if (this.allPageNum > this.pageNum) {
this.pageNum++;
this.searchGroup(); this.searchGroup();
} else { } else {
this.scrollLoad = true; this.scrollLoad = true;
...@@ -103,6 +100,7 @@ export default { ...@@ -103,6 +100,7 @@ export default {
}, },
clickGroupListItem(listItem) { clickGroupListItem(listItem) {
this.currentListItemUuid = listItem.groupId; this.currentListItemUuid = listItem.groupId;
this.$emit('updateList', this.currentListItemUuid);
}, },
isShowGroupListItemMore(listItem) { isShowGroupListItemMore(listItem) {
const hiddenListItemMore = [1, 2]; const hiddenListItemMore = [1, 2];
...@@ -173,7 +171,6 @@ export default { ...@@ -173,7 +171,6 @@ export default {
}; };
res = await addActCodeGroupApi(params); res = await addActCodeGroupApi(params);
} }
// return console.log(res, 'res');
if (res.data.code == 0) { if (res.data.code == 0) {
this.$message({ this.$message({
type: 'success', type: 'success',
...@@ -184,7 +181,7 @@ export default { ...@@ -184,7 +181,7 @@ export default {
const groupListItem = this.groupList.find(({ groupId }) => groupId == this.groupListForm.groupId); const groupListItem = this.groupList.find(({ groupId }) => groupId == this.groupListForm.groupId);
groupListItem.groupName = this.groupListForm.groupName; groupListItem.groupName = this.groupListForm.groupName;
} else { } else {
this.pageNum = 1; this.pageP.pageNum = 1;
this.searchGroup(); this.searchGroup();
} }
this.addOrEditGroupDialog = false; this.addOrEditGroupDialog = false;
...@@ -198,34 +195,31 @@ export default { ...@@ -198,34 +195,31 @@ export default {
}); });
}, },
async searchGroup(val) { async searchGroup(val) {
this.groupLoading = true;
const countNum = await getRequest('/haoban-manage3-web/hm/group/refer/count', {}); const countNum = await getRequest('/haoban-manage3-web/hm/group/refer/count', {});
// this.groupList[0].referNum = countNum.data.result; if (this.pageP.pageNum == 1) {
if (this.pageNum == 1) { this.groupList[0].referNum = countNum.data.result;
this.groupList = [];
} }
this.pageNum < this.allPageNum && this.pageNum++; // this.pageP.pageNum < this.allPageNum && this.pageP.pageNum++;
const params = {
pageNum: this.pageNum,
pageSize: this.pageSize
};
if (String(this.searchGroupInput)) { if (String(this.searchGroupInput)) {
params.groupName = this.searchGroupInput; this.pageP.pageNum = 1;
this.pageP.groupName = this.searchGroupInput;
this.groupList = [];
} }
await getRequest('/haoban-manage3-web/hm/group/list', params).then(res => { await getRequest('/haoban-manage3-web/hm/group/list', this.pageP).then(res => {
if (res.data.code == 0) { if (res.data.code == 0) {
const { list, pageInfo } = res.data.result || {}; const { result, pages } = res.data.result || {};
// if (Array.isArray(list)) { this.groupList = this.groupList.concat(result);
// list.reduce((pre, cur) => pre.push(cur), this.groupList); if (this.searchGroupInput == '') {
// } this.searchTip = false;
this.groupList = list; } else if (this.searchGroupInput != '') {
this.groupList.unshift({ this.groupList.splice(0, 1);
groupName: '全部分组', if (this.groupList.length <= 0) {
referNum: 11, this.searchTip = true;
groupId: null }
}); }
this.groupList[0].referNum = countNum.data.result; this.allPageNum = pages || 1;
console.log(this.groupList, '444'); this.groupLoading = false;
this.allPageNum = pageInfo.pages || 1;
} }
}); });
} }
...@@ -259,10 +253,17 @@ export default { ...@@ -259,10 +253,17 @@ export default {
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
padding: 0 5px 0 10px; padding: 0 5px 0 10px;
&:hover, &:hover {
color: #303133;
background: #f2f3f5;
}
&.active-li { &.active-li {
color: #2f54eb; color: #2f54eb;
background: #ebeffe; background: #ebeffe;
.iconhover:hover,
.iconhover:active {
background: #d8defc;
}
} }
} }
.more { .more {
...@@ -294,4 +295,11 @@ export default { ...@@ -294,4 +295,11 @@ export default {
font-size: 12px; font-size: 12px;
color: #909399; color: #909399;
} }
.searchTip {
width: 100%;
text-align: center;
margin-top: 80%;
color: #909399;
font-size: 14px;
}
</style> </style>
<template> <template>
<div> <div>
<setActCode> <setActCode @submit="submit">
<template #typeCode> <template #typeCode>
<el-form-item label="活码类型" prop="hmType"> <el-form-item label="活码类型" prop="hmType">
<el-radio-group v-model="form.hmType"> <el-radio-group v-model="form.hmType" @change="changeEvent">
<el-radio :label="1">单人活码</el-radio> <el-radio :label="1">单人活码</el-radio>
<el-radio :label="2">多人活码</el-radio> <el-radio :label="2">多人活码</el-radio>
</el-radio-group> </el-radio-group>
...@@ -15,10 +15,11 @@ ...@@ -15,10 +15,11 @@
</el-form-item> </el-form-item>
</template> </template>
<template #member> <template #member>
<el-form-item label="使用成员" prop="memberList"> <el-form-item label="使用成员" prop="clerkIdList">
<p class="tabs" v-if="form.hmType == 1">单人活码仅可选择一名成员</p> <p class="tabs" v-if="form.hmType == 1">单人活码仅可选择一名成员</p>
<p class="tabs" v-if="form.hmType == 2">若选择多名成员,则随机分配企微员工</p> <p class="tabs" v-if="form.hmType == 2">若选择多名成员,则随机分配企微员工</p>
<el-button plain class="ylbtn"><i class="iconfont-components3 icon-cp-PlusOutlined addPic"></i>添加成员</el-button> <!-- <el-button plain class="ylbtn"><i class="iconfont-components3 icon-cp-PlusOutlined addPic"></i>添加成员</el-button> -->
<select-clerk :multiple="multiple" :data="data" @change="onChange"></select-clerk>
</el-form-item> </el-form-item>
</template> </template>
</setActCode> </setActCode>
...@@ -26,56 +27,69 @@ ...@@ -26,56 +27,69 @@
</template> </template>
<script> <script>
import setActCode from '../../../components/actCodeSet.vue'; import setActCode from '@/views/salesleads/components/actCodeSet.vue';
// import { getRequest } from '@/api/api'; import SelectClerk from '../../components/select-clerk/index.vue';
import { getRequest } from '@/api/api';
import errMsg from '@/common/js/error'; import errMsg from '@/common/js/error';
export default { export default {
components: { setActCode }, components: { setActCode, SelectClerk },
created() {
console.log(this.$route.query, 7878);
},
data() { data() {
return { return {
loading: false, loading: false,
form: { form: {
hmType: 1, hmType: 1,
name: '', name: '',
memberList: [] clerkIdList: []
} },
multiple: false
}; };
}, },
created() {
if (this.$route.query.hmId) {
this.getActCodeInfo();
}
},
methods: { methods: {
onChange(data) {
console.log(data);
this.data = data.map(item => {
return item.clerkName;
});
if (this.form.name == '') {
this.form.name = this.data.toString();
}
console.log(this.data, 909);
},
async getActCodeInfo() { async getActCodeInfo() {
const that = this; const that = this;
that.actCode = '999'; if (this.$route.query.hmId) return;
if (that.actCode.length <= 0) return;
that.loading = true; that.loading = true;
// getRequest('/hm/qrcode/detail', { hmId: that.actCode }) await getRequest('/hm/qrcode/detail', { hmId: this.$route.query.hmId }).then(res => {
// .then(res => { console.log(res, 'detail');
let res = { // let res = {
data: { // data: {
errorCode: 1, // errorCode: 1,
result: { // result: {
name: '测试活码好的可以', // name: '测试活码好的可以',
hmId: '727363646474849483332', // hmId: '727363646474849483332',
statusFlag: 1, // statusFlag: 1,
overFlag: 1, // overFlag: 1,
hmType: 2, // hmType: 2,
creatorName: '少见多怪', // creatorName: '少见多怪',
createTime: 182736347383, // createTime: 182736347383,
passFlag: 0, // passFlag: 0,
welcomeId: 'b680a2cf18b742cc9f4560f6195c9ec6', // welcomeId: 'b680a2cf18b742cc9f4560f6195c9ec6',
enterpriseId: '5bd929fd3b2c49deaa1184bcb0d669b3' // enterpriseId: '5bd929fd3b2c49deaa1184bcb0d669b3'
} // }
} // }
}; // };
let resData = res.data; let resData = res.data;
that.loading = false; that.loading = false;
if (resData.errorCode == 1) { // if (resData.errorCode == 1) {
that.statusIndex = resData.result.statusFlag == 1 && resData.result.overFlag == 1 ? 4 : resData.result.statusFlag; // that.statusIndex = resData.result.statusFlag == 1 && resData.result.overFlag == 1 ? 4 : resData.result.statusFlag;
that.codeInfo = resData.result; // that.codeInfo = resData.result;
return; // return;
} // }
errMsg.errorMsg(resData); errMsg.errorMsg(resData);
// }) // })
// .catch(function(error) { // .catch(function(error) {
...@@ -83,7 +97,17 @@ export default { ...@@ -83,7 +97,17 @@ export default {
// duration: 1000, // duration: 1000,
// message: error.message // message: error.message
// }); // });
// }); });
},
submit(a) {
console.log(a);
},
changeEvent(e) {
if (e == 2) {
this.multiple = true;
} else if (e == 1) {
this.multiple = false;
}
} }
} }
}; };
......
...@@ -5,9 +5,9 @@ ...@@ -5,9 +5,9 @@
<el-form class="mt20" ref="form" :model="form" :rules="rules" label-width="110px"> <el-form class="mt20" ref="form" :model="form" :rules="rules" label-width="110px">
<slot name="typeCode"></slot> <slot name="typeCode"></slot>
<slot name="codeName"></slot> <slot name="codeName"></slot>
<el-form-item label="活码分组" prop="actGroup"> <el-form-item label="活码分组" prop="hmGroupId">
<el-select class="w340" filterable v-model="form.actGroup"> <el-select class="w340" v-model="form.hmGroupId" v-loadmore="onLoadmore" clearable remote multiple filterable :remote-method="remoteMethod">
<el-options v-for="(item, index) in groupList" :key="index"></el-options> <el-option v-for="item in groupList" :key="item.groupId" :label="item.groupName" :value="item.groupId"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<slot name="member"></slot> <slot name="member"></slot>
...@@ -17,27 +17,27 @@ ...@@ -17,27 +17,27 @@
</el-form-item> </el-form-item>
<el-form-item label="活码标签"> <el-form-item label="活码标签">
<el-button plain class="ylbtn" @click="tagsDialogVisible = true"><i class="iconfont-components3 icon-cp-PlusOutlined addPic"></i>添加标签</el-button> <el-button plain class="ylbtn" @click="tagsDialogVisible = true"><i class="iconfont-components3 icon-cp-PlusOutlined addPic"></i>添加标签</el-button>
<dm-memberTag-group :visiable.sync="tagsDialogVisible" :projectName="haobao - 3"></dm-memberTag-group> <!-- <dm-memberTag-group :visiable.sync="tagsDialogVisible" @save="saveTagPop"></dm-memberTag-group> -->
</el-form-item> </el-form-item>
<dm-sub-title text="欢迎语设置" type="line" class="mt40b20" /> <dm-sub-title text="欢迎语设置" type="line" class="mt40b20" />
<el-row> <el-row>
<el-col :span="17"> <el-col :span="17">
<el-form-item label="活码类型" prop="welcomes"> <el-form-item label="活码类型">
<el-radio-group v-model="form.welcomes"> <el-radio-group v-model="welcomesType">
<el-radio :label="1">活码欢迎语</el-radio> <el-radio :label="1">活码欢迎语</el-radio>
<el-radio :label="2">不发送欢迎语</el-radio> <el-radio :label="2">不发送欢迎语</el-radio>
</el-radio-group> </el-radio-group>
<ul class="tabs" v-if="form.welcomes == 1"> <ul class="tabs" v-if="welcomesType == 1">
<li>1.下方的欢迎语取自【设置-欢迎语设置】中的“特殊欢迎语”;</li> <li>1.下方的欢迎语取自【设置-欢迎语设置】中的“特殊欢迎语”;</li>
<li>2.配置“活码欢迎语”后,通过此活码添加好友后,系统自动推送此处所配置的欢迎语</li> <li>2.配置“活码欢迎语”后,通过此活码添加好友后,系统自动推送此处所配置的欢迎语</li>
<li>(根据企业微信规则,若所添加的该成员在企业微信后台已经配置了欢迎语,那么会推送企微后台所配置的欢迎语,不会推送此处的欢迎语)</li> <li>(根据企业微信规则,若所添加的该成员在企业微信后台已经配置了欢迎语,那么会推送企微后台所配置的欢迎语,不会推送此处的欢迎语)</li>
</ul> </ul>
<ul class="tabs" v-if="form.welcomes == 2"> <ul class="tabs" v-if="welcomesType == 2">
<li>通过此活码添加好友后,系统不推送欢迎语,及时在【设置-欢迎语设置】中为该成员配置了欢迎语。</li> <li>通过此活码添加好友后,系统不推送欢迎语,及时在【设置-欢迎语设置】中为该成员配置了欢迎语。</li>
<li>(根据企业微信规则,若所添加的该成员在企业微信后台已经配置了欢迎语,那么企微后台的欢迎语会照常推送)</li> <li>(根据企业微信规则,若所添加的该成员在企业微信后台已经配置了欢迎语,那么企微后台的欢迎语会照常推送)</li>
</ul> </ul>
</el-form-item> </el-form-item>
<el-form-item label="选择欢迎语" v-if="form.welcomes == 1"> <el-form-item label="选择欢迎语" v-if="welcomesType == 1">
<div class="welcomeTable"> <div class="welcomeTable">
<div class="wtabTop"> <div class="wtabTop">
<el-input class="w260" placeholder="请输入标题" v-model="pageParam.search"></el-input> <el-input class="w260" placeholder="请输入标题" v-model="pageParam.search"></el-input>
...@@ -64,11 +64,11 @@ ...@@ -64,11 +64,11 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<dm-pagination class="paginationBox" background @current-change="handleCurrentChange" :current-page="pageParam.currentPage" layout=" prev, pager, next " :page-size="4" :total="100"> </dm-pagination> <dm-pagination class="paginationBox" background @current-change="handleCurrentChange" :current-page="welcomePage.currentPage" layout=" prev, pager, next " :page-size="4" :total="100"> </dm-pagination>
</div> </div>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7" v-if="form.welcomes == 1 && welcomeContent != ''"> <el-col :span="7" v-if="welcomesType == 1 && welcomeContent != ''">
<p class="welcomeTitle">欢迎语预览</p> <p class="welcomeTitle">欢迎语预览</p>
<previewWelcome :welcomeContent="welcomeContent"></previewWelcome> <previewWelcome :welcomeContent="welcomeContent"></previewWelcome>
</el-col> </el-col>
...@@ -84,8 +84,22 @@ ...@@ -84,8 +84,22 @@
<script> <script>
import previewWelcome from '../../../components/preview-welcome.vue'; import previewWelcome from '../../../components/preview-welcome.vue';
// import { findActCodeGroupListApi } from '@/api/actCode.js'; // import { findActCodeGroupListApi } from '@/api/actCode.js';
import { getRequest } from '@/api/api';
export default { export default {
name: 'setActCode', name: 'setActCode',
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 >= this.clientHeight;
if (CONDITION) {
binding.value();
}
});
}
}
},
components: { previewWelcome }, components: { previewWelcome },
props: { props: {
actCodeData: { actCodeData: {
...@@ -96,56 +110,94 @@ export default { ...@@ -96,56 +110,94 @@ export default {
data() { data() {
return { return {
form: { form: {
hmType: 1, hmType: 1, //1单人 2多人
name: '', name: '', // 名称
actGroup: null, hmGroupId: null, //活码分组id
memberList: [], passFlag: 1, // 1自动通过 0否
passFlag: true, memberLabelId: '', //会员活动标签id
actLabel: null, welcomeId: null, // 欢迎语id
welcomes: 1, clerkIdList: '', // 选择导购id
chooseWelcomes: null storeId: '', //门店id
hmUserNum: null //多人活码人数
}, },
welcomesType: 1,
rules: { rules: {
hmType: [{ required: true, message: ' ', trigger: 'blur' }], hmType: [{ required: true, message: '请选择活码类型', trigger: 'blur' }],
name: [{ required: true, message: ' ', trigger: 'blur' }], name: [{ required: true, message: '请输入活码名称', trigger: 'blur' }],
actGroup: [{ required: true, message: ' ', trigger: 'blur' }], hmGroupId: [{ required: true, message: '请选择活码分组', trigger: 'blur' }],
memberList: [{ required: true, message: ' ', trigger: 'blur' }] clerkIdList: [{ required: true, message: '请选择使用成员', trigger: 'blur' }]
}, },
welcomeTableData: [], welcomeTableData: [],
tagsDialogVisible: false, tagsDialogVisible: false,
data: '',
welcome: '', welcome: '',
templateSelection: {}, templateSelection: {},
welcomeContent: '', welcomeContent: '',
pageParam: { welcomePage: {
search: '', search: '',
currentPage: 1 currentPage: 1
}, },
groupList: [] pageParam: {
search: '',
pageNum: 1,
pageSize: 20,
total: 1
},
groupList: [],
data: ''
}; };
}, },
created() { created() {
this.getWelcomeTable(); this.getWelcomeTable();
// this.searchGroup(); this.searchGroup();
}, },
methods: { methods: {
searchGroup(val) { saveTagPop(data) {
// const params = { console.log(data);
// pageNum: 1, this.data = data;
// pageSize: 4 },
// }; onLoadmore() {
// if (String(this.searchGroupInput)) { if (this.pageParam.pageNum >= this.pageParam.total) return;
// params.groupName = this.searchGroupInput; this.pageParam.pageNum++;
// } this.searchGroup();
// findActCodeGroupListApi(params).then(res => { },
// console.log(res); async searchGroup() {
// }); if (this.pageParam.pageNum == 1) {
this.groupList = [];
}
await getRequest('/haoban-manage3-web/hm/group/list', this.pageParam).then(res => {
if (res.data.code == 0) {
const { result, pages } = res.data.result || {};
this.pageParam.total = pages || 1;
// console.log(this.groupList, 'list');
if (this.pageParam.search != '') {
this.groupList = result;
} else if (Array.isArray(result)) {
this.groupList = this.groupList.concat(result);
}
// console.log(this.groupList, 909090);
}
});
},
// 远程搜索
remoteMethod(query) {
if (query !== '') {
this.pageParam.search = query;
this.pageParam.pageNum = 1;
this.groupList = [];
this.searchGroup();
} else {
this.groupList = [];
}
},
visibleChange(e) {
if (!e) {
this.remoteMethod();
}
}, },
// 当前页变化 // 当前页变化
handleCurrentChange(val) { handleCurrentChange(val) {
console.log(val); this.welcomePage.currentPage = val;
this.pageParam.currentPage = val; this.getWelcomeTable();
// this.getAjaxMembers();
}, },
// 选择欢迎语列表数据 // 选择欢迎语列表数据
getWelcomeTable() { getWelcomeTable() {
...@@ -195,15 +247,13 @@ export default { ...@@ -195,15 +247,13 @@ export default {
getCurrentRow(row) { getCurrentRow(row) {
// 获取选中数据 row表示选中这一行的数据,可以从里面提取所需要的值 // 获取选中数据 row表示选中这一行的数据,可以从里面提取所需要的值
this.templateSelection = row; this.templateSelection = row;
this.welcomeContent = this.templateSelection.welcomeContent; this.welcomeContent = row.welcomeContent;
}, this.form.welcomeId = row.welcomeId;
saveTagPop(data) {
console.log(data);
this.data = data;
}, },
// 保存按钮 // 保存按钮
sumbit() { sumbit() {
console.log('保存'); console.log(this.form, 'form保存');
this.$emit('sumbit', this.form);
} }
} }
}; };
......
...@@ -28,14 +28,14 @@ ...@@ -28,14 +28,14 @@
</el-table-column> </el-table-column>
<el-table-column label="企微号"> <el-table-column label="企微号">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<p class="overflow-ellipsis" :title="row.qw">{{ row.qw }}</p> <p class="overflow-ellipsis" :title="row.staffName">{{ row.staffName }}</p>
<p>{{ row.qwCode }}</p> <!-- <p>{{ row.staffCode }}</p> -->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="新增总人数" prop="addFriendNumTd" sortable></el-table-column> <el-table-column label="新增总人数" prop="addNumT" sortable></el-table-column>
<el-table-column label="今日新增总人数" prop="addFriendNumD" sortable></el-table-column> <el-table-column label="今日新增总人数" prop="addNum" sortable></el-table-column>
<el-table-column label="今日流失人数" prop="toadyLess" sortable></el-table-column> <!-- <el-table-column label="今日流失人数" prop="toadyLess" sortable></el-table-column>
<el-table-column label="流失总人数" prop="lessTotal" sortable></el-table-column> <el-table-column label="流失总人数" prop="lessTotal" sortable></el-table-column> -->
<el-table-column label="今日已达上限" prop="overFlag"> <el-table-column label="今日已达上限" prop="overFlag">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<p>{{ row.overFlag == 1 ? '是' : '否' }}</p> <p>{{ row.overFlag == 1 ? '是' : '否' }}</p>
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
</el-table-column> </el-table-column>
<el-table-column label="操作"> <el-table-column label="操作">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<el-button type="text" @click="lookRecords(row.hmId)">查看记录</el-button> <el-button type="text" @click="lookRecords(row)">查看记录</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -59,6 +59,10 @@ export default { ...@@ -59,6 +59,10 @@ export default {
id: { id: {
type: String, type: String,
default: '' default: ''
},
typeT: {
type: String,
default: 'code'
} }
}, },
data() { data() {
...@@ -72,6 +76,10 @@ export default { ...@@ -72,6 +76,10 @@ export default {
], ],
tableData: [], tableData: [],
pageParam: { pageParam: {
hmId: '',
linkId: '',
startTime: '',
endTime: '',
storeSearch: '', storeSearch: '',
clerkSearch: '', clerkSearch: '',
pageNum: 1, pageNum: 1,
...@@ -86,12 +94,8 @@ export default { ...@@ -86,12 +94,8 @@ export default {
return { return {
onPick(obj) { onPick(obj) {
pickerMinDate = obj.minDate; pickerMinDate = obj.minDate;
// console.log(pickerMinDate);
}, },
disabledDate(time) { disabledDate(time) {
// const date = new Date();
// const year = date.getFullYear();
// return time.getTime() > Date.now() || time.getTime() < date.setFullYear(year - 2);
let start = new Date(); let start = new Date();
start = new Date(`${start.getFullYear()}-${start.getMonth() + 1}-${start.getDate()}`); start = new Date(`${start.getFullYear()}-${start.getMonth() + 1}-${start.getDate()}`);
let start2 = new Date(pickerMinDate); let start2 = new Date(pickerMinDate);
...@@ -100,9 +104,9 @@ export default { ...@@ -100,9 +104,9 @@ export default {
let end2 = new Date(pickerMinDate); let end2 = new Date(pickerMinDate);
if (pickerMinDate) { if (pickerMinDate) {
start = start.setFullYear(start.getFullYear() - 2); start = start.setFullYear(start.getFullYear() - 2);
start2 = start2.setDate(start2.getDate() - 60); start2 = start2.setMonth(start2.getMonth() - 6);
start = start > start2 ? start : start2; start = start > start2 ? start : start2;
end2 = end2.setDate(end2.getDate() + 60); end2 = end2.setMonth(end2.getMonth() + 6);
end = end.getTime() > end2 ? end2 : end.getTime(); end = end.getTime() > end2 ? end2 : end.getTime();
// console.log('end2', end2, end); // console.log('end2', end2, end);
} else { } else {
...@@ -161,12 +165,14 @@ export default { ...@@ -161,12 +165,14 @@ export default {
// 近三个月 // 近三个月
setDate = endDate => { setDate = endDate => {
endDate.setMonth(endDate.getMonth() - 3); endDate.setMonth(endDate.getMonth() - 3);
endDate.setDate(endDate.getDate() + 1);
return new Date(endDate); return new Date(endDate);
}; };
} else if (index == 3) { } else if (index == 3) {
// 近半年 // 近半年
setDate = endDate => { setDate = endDate => {
endDate.setMonth(endDate.getMonth() - 6); endDate.setMonth(endDate.getMonth() - 6);
endDate.setDate(endDate.getDate() + 1);
return new Date(endDate); return new Date(endDate);
}; };
} }
...@@ -197,45 +203,28 @@ export default { ...@@ -197,45 +203,28 @@ export default {
}, },
// 列表数据 // 列表数据
async getTableList() { async getTableList() {
// this.tableData = [ this.pageParam.startTime = this.dateDefault ? Date.parse(new Date(this.dateDefault[0]).toString()) : '';
// { this.pageParam.endTime = this.dateDefault ? Date.parse(new Date(this.dateDefault[1]).toString()) : '';
// clerkName: '导购信息1索尼大法根据历史的快乐风格问题', if (this.$route.query.id && this.typeT == 'code') {
// clerkCode: '2364756qre', this.pageParam.hmId = this.$route.query.id;
// storeName: '门店名称1哈金斯的看法和大家说法可接受的垡健康是的发送到', delete this.pageParam.linkId;
// storeCode: '4564564', } else if (this.$route.query.id && this.typeT == 'link') {
// qw: '趣味', this.pageParam.linkId = this.$route.query.id;
// qwCode: '23674726', delete this.pageParam.hmId;
// addFriendNumTd: 1, }
// addFriendNumD: 2, await detailClerkList(this.pageParam).then(res => {
// toadyLess: 89, if (res.code == 0) {
// lessTotal: 23, this.tableData = res.result.result || [];
// staus: 1 this.totalCount = res.result.totalCount;
// }, }
// { });
// clerkName: '导购信息1索尼大法根据历史的快乐风格问题',
// clerkCode: '2364756qre',
// storeName: '门店名称1哈金斯的看法和大家说法可接受的垡健康是的发送到',
// storeCode: '4564564',
// qw: '趣味',
// qwCode: '23674726',
// addFriendNumTd: 9,
// addFriendNumD: 5,
// toadyLess: 77,
// lessTotal: 66,
// staus: 0
// }
// ];
const obj = {
...this.pageParam,
startTime: this.dateDefault ? Date.parse(new Date(this.dateDefault[0]).toString()) : '',
endTime: this.dateDefault ? Date.parse(new Date(this.dateDefault[1]).toString()) : ''
};
const a = await detailClerkList(obj);
console.log(a, 'a');
}, },
lookRecords(hmId) { lookRecords(row) {
const that = this; if (row.hmId) {
that.$router.push(`/actCodeRecord?hmId=${hmId}`); this.$router.push(`/actCodeRecord?hmId=${row.hmId}`);
} else if (row.linkId) {
this.$router.push(`/actCodeRecord?linkId=${row.linkId}`);
}
} }
} }
}; };
......
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