@@ -2,8 +2,8 @@ | |||||
<view class="box"> | <view class="box"> | ||||
<view class="boxtittabs"> | <view class="boxtittabs"> | ||||
<div class="items" @tap="screenShow = true">{{ showTimeText }}</div> | |||||
<div class="items" @tap="showTemplate = true">{{ showBeText }}</div> | |||||
<div class="items" @tap="screenShow = true">{{ showTimeText }}<u-icon name="arrow-down" size="24" style="padding-left: 12rpx"></u-icon></div> | |||||
<div class="items" @tap="showTemplate = true">{{ showBeText }}<u-icon name="arrow-down" size="24" style="padding-left: 12rpx"></u-icon></div> | |||||
</view> | </view> | ||||
<!-- 接待量排名(TOP10) --> | <!-- 接待量排名(TOP10) --> | ||||
@@ -231,7 +231,7 @@ | |||||
<!-- 更多筛选 --> | <!-- 更多筛选 --> | ||||
<u-popup v-model="screenShow" mode="top"> | |||||
<u-popup v-model="screenShow" mode="bottom" height="368"> | |||||
<view class="screen"> | <view class="screen"> | ||||
<view class="boxtittab"> | <view class="boxtittab"> | ||||
<view class="tabbox"> | <view class="tabbox"> | ||||
@@ -2,8 +2,8 @@ | |||||
<view> | <view> | ||||
<view class="boxtittabs"> | <view class="boxtittabs"> | ||||
<div class="items" @tap="screenShow = true">{{ showTimeText }}</div> | |||||
<div class="items" @tap="showTemplate = true">{{ showBeText }}</div> | |||||
<div class="items" @tap="screenShow = true">{{ showTimeText }}<u-icon name="arrow-down" size="24" style="padding-left: 12rpx"></u-icon></div> | |||||
<div class="items" @tap="showTemplate = true">{{ showBeText }}<u-icon name="arrow-down" size="24" style="padding-left: 12rpx"></u-icon></div> | |||||
</view> | </view> | ||||
<view class="timepick"> | <view class="timepick"> | ||||
@@ -132,7 +132,7 @@ | |||||
<!-- 更多筛选 --> | <!-- 更多筛选 --> | ||||
<u-popup v-model="screenShow" mode="top"> | |||||
<u-popup v-model="screenShow" mode="bottom" height="368"> | |||||
<view class="screen"> | <view class="screen"> | ||||
<view class="boxtittab"> | <view class="boxtittab"> | ||||
<view class="tabbox"> | <view class="tabbox"> | ||||
@@ -1,8 +1,8 @@ | |||||
<template> | <template> | ||||
<view class="box"> | <view class="box"> | ||||
<view class="boxtittabs"> | <view class="boxtittabs"> | ||||
<div class="items" @tap="screenShow = true">{{ showTimeText }}</div> | |||||
<div class="items" @tap="showTemplate = true">{{ showBeText }}</div> | |||||
<div class="items" @tap="screenShow = true">{{ showTimeText }}<u-icon name="arrow-down" size="24" style="padding-left: 12rpx"></u-icon></div> | |||||
<div class="items" @tap="showTemplate = true">{{ showBeText }}<u-icon name="arrow-down" size="24" style="padding-left: 12rpx"></u-icon></div> | |||||
</view> | </view> | ||||
<view class="timepick"> | <view class="timepick"> | ||||
@@ -181,7 +181,7 @@ | |||||
<!-- 更多筛选 --> | <!-- 更多筛选 --> | ||||
<u-popup v-model="screenShow" mode="top"> | |||||
<u-popup v-model="screenShow" mode="bottom" height="368"> | |||||
<view class="screen"> | <view class="screen"> | ||||
<view class="boxtittab"> | <view class="boxtittab"> | ||||
<view class="tabbox"> | <view class="tabbox"> | ||||
@@ -95,11 +95,24 @@ | |||||
<view class="chart"> | <view class="chart"> | ||||
<view class="marketingBusiness"> | |||||
<text class="marketingBusinesstext" | |||||
@click="showMarketingBusiness = true">{{ marketingBusinessText }}</text> | |||||
</view> | |||||
<view style="display: flex;padding: 0 0 40rpx 0;justify-content: center;"> | |||||
<view class="marketingBusiness"> | |||||
<view class="marketingBusinesstext" style="min-width: 50rpx;" | |||||
@click="showMarketingBusiness = true">{{ marketingBusinessText }} | |||||
<image class="righttochoose" src="../../../static/images/righttochoose.png" mode=""></image> | |||||
</view> | |||||
</view> | |||||
<view | |||||
style="margin: 0 20rpx 0 0;flex-shrink: 0;display: flex;align-items: center;justify-content: center;position: relative;z-index: 999999;" | |||||
v-if="Selecttuandui&&Selecttuanduiobj.name" @click="oninputtap4()"> | |||||
<view class="title2-che" style="width: 220rpx;"> | |||||
{{Selecttuanduiobj.name}} | |||||
<image class="righttochoose" src="../../../static/images/righttochoose.png" mode=""></image> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<view style="padding: 30rpx;padding-bottom: 20rpx;align-items: center;" v-if="Selectlevel"> | <view style="padding: 30rpx;padding-bottom: 20rpx;align-items: center;" v-if="Selectlevel"> | ||||
<view style="display: flex;align-items: center;border-bottom: 1px solid #C9C9C9;height: 80rpx;"> | <view style="display: flex;align-items: center;border-bottom: 1px solid #C9C9C9;height: 80rpx;"> | ||||
<view>选择一级:</view> | <view>选择一级:</view> | ||||
@@ -127,15 +140,6 @@ | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view | |||||
style="padding: 0 0 40rpx 0;display: flex;align-items: center;justify-content: center;position: relative;z-index: 999999;" | |||||
v-if="Selecttuandui&&Selecttuanduiobj.name" @click="oninputtap4()"> | |||||
<view class="title2-che" style="width: 220rpx;"> | |||||
{{Selecttuanduiobj.name}} | |||||
<image class="righttochoose" src="../../../static/images/righttochoose.png" mode=""></image> | |||||
</view> | |||||
</view> | |||||
<view class="single"> | <view class="single"> | ||||
<view class="uchaserbox" :class="{ uchaserboxs : newactiveTotal == 1 || newactiveTotal == 3 }" | <view class="uchaserbox" :class="{ uchaserboxs : newactiveTotal == 1 || newactiveTotal == 3 }" | ||||
@@ -357,7 +361,6 @@ | |||||
showMarketingBusiness: false, // 展示可选择的销讲业务 | showMarketingBusiness: false, // 展示可选择的销讲业务 | ||||
showMarketingList: [], // 销讲业务列表 | showMarketingList: [], // 销讲业务列表 | ||||
marketingBusiness: '', // 销讲业务 | marketingBusiness: '', // 销讲业务 | ||||
fncMap: ['', 'getAllGuWen', '', 'getAllYiJi', 'getAllErJi'], // 确认后事件合集 | |||||
}; | }; | ||||
}, | }, | ||||
@@ -441,7 +444,7 @@ | |||||
selectMarketingBusiness(e) { | selectMarketingBusiness(e) { | ||||
this.marketingBusinessText = e[0].label | this.marketingBusinessText = e[0].label | ||||
this.marketingBusiness = e[0].value | this.marketingBusiness = e[0].value | ||||
this[this.fncMap[this.newactiveTotal]]() | |||||
this.init() | |||||
}, | }, | ||||
// 获取顾问 | // 获取顾问 | ||||
@@ -702,6 +705,10 @@ | |||||
}, | }, | ||||
//tab切换 | //tab切换 | ||||
tabxuanxiangtap(index) { | tabxuanxiangtap(index) { | ||||
if (index == 1 || index == 3 || index == 4) { | |||||
this.marketingBusinessText = this.showMarketingList[0].templateName | |||||
this.marketingBusiness = this.showMarketingList[0].id | |||||
} | |||||
this.newactiveTotal = index; | this.newactiveTotal = index; | ||||
this.Selectlevel = false; | this.Selectlevel = false; | ||||
this.Selecttuandui = false; | this.Selecttuandui = false; | ||||
@@ -1542,10 +1549,27 @@ | |||||
min-height: 50vh; | min-height: 50vh; | ||||
.marketingBusiness { | .marketingBusiness { | ||||
width: 100%; | |||||
display: flex; | display: flex; | ||||
justify-content: center; | justify-content: center; | ||||
align-items: center; | align-items: center; | ||||
.marketingBusinesstext { | |||||
padding: 0 20rpx; | |||||
display: flex; | |||||
align-items: center; | |||||
border-radius: 8rpx; | |||||
border: 1rpx solid #666666; | |||||
overflow: hidden; | |||||
white-space: nowrap; | |||||
text-overflow: ellipsis; | |||||
.righttochoose { | |||||
margin-left: 12rpx; | |||||
width: 18rpx; | |||||
height: 24rpx; | |||||
} | |||||
} | |||||
} | } | ||||
} | } | ||||
</style> | </style> |
@@ -1,8 +1,8 @@ | |||||
<template> | <template> | ||||
<view class="box"> | <view class="box"> | ||||
<view class="boxtittabs"> | <view class="boxtittabs"> | ||||
<div class="items" @tap="screenShow = true">{{ showTimeText }}</div> | |||||
<div class="items" @tap="showTemplate = true">{{ showBeText }}</div> | |||||
<div class="items" @tap="screenShow = true">{{ showTimeText }}<u-icon name="arrow-down" size="24" style="padding-left: 12rpx"></u-icon></div> | |||||
<div class="items" @tap="showTemplate = true">{{ showBeText }}<u-icon name="arrow-down" size="24" style="padding-left: 12rpx"></u-icon></div> | |||||
</view> | </view> | ||||
<view class="info"> | <view class="info"> | ||||
@@ -86,7 +86,7 @@ | |||||
<!-- 更多筛选 --> | <!-- 更多筛选 --> | ||||
<u-popup v-model="screenShow" mode="top"> | |||||
<u-popup v-model="screenShow" mode="bottom" height="368"> | |||||
<view class="screen"> | <view class="screen"> | ||||
<view class="boxtittab"> | <view class="boxtittab"> | ||||
<view class="tabbox"> | <view class="tabbox"> | ||||
@@ -1,18 +1,8 @@ | |||||
<template> | <template> | ||||
<view class="box"> | <view class="box"> | ||||
<view class="boxtittab"> | |||||
<view class="tabbox"> | |||||
<view :class="{ activecllasscet: activeTotal == 4 }" @click="tabtimetap(4)">近七天</view> | |||||
</view> | |||||
<view class="tabbox"> | |||||
<view :class="{ activecllasscet: activeTotal == 5 }" @click="tabtimetap(5)">近15天</view> | |||||
</view> | |||||
<view class="tabbox"> | |||||
<view :class="{ activecllasscet: activeTotal == 6 }" @click="tabtimetap(6)">近30天</view> | |||||
</view> | |||||
<view class="tabbox"> | |||||
<view :class="{ activecllasscet: activeTotal == 3 }" @click="tabtimetap(3)">自定义</view> | |||||
</view> | |||||
<view class="boxtittabs"> | |||||
<div class="items" @tap="screenShow = true">{{ showTimeText }}<u-icon name="arrow-down" size="24" style="padding-left: 12rpx"></u-icon></div> | |||||
<div class="items" @tap="showTemplate = true">{{ showBeText }}<u-icon name="arrow-down" size="24" style="padding-left: 12rpx"></u-icon></div> | |||||
</view> | </view> | ||||
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view> | <view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view> | ||||
<view class="Piabodata-box"> | <view class="Piabodata-box"> | ||||
@@ -192,6 +182,32 @@ | |||||
:default-value='selindex'></u-select> | :default-value='selindex'></u-select> | ||||
<u-select v-model="staffShow1" :list="teamList" @confirm="staffSelectCallback($event,1)" | <u-select v-model="staffShow1" :list="teamList" @confirm="staffSelectCallback($event,1)" | ||||
:default-value='selindex'></u-select> | :default-value='selindex'></u-select> | ||||
<!-- 更多筛选 --> | |||||
<u-popup v-model="screenShow" mode="bottom" height="368"> | |||||
<view class="screen"> | |||||
<view class="boxtittab"> | |||||
<view class="tabbox"> | |||||
<view :class="{ activecllasscet: activeTotal == 4 }" @click="tabtimetap(4, '近七天')">近七天</view> | |||||
</view> | |||||
<view class="tabbox"> | |||||
<view :class="{ activecllasscet: activeTotal == 5 }" @click="tabtimetap(5, '近15天')">近15天</view> | |||||
</view> | |||||
<view class="tabbox"> | |||||
<view :class="{ activecllasscet: activeTotal == 6 }" @click="tabtimetap(6, '近30天')">近30天</view> | |||||
</view> | |||||
<view class="tabbox"> | |||||
<view :class="{ activecllasscet: activeTotal == 3 }" @click="tabtimetap(3, '自定义')">自定义</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</u-popup> | |||||
<!-- 销讲业务 --> | |||||
<u-select :mask-close-able="false" label-name="templateName" value-name="id" v-model="showTemplate" | |||||
mode="single-column" :list="templateList" @cancel="templateCancel" @confirm="templateConfirm"></u-select> | |||||
<!-- 加载组件 --> | <!-- 加载组件 --> | ||||
<loading v-model="LOADING"></loading> | <loading v-model="LOADING"></loading> | ||||
</view> | </view> | ||||
@@ -334,6 +350,15 @@ | |||||
}] | }] | ||||
} | } | ||||
}, | }, | ||||
screenShow: false, // 时间筛选弹窗 | |||||
showTimeText: '近七天', // 展示文字 | |||||
showBeText: '全部业务', // | |||||
templateList: [], // 销讲业务 | |||||
showTemplate: false, // 展示选择销讲业务弹窗 | |||||
marketingBusiness: '', // 选择的业务id | |||||
}; | }; | ||||
}, | }, | ||||
onShow() { | onShow() { | ||||
@@ -341,7 +366,7 @@ | |||||
// 获取项目id | // 获取项目id | ||||
this.houseId = uni.getStorageSync('buildingID').id; | this.houseId = uni.getStorageSync('buildingID').id; | ||||
// 获取数据看板 | // 获取数据看板 | ||||
this.getMarketingBusiness() | |||||
// 获取员工 | // 获取员工 | ||||
this.getStaffList() | this.getStaffList() | ||||
// 获取团队 | // 获取团队 | ||||
@@ -357,6 +382,7 @@ | |||||
this.getindexZxl() | this.getindexZxl() | ||||
}, | }, | ||||
onPullDownRefresh() { | onPullDownRefresh() { | ||||
this.getMarketingBusiness() | |||||
// 获取员工 | // 获取员工 | ||||
this.getStaffList() | this.getStaffList() | ||||
// 获取团队 | // 获取团队 | ||||
@@ -374,7 +400,34 @@ | |||||
}, 1000); | }, 1000); | ||||
}, | }, | ||||
methods: { | methods: { | ||||
towajue(){ | |||||
// 销讲业务方法 | |||||
templateCancel() { | |||||
this.showTemplate = false; | |||||
}, | |||||
// 确认选择销讲业务 | |||||
templateConfirm(e) { | |||||
this.showTemplate = false; | |||||
this.marketingBusiness = e[0].value | |||||
this.showBeText = e[0].label | |||||
this.getdata() | |||||
}, | |||||
// 获取销讲业务 | |||||
getMarketingBusiness() { | |||||
this.$u.get('/customer/marketingBusiness', { | |||||
houseId: uni.getStorageSync('buildingID').id, | |||||
}).then(res => { | |||||
this.templateList = res | |||||
this.templateList.unshift({ | |||||
templateName: '全部业务', | |||||
id: '' | |||||
}) | |||||
}) | |||||
}, | |||||
towajue() { | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: "/pages/center/Piabodata/requireminingAnalysis" | url: "/pages/center/Piabodata/requireminingAnalysis" | ||||
}) | }) | ||||
@@ -426,7 +479,8 @@ | |||||
houseId: this.houseId, | houseId: this.houseId, | ||||
timeType: this.lastEndDate ? null : this.activeTotal, | timeType: this.lastEndDate ? null : this.activeTotal, | ||||
lastEndDate: this.lastEndDate, | lastEndDate: this.lastEndDate, | ||||
lastStartDate: this.lastStartDate | |||||
lastStartDate: this.lastStartDate, | |||||
marketingBusiness: this.marketingBusiness, | |||||
}) | }) | ||||
.then(res => { | .then(res => { | ||||
// console.log(res) | // console.log(res) | ||||
@@ -441,7 +495,8 @@ | |||||
houseId: this.houseId, | houseId: this.houseId, | ||||
timeType: this.lastEndDate ? null : this.activeTotal, | timeType: this.lastEndDate ? null : this.activeTotal, | ||||
lastEndDate: this.lastEndDate, | lastEndDate: this.lastEndDate, | ||||
lastStartDate: this.lastStartDate | |||||
lastStartDate: this.lastStartDate, | |||||
marketingBusiness: this.marketingBusiness, | |||||
}) | }) | ||||
.then(res => { | .then(res => { | ||||
this.LOADING = false | this.LOADING = false | ||||
@@ -473,11 +528,12 @@ | |||||
houseId: this.houseId, | houseId: this.houseId, | ||||
timeType: this.lastEndDate ? null : this.activeTotal, | timeType: this.lastEndDate ? null : this.activeTotal, | ||||
lastEndDate: this.lastEndDate, | lastEndDate: this.lastEndDate, | ||||
lastStartDate: this.lastStartDate | |||||
lastStartDate: this.lastStartDate, | |||||
marketingBusiness: this.marketingBusiness, | |||||
}) | }) | ||||
.then(res => { | .then(res => { | ||||
res.sumDuration = Math.floor(res.sumDuration / 60) || 0 | res.sumDuration = Math.floor(res.sumDuration / 60) || 0 | ||||
res.fraction = (res.fraction>100?100:(res.fraction||0)) + '%' | |||||
res.fraction = (res.fraction > 100 ? 100 : (res.fraction || 0)) + '%' | |||||
this.numlist.map(item => { | this.numlist.map(item => { | ||||
item.num = res[item.setName] | item.num = res[item.setName] | ||||
}) | }) | ||||
@@ -513,7 +569,8 @@ | |||||
houseId: this.houseId, | houseId: this.houseId, | ||||
timeType: this.lastEndDate ? null : this.activeTotal + '', | timeType: this.lastEndDate ? null : this.activeTotal + '', | ||||
lastEndDate: this.lastEndDate, | lastEndDate: this.lastEndDate, | ||||
lastStartDate: this.lastStartDate | |||||
lastStartDate: this.lastStartDate, | |||||
marketingBusiness: this.marketingBusiness, | |||||
}) | }) | ||||
.then(res => { | .then(res => { | ||||
this.allnum1 = res.avg[0] | this.allnum1 = res.avg[0] | ||||
@@ -545,7 +602,8 @@ | |||||
houseId: this.houseId, | houseId: this.houseId, | ||||
timeType: this.lastEndDate ? null : this.activeTotal + '', | timeType: this.lastEndDate ? null : this.activeTotal + '', | ||||
lastEndDate: this.lastEndDate, | lastEndDate: this.lastEndDate, | ||||
lastStartDate: this.lastStartDate | |||||
lastStartDate: this.lastStartDate, | |||||
marketingBusiness: this.marketingBusiness, | |||||
}) | }) | ||||
.then(res => { | .then(res => { | ||||
// console.log(res) | // console.log(res) | ||||
@@ -574,10 +632,12 @@ | |||||
}) | }) | ||||
}, | }, | ||||
//时间切换 | //时间切换 | ||||
tabtimetap(index) { | |||||
tabtimetap(index, text) { | |||||
if (index == 3) { | if (index == 3) { | ||||
this.totalTimeShow = true; | this.totalTimeShow = true; | ||||
} else { | } else { | ||||
this.screenShow = false | |||||
this.showTimeText = text | |||||
this.activeTotal = index; | this.activeTotal = index; | ||||
this.lastEndDate = '' | this.lastEndDate = '' | ||||
this.lastStartDate = '' | this.lastStartDate = '' | ||||
@@ -605,6 +665,8 @@ | |||||
//自定义时间 | //自定义时间 | ||||
totalTimeChange(e) { | totalTimeChange(e) { | ||||
console.log(e.startDate, e.endDate) | console.log(e.startDate, e.endDate) | ||||
this.screenShow = false | |||||
this.showTimeText = `${e.startDate}-${e.endDate}` | |||||
this.activeTotal = 3; | this.activeTotal = 3; | ||||
this.lastEndDate = e.endDate | this.lastEndDate = e.endDate | ||||
this.lastStartDate = e.startDate | this.lastStartDate = e.startDate | ||||
@@ -641,7 +703,7 @@ | |||||
this.allList[index].children.map(item => { | this.allList[index].children.map(item => { | ||||
arr.push({ | arr.push({ | ||||
name: item.name, | name: item.name, | ||||
zxl: item.zxl>100?100:item.zxl | |||||
zxl: item.zxl > 100 ? 100 : item.zxl | |||||
}) | }) | ||||
}) | }) | ||||
this.newlisttabinfo1 = arr | this.newlisttabinfo1 = arr | ||||
@@ -695,6 +757,40 @@ | |||||
}; | }; | ||||
</script> | </script> | ||||
<style lang="scss" scoped> | <style lang="scss" scoped> | ||||
.boxtittabs { | |||||
width: 100%; | |||||
height: 92rpx; | |||||
background: #FFFFFF; | |||||
display: flex; | |||||
align-items: center; | |||||
.items { | |||||
padding: 0 24rpx; | |||||
width: 50%; | |||||
height: 100%; | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: center; | |||||
overflow: hidden; | |||||
white-space: nowrap; | |||||
text-overflow: ellipsis; | |||||
} | |||||
} | |||||
.screen { | |||||
width: 100%; | |||||
.boxtittab { | |||||
width: 100%; | |||||
flex-direction: column; | |||||
.tabbox { | |||||
width: 100%; | |||||
} | |||||
} | |||||
} | |||||
.box { | .box { | ||||
width: 100%; | width: 100%; | ||||
height: 100%; | height: 100%; | ||||
@@ -136,7 +136,7 @@ | |||||
<!-- 销讲执行率 --> | <!-- 销讲执行率 --> | ||||
<view class="ratecenter" v-if="activeTotal==2"> | <view class="ratecenter" v-if="activeTotal==2"> | ||||
<view class="boxtittabs"> | <view class="boxtittabs"> | ||||
<div class="items" @tap="showTemplate = true">销讲业务:{{ showBeText }}</div> | |||||
<div class="items" @tap="showTemplate = true">销讲业务:{{ showBeText }}<u-icon name="arrow-down" size="24" style="padding-left: 12rpx"></u-icon></div> | |||||
<div class="items">销讲执行:{{ totalRate||0 }}%</div> | <div class="items">销讲执行:{{ totalRate||0 }}%</div> | ||||
</view> | </view> | ||||
<view | <view | ||||
@@ -458,7 +458,6 @@ | |||||
this.showTemplate = false; | this.showTemplate = false; | ||||
this.customerId = e[0].value | this.customerId = e[0].value | ||||
this.showBeText = e[0].label | this.showBeText = e[0].label | ||||
this.getCustomerInfo() | |||||
this.tabtimetap(2) | this.tabtimetap(2) | ||||
}, | }, | ||||
@@ -652,8 +651,6 @@ | |||||
res.forEach(item => { | res.forEach(item => { | ||||
item.agentName = this.customerInfo.agentName | item.agentName = this.customerInfo.agentName | ||||
}) | }) | ||||
this.fllowList = res; | this.fllowList = res; | ||||
}) | }) | ||||
}, | }, | ||||
@@ -703,6 +700,7 @@ | |||||
}).then(res => { | }).then(res => { | ||||
if (res.length) { | if (res.length) { | ||||
let level1 = [] | let level1 = [] | ||||
let level2rate = 0 | |||||
res.forEach(item => { | res.forEach(item => { | ||||
if (item.pid == 0) { | if (item.pid == 0) { | ||||
level1.push({ | level1.push({ | ||||
@@ -890,6 +890,9 @@ | |||||
icon: 'none', | icon: 'none', | ||||
duration: 2000 | duration: 2000 | ||||
}) | }) | ||||
this.init(this.infos); | |||||
this.gituserlist() | |||||
this.getMarketingBusiness() | |||||
}).catch(e => { | }).catch(e => { | ||||
uni.showToast({ | uni.showToast({ | ||||
title: e.data.message, | title: e.data.message, | ||||