@@ -613,6 +613,15 @@ | |||
"enablePullDownRefresh": false | |||
} | |||
} | |||
,{ | |||
"path" : "warningList/warningList", | |||
"style" : | |||
{ | |||
"navigationBarTitleText": "项目预警", | |||
"enablePullDownRefresh": false | |||
} | |||
} | |||
] | |||
} | |||
@@ -1,10 +1,12 @@ | |||
const stayPendingProcessingArr = [{ | |||
// 待处理 | |||
const stayPendingProcessingArr = [ | |||
{ | |||
title: '录音未开启', | |||
params: '', // 后端定义参数 | |||
show: true, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '录音未合并', | |||
@@ -25,6 +27,7 @@ const stayPendingProcessingArr = [{ | |||
params: '', // 后端定义参数 | |||
show: true, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
@@ -54,8 +57,10 @@ const stayPendingProcessingArr = [{ | |||
] | |||
// 简报指标 | |||
const ReceptionBriefingArr = [ | |||
const ReceptionBriefingArr = [{ | |||
{ | |||
title: '接待量', | |||
params: '', // 后端定义参数 | |||
show: true, // 是否展示默认展示一部分 | |||
@@ -71,16 +76,15 @@ const ReceptionBriefingArr = [{ | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '正在接待', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
show: true, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '复访接待', | |||
params: '', // 后端定义参数 | |||
@@ -179,27 +183,22 @@ const ReceptionBriefingArr = [{ | |||
}, | |||
] | |||
const IndexRankingArr = [{ | |||
title: '接待量', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
// 指标排名 | |||
const IndexRankingArr = [ | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '有效接待', | |||
title: '接待量', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
isShowCity: true, // 默认展示按城市 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '正在接待', | |||
title: '有效接待', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
isShowCity: true, // 默认展示按城市 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
@@ -207,7 +206,7 @@ const IndexRankingArr = [{ | |||
title: '复访接待', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
isShowCity: true, // 默认展示按城市 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
@@ -215,7 +214,7 @@ const IndexRankingArr = [{ | |||
title: '违禁接待', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
isShowCity: true, // 默认展示按城市 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
@@ -223,7 +222,7 @@ const IndexRankingArr = [{ | |||
title: '无录音', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
isShowCity: true, // 默认展示按城市 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
@@ -231,7 +230,7 @@ const IndexRankingArr = [{ | |||
title: '平均挖掘执行率', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
isShowCity: true, // 默认展示按城市 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
@@ -239,7 +238,7 @@ const IndexRankingArr = [{ | |||
title: '平均销讲执行率', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
isShowCity: true, // 默认展示按城市 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
@@ -247,7 +246,7 @@ const IndexRankingArr = [{ | |||
title: '平均客户意向度', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
isShowCity: true, // 默认展示按城市 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
@@ -255,7 +254,7 @@ const IndexRankingArr = [{ | |||
title: '平均挖掘成功率', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
isShowCity: true, // 默认展示按城市 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
@@ -263,7 +262,7 @@ const IndexRankingArr = [{ | |||
title: '录音开启失败', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
isShowCity: true, // 默认展示按城市 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
@@ -271,7 +270,7 @@ const IndexRankingArr = [{ | |||
title: '平均接待时长', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
isShowCity: true, // 默认展示按城市 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
@@ -279,7 +278,7 @@ const IndexRankingArr = [{ | |||
title: '录音开启平均时长', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
isShowCity: true, // 默认展示按城市 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
@@ -287,7 +286,7 @@ const IndexRankingArr = [{ | |||
title: '录音开启率', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
isShowCity: true, // 默认展示按城市 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
@@ -295,40 +294,33 @@ const IndexRankingArr = [{ | |||
title: '平均信号强度', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
isShowCity: true, // 默认展示按城市 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
] | |||
// 趋势 | |||
const IndicatorTrendsArr = [ | |||
const IndicatorTrendsArr = [{ | |||
{ | |||
title: '接待量', | |||
params: '', // 后端定义参数 | |||
params: 'receptionCount', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '有效接待', | |||
params: '', // 后端定义参数 | |||
params: 'activeCustomer', // 后端定义参数 | |||
checked: false, // 是否选中 | |||
show: false, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '正在接待', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '复访接待', | |||
params: '', // 后端定义参数 | |||
params: 'visitAgainCount', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
@@ -336,7 +328,7 @@ const IndicatorTrendsArr = [{ | |||
}, | |||
{ | |||
title: '违禁接待', | |||
params: '', // 后端定义参数 | |||
params: 'prohibitedCustomer', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
@@ -352,7 +344,7 @@ const IndicatorTrendsArr = [{ | |||
}, | |||
{ | |||
title: '平均挖掘执行率', | |||
params: '', // 后端定义参数 | |||
params: 'wordFraction', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
@@ -360,7 +352,7 @@ const IndicatorTrendsArr = [{ | |||
}, | |||
{ | |||
title: '平均销讲执行率', | |||
params: '', // 后端定义参数 | |||
params: 'fraction', // 后端定义参数 | |||
checked: false, // 是否选中 | |||
show: false, // 是否展示默认展示一部分 | |||
@@ -368,7 +360,7 @@ const IndicatorTrendsArr = [{ | |||
}, | |||
{ | |||
title: '平均客户意向度', | |||
params: '', // 后端定义参数 | |||
params: 'sumLevelFraction ', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
@@ -376,7 +368,7 @@ const IndicatorTrendsArr = [{ | |||
}, | |||
{ | |||
title: '平均挖掘成功率', | |||
params: '', // 后端定义参数 | |||
params: 'wordFinishFraction', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
@@ -384,7 +376,7 @@ const IndicatorTrendsArr = [{ | |||
}, | |||
{ | |||
title: '录音开启失败', | |||
params: '', // 后端定义参数 | |||
params: 'recordingFailed', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
@@ -392,7 +384,7 @@ const IndicatorTrendsArr = [{ | |||
}, | |||
{ | |||
title: '平均接待时长', | |||
params: '', // 后端定义参数 | |||
params: 'avgDuration', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
@@ -400,7 +392,7 @@ const IndicatorTrendsArr = [{ | |||
}, | |||
{ | |||
title: '录音开启平均时长', | |||
params: '', // 后端定义参数 | |||
params: 'avgStartRecording', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
@@ -408,7 +400,7 @@ const IndicatorTrendsArr = [{ | |||
}, | |||
{ | |||
title: '录音开启率', | |||
params: '', // 后端定义参数 | |||
params: 'recordingStartOdds', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
@@ -416,23 +408,15 @@ const IndicatorTrendsArr = [{ | |||
}, | |||
{ | |||
title: '平均信号强度', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '接待质量', | |||
params: '', // 后端定义参数 | |||
params: 'avgSignalDevice', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
} | |||
] | |||
// 分布 | |||
const IndicatorDistributionArr = [ | |||
{ | |||
@@ -525,7 +509,6 @@ const IndicatorDistributionArr = [ | |||
}, | |||
] | |||
export { | |||
stayPendingProcessingArr, | |||
ReceptionBriefingArr, | |||
@@ -67,19 +67,25 @@ | |||
{{item.title}}排名(top10) | |||
</view> | |||
<view class="rside"> | |||
<view class="rside-item"> | |||
<view class="rside-item" :class="{active: item.isShowCity}" @click="checkCity(item, '按项目')"> | |||
按项目 | |||
</view> | |||
<view class="rside-item"> | |||
<view class="rside-item" :class="{active: !item.isShowCity}" @click="checkCity(item, '按城市')"> | |||
按城市 | |||
</view> | |||
</view> | |||
</view> | |||
<view class="echarts"> | |||
<template v-if="item.lineOptsect"> | |||
<qiun-data-charts :type="item.type" :chartData="item.lineOptsect" :opts="item.lineOpts" | |||
background="none" :ontouch="true" :canvasId="item.canvasId" :canvas2d="true" /> | |||
<template v-if="item.type"> | |||
<template v-if="item.isShowCity"> | |||
<qiun-data-charts :type="item.type" :chartData="item.lineOptsect" :opts="item.lineOpts" | |||
background="none" :ontouch="true" :canvasId="item.canvasId" :canvas2d="true" /> | |||
</template> | |||
<template v-else> | |||
<qiun-data-charts :type="item.type" :chartData="item.lineOptsect1" :opts="item.lineOpts" | |||
background="none" :ontouch="true" :canvasId="item.canvasId1" :canvas2d="true" /> | |||
</template> | |||
</template> | |||
<template v-else> | |||
<view class="empty"> | |||
@@ -143,7 +149,7 @@ | |||
</view> | |||
<view class="echarts"> | |||
<template v-if="item.lineOptsect"> | |||
<template v-if="item.type"> | |||
<qiun-data-charts :type="item.type" :chartData="item.lineOptsect" :opts="item.lineOpts" | |||
background="none" :ontouch="true" :canvasId="item.canvasId" :canvas2d="true" /> | |||
</template> | |||
@@ -174,10 +180,12 @@ | |||
<view :class="{ activecllasscet: params.dateType == 0 }" @click="tabtimetap(0, '今天')">今天</view> | |||
</view> | |||
<view class="tabbox"> | |||
<view :class="{ activecllasscet: params.dateType == 1 }" @click="tabtimetap(1, '近七天')">近七天</view> | |||
<view :class="{ activecllasscet: params.dateType == 1 }" @click="tabtimetap(1, '近七天')">近七天 | |||
</view> | |||
</view> | |||
<view class="tabbox"> | |||
<view :class="{ activecllasscet: params.dateType == 2 }" @click="tabtimetap(2, '近30天')">近30天</view> | |||
<view :class="{ activecllasscet: params.dateType == 2 }" @click="tabtimetap(2, '近30天')">近30天 | |||
</view> | |||
</view> | |||
<view class="tabbox"> | |||
<view :class="{ activecllasscet: params.dateType == null }" @click="tabtimetap(null, '自定义')">自定义 | |||
@@ -202,11 +210,12 @@ | |||
export default { | |||
data() { | |||
return { | |||
showTimeText: '今天', // 展示文字 | |||
showTimeText: '近七天', // 展示文字 | |||
showBeText: '公司', // | |||
showBeText1: '项目', // | |||
showTemplate: false, | |||
screenShow: false, // 日期选择器 | |||
totalTimeShow: false, // 日期选择器 | |||
templateList: [], // 销讲业务 | |||
houseList: [], // 项目列表 | |||
companyList: [], // 项目列表 | |||
@@ -215,18 +224,41 @@ | |||
IndexRankingArr: allArrList.IndexRankingArr, // 排名 | |||
IndicatorTrendsArr: allArrList.IndicatorTrendsArr, // 排名 | |||
IndicatorDistributionArr: allArrList.IndicatorDistributionArr, // 排名 | |||
params: { | |||
staDate: '', //开启时间 | |||
endDate: '', // 结束时间 | |||
houseId: '', // 楼盘 | |||
orgCode: '', // 公司code | |||
dateType: 0, // 自定义时间 今天0 昨天1 近七天2 | |||
dateType: 1, // 自定义时间 今天0 近七天1 30天2 | |||
}, | |||
needFormatArr: ['stayPendingProcessingArr', 'ReceptionBriefingArr', 'IndexRankingArr', | |||
'IndicatorTrendsArr', 'IndicatorDistributionArr' | |||
], // 需要格式化的数组 | |||
publicId: '', // 标识区别选择的是公司还是项目 | |||
publicOpts: { | |||
color: ["#1890FF", "#91CB74", "#FAC858", "#EE6666", "#73C0DE", "#3CA272", "#FC8452", "#9A60B4", | |||
"#ea7ccc" | |||
], | |||
padding: [15, 10, 20, 15], | |||
enableScroll: false, | |||
legend: {}, | |||
xAxis: { | |||
rotateLabel: true, | |||
rotateAngle: 90, | |||
fontSize: 10, | |||
}, | |||
yAxis: { | |||
gridType: "dash", | |||
}, | |||
extra: { | |||
line: { | |||
type: "straight", | |||
width: 2, | |||
activeType: "hollow" | |||
} | |||
} | |||
} | |||
}; | |||
}, | |||
@@ -238,7 +270,7 @@ | |||
methods: { | |||
// 字典 | |||
biDictionary() { | |||
this.$u.get('/customer/biDict').then(res => { | |||
@@ -250,8 +282,9 @@ | |||
indexType: index | |||
} | |||
}) | |||
let arr1 = res.filter(arr => arr.indexType == index) | |||
arr1.map(ie => { | |||
let objs = this[item].findIndex(obj => { | |||
return obj.title == ie.indexName && obj.indexType == ie | |||
@@ -264,12 +297,14 @@ | |||
} | |||
}) | |||
}, | |||
// 回显 | |||
getFindBiByAccountId() { | |||
this.$u.get('/customer/findBiByAccountId').then(res => { | |||
if (res) { | |||
let arr = [...res.index1.split(','), ...res.index2.split(','), ...res.index3.split(','), ...res.index4.split(','), ...res.index5.split(',')] | |||
let arr = [...res.index1.split(','), ...res.index2.split(','), ...res.index3.split(','), | |||
...res.index4.split(','), ...res.index5.split(',') | |||
] | |||
this.needFormatArr.forEach(item => { | |||
this[item].forEach(items => { | |||
let obj = arr.find(obj => obj == items.id) | |||
@@ -280,18 +315,29 @@ | |||
} | |||
}) | |||
}, | |||
async initPage() { | |||
await this.biDictionary() | |||
await this.bishowIndex1() | |||
await this.bishowIndex2() | |||
// await this.bishowIndex3() | |||
await this.bishowIndex4() | |||
this.$nextTick(() => { | |||
this.bishowIndex3() | |||
this.bishowIndex4() | |||
this.bishowIndex5() | |||
}) | |||
}, | |||
checkCity(item, name) { | |||
if (name == '按项目') { | |||
item.isShowCity = true | |||
} else { | |||
item.isShowCity = false | |||
} | |||
this.$forceUpdate() | |||
}, | |||
bishowIndex1() { | |||
this.$u.post('/customer/bishowIndex1', this.params).then(res => { | |||
console.log(res) | |||
if (res) { | |||
this.stayPendingProcessingArr.forEach(item => { | |||
item.data = res[item.id] || 0 | |||
@@ -299,10 +345,9 @@ | |||
} | |||
}) | |||
}, | |||
bishowIndex2() { | |||
this.$u.post('/customer/bishowIndex2', this.params).then(res => { | |||
console.log(res) | |||
if (res) { | |||
this.ReceptionBriefingArr.forEach(item => { | |||
item.data = res[item.id] || 0 | |||
@@ -310,26 +355,109 @@ | |||
} | |||
}) | |||
}, | |||
bishowIndex3() { | |||
this.$u.post('/customer/bishowIndex3', this.params).then(res => { | |||
console.log(res) | |||
// if (res) { | |||
// this.IndexRankingArr.forEach(item => { | |||
// item.data = res[item.id] || 0 | |||
// }) | |||
// } | |||
if (res) { | |||
this.IndexRankingArr.forEach(item => { | |||
if (res[item.id] && res[item.id].data.length > 0) { | |||
// 按项目 | |||
item.canvasId = `IndexRankingArr${item.id}` | |||
item.lineOptsect = { | |||
categories: res[item.id].data.map(itme => { | |||
return itme.name | |||
}), | |||
series: [{ | |||
name: item.title, | |||
data: JSON.parse(JSON.stringify(res[item.id].data)), | |||
}] | |||
} | |||
item.type = 'column' | |||
item.lineOpts = this.publicOpts | |||
item.lineOpts.legend = { | |||
show: false | |||
} | |||
// 按城市 | |||
item.canvasId1 = `IndexRankingArrs${item.id}` | |||
item.lineOptsect1 = { | |||
categories: res[item.id].data2.map(itme => { | |||
return itme.name | |||
}), | |||
series: [{ | |||
name: item.title, | |||
data: JSON.parse(JSON.stringify(res[item.id].data2)) | |||
}] | |||
} | |||
this.$forceUpdate() | |||
} | |||
}) | |||
} | |||
}) | |||
}, | |||
bishowIndex5() { | |||
this.$u.post('/customer/bishowIndex5', this.params).then(res => { | |||
if (res) { | |||
this.IndicatorDistributionArr.forEach(item => { | |||
if (res[item.id]) { | |||
console.log('进来了') | |||
item.type = 'pie' | |||
item.canvasId = `IndicatorDistributionArrs${item.id}` | |||
item.lineOptsect = { | |||
series: [{ | |||
data: JSON.parse(JSON.stringify(res[item.id])) | |||
}] | |||
} | |||
item.lineOpts = { | |||
color: ["#1890FF", "#91CB74", "#FAC858", "#EE6666", "#73C0DE", | |||
"#3CA272", "#FC8452", "#9A60B4", "#ea7ccc" | |||
], | |||
padding: [5, 5, 5, 5], | |||
enableScroll: false, | |||
extra: { | |||
pie: { | |||
activeOpacity: 0.5, | |||
activeRadius: 10, | |||
offsetAngle: 0, | |||
labelWidth: 15, | |||
border: false, | |||
borderWidth: 3, | |||
borderColor: "#FFFFFF" | |||
} | |||
} | |||
} | |||
this.$forceUpdate() | |||
} | |||
}) | |||
} | |||
}) | |||
}, | |||
bishowIndex4() { | |||
this.$u.post('/customer/bishowIndex4', this.params).then(res => { | |||
console.log(res) | |||
// if (res) { | |||
// this.IndexRankingArr.forEach(item => { | |||
// item.data = res[item.id] || 0 | |||
// }) | |||
// } | |||
if (res) { | |||
this.IndicatorTrendsArr.forEach(item => { | |||
if (res[item.id]) { | |||
item.canvasId = `IndicatorTrendsArr${item.id}` | |||
item.lineOptsect = { | |||
categories: [], | |||
series: [{ | |||
name: item.title, | |||
data: [] | |||
}] | |||
} | |||
item.type = 'line' | |||
item.lineOpts = this.publicOpts | |||
res[item.id].forEach(itme => { | |||
item.lineOptsect.categories.push(itme.statDate.split(' ')[0]) | |||
item.lineOptsect.series[0].data.push(itme[item.params] || 0) | |||
}) | |||
this.$forceUpdate() | |||
} | |||
}) | |||
} | |||
}) | |||
}, | |||
@@ -338,13 +466,13 @@ | |||
url: '/pages/center/RuleEditing/RuleEditing' | |||
}) | |||
}, | |||
showSelect(params) { | |||
this.publicId = params | |||
this.templateList = this[params] | |||
this.showTemplate = true | |||
}, | |||
// 获取项目 | |||
getHouse() { | |||
uni.request({ | |||
@@ -364,7 +492,7 @@ | |||
} | |||
}) | |||
}, | |||
// 获取公司 | |||
getCompany() { | |||
this.$u.post('/customer/getMyOrg').then(res => { | |||
@@ -393,7 +521,7 @@ | |||
this.initPage() | |||
} | |||
}, | |||
//自定义时间 | |||
totalTimeChange(e) { | |||
this.screenShow = false | |||
@@ -419,7 +547,7 @@ | |||
this.showBeText = e[0].label | |||
this.params.orgCode = e[0].value | |||
} | |||
}, | |||
}, | |||
} | |||
@@ -455,38 +583,38 @@ | |||
text-overflow: ellipsis; | |||
} | |||
} | |||
.screen { | |||
//时间切换的样式 | |||
.boxtittab { | |||
width: 100%; | |||
//时间切换的样式 | |||
.boxtittab { | |||
width: 100%; | |||
height: 100%; | |||
background: #FFFFFF; | |||
display: flex; | |||
flex-direction: column; | |||
border: none; | |||
.tabbox { | |||
flex: 1; | |||
height: 100%; | |||
background: #FFFFFF; | |||
text-align: center; | |||
line-height: 92rpx; | |||
color: #666666; | |||
font-size: 28rpx; | |||
font-weight: 400; | |||
display: flex; | |||
flex-direction: column; | |||
border: none; | |||
.tabbox { | |||
flex: 1; | |||
height: 100%; | |||
text-align: center; | |||
line-height: 92rpx; | |||
color: #666666; | |||
font-size: 28rpx; | |||
font-weight: 400; | |||
display: flex; | |||
justify-content: center; | |||
.activecllasscet { | |||
width: 96rpx; | |||
color: #2671E2; | |||
font-weight: 600; | |||
border-bottom: 4rpx solid #2671E2; | |||
} | |||
justify-content: center; | |||
.activecllasscet { | |||
width: 96rpx; | |||
color: #2671E2; | |||
font-weight: 600; | |||
border-bottom: 4rpx solid #2671E2; | |||
} | |||
} | |||
} | |||
} | |||
.edit { | |||
@@ -556,7 +684,7 @@ | |||
.rside-item { | |||
margin: 0 10rpx 0 0; | |||
&.class { | |||
&.active { | |||
color: #1890FF; | |||
} | |||
} | |||
@@ -0,0 +1,125 @@ | |||
<template> | |||
<view class="pages"> | |||
<block v-for="(data, index) in list"> | |||
<view class="page-box" v-if="data.list.length > 0" :key="index"> | |||
<view class="title"> | |||
<text class="a1"> | |||
{{ data.houseName || '' }} | |||
</text> | |||
<text @click="updateShowStatus(data)">已了解</text> | |||
</view> | |||
<u-checkbox-group @change="checkboxGroupChange" shape="circle"> | |||
<block v-for="item in data.list" :key="item.id"> | |||
<u-checkbox :disabled="item.showStatus == 0" @change="checkboxChange" v-model="item.checked"> | |||
<view :style="{ textDecoration: item.showStatus == 0 ? 'line-through' : 'none'}"> | |||
{{ item.createTime }} | |||
</view> | |||
<view :style="{ textDecoration: item.showStatus == 0 ? 'line-through' : 'none'}"> | |||
{{ item.message }} | |||
</view> | |||
</u-checkbox> | |||
</block> | |||
</u-checkbox-group> | |||
</view> | |||
</block> | |||
</view> | |||
</template> | |||
<script> | |||
export default { | |||
data() { | |||
return { | |||
list: [], // | |||
} | |||
}, | |||
onLoad() { | |||
this.getWarningList() | |||
}, | |||
methods: { | |||
// | |||
updateShowStatus(data) { | |||
let arr = data.list.filter(item => item.checked).map(items => {return items.id}) | |||
console.log(arr) | |||
if (arr.length == 0) { | |||
uni.showToast({ | |||
title: '请选择已了解的消息~', | |||
icon: "none", | |||
duration: 2000, | |||
}) | |||
return | |||
} | |||
this.$u.get('/customer/updateShowStatus', { | |||
ids: arr.join(',') | |||
}).then(res => { | |||
uni.showToast({ | |||
title: '提交成功', | |||
icon: "none", | |||
duration: 2000, | |||
}) | |||
setTimeout(() => { | |||
this.getWarningList() | |||
}, 1000) | |||
}) | |||
}, | |||
// 项目预警列表 | |||
getWarningList() { | |||
this.$u.get('/customer/warningList').then(res => { | |||
if (res) { | |||
this.list = res.records.map(item => { | |||
item.list.forEach(items => { | |||
items.checked = items.showStatus == 0 ? true : false | |||
}) | |||
return item | |||
}) | |||
this.$forceUpdate() | |||
} | |||
}) | |||
}, | |||
// 选中某个复选框时,由checkbox时触发 | |||
checkboxChange(e) { | |||
console.log(e); | |||
}, | |||
// 选中任一checkbox时,由checkbox-group触发 | |||
checkboxGroupChange(e) { | |||
console.log(e); | |||
} | |||
} | |||
} | |||
</script> | |||
<style lang="scss" scoped> | |||
.pages { | |||
padding: 20rpx 0; | |||
width: 100vw; | |||
min-height: 100vh; | |||
background: #f2f2f2; | |||
display: flex; | |||
flex-direction: column; | |||
.page-box { | |||
margin: 0 auto 20rpx; | |||
padding: 20rpx; | |||
width: 686rpx; | |||
background: #fff; | |||
border-radius: 16rpx; | |||
box-shadow: 0rpx 0rpx 7rpx #82848A; | |||
.title { | |||
display: flex; | |||
justify-content: space-between; | |||
.a1 { | |||
font-size: 32rpx; | |||
font-weight: 600; | |||
} | |||
} | |||
} | |||
} | |||
</style> |
@@ -325,7 +325,7 @@ | |||
<view class="commonly-text">数据看板</view> | |||
</view> | |||
<view class="commonly" @click="toRequireAnalysis()" v-if="permissions.xmyj_sy"> | |||
<view class="commonly" @click="toWoring" v-if="permissions.xmyj_sy"> | |||
<view class="commonly-img"> | |||
<image class="commonly-img1" src="https://static.quhouse.com/20230523104803.jpg" mode=""> | |||
</image> | |||
@@ -352,7 +352,8 @@ | |||
<view class="commonly-img"> | |||
<image class="commonly-img1" | |||
src="https://static.quhouse.com/759c2e3240e54213827196559ce38fa4.png" mode=""></image> | |||
</view> <view class="commonly-text">集团对比</view> | |||
</view> | |||
<view class="commonly-text">集团对比</view> | |||
</view> | |||
<view class="commonly" @click="Piabodata('设备管理')" v-if="permissions.sbgl"> | |||
<view class="commonly-img"> | |||
@@ -476,11 +477,11 @@ | |||
return permissions.xjfx || permissions.lpdb || permissions.gwpm || permissions.xjqs || permissions | |||
.sjkb_sy || permissions.xmyj_sy | |||
}, | |||
// 接待管理 | |||
hospitalityShow() { | |||
let permissions = this.permissions | |||
return permissions.jdjl||permissions.wjjl||permissions.tddb | |||
return permissions.jdjl || permissions.wjjl || permissions.tddb | |||
}, | |||
}, | |||
@@ -609,13 +610,19 @@ | |||
}); | |||
}, | |||
toWoring() { | |||
uni.navigateTo({ | |||
url: '/pages/center/warningList/warningList' | |||
}); | |||
}, | |||
// 需求挖掘分析 | |||
toRequireAnalysis() { | |||
uni.navigateTo({ | |||
url: '/pages/center/Piabodata/requireminingAnalysis' | |||
}); | |||
}, | |||
updateInit() { | |||
this.$u.get(config.service.notReadNum, { | |||
id: uni.getStorageSync('weapp_session_userInfo_data').accountId, | |||