标签管理页面
This commit is contained in:
+1
-1
@@ -1,7 +1,7 @@
|
||||
|
||||
// const baseUrl = "http://219.157.255.213:9007/"; //这里放置url域名32044
|
||||
// const baseUrl = "http://api.crm.hnxinyouhe.com/"; //这里放置url域名32044
|
||||
const baseUrl = "http://192.168.50.9:8787/"; //这里放置url域名32044
|
||||
const baseUrl = "http://219.157.255.213:25329/"; //这里放置url域名32044
|
||||
// const baseUrl = "/api/"; //这里放置url域名32044
|
||||
export function request(options){//封装的requset
|
||||
let { url,data,method } = options;
|
||||
|
||||
@@ -56,6 +56,8 @@ export default {
|
||||
Customerphinput:'Please select customer preferences',
|
||||
Cstomerfjinput:'Please select customer rating',
|
||||
Countryinput:'Please select a country',
|
||||
Cstomertag:'Label',
|
||||
Cstomertaginput:'Please select',
|
||||
Company:'Company',
|
||||
Companyinput:'Go locate it',
|
||||
CustomerScreening:'Customer Screening',
|
||||
@@ -172,5 +174,6 @@ export default {
|
||||
second:'second',
|
||||
nextgjtime:'Next follow up time',
|
||||
Remindergj:'Follow up reminder',
|
||||
callPhonemsg:'Dial the wrong number!'
|
||||
callPhonemsg:'Dial the wrong number!',
|
||||
download:'Download'
|
||||
}
|
||||
@@ -53,6 +53,8 @@ export default {
|
||||
Customerphinput:'请选择客户偏好',
|
||||
Cstomerfj:'客户分级',
|
||||
Cstomerfjinput:'请选择客户分级',
|
||||
Cstomertag:'客户标签',
|
||||
Cstomertaginput:'请选择',
|
||||
Country:'国家',
|
||||
Countryinput:'请选择国家',
|
||||
Company:'公司',
|
||||
@@ -171,5 +173,6 @@ export default {
|
||||
second:'秒',
|
||||
nextgjtime:'下次跟进时间',
|
||||
Remindergj:'跟进提醒',
|
||||
callPhonemsg:'拨打号码错误!'
|
||||
callPhonemsg:'拨打号码错误!',
|
||||
download:'下载'
|
||||
}
|
||||
+152
-3
@@ -77,6 +77,14 @@
|
||||
</view>
|
||||
</view>
|
||||
<u-line></u-line>
|
||||
<view class="cell">
|
||||
<view class="item">{{$t('customer.Cstomertag')}}</view>
|
||||
<view class="right select" @click="showtag = true">
|
||||
<view class="" :class="['content2', { placeholder: !grade_name }]">{{grade_name || $t('customer.Cstomertaginput')}}</view>
|
||||
<u-icon class="arrowright" name="arrow-right" size="18" color="#747474"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
<u-line></u-line>
|
||||
<view class="cell">
|
||||
<view class="item">{{$t('customer.Country')}}</view>
|
||||
<view class="right select" @click="showarea = true">
|
||||
@@ -118,7 +126,8 @@
|
||||
<u-picker closeOnClickOverlay :cancel-text="$t('cancel')" :confirm-text="$t('confirm')" :show="showcartype" @cancel="cancel('showcartype')" @close="close('showcartype')" :columns="carTypeList" keyName="name" @confirm="cartypesChange"></u-picker>
|
||||
<u-picker closeOnClickOverlay :cancel-text="$t('cancel')" :confirm-text="$t('confirm')" :show="showgrade" @cancel="cancel('showgrade')" @close="close('showgrade')" :columns="getGradeList" keyName="name" @confirm="gradeHandler"></u-picker>
|
||||
<!-- <u-picker closeOnClickOverlay :cancel-text="$t('cancel')" :confirm-text="$t('confirm')" :show="showarea" @cancel="cancel('showarea')" @close="close('showarea')" :columns="areaList" keyName="name" @confirm="areaChange"></u-picker> -->
|
||||
<u-popup closeOnClickOverlay :show="showarea" mode="bottom" :round="10" @close="close('showarea')">
|
||||
<!-- 国家选择 -->
|
||||
<u-popup closeOnClickOverlay :show="showarea" mode="bottom" :round="10" @close="close('showarea')">
|
||||
<view class="text">
|
||||
<view class="qx" @click="close('showarea') ">{{$t('cancel')}}</view>
|
||||
<view class="qd" @click="arerfn">{{$t('confirm')}}</view>
|
||||
@@ -148,7 +157,26 @@
|
||||
</scroll-view>
|
||||
</view>
|
||||
</u-popup>
|
||||
|
||||
<!-- 客户标签 -->
|
||||
<u-popup closeOnClickOverlay :show="showtag" mode="bottom" :round="10" title="客户标签" @close="close('showtag')" :closeable="true" >
|
||||
<view class="popup-content">
|
||||
<scroll-view scroll-y class="tag-list">
|
||||
<view
|
||||
v-for="(item, index) in taglist"
|
||||
:key="index"
|
||||
class="tags"
|
||||
>
|
||||
<view class="name">{{ item.name }}</view>
|
||||
<view class="row">
|
||||
<view class="col4 tagitem" v-for="(item1, index1) in item.child" :class="{ 'tagactive': isActive(item1.pid, item1.id) }" @click="tagSelect(item1)" :key="index1">
|
||||
{{ item1.name }}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
</u-popup>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
@@ -157,10 +185,12 @@
|
||||
data() {
|
||||
return {
|
||||
actives:'',
|
||||
activetags:'',
|
||||
searchKeyword: "", // 搜索关键词
|
||||
selectedLabel: "", // 选中的值(显示在输入框中)
|
||||
filteredOptions: [], // 过滤后的数据
|
||||
mapUrl: '',
|
||||
showtag: false,
|
||||
showmap: false,
|
||||
showmagnitude: false,
|
||||
showgrade: false,
|
||||
@@ -192,7 +222,87 @@
|
||||
lat:'',
|
||||
lng:'',
|
||||
},
|
||||
location:{}
|
||||
location:{},
|
||||
activeMap: {}, // 存储每个父级下选中的子项 { 父ID: 子ID }
|
||||
taglist:[
|
||||
{
|
||||
name:'客户价值',
|
||||
id:'1',
|
||||
child:[
|
||||
{name:'高价值',id:1,pid:1},
|
||||
{name:'中价值',id:2,pid:1},
|
||||
{name:'低价值',id:3,pid:1},
|
||||
{name:'潜在高价值',id:4,pid:1},
|
||||
]
|
||||
},
|
||||
{
|
||||
name:'生命周期',
|
||||
id:'2',
|
||||
child:[
|
||||
{name:'新客户',id:5,pid:2},
|
||||
{name:'活跃',id:6,pid:2},
|
||||
{name:'沉默',id:7,pid:2},
|
||||
{name:'流失',id:8,pid:2},
|
||||
]
|
||||
},
|
||||
{
|
||||
name:'行为标签',
|
||||
id:'3',
|
||||
child:[
|
||||
{name:'高频购买',id:9,pid:3},
|
||||
{name:'大单',id:10,pid:3},
|
||||
{name:'促销敏感',id:11,pid:3},
|
||||
{name:'忠诚',id:12,pid:3},
|
||||
]
|
||||
},
|
||||
{
|
||||
name:'需求标签',
|
||||
id:'4',
|
||||
child:[
|
||||
{name:'价格敏感',id:13,pid:4},
|
||||
{name:'品质追求',id:14,pid:4},
|
||||
{name:'服务',id:15,pid:4},
|
||||
{name:'定制化',id:16,pid:4},
|
||||
]
|
||||
},
|
||||
{
|
||||
name:'来源标签',
|
||||
id:'5',
|
||||
child:[
|
||||
{name:'线上',id:17,pid:5},
|
||||
{name:'线下',id:18,pid:5},
|
||||
{name:'推荐',id:19,pid:5},
|
||||
{name:'合作伙伴',id:20,pid:5},
|
||||
]
|
||||
},
|
||||
{
|
||||
name:'风险标签',
|
||||
id:'6',
|
||||
child:[
|
||||
{name:'高',id:21,pid:6},
|
||||
{name:'中',id:22,pid:6},
|
||||
{name:'低',id:23,pid:6},
|
||||
]
|
||||
},
|
||||
{
|
||||
name:'满意度标签',
|
||||
id:'7',
|
||||
child:[
|
||||
{name:'高',id:24,pid:7},
|
||||
{name:'中',id:25,pid:7},
|
||||
{name:'低',id:26,pid:7},
|
||||
]
|
||||
},
|
||||
{
|
||||
name:'忠诚度标签',
|
||||
id:'8',
|
||||
child:[
|
||||
{name:'高',id:27,pid:8},
|
||||
{name:'中',id:28,pid:8},
|
||||
{name:'低',id:29,pid:8},
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
@@ -354,6 +464,13 @@
|
||||
close(val){
|
||||
this[val] = false
|
||||
},
|
||||
//标签点击
|
||||
tagSelect(item) {
|
||||
this.$set(this.activeMap, item.pid, item.id);
|
||||
},
|
||||
isActive(parentId, childId) {
|
||||
return this.activeMap[parentId] === childId;
|
||||
},
|
||||
//提交保存
|
||||
saveFn(){
|
||||
if(this.form.contacts==''){
|
||||
@@ -524,4 +641,36 @@
|
||||
padding: 20rpx;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
// 标签弹框
|
||||
.tag-list{
|
||||
max-height: 900rpx;
|
||||
margin-top: 20rpx;
|
||||
.tags{
|
||||
margin-top: 10px;
|
||||
}
|
||||
.name{
|
||||
margin: 10px 0px;
|
||||
}
|
||||
.tagitem{
|
||||
background: #ECF2FF;
|
||||
border-radius: 8px;
|
||||
color: #3471FF;
|
||||
text-align: center;
|
||||
padding: 5px 0px;
|
||||
}
|
||||
.row{
|
||||
width: 100%;
|
||||
}
|
||||
.col4{
|
||||
display: inline-block;
|
||||
margin: 4px 3px;
|
||||
width: 30%;
|
||||
}
|
||||
}
|
||||
.tagactive{
|
||||
background: #3471FF !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
@@ -27,6 +27,22 @@
|
||||
<view class="btn" @click="editFn"><image src="/static/image/customer/edit.png" mode=""></image><text> {{$t('edtbtn')}}</text></view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="cells">
|
||||
<u-collapse :border="false">
|
||||
<u-collapse-item
|
||||
title="标签"
|
||||
name="Docs guide"
|
||||
:border="false"
|
||||
>
|
||||
<view class="">
|
||||
<view class="tags">潜在高价值</view>
|
||||
<view class="tags">活跃客户</view>
|
||||
<view class="tags">促销敏感</view>
|
||||
<view class="tags">促销敏</view>
|
||||
</view>
|
||||
</u-collapse-item>
|
||||
</u-collapse>
|
||||
</view>
|
||||
<view class="cell">
|
||||
<view class="item">{{$t('customer.Cstomerfj')}}</view>
|
||||
<view class="right select" @click="showgrade = true">
|
||||
@@ -267,6 +283,16 @@
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
::v-deep .u-cell__body{
|
||||
padding: 0px !important;
|
||||
|
||||
}
|
||||
::v-deep .u-collapse-item__content__text{
|
||||
padding: 10px 0px!important;
|
||||
}
|
||||
::v-deep .u-cell__title-text{
|
||||
font-size: 14px;
|
||||
}
|
||||
.u-m-lr-10{
|
||||
margin: 0px 10px;
|
||||
}
|
||||
@@ -290,11 +316,27 @@
|
||||
position: absolute;
|
||||
top: 2px;
|
||||
}
|
||||
.cells{
|
||||
margin-bottom: 10px;
|
||||
background: #f6f6f6;
|
||||
padding:13px 15px;
|
||||
border-radius: 10px;
|
||||
.tags{
|
||||
display: inline-block;
|
||||
margin: 4px 3px;
|
||||
width: 31%;
|
||||
background: #ECF2FF;
|
||||
border-radius: 15px;
|
||||
color: #3471FF;
|
||||
text-align: center;
|
||||
padding: 5px 0px;
|
||||
}
|
||||
}
|
||||
.cell{
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content:space-between;
|
||||
padding: 18px 20px;
|
||||
padding: 13px 20px;
|
||||
align-items: center;
|
||||
font-weight: 500;
|
||||
.item{
|
||||
@@ -315,6 +357,10 @@
|
||||
position: relative;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.tagname{
|
||||
color: #726CFF;
|
||||
font-size: 12px;
|
||||
}
|
||||
.content{
|
||||
padding: 10px 15px;
|
||||
background: #FFFFFF;
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
</template>
|
||||
<view class="gjtime">
|
||||
<view class="contents" v-for="(item, index) in datalist" :key="index">
|
||||
<view class="" @click="godetile(item)">
|
||||
<view class="" >
|
||||
<view class="cont">
|
||||
<view class="title">
|
||||
<view class=""><text class="name">{{item.contacts}}</text></view>
|
||||
|
||||
+89
-12
@@ -4,11 +4,36 @@
|
||||
backgroundColor="#fff" :statusBar="true" :title="$t('navbar.businesscard')"></uni-nav-bar>
|
||||
<view class="card">
|
||||
<view class="img_top" ref="poster" id="poster">
|
||||
<view class="name">
|
||||
<view>刘亦菲</view>
|
||||
<view>业务经理</view>
|
||||
<view>13838225452</view>
|
||||
</view>
|
||||
<view class="name">
|
||||
<view class="left">
|
||||
<view class="title">
|
||||
<view class="leftbg"></view>
|
||||
<view>刘亦菲</view>
|
||||
</view>
|
||||
<view class="ftitle">业务经理</view>
|
||||
</view>
|
||||
<view>
|
||||
<image src="/static/image/mine/user.png" mode=""></image>
|
||||
</view>
|
||||
</view>
|
||||
<view class="conts">
|
||||
<view class="coles">
|
||||
<image src="/static/image/mine/phone.png" mode=""></image>
|
||||
<view class="">13838225452</view>
|
||||
</view>
|
||||
<view class="coles">
|
||||
<image src="/static/image/mine/email.png" style="height:13px;" mode=""></image>
|
||||
<view class="">17752584152@163.com</view>
|
||||
</view>
|
||||
<view class="coles">
|
||||
<image src="/static/image/mine/addr.png" style="height:18px;width: 14px;" mode=""></image>
|
||||
<view class="">13838225452</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="code">
|
||||
<image src="/static/image/mine/ewm.png" mode=""></image>
|
||||
<text>微信</text>
|
||||
</view>
|
||||
<!-- <view class="code" :class=" activeImg === share_one ? 'code_one' : activeImg === share_two ? 'code_two' : activeImg === share_three ? 'code_three' : 'code_one'">
|
||||
<qrcode-vue :value="codeUrl" :size="70"></qrcode-vue>
|
||||
</view> -->
|
||||
@@ -16,7 +41,7 @@
|
||||
|
||||
</view>
|
||||
<view class="foot">
|
||||
<button class="btn" @click="goDown">{{$t('submit')}}</button>
|
||||
<button class="btn" @click="goDown">{{$t('download')}}</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
@@ -97,9 +122,9 @@
|
||||
}).then(canvas => {
|
||||
// canvas 其实就是我们所讲的res 的意思 返回报文的意思
|
||||
let baseImg = canvas.toDataURL('image/png')
|
||||
uni.showModal({
|
||||
uni.showModal ({
|
||||
title: '下载名片',
|
||||
content: '确定下载当前名片图至相册嘛',
|
||||
content: '确定下载当前名片图吗?',
|
||||
success: function (res) {
|
||||
if (res.confirm) {
|
||||
that.downloadImage(baseImg, 'screenshot.png');
|
||||
@@ -126,11 +151,63 @@
|
||||
position: relative;
|
||||
width:690rpx;
|
||||
height:1060rpx;
|
||||
border-radius: 15px;
|
||||
padding-top: 60rpx;
|
||||
.leftbg{
|
||||
width: 10px;
|
||||
height: 34px;
|
||||
background: linear-gradient(to bottom, #3471FF, #BD67FF);
|
||||
margin-right: 15px;
|
||||
}
|
||||
.name{
|
||||
position: absolute;
|
||||
top: 20%;
|
||||
left: 10%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
flex: 1;
|
||||
margin: 0px 25px 0px 0px;
|
||||
.title{
|
||||
color: #3C4169;
|
||||
font-size: 28px;
|
||||
font-weight: bold;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.ftitle{
|
||||
color: #222222;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
margin-top: 20px;
|
||||
}
|
||||
image{
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
}
|
||||
}
|
||||
.conts{
|
||||
padding: 15px 25px;
|
||||
line-height: 32px;
|
||||
margin-bottom: 20px;
|
||||
.coles{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 16px;
|
||||
image{
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.code{
|
||||
background-color: rgba(255,255,255,50%);
|
||||
border-radius: 10px;
|
||||
text-align: center;
|
||||
width: 50%;
|
||||
margin: auto;
|
||||
padding: 15px;
|
||||
image{
|
||||
width: 160px;
|
||||
height: 160px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.foot{
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 846 B |
Binary file not shown.
|
Before Width: | Height: | Size: 115 KiB After Width: | Height: | Size: 129 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 527 B |
Binary file not shown.
|
After Width: | Height: | Size: 74 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 752 B |
Reference in New Issue
Block a user