Commit 2c2f8609 by chenyu

update: add babyInfo

parent e2ca402e
......@@ -20,11 +20,11 @@
<el-input style="width:300px;" v-model="pageParam.phoneNameCard"
prefix-icon="el-icon-search" placeholder="输入客户姓名/昵称/手机号码"
@keyup.enter.native="onSearch" clearable></el-input>
<el-select v-model="customerTypeLabel" placeholder="请选择" multiple
@change="selectChange" style="width: 300px">
<el-select v-model="customerTypeLabel" placeholder="请选择" multiple @change="selectChange"
style="width: 300px">
<el-option :value="customerType" style="height: auto;padding:0">
<el-tree :data="treeData" show-checkbox node-key="id" ref="tree" highlight-current
:props="defaultProps" @check-change="handleCheckChange"></el-tree>
default-expand-all :props="defaultProps" @check-change="handleCheckChange" />
</el-option>
</el-select>
<el-button type="text" @click="showSearch = !showSearch" class="senior-search">高级搜索<i
......
<template>
<div>
<el-dialog title="宝宝信息" custom-class="customer-dailog" :visible.sync="dialogVisible"
:close-on-click-modal="false" @close="cancel" width="636px">
<el-tabs v-model="activeName">
<el-tab-pane v-for="(item,index) in fieldsList" :key="index"
:label="item.sonFields[0].fieldValue" :name="`${index}`"></el-tab-pane>
</el-tabs>
<el-form v-if="fieldsList[activeName]" ref="form" :model="fieldsList[activeName].form"
label-width="122px" :inline="true" :disabled="true">
<el-form-item label="宝宝名称:" prop="name">
<el-input type="text" maxlength="10" show-word-limit placeholder="请输姓名"
v-model="fieldsList[activeName].form.name" style="width: 160px;"></el-input>
</el-form-item>
<el-form-item label="宝宝生日:" prop="birthDay">
<el-date-picker style="width: 160px;"
v-model="fieldsList[activeName].form.birthDay" type="date"></el-date-picker>
</el-form-item>
<el-form-item label="宝宝性别:" prop="sex">
<el-select v-model="fieldsList[activeName].form.sex" style="width: 160px;">
<el-option label="男" :value="1"></el-option>
<el-option label="女" :value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="宝宝身高(cm):" prop="height">
<el-input v-model="fieldsList[activeName].form.height" type="text" show-word-limit
style="width: 160px;">
</el-input>
</el-form-item>
<el-form-item label="宝宝体重(kg):" prop="weight">
<el-input v-model="fieldsList[activeName].form.weight" type="text" show-word-limit
style="width: 160px;">
</el-input>
</el-form-item>
<el-form-item label="鞋码(码):" prop="shoeSize">
<el-input v-model="fieldsList[activeName].form.shoeSize" type="text" show-word-limit
style="width: 160px;">
</el-input>
</el-form-item>
</el-form>
</el-dialog>
</div>
</template>
<script>
export default {
name: "babyinfoDialog",
props: {
dialogVisible: {
type: Boolean,
default: false
},
childFieldsList: {
type: Array,
default: () => {
return [];
}
},
},
data() {
return {
fieldsList: [],
activeName: '0'
};
},
methods: {
cancel() {
this.$emit('update:dialogVisible', false);
},
},
watch: {
dialogVisible(n, o) {
if (n) {
const filterObj = {
'宝宝名称': 'name',
'宝宝性别': 'sex',
'宝宝生日': 'birthDay',
'宝宝身高(cm)': 'height',
'宝宝体重(kg)': 'weight',
'鞋码(码)': 'shoeSize',
};
let fieldList = this.childFieldsList.map(el => {
el.form = {
name: '',
sex: '',
birthDay: '',
height: '',
weight: '',
shoeSize: '',
};
el.sonFields.map(field => el.form[ filterObj[ field.fieldName ] ] = field.fieldValue);
return el;
});
this.fieldsList = JSON.parse(JSON.stringify(fieldList));
}
}
}
};
</script>
<style lang="less">
// 去除dailog-footer上边框
.customer-dailog .el-dialog__footer {
padding-top: 0;
padding-bottom: 20px;
border-top: none !important;
}
.customer-dailog .el-dialog__body {
padding-bottom: 0;
.el-tabs__header {
margin-bottom: 30px;
.el-tabs__item {
max-width: 190px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
.el-form-item__label {
padding-right: 0;
}
}
</style>
\ No newline at end of file
......@@ -166,8 +166,10 @@ export default {
memberBirthday,
birthType,
remark,
phoneNumber
phoneNumber,
nationCode
} = this.baseInfo;
console.log(memberId);
this.form = Object.assign({}, this.form, {
memberId,
memberName,
......
......@@ -84,11 +84,21 @@
<div v-show="toggleTag" class="max1600">
<div class="extend-description">
<!-- 开卡拓展字段 -->
<template v-if="showFieldType===1&&extendInfo.openField">
<template
v-if="showFieldType===1&&(extendInfo.openField||extendInfo.openChildrenField)">
<el-descriptions :column="3" labelClassName="info-lebel"
contentClassName="info-content">
<el-descriptions-item v-for="item in extendInfo.openField" :key="item"
:label="item.fieldName">{{item.fieldValue}}</el-descriptions-item>
<el-descriptions-item label="宝宝信息" v-if="babyStr">
{{babyStr}} <el-tooltip class="item" effect="dark" open-delay="200"
content="查看宝宝信息" placement="top-start"><span class="edit-span" @click="babyDialogVisible=true">
<icon-svg icon-class="icon-chakanxiangqing-copy"
style="width:13px;height:14px;" />
</span>
</el-tooltip>
</el-descriptions-item>
</el-descriptions>
</template>
<!-- 会员信息字段 -->
......@@ -100,7 +110,7 @@
</el-descriptions>
</template>
<div class="empty-block"
v-if="(showFieldType===1&&!extendInfo.openField)||(showFieldType===2&&!extendInfo.fieldList)">
v-if="(showFieldType===1&&!extendInfo.openField&&!extendInfo.openChildrenField)||(showFieldType===2&&!extendInfo.fieldList)">
<img :src="require('../../../static/img/no-data_icon.png')" alt="">
<p>暂无数据</p>
</div>
......@@ -220,7 +230,8 @@
</el-tag>
</el-descriptions-item>
<el-descriptions-item label="服务门店">{{member.mainStoreName}}<el-tag
v-if="member.mainClerkName" :type="member.clerkInStore==0?'warning':'info'" :title="member.clerkInStore==0?'非服务门店下导购':''">专属导购:{{member.mainClerkName}}<span
v-if="member.mainClerkName" :type="member.clerkInStore==0?'warning':'info'"
:title="member.clerkInStore==0?'非服务门店下导购':''">专属导购:{{member.mainClerkName}}<span
v-if="member.mainClerkCode">{{member.mainClerkCode}}</span>
</el-tag>
<el-tooltip class="item" effect="dark" open-delay="200" content="修改服务门店"
......@@ -367,6 +378,8 @@
<!-- 基本信息修改弹窗 -->
<baseinfo-dialog :dialogVisible.sync="baseinfoDialogVisible" :baseInfo="member"
:nationCodeList="nationCodeList" @refresh="initData" />
<!-- 宝宝信息弹窗 -->
<babyinfo-dialog :dialogVisible.sync="babyDialogVisible" :childFieldsList="extendInfo.openChildrenField||[]" />
<!-- 等级修改弹窗 -->
<customergrade-dialog :dialogVisible.sync="gradeDialogVisible" :memberId="memberId"
:gradeId="memberInfo.gradeId" :gradeList="gradeList" @refresh="initData" />
......
import nav from "../../common/navbar/navbar.vue";
import baseinfoDialog from "./components/baseinfoDialog.vue";
import babyinfoDialog from "./components/babyinfoDialog.vue";
import customergradeDialog from "./components/customergradeDialog.vue";
import customermainstoreDialog from "./components/customermainstoreDialog.vue";
import customersubstoreDialog from "./components/customersubstoreDialog.vue";
......@@ -41,6 +42,7 @@ export default {
openField: [],
fieldList: []
},
babyStr: "", // 宝宝信息
// 标签备注
tagAndRemarkInfo: {
// 会员分组
......@@ -81,6 +83,7 @@ export default {
mainStoreDialogVisible: false, // 修改服务门店、专属导购弹窗
subStoreDialogVisible: false, // 修改协管门店弹窗
labelDialogVisible: false, // 修改手工标签弹窗
babyDialogVisible: false, // 宝宝信息弹窗
nationCodeList: [], // 手机区号列表
gradeList: [], // 等级列表
count: 0,
......@@ -255,7 +258,17 @@ export default {
const ret = res.data.result;
if (api === "memberLoadBaseDetail") {
this.member = Object.assign({}, ret.member);
let babyArr = [];
Array.isArray(ret.extendInfo.openChildrenField) &&
ret.extendInfo.openChildrenField.forEach(el =>
babyArr.push(
el.sonFields[0].fieldValue
? el.sonFields[0].fieldValue
: el.bName
)
);
this.extendInfo = Object.assign({}, ret.extendInfo);
this.babyStr = babyArr.join(";");
}
if (api === "memberLoadmemberInfo") {
this.memberInfo = Object.assign({}, ret.memberInfo);
......@@ -413,6 +426,7 @@ export default {
components: {
"v-nav": nav,
baseinfoDialog,
babyinfoDialog,
customergradeDialog,
customermainstoreDialog,
customersubstoreDialog,
......
......@@ -235,6 +235,12 @@
</li>
<li class="dib">
<span class="icon iconfont">&#xeba8;</span>
<div class="name">查看详情</div>
<div class="code-name">&amp;#xeba8;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe6f8;</span>
<div class="name">教程</div>
<div class="code-name">&amp;#xe6f8;</div>
......@@ -1752,9 +1758,9 @@
<pre><code class="language-css"
>@font-face {
font-family: 'iconfont';
src: url('iconfont.woff2?t=1637803071519') format('woff2'),
url('iconfont.woff?t=1637803071519') format('woff'),
url('iconfont.ttf?t=1637803071519') format('truetype');
src: url('iconfont.woff2?t=1638173401408') format('woff2'),
url('iconfont.woff?t=1638173401408') format('woff'),
url('iconfont.ttf?t=1638173401408') format('truetype');
}
</code></pre>
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
......@@ -2051,6 +2057,15 @@
</li>
<li class="dib">
<span class="icon iconfont icon-chakanxiangqing-copy"></span>
<div class="name">
查看详情
</div>
<div class="code-name">.icon-chakanxiangqing-copy
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-jiaocheng"></span>
<div class="name">
教程
......@@ -4569,6 +4584,14 @@
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-chakanxiangqing-copy"></use>
</svg>
<div class="name">查看详情</div>
<div class="code-name">#icon-chakanxiangqing-copy</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-jiaocheng"></use>
</svg>
<div class="name">教程</div>
......
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.
......@@ -216,6 +216,13 @@
"unicode_decimal": 59538
},
{
"icon_id": "26072953",
"name": "查看详情",
"font_class": "chakanxiangqing-copy",
"unicode": "eba8",
"unicode_decimal": 60328
},
{
"icon_id": "22607678",
"name": "教程",
"font_class": "jiaocheng",
......
No preview for this file type
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