瀏覽代碼

Merge branch 'develop' of http://52.130.252.100:10000/TEAMMODEL/TEAMModelOS into develop

zhouj1203@hotmail.com 2 年之前
父節點
當前提交
03341338e7

+ 4 - 0
TEAMModelBI/ClientApp/src/api/index.js

@@ -232,6 +232,10 @@ export default {
     getAlldata(data) {
         return post('/activity/get-all', data)
     },
+    //统计所有的评量、投票、问卷、作业
+    getclassify(data) {
+        return post('/activity/get-allactivity', data)
+    },
     //获取课例活动数据
     getClassData(data) {
         return post('/lesson/get-allarea', data)

+ 2 - 3
TEAMModelBI/ClientApp/src/components/echarts/gradePie.vue

@@ -71,7 +71,6 @@ class InitChart {
         value: 0,
         name: '',
       },
-
     ]
     var data = datas ? datas : defaults
     let datum = data.map((v) => v.value)
@@ -111,8 +110,8 @@ class InitChart {
       legend: {
         orient: 'vertical',
         right: '10%',
-        top: '35%',
-        itemGap: 50,
+        top: '10%',
+        itemGap: 10,
         itemWidth: 12,
       },
       grid: {

+ 45 - 12
TEAMModelBI/ClientApp/src/view/areamanage/statistics.vue

@@ -17,8 +17,8 @@
                 <p class="right-top-title">{{item.title}}</p>
               </div>
               <div class="right-top-bottombox-comparison">
-                <p>本周新增:<span class="week-comparison">3</span></p>
-                <p>本月新增:<span class="months-comparison">15</span></p>
+                <p>本周新增:<span class="week-comparison">0</span></p>
+                <p>本月新增:<span class="months-comparison">0</span></p>
               </div>
             </div>
           </div>
@@ -35,10 +35,10 @@
         </div>
         <div class="rightbox" v-loading="loadingTotal.basics2" element-loading-background="rgba(0, 0, 0, 0.3)">
           <!-- <div class="rightbox"> -->
-          <div class="rightbox-pie">
+          <!-- <div class="rightbox-pie">
             <CommonPie :proportionData="totalArea.alonePie"></CommonPie>
-          </div>
-          <div class="rightbox-pie">
+          </div> -->
+          <div class="rightbox-pie anaphase">
             <ConventionPie :pieData="totalArea.activity"></ConventionPie>
           </div>
           <div class="rightbox-pie versions">
@@ -431,7 +431,7 @@ export default {
       activity: {
         color: ['#ff7979', '#badc58', '#7ed6df', '#f6e58d', '#686de0'],
         legend: {
-          right: '-2%',
+          right: '0%',
           orient: 'vertical',
           itemWidth: 8,
           itemHeight: 8, // 修改icon图形大小
@@ -456,10 +456,10 @@ export default {
               },
             },
             data: [
-              { value: 150, name: '评量测验' },
-              { value: 310, name: '投票活动' },
-              { value: 270, name: '问卷调查' },
-              { value: 183, name: '作业活动' },
+              { value: 0, name: '评量测验' },
+              { value: 0, name: '投票活动' },
+              { value: 0, name: '问卷调查' },
+              { value: 0, name: '作业活动' },
             ],
           },
         ],
@@ -1450,12 +1450,40 @@ export default {
             loadingTotal.value.basics2 = false
             loadingTotal.value.areaList = false
             getClassData()
+            getclassification()
           }
         })
         .catch((res) => {
           ElMessage.error('全区数据获取异常')
         })
     }
+    //获取全区的评量、投票、问卷、作业
+    function getclassification () {
+      proxy.$api.getclassify({}).then((res) => {
+        console.log(res, '各类返回')
+        if (res.state === 200) {
+          // res.typeCount.foreach((item) => {
+          //   item.key === 'Exam' ? totalArea.value.activity.series[0].data[0].value = item.value : ''
+          //   item.key === 'Vote' ? totalArea.value.activity.series[0].data[1].value = item.value : ''
+          //   item.key === 'Survey' ? totalArea.value.activity.series[0].data[2].value = item.value : ''
+          //   item.key === 'Homework' ? totalArea.value.activity.series[0].data[3].value = item.value : ''
+          // })
+          var examNum = 0; var voteNum = 0; var surveyNum = 0; var homework = 0;
+          for (let i in res.typeCount) {
+            res.typeCount[i].key === 'Exam' ? examNum = res.typeCount[i].value : ''
+            res.typeCount[i].key === 'Vote' ? voteNum = res.typeCount[i].value : ''
+            res.typeCount[i].key === 'Survey' ? surveyNum = res.typeCount[i].value : ''
+            res.typeCount[i].key === 'Homework' ? homework = res.typeCount[i].value : ''
+          }
+          totalArea.value.activity.series[0].data[0].value = examNum
+          totalArea.value.activity.series[0].data[1].value = voteNum
+          totalArea.value.activity.series[0].data[2].value = surveyNum
+          totalArea.value.activity.series[0].data[3].value = homework
+        }
+      }).catch((error) => {
+        ElMessage.error('获取全区活动类型API异常')
+      })
+    }
     //获取全区的数据(课例活动类型)
     function getClassData (loading) {
       proxy.$api
@@ -1713,7 +1741,7 @@ export default {
       let data = value
       store.commit('areaClick', data)
       console.log(store.state, '9999999')
-      router.push('/home/campus')
+      router.push({ path: 'campus', query: { pattern: 'details' } })
     }
     getAll()
     getoption()
@@ -1744,7 +1772,8 @@ export default {
       getcounselor,
       CounselorList,
       getAreaSchool,
-      detailsclick
+      detailsclick,
+      getclassification
     }
   },
 }
@@ -2184,6 +2213,10 @@ export default {
   height: 70px;
   margin: 0 auto;
 }
+.versions,
+.anaphase {
+  width: 50%;
+}
 
 .school,
 .basics,

+ 51 - 24
TEAMModelBI/ClientApp/src/view/schoolmanage/schoolAnalyse.vue

@@ -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
     }
   },
 }