|
@@ -203,8 +203,9 @@
|
|
|
</div>
|
|
|
<div class="school-analyse-bottom">
|
|
|
<div class="school-analyse-bottom-left" v-loading="allLoding.service" element-loading-background="rgba(0, 0, 0, 0.5)">
|
|
|
- <div class="echarts-titles modularization"><span>学校服务模块总计: {{totalServe}} </span><span>已激活设备: 30/57</span></div>
|
|
|
- <CommonBar :barData="echartsData.service"></CommonBar>
|
|
|
+ <div class="echarts-titles modularization"><span v-show="echartsData.service.series[0].data.length !==0">学校服务模块总计: {{totalServe}} </span><span v-show="echartsData.service.series[0].data.length !==0">已激活设备: 30/57</span></div>
|
|
|
+ <CommonBar :barData="echartsData.service" v-if="echartsData.service.series[0].data.length !==0"></CommonBar>
|
|
|
+ <div class="notdata" v-else>暂无购买任何软体、服务</div>
|
|
|
</div>
|
|
|
<div class="school-analyse-bottom-right" v-loading="allLoding.versions" element-loading-background="rgba(0, 0, 0, 0.5)">
|
|
|
<div class="echarts-titles editions"><span>各版本情况</span></div>
|
|
@@ -213,11 +214,11 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="schoolanalysebox" v-else-if="showState ==='particular'">
|
|
|
- <div class="school-analyse-header bgimg">
|
|
|
+ <div class="school-analyse-header bgimg" v-loading="detailsLoding.header" element-loading-background="rgba(0, 0, 0, 0.5)">
|
|
|
<div class="school-analyse-headersbox">
|
|
|
<div class="school-analyse-headersbox-name">
|
|
|
<span>{{schoolDeatils.name}}</span>
|
|
|
- <span class="versions">专业版</span>
|
|
|
+ <span class="versions">{{schoolDeatils.versions}}</span>
|
|
|
</div>
|
|
|
<div class="school-analyse-headersbox-basics">
|
|
|
<div class="items-basics">
|
|
@@ -248,19 +249,19 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="school-analyse-top">
|
|
|
- <div class="school-analyse-top-left">
|
|
|
+ <div class="school-analyse-top-left" v-loading="detailsLoding.top" element-loading-background="rgba(0, 0, 0, 0.5)">
|
|
|
<Bar :barData="detailsEchart.bar1"></Bar>
|
|
|
</div>
|
|
|
- <div class="school-analyse-top-center">
|
|
|
+ <div class="school-analyse-top-center" v-loading="detailsLoding.top" element-loading-background="rgba(0, 0, 0, 0.5)">
|
|
|
<Bar :barData="detailsEchart.bar2"></Bar>
|
|
|
</div>
|
|
|
- <div class="school-analyse-top-right">
|
|
|
+ <div class="school-analyse-top-right" v-loading="detailsLoding.top" element-loading-background="rgba(0, 0, 0, 0.5)">
|
|
|
<Bar :barData="detailsEchart.bar3"></Bar>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="school-analyse-center">
|
|
|
<div class="school-analyse-center-bottom">
|
|
|
- <div :class="[item.classname,'bottom-item']" v-for="item in detailsbasics" :key="item.id">
|
|
|
+ <div :class="[item.classname,'bottom-item']" v-for="item in detailsbasics" :key="item.id" v-loading="detailsLoding.various" element-loading-background="rgba(0, 0, 0, 0.5)">
|
|
|
<div class="bottom-item-header">
|
|
|
<svg class="icon" aria-hidden="true">
|
|
|
<use :xlink:href="item.icon"></use>
|
|
@@ -292,16 +293,16 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="school-analyse-center-line">
|
|
|
+ <div class="school-analyse-center-line" v-loading="detailsLoding.total" element-loading-background="rgba(0, 0, 0, 0.5)">
|
|
|
<CommonLine :lineData="detailsEchart.line"></CommonLine>
|
|
|
<!-- <TestLine></TestLine> -->
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="school-analyse-bottom">
|
|
|
- <div class="school-analyse-bottom-left">
|
|
|
+ <div class="school-analyse-bottom-left" v-loading="detailsLoding.grade" element-loading-background="rgba(0, 0, 0, 0.5)">
|
|
|
<Gradepie :mapData="detailsGrade"></Gradepie>
|
|
|
</div>
|
|
|
- <div class="school-analyse-bottom-right">
|
|
|
+ <div class="school-analyse-bottom-right" v-loading="detailsLoding.subject" element-loading-background="rgba(0, 0, 0, 0.5)">
|
|
|
<ConventionPie :pieData="detailsEchart.subject"></ConventionPie>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -355,8 +356,16 @@ export default {
|
|
|
service: true,
|
|
|
versions: true,
|
|
|
})
|
|
|
+ let detailsLoding = ref({
|
|
|
+ header: true,
|
|
|
+ top: true,
|
|
|
+ various: true,
|
|
|
+ total: true,
|
|
|
+ grade: true,
|
|
|
+ subject: true,
|
|
|
+ })
|
|
|
let headerbasics = ref([
|
|
|
- { id: 1, title: '参与管理的学校', num: 0, subheading: '产生有效数据', subnum: 0, class: 'schoolnum-statistics' },
|
|
|
+ { id: 1, title: '参与管理的学校', num: 0, subheading: '总数据量', subnum: 0, class: 'schoolnum-statistics' },
|
|
|
{ id: 1, title: '学校教师总数', num: 0, subheading: '本月新增', subnum: 0, class: 'teachnum-statistics' },
|
|
|
{ id: 1, title: '学校学生总数', num: 0, subheading: '本月新增', subnum: 0, class: 'studentnum-statistics' },
|
|
|
{ id: 1, title: '课例总数', num: 0, subheading: '本月新增', subnum: 0, class: 'classnum-statistics' },
|
|
@@ -863,7 +872,6 @@ export default {
|
|
|
color: '#7fecd5'
|
|
|
}]),
|
|
|
barBorderRadius: 15
|
|
|
-
|
|
|
}
|
|
|
},
|
|
|
data: []
|
|
@@ -1476,14 +1484,17 @@ export default {
|
|
|
})
|
|
|
let detailsGrade = ref([])
|
|
|
let isAreaon = ref(false)
|
|
|
- let init = showState.value === 'all' ? getbasics() : ''
|
|
|
function showInit () {
|
|
|
let urls = window.location.href.indexOf('pattern=area')
|
|
|
+ let detailsUrl = window.location.href.indexOf('pattern=details')
|
|
|
if (urls !== -1) {
|
|
|
areagoShow.value = false
|
|
|
} else {
|
|
|
areagoShow.value = true
|
|
|
}
|
|
|
+ if (detailsUrl === -1) {
|
|
|
+ getbasics()
|
|
|
+ }
|
|
|
}
|
|
|
function backAllarea () {
|
|
|
store.commit('clickCounselor', '')
|
|
@@ -1523,6 +1534,7 @@ export default {
|
|
|
beginsTableData.value = beginsData
|
|
|
activityData.value = activityDataInfo
|
|
|
comprehensiveData.value = compositeData
|
|
|
+ console.log(comprehensiveData.value, '查看1111')
|
|
|
allLoding.value.rank = false
|
|
|
store.commit('clickCounselor', '')
|
|
|
allAspects(ids)
|
|
@@ -1575,8 +1587,7 @@ export default {
|
|
|
detailsEchart.value.bar3.timeline.data = anSchool.value.times
|
|
|
detailsEchart.value.bar3.xAxis[0].data = anSchool.value.times
|
|
|
detailsEchart.value.bar3.series[0].data = anSchool.value.interacts
|
|
|
-
|
|
|
- console.log(anSchool, '8686868686')
|
|
|
+ detailsLoding.value.top = false
|
|
|
computeSchool(beData)
|
|
|
}
|
|
|
}
|
|
@@ -1612,13 +1623,15 @@ export default {
|
|
|
centerbasics.value[2].subheadState = aspectsData.value.interacts[aspectsData.value.interacts.length - 1] - aspectsData.value.interacts[aspectsData.value.interacts.length - 2] >= 0 ? 'up' : 'down'
|
|
|
//总数据
|
|
|
centerbasics.value[3].num = res.lessAll + res.actAllCnt + res.interAll
|
|
|
+ headerbasics.value[0].subnum = res.lessAll + res.actAllCnt + res.interAll
|
|
|
centerbasics.value[3].todayNum = res.lessDayCnt + res.actCnt + res.interCnt
|
|
|
let nowMonth = aspectsData.value.activitys[aspectsData.value.activitys.length - 1] + aspectsData.value.classed[aspectsData.value.classed.length - 1] + aspectsData.value.interacts[aspectsData.value.interacts.length - 1]
|
|
|
let lastMonth = aspectsData.value.activitys[aspectsData.value.activitys.length - 2] + aspectsData.value.classed[aspectsData.value.classed.length - 2] + aspectsData.value.interacts[aspectsData.value.interacts.length - 2]
|
|
|
centerbasics.value[3].subheadingNum = nowMonth === 0 && lastMonth === 0 ? '0%' : lastMonth === 0 ? '100%' : ((nowMonth - lastMonth) / lastMonth).toFixed(2) * 100 + '%'
|
|
|
centerbasics.value[3].subheadingState = nowMonth - lastMonth >= 0 ? 'up' : 'down'
|
|
|
- let nowYear = res.lessYearCnt + res.yearActCn + res.yearInterCnt
|
|
|
- let lastYear = res.lessLastYearCnt + res.lastYearInterCnt + res.lastYearActCn
|
|
|
+ let nowYear = res.lessYearCnt + res.yearActCnt + res.yearInterCnt
|
|
|
+ let lastYear = res.lessLastYearCnt + res.lastYearInterCnt + res.lastYearActCnt
|
|
|
+ console.log(nowYear, lastYear, '今年和去年数据')
|
|
|
centerbasics.value[3].subheadNum = nowYear === 0 && lastYear === 0 ? '0%' : lastYear === 0 ? '100%' : (((nowYear - lastYear) / lastYear) * 100).toFixed(2) + '%'
|
|
|
console.log(((nowYear - lastYear) / lastYear).toFixed(2), '结果')
|
|
|
centerbasics.value[3].subheadingState = nowYear - lastYear >= 0 ? 'up' : 'down'
|
|
@@ -1671,9 +1684,10 @@ export default {
|
|
|
allLoding.value.service = false
|
|
|
console.log(res.productAn, '处理的结果')
|
|
|
//处理版本占比
|
|
|
- let basicsV = 0; let standardV = 1; let marjorV = 0
|
|
|
+ let basicsV = 0; let standardV = 0; let marjorV = 0
|
|
|
for (let v in res.scInfos) {
|
|
|
- res.scInfos[v].serial.length === 0 && res.scInfos[v].service.length === 0 ? basicsV += 1 : ''
|
|
|
+ res.scInfos[v].scale === 0 ? basicsV += 1 : ''
|
|
|
+ res.scInfos[v].scale === 500 && res.scInfos[v].serial.length === 0 && res.scInfos[v].service.length === 0 ? standardV += 1 : ''
|
|
|
res.scInfos[v].serial.length !== 0 && res.scInfos[v].service.length !== 0 && res.scInfos[v].scale === 500 ? marjorV += 1 : ''
|
|
|
}
|
|
|
echartsData.value.edition.series[0].data[0].value = basicsV
|
|
@@ -1691,16 +1705,24 @@ export default {
|
|
|
ElMessage.error('学校信息有误,请检查')
|
|
|
return
|
|
|
}
|
|
|
+ detailsLoding.value.header = true
|
|
|
+ detailsLoding.value.top = true
|
|
|
+ detailsLoding.value.various = true
|
|
|
+ detailsLoding.value.total = true
|
|
|
+ detailsLoding.value.grade = true
|
|
|
+ detailsLoding.value.subject = true
|
|
|
let schoolkey = id
|
|
|
let data = { schoolId: id }
|
|
|
proxy.$api.schoolDetails(data).then((res) => {
|
|
|
console.log(res, 'fanhui')
|
|
|
if (res.state === 200) {
|
|
|
schoolDeatils.value = res.recSchool
|
|
|
+ schoolDeatils.value.versions = ''
|
|
|
anSchool.value.teachNum = res.tchCnt
|
|
|
anSchool.value.studentNum = res.stuCnt
|
|
|
anSchool.value.classNum = res.roomCnt
|
|
|
anSchool.value.classInfoNum = res.lessAllCant
|
|
|
+ detailsLoding.value.header = false
|
|
|
allAspects(schoolkey, 'details', res)
|
|
|
gradeandsubjects(schoolkey)
|
|
|
}
|
|
@@ -1718,6 +1740,8 @@ export default {
|
|
|
proxy.$api.getGradeandSubjects(data).then((res) => {
|
|
|
console.log(res, '年级、科目')
|
|
|
if (res.state === 200) {
|
|
|
+ //处理显示学校版本
|
|
|
+ schoolDeatils.value.versions = schoolDeatils.value.scale === 0 ? '基础版' : schoolDeatils.value.scale === 500 && res.serial === 0 && res.service === 0 ? '标准版' : schoolDeatils.value.scale >= 500 && res.serial !== 0 && res.service !== 0 ? '专业版' : ''
|
|
|
//处理年级占比
|
|
|
let Xdata = [];
|
|
|
if (res.gradeCnt.length !== 0) {
|
|
@@ -1751,6 +1775,7 @@ export default {
|
|
|
]
|
|
|
detailsGrade.value = defaults
|
|
|
}
|
|
|
+ detailsLoding.value.grade = false
|
|
|
//处理科目
|
|
|
let subjectData = []
|
|
|
if (res.subCnt.length !== 0) {
|
|
@@ -1786,6 +1811,7 @@ export default {
|
|
|
]
|
|
|
detailsEchart.value.subject.series[0].data = defaults
|
|
|
}
|
|
|
+ detailsLoding.value.subject = false
|
|
|
}
|
|
|
}).catch((error) => {
|
|
|
ElMessage.error('年级及科目API异常')
|
|
@@ -1825,12 +1851,13 @@ export default {
|
|
|
let lastYear = res.lessLastYearCnt + res.lastYearActCnt + res.lastYearInterCnt
|
|
|
detailsbasics.value[3].subheadNum = nowYear === 0 && lastYear === 0 ? '0%' : lastYear === 0 ? '100%' : (((nowYear - lastYear) / lastYear) * 100).toFixed(2) + '%'
|
|
|
detailsbasics.value[3].subheadingState = nowYear - lastYear >= 0 ? 'up' : 'down'
|
|
|
-
|
|
|
+ detailsLoding.value.various = false
|
|
|
let classedDatas = anSchool.value.classed; let activitysDatas = anSchool.value.activitys; let interactDatas = anSchool.value.interacts
|
|
|
let tataldata1 = classedDatas.map((index, item) => { return index + activitysDatas[item]; })
|
|
|
console.log(tataldata1, '第一次计算')
|
|
|
let totaldataInfo = tataldata1.map((index, item) => { return index + interactDatas[item]; })
|
|
|
detailsEchart.value.line.series[0].data = totaldataInfo
|
|
|
+ detailsLoding.value.total = false
|
|
|
console.log(totaldataInfo, '结果查看')
|
|
|
}
|
|
|
function detailsback () {
|
|
@@ -1863,7 +1890,7 @@ export default {
|
|
|
showInit()
|
|
|
watch(store.state.areaClickschool, (newdata) => {
|
|
|
console.log(newdata, '是否触发')
|
|
|
- newdata.hasOwnProperty('name') ? (showState.value = 'particular', schoolDeatils.value = newdata, schoolDeatilsInfo(newdata.id), isAreaon.value = true) : showState.value = 'all'
|
|
|
+ newdata.hasOwnProperty('name') ? (showState.value = 'particular', schoolDeatils.value = newdata, schoolDeatilsInfo(newdata.id), isAreaon.value = true) : ''
|
|
|
}, { immediate: true, deep: true })
|
|
|
return {
|
|
|
headerbasics,
|
|
@@ -1889,7 +1916,6 @@ export default {
|
|
|
schoolDeatilsInfo,
|
|
|
anSchool,
|
|
|
detailsEchart,
|
|
|
- init,
|
|
|
detailsbasics,
|
|
|
computeSchool,
|
|
|
detailsback,
|
|
@@ -1899,7 +1925,8 @@ export default {
|
|
|
serveData,
|
|
|
totalServe,
|
|
|
gradeandsubjects,
|
|
|
- detailsGrade
|
|
|
+ detailsGrade,
|
|
|
+ detailsLoding
|
|
|
}
|
|
|
},
|
|
|
}
|