Commit 59398488 by liuchenxi

update: 客户列表,详情优化

parent fdaa2707
......@@ -33,8 +33,9 @@
/>
<el-select
v-model="customerTypeLabel"
placeholder="请选择"
placeholder="全部客户"
multiple
ref="select"
@change="selectChange"
style="width: 300px"
>
......@@ -47,7 +48,9 @@
highlight-current
default-expand-all
:props="defaultProps"
:expand-on-click-node="false"
@check="handleCheckChange"
@node-click="handleClickNode"
/>
</el-option>
</el-select>
......@@ -76,6 +79,7 @@
</template>
</el-select>
</div>
<el-button v-if="getCodeAuth('memberBatchImport')" :limit-code="getCode('memberBatchImport')" type="primary" @click="batchImport">批量导入修改</el-button>
</div>
<div v-show="showSearch" class="senior-search-content">
<!-- 人群筛选器 -->
......@@ -122,7 +126,7 @@
>
<template slot-scope="{row}">
<!-- 基本信息 -->
<div v-if="colum == 'name'" class="customer-info-cell">
<div v-if="colum == 'name'" :class="['customer-info-cell', getCodeAuth('memberIntoCustomDetail') && 'pointer']" @click="linkDetail(row.memberId)">
<img :src="row.thirdImgUrl||defaultImg" alt="">
<p class="memberName">
{{ row.memberName || '--' }}
......@@ -309,4 +313,7 @@ export default { ...action };
transform: translateY(0);
}
}
.pointer {
cursor: pointer;
}
</style>
......@@ -71,7 +71,7 @@
z-index: 1;
width: 100%;
height: 34px;
transform: translateY(43px);
transform: translateY(0);
transition: transform 0.5s, -webkit-transform 0.5s;
background: linear-gradient(
180deg,
......@@ -100,11 +100,6 @@
display: block;
width: 100%;
}
&:hover {
.maskOperation {
transform: translateY(0px);
}
}
}
}
.right {
......
<template>
<div class="customer-details" v-loading.fullscreen.lock="fullscreenLoading">
<div class="customer-details">
<v-nav :navpath="navpath" />
<div class="customer-contain-wrap">
<div class="customer-contain-wrap" v-loading="fullscreenLoading">
<div class="customer-info-item" v-for="section in customerInfoItemList" :key="section">
<div class="info-item-header">
<h2 class="item-title">
......@@ -24,7 +24,7 @@
<div class="maskOperation">
<!-- <span @click="updateImgUrl">刷新头像</span><i class="vertical-line" /> -->
<router-link tag="span" :to="`/photo-album?memberId=${memberId}&from=1`">
会员相册
客户相册
</router-link>
</div>
<el-image
......@@ -150,7 +150,7 @@
</el-tooltip>
</el-descriptions-item>
</el-descriptions>
</div>
<!-- 会员信息字段 -->
<div :class="[toggleTag?'':'shrink']" v-if="showFieldType===2&&extendInfo.fieldList">
......@@ -167,13 +167,13 @@
{{ item.fieldValue }}
</el-descriptions-item>
</el-descriptions>
</div>
<div
class="empty-block"
v-if="(showFieldType===1&&!extendInfo.openField&&!extendInfo.openChildrenField)||(showFieldType===2&&!extendInfo.fieldList)"
>
<img :src="require('../../../static/img/no-data_icon.png')" alt="">
<!-- <img :src="require('../../../static/img/no-data_icon.png')" alt=""> -->
<p>暂无数据</p>
</div>
<div class="toggleTag" @click="toggleTag=!toggleTag" v-if="toggleShow">
......
......@@ -65,8 +65,7 @@ export default {
{ value: "integral", label: "调整积分", code: "memberBatchSetIntegral" },
{ value: "grade", label: "修改等级", code: "memberBatchSetGrade" },
{ value: "mainstore", label: "修改服务门店", code: "memberBatchSetService" },
{ value: "store", label: "修改协管门店", code: "memberBatchSetCustomer" },
{ value: "batchImport", label: "批量导入", code: "memberBatchImport" }
{ value: "store", label: "修改协管门店", code: "memberBatchSetCustomer" }
],
defaultImg,
integralFlag: "", // 积分调整权限
......@@ -156,17 +155,7 @@ export default {
watch: {
customerType: {
handler(newV, oldV) {
if (newV.length === 0 && this.$refs.tree) {
this.$message.error("至少选择一个客户类型");
this.$refs.tree.setChecked(oldV[0].id, true, true);
this.$nextTick(_ => {
this.handleCheckChange();
});
} else if (oldV.length === 0) {
return false;
} else {
this.onSearch();
}
this.onSearch();
},
deep: true
},
......@@ -212,6 +201,7 @@ export default {
},
handleCheckChange(data, nodes) {
const res = this.$refs.tree.getCheckedNodes(true, true); // 这里两个true,1. 是否只是叶子节点 2. 是否包含半选节点(就是使得选择的时候不包含父节点)
const getAllCheck = this.$refs.tree.getCheckedNodes(false, true)
const arrLabel = [];
const arr = [];
res.forEach(item => {
......@@ -219,11 +209,22 @@ export default {
arrLabel.push(item.label);
arr.push(item);
});
if (res.length === 1) {
res[0].disabled = true;
}
this.customerType = [].concat(arr);
this.customerTypeLabel = [].concat(arrLabel);
const sum = this.searchTreeNodeNum(this.treeData);
if (getAllCheck.length == sum) this.customerTypeLabel = ['全部客户'];
},
searchTreeNodeNum(tree) {
let num = 0;
tree.forEach(el => {
num++;
if (Array.isArray(el.children) && el.children.length > 0) num += this.searchTreeNodeNum(el.children, num);
})
return num;
},
handleClickNode(data, node) {
this.$refs.tree.setChecked(data, !node.checked, true);
this.handleCheckChange();
},
initialize() {
this.pageParam.phoneNameCard = sessionStorage.getItem("phoneNameCard")
......@@ -462,11 +463,7 @@ export default {
},
// 批量处理
handleFocusBatch(val) {
if (this.batchValue == "batchImport") {
// 批量导入
this.batchValue = "";
this.openDialogImport();
} else if (this.multipleList.length < 1) {
if (this.multipleList.length < 1) {
this.batchValue = "";
checkFalse("请勾选会员");
return false;
......@@ -482,6 +479,10 @@ export default {
}
this.batchValue = "";
},
// 批量导入修改
batchImport() {
this.openDialogImport();
},
batchRefresh() {
this.getAjaxMembers();
},
......@@ -514,6 +515,7 @@ export default {
});
},
linkDetail(memberId) {
if (!this.getCodeAuth('memberIntoCustomDetail')) return;
this.$router.push({
path: "/customerDetail",
query: { memberId }
......
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