Commit 952c3b3a by shaojiawen

Merge branch 'feature/act-code' of http://git.gicdev.com/office/haoban-3 into feature/act-code

parents 8c8c797c d2bf39db
......@@ -37,4 +37,4 @@ export const guidePageSave = params => postRequest('/haoban-manage3-web/hm/guide
export const linkPage = params => postRequest('/haoban-manage3-web/hm/link/page', params);
//【活码】详情-查看明细列表
export const detailClerkList = params => postJsonRequest('/haoban-manage3-web/hm/qrcode/detail-clerk-list', params);
export const detailClerkList = params => postJsonRequest('/haoban-manage3-web/hm/qrcode/detail-clerk-list-page', params);
......@@ -80,9 +80,6 @@ Vue.axios.interceptors.response.use(
}
return data;
}
if (data && data.result && data.result.pageInfo) {
data.result.pageInfo.total = Number(data.result.pageInfo.total);
}
return data;
},
err => {
......
......@@ -188,8 +188,9 @@ export default {
postJsonRequest('/haoban-manage3-web/welcome/list', { ...this.form, wxEnterpriseId: this.wxEnterpriseId, type: this.type })
.then(res => {
let resData = res.data;
console.log(resData);
if (resData.code == 0 && resData.result) {
this.tableData = resData.result.list;
this.tableData = resData.result.result;
this.tableData.forEach(item => {
item.suitDepartmentName = [];
if (item.suitDepartmentList && item.suitDepartmentList.length) {
......@@ -198,7 +199,7 @@ export default {
});
}
});
this.total = Number(resData.result.pageInfo.total);
this.total = resData.result.totalCount;
this.$nextTick(() => {
const span = document.createElement('span');
span.style.position = 'fixed';
......
......@@ -127,10 +127,10 @@ export default {
this.loading = true;
guidePageList(param)
.then(res => {
const { result } = res.data;
const { result, totalCount } = res.data.result;
if (result) {
this.total = result.pageInfo.total;
this.list = result.list;
this.total = totalCount;
this.list = result;
}
})
.finally(_ => {
......@@ -155,9 +155,9 @@ export default {
},
deleteTemp(item) {
guidePageRelation({ pageId: item.pageId }).then(res => {
const { result } = res.data;
if (result.list && result.list.length) {
this.$confirm(`当前模板已关联链接(${result.pageInfo.total}),请确认投放链接已投放结束,取消关联后才可删除该模板`, '无法删除该模板', {
const { totalCount } = res.data.result;
if (totalCount) {
this.$confirm(`当前模板已关联链接(${totalCount}),请确认投放链接已投放结束,取消关联后才可删除该模板`, '无法删除该模板', {
confirmButtonText: '关联详情',
cancelButtonText: '取消',
type: 'warning'
......
......@@ -31,7 +31,7 @@ export default {
pageSize: 20
},
loading: false,
total: 50,
total: 0,
tableData: []
};
},
......@@ -61,11 +61,10 @@ export default {
this.loading = true;
guidePageRelation(this.form)
.then(res => {
console.log(res);
const { result } = res.data;
const { totalCount, result } = res.data.result;
if (result) {
this.total = result.pageInfo.total;
this.tableData = result.list;
this.total = totalCount;
this.tableData = result;
}
})
.finally(_ => {
......
......@@ -2,7 +2,7 @@
<section>
<el-form inline>
<el-form-item>
<el-input placeholder="请输入活码ID/名称、创建人" style="width: 300px" @change="searchList" v-model="inFields.hmSelect">
<el-input placeholder="请输入活码ID/名称、创建人" style="width: 300px" @change="searchList" v-model="inFields.hmSelect" clearable>
<i slot="prefix" class="el-input__icon el-icon-search"></i>
</el-input>
</el-form-item>
......@@ -20,7 +20,7 @@
</el-form-item>
<el-form-item>
<el-select v-model="inFields.statusFlagInt" placeholder="全部状态" clearable class="w160" @change="searchList">
<el-option :key="0" label="删除" :value="0"> </el-option>
<!-- <el-option :key="0" label="删除" :value="0"> </el-option> -->
<el-option :key="1" label="正常" :value="1"> </el-option>
<el-option :key="2" label="作废" :value="2"> </el-option>
<el-option :key="3" label="待生效" :value="3"> </el-option>
......@@ -41,7 +41,7 @@
<el-button type="primary" @click="$router.push('/actCodeAdd')">新增活码</el-button>
</el-form-item>
</el-form>
<el-table ref="actCodeTableRef" v-loading="loadingStatus" :data="tableData" class="act-code-table" @sort-change="sortChange">
<el-table ref="actCodeTableRef" v-loading="loadingStatus" :data="tableData" class="act-code-table" @sort-change="sortChange" :max-height="tableMaxHeight">
<!-- @select="selectTable" :max-height="tableMaxHeight" tooltip-effect="dark"-->
<el-table-column type="selection" width="60" fixed> </el-table-column>
<el-table-column width="60" class-name="table-select-cell" fixed>
......@@ -57,16 +57,13 @@
<el-table-column label="活码信息" width="100">
<template slot-scope="{ row }">
<p class="overflow-ellipsis" :title="row.hmName">{{ row.hmName ? row.hmName : '--' }}</p>
<!-- <p><span class="oneActCode" v-if="row.hmType == 1">单人活码</span><span class="moreActCOde" v-else>多人活码</span></p> -->
<p><span class="oneActCode" v-if="row.hmType == '单人活码'">单人活码</span><span class="moreActCOde" v-else>多人活码</span></p>
<p><span class="oneActCode" v-if="row.hmType == 1">单人活码</span><span class="moreActCOde" v-else>多人活码</span></p>
</template>
</el-table-column>
<el-table-column label="活码状态" width="130">
<template slot-scope="{ row }">
<!-- <p><span class="dot normal" v-if="row.statusFlag == 1">正常</span><span class="dot voided" v-if="row.statusFlag == 2">作废</span><span class="dot needSure" v-if="row.statusFlag == 3">待生效</span></p>
<p class="toTopTip" v-if="row.statusFlag == 1">(今日已达上限)</p> -->
<p><span class="dot normal" v-if="row.statusFlag == '正常'">正常</span><span class="dot voided" v-if="row.statusFlag == '作废'">作废</span><span class="dot needSure" v-if="row.statusFlag == '待生效'">待生效</span></p>
<p class="toTopTip" v-if="row.statusFlag == '正常'">(今日已达上限)</p>
<p><span class="dot normal" v-if="row.statusFlag == 1">正常</span><span class="dot voided" v-if="row.statusFlag == 2">作废</span><span class="dot needSure" v-if="row.statusFlag == 3">待生效</span></p>
<p class="toTopTip" v-if="row.statusFlag == 1">(今日已达上限)</p>
</template>
</el-table-column>
<el-table-column label="添加好友人数" prop="addNum" sortable="custom" width="150">
......@@ -83,12 +80,34 @@
<template slot-scope="{ row }">
<p>{{ row.clerkName ? row.clerkName : '--' }}</p>
<p class="ft-12 phone">{{ row.clerkCode == null ? row.clerkCode : '--' }}</p>
<p>
<el-popover width="200" trigger="click">
<ul class="userMember-ul">
<li v-for="item in row.clerkList" :key="item.clerkId" class="userMemberLi">
<p class="ulName">{{ item.clerkName }}</p>
<p class="ft-12 phone">{{ item.clerkCode }}</p>
</li>
</ul>
<el-button class="ft-12" type="text" slot="reference">查看更多</el-button>
</el-popover>
</p>
</template>
</el-table-column>
<el-table-column label="成员所属门店" width="120">
<el-table-column label="成员所属门店" width="120" show-overflow-tooltip>
<template slot-scope="{ row }">
<p>{{ row.storeName ? row.storeName : '--' }}</p>
<p class="ft-12 phone">{{ row.storeCode == null ? row.storeCode : '--' }}</p>
<p>
<el-popover width="200" trigger="click">
<ul class="userMember-ul">
<li v-for="item in row.clerkList" :key="item.storeId" class="userMemberLi">
<p class="ulName">{{ item.storeName }}</p>
<p class="ft-12 phone">{{ item.storeCode }}</p>
</li>
</ul>
<el-button class="ft-12" type="text" slot="reference">查看更多</el-button>
</el-popover>
</p>
</template>
</el-table-column>
<el-table-column label="所属分组" width="100" show-overflow-tooltip>
......@@ -106,9 +125,9 @@
<p>{{ row.createTime ? row.createTime : '--' }}</p>
</template>
</el-table-column>
<el-table-column label="操作" width="300" fixed="right">
<el-table-column label="操作" width="160" fixed="right">
<template slot-scope="{ row }">
<dm-dropdown :scope-data="row" :configs="operateBtnArr" :max="5" />
<dm-dropdown :scope-data="row" :max="3" :configs="operateBtnArr" />
</template>
</el-table-column>
</el-table>
......@@ -161,9 +180,9 @@ export default {
}
},
data() {
// let tableMaxHeight = document.body.clientHeight - 312 + 'px';
let tableMaxHeight = document.body.clientHeight - 312 + 'px';
return {
// tableMaxHeight: tableMaxHeight,
tableMaxHeight: tableMaxHeight,
inFields: {
// hmId: null,
hmSelect: '',
......@@ -179,6 +198,48 @@ export default {
storeSelect: 1,
dateTime: [],
tableData: [],
hmUserMember: [
{
name: 'test'
},
{
name: 'test'
},
{
name: 'test'
},
{
name: 'test'
},
{
name: 'test'
},
{
name: 'test'
},
{
name: 'test'
},
{
name: 'test'
},
{
name: 'test'
},
{
name: 'test'
},
{
name: 'test'
},
{
name: 'test'
},
{
name: 'test'
}
],
total: 1,
totalCount: 100,
selectPage: {
......@@ -198,7 +259,7 @@ export default {
text: '数据',
visible: true,
handler: row => {
this.$router.push('/actCodeDetail?id=' + row.hmId);
this.$router.push(`/actCodeDetail?id=${row.hmId}&activeName=second`);
}
},
{
......@@ -210,14 +271,26 @@ export default {
},
{
text: '编辑',
visible: true,
visible: row => {
if (row.hmType == 1 && row.statusFlag != 2) {
return true;
} else {
return false;
}
},
handler: row => {
this.$router.push('/actCodeEdit?hmId=' + row.hmId);
}
},
{
text: '下载活码',
visible: true,
visible: row => {
if (row.hmType == 1 || row.statusFlag != 1) {
return false;
} else {
return true;
}
},
handler: row => {
this.wxQrcode = row.wxQrcode;
this.imageName = `${row.hmId}_${row.name}`;
......@@ -226,7 +299,11 @@ export default {
},
{
text: '作废',
visible: true,
visible: row => {
if (row.statusFlag != 2) {
return true;
}
},
handler: row => {
this.$confirm('确认要作废该活码?此操作将永久废弃该活码,请确保不影响其他投放使用!', '作废提示', {
confirmButtonText: '删除',
......@@ -237,7 +314,6 @@ export default {
if (res.data.code == 0) {
this.getTableList();
}
console.log(res, 'delrte');
});
});
}
......@@ -441,7 +517,6 @@ export default {
inFields: this.inFields,
...this.pageParam
};
console.log(obj, 'obj');
actCodeListApi(obj)
.then(res => {
if (res.data.code == 0) {
......@@ -547,7 +622,7 @@ export default {
.phone {
color: #606266;
}
.useMember-ul {
.userMember-ul {
max-height: 230px;
overflow: auto;
li {
......@@ -555,7 +630,11 @@ export default {
display: flex;
flex-direction: column;
justify-content: center;
border-bottom: 1px solid #dcdfe6;
border-bottom: 1px dashed #dcdfe6;
// .ulName {
// font: 14px;
// color: #303133;
// }
}
}
</style>
......@@ -10,12 +10,13 @@
</template>
<template #member>
<el-form-item label="使用成员" :rules="[{ required: true, message: '请选择使用成员', trigger: 'blur' }]">
<el-radio-group v-model="form.memberType">
<el-radio-group v-model="form.memberType" @change="radioChange">
<el-radio :label="1">全部成员</el-radio>
<el-radio :label="2">部分成员</el-radio>
</el-radio-group>
<br />
<select-clerk v-if="form.memberType == 2" :multiple="false" :data="data" @change="onChange"></select-clerk>
<p v-if="form.memberType == 1" class="tips">当前已选择 {{ hmMemberNum }} 个成员 <span>(活码名称默认为使用成员名称)</span></p>
<select-clerk v-if="form.memberType == 2" :multiple="true" :data="data" @change="onChange"></select-clerk>
</el-form-item>
</template>
</setActCode>
......@@ -25,41 +26,81 @@
<script>
import setActCode from '@/views/salesleads/components/actCodeSet.vue';
import SelectClerk from '../../components/select-clerk/index.vue';
import { postJsonRequest } from '@/api/api';
import { postJsonRequest, getRequest } from '@/api/api';
export default {
components: { setActCode, SelectClerk },
data() {
return {
hmMemberNum: 103,
form: {
hmType: 1,
// name: '',
clerkIdList: [],
memberType: 1,
hmUserNum: null
},
data: []
data: [],
storeClerkList: [],
dataArr: []
};
},
created() {
this.getStoreClerkList();
},
methods: {
radioChange(e) {
if (e == 1) {
this.form.clerkIdList = ['-1'];
this.data = [];
}
},
// 获取全部成员个数
getStoreClerkList() {
getRequest('/haoban-manage3-web/hm/store-clerk-list', { pageNum: 1, pageSize: 20 }).then(res => {
const { code, message, result } = res.data || {};
if (code != 0) {
return this.$message.error(message);
}
result.result = Array.isArray(result.result) ? result.result : [];
this.storeClerkList = result.result.map(el => {
el.clerkList = Array.isArray(el.clerkList) ? el.clerkList : [];
return el.clerkList.length;
});
let sum = 0;
this.storeClerkList.forEach(item => {
sum = sum + item;
});
this.hmMemberNum = sum;
});
},
onChange(data) {
this.data = data;
this.form.clerkIdList = data;
this.form.hmUserNum = data.length;
// this.dataArr = data.map(item => {
// return item.clerkName;
// });
// if (this.form.name == '') {
// this.form.name = this.dataArr.toString();
// }
},
async onSubmit(event) {
let obj = {
...event,
...this.form
};
await postJsonRequest('/haoban-manage3-web/hm/qrcode/add', obj).then(res => {
console.log(res);
await postJsonRequest('/haoban-manage3-web/hm/qrcode/addList', obj).then(res => {
if (res.data.code == 0) {
this.form = {
hmType: 1,
clerkIdList: [],
hmUserNum: null //多人活码人数
};
this.$router.go(-1);
} else {
return this.$message.error(res.data.message);
}
});
console.log(obj, '父组件,整体表单数据');
// this.$refs.form.clearValidate();
this.form = {
hmType: 1,
clerkIdList: [],
hmUserNum: null //多人活码人数
};
}
}
};
......@@ -70,4 +111,13 @@ export default {
border: 1px solid #2f54eb;
color: #2f54eb;
}
.damolish .el-form-item__content {
line-height: 30px;
}
.tips {
color: #303133;
span {
color: #909399;
}
}
</style>
......@@ -61,8 +61,8 @@ export default {
}
},
onChange(data) {
console.log(data, 'data');
this.data = data;
this.form.hmUserNum = data.length;
this.form.clerkIdList = data.map(item => {
return item.clerkId;
});
......@@ -99,7 +99,15 @@ export default {
await postJsonRequest('/haoban-manage3-web/hm/qrcode/update', obj).then(res => {
console.log(res, '编辑');
if (res.data.code == 0) {
// this.$router.go(-1);
this.form = {
hmType: 1,
name: '',
clerkIdList: [],
hmUserNum: null //多人活码人数
};
this.$router.go(-1);
} else {
return this.$message.error(res.data.message);
}
});
} else {
......@@ -107,18 +115,19 @@ export default {
await postJsonRequest('/haoban-manage3-web/hm/qrcode/add', obj).then(res => {
console.log(res, '新增');
if (res.data.code == 0) {
// this.$router.go(-1);
this.form = {
hmType: 1,
name: '',
clerkIdList: [],
hmUserNum: null //多人活码人数
};
this.$router.go(-1);
} else {
return this.$message.error(res.data.message);
}
});
}
// this.$refs.form.clearValidate();
this.form = {
hmType: 1,
name: '',
clerkIdList: [],
hmUserNum: null //多人活码人数
};
// this.$router.go(-1);
}
}
};
......
......@@ -60,7 +60,7 @@ export default {
// hmType: 1, //1单人 2多人
// name: '', // 名称
hmGroupId: null, //活码分组id
passFlag: 1, // 1自动通过 0否
passFlag: true, // 1自动通过 0否
memberLabelId: '', //会员活动标签id
welcomeId: null // 欢迎语id
// clerkIdList: '', // 选择导购id
......
......@@ -22,8 +22,8 @@
</el-table-column>
<el-table-column label="导购所属门店">
<template slot-scope="{ row }">
<p class="overflow-ellipsis" :title="row.storeName">{{ row.storeName }}</p>
<p>{{ row.storeCode }}</p>
<p class="overflow-ellipsis" :title="row.storeName">{{ row.storeName ? row.storeName : '--' }}</p>
<p>{{ row.storeCode ? row.storeCode : '--' }}</p>
</template>
</el-table-column>
<el-table-column label="企微号">
......@@ -38,7 +38,8 @@
<el-table-column label="流失总人数" prop="lessTotal" sortable></el-table-column> -->
<el-table-column label="今日已达上限" prop="overFlag">
<template slot-scope="{ row }">
<p>{{ row.overFlag == 1 ? '是' : '否' }}</p>
<!-- <p>{{ row.overFlag == 1 ? '是' : '否' }}</p> -->
<p>{{ row.overFlag }}</p>
</template>
</el-table-column>
<el-table-column label="操作">
......@@ -211,10 +212,11 @@ export default {
this.pageParam.inFields.startTime = this.dateDefault ? this.dateDefault[0].toString() : '';
this.pageParam.inFields.endTime = this.dateDefault ? this.dateDefault[1].toString() : '';
if (this.$route.query.id && this.typeT == 'code') {
this.pageParam.inFields.hmId = Number(this.$route.query.id);
// this.pageParam.inFields.hmId = '420370925331480577';
this.pageParam.inFields.hmId = this.$route.query.id;
delete this.pageParam.inFields.linkId;
} else if (this.$route.query.id && this.typeT == 'link') {
this.pageParam.inFields.linkId = Number(this.$route.query.id);
this.pageParam.inFields.linkId = this.$route.query.id;
delete this.pageParam.inFields.hmId;
}
if (this.pageParam.inFields.storeSelect == '') {
......@@ -224,8 +226,8 @@ export default {
delete this.pageParam.inFields.clerkSelect;
}
await detailClerkList(this.pageParam).then(res => {
if (res.code == 0) {
this.tableData = res.result.result || [];
if (res.data.code == 0) {
this.tableData = res.data.result.data || [];
this.totalCount = res.result.totalCount;
}
});
......
......@@ -20,10 +20,10 @@
<el-form-item label="选择欢迎语" v-if="welcomesType == 1">
<div class="welcomeTable">
<div class="wtabTop">
<el-input class="w260" placeholder="请输入标题" v-model="welcomePage.search"></el-input>
<el-input class="w260" placeholder="请输入标题" v-model="welcomePage.title" @change="onSearch" clearable></el-input>
<el-button plain class="ylbtn" @click="changeRoute">新建欢迎语</el-button>
</div>
<el-table :data="welcomeTableData" height="330px">
<el-table :data="welcomeTableData" max-height="330px">
<el-table-column width="55">
<template slot-scope="scope">
<el-radio :label="scope.$index" @change.native="getCurrentRow(scope.row)" v-model="welcome">&nbsp;</el-radio>
......@@ -44,7 +44,8 @@
</template>
</el-table-column>
</el-table>
<dm-pagination class="paginationBox" background @current-change="handleCurrentChange" :current-page="welcomePage.pageNum" layout=" prev, pager, next " :page-size="welcomePage.pageSize" :total="totalNum"> </dm-pagination>
<!-- <dm-pagination class="paginationBox" background @current-change="handleCurrentChange" :current-page="welcomePage.pageNum" layout=" prev, pager, next " :page-size="welcomePage.pageSize" :total="totalNum"> </dm-pagination> -->
<el-pagination class="paginationBox" background @current-change="handleCurrentChange" :current-page="welcomePage.pageNum" layout=" prev, pager, next " :page-size="welcomePage.pageSize" :total="totalNum"></el-pagination>
</div>
</el-form-item>
</el-col>
......@@ -72,7 +73,7 @@ export default {
welcomePage: {
wxEnterpriseId: sessionStorage.getItem('userInfos') ? JSON.parse(sessionStorage.getItem('userInfos')).wxEnterpriseId : '',
title: '',
type: 1,
type: 2,
pageNum: 1,
pageSize: 4
},
......@@ -85,6 +86,10 @@ export default {
this.getWelcomeTable();
},
methods: {
onSearch() {
this.welcomePage.pageNum = 1;
this.getWelcomeTable();
},
// 当前页变化
handleCurrentChange(val) {
this.welcomePage.pageNum = val;
......@@ -101,7 +106,7 @@ export default {
// 新建欢迎语
changeRoute() {
// this.$router.push({ path: '/salutatorySet' });
let routeUrl = this.$router.resolve({ path: '/salutatorySet', query: { type: 1 } });
let routeUrl = this.$router.resolve({ path: '/salutatorySet', query: { type: 2 } });
window.open(routeUrl.href, '_blank');
},
getCurrentRow(row) {
......
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