瀏覽代碼

Merge branch 'cmy/develop-bi' into develop

chenmy 1 年之前
父節點
當前提交
a971066902

+ 48 - 36
TEAMModelBI/ClientApp/src/view/userInquire/details.vue

@@ -87,7 +87,7 @@
                 <div class="equitystate" v-else>
                     <div class="rightsbox">
                         <div class="rightsbox-content">
-                            <el-carousel trigger="click" height="32vh" :autoplay="false">
+                            <el-carousel trigger="click" height="62vh" :autoplay="false">
                                 <el-carousel-item v-for="item in powerList" :key="item">
                                     <div class="rightsbox-item">
                                         <div class="rightsbox-item-title">
@@ -102,50 +102,55 @@
                                         </div>
                                         <div class="rightsbox-item-expansion" v-show="item.prodCode ==='Z6ELB6EZ'">
                                             <p class="expansion-title">产品扩充项</p>
+                                            <!--产品扩充-->
                                             <div v-for="iteml in item.apruleArr" :key="iteml.key">
                                                 -<span :class="[iteml.state ? 'start-title':'error-title' ]">
                                                     {{iteml.title}}
                                                     <span v-show="iteml.key ==='cligroup' || iteml.key ==='client_volume' || iteml.key ==='soknumber'">({{iteml.value}})</span>
                                                  </span>
                                             </div>
+                                            <!--产品扩充 end-->
+                                            <!--HiTeach 附加功能-->
+                                            <el-divider /> 
+                                            <div class="subjoin">
+                                                <div class="subjoin-item" >
+                                                    <p class="subjoin-title">{{subjoinData.hiteachTitle}}</p>
+                                                    <div class="subjoin-content" v-for="item in subjoinData.hiteach" :key="item.key">
+                                                        <div>
+                                                            <span>{{item.title}}</span>
+                                                            <span class="ccnums" v-show="item.key==='webirs'">{{item.value}}</span>
+                                                            <span class="endtimes" v-if="item.exps >= notTime">(到期日:{{item.end}})</span>
+                                                            <span class="endtimes-error" v-else>(到期日:{{item.end}})</span>
+                                                        </div>
+                                                </div>
+                                            </div>
+                                                <div class="subjoin-item" >
+                                                    <p class="subjoin-title">{{subjoinData.hiteachCCTitle}}</p>
+                                                    <div class="subjoin-content" v-for="itemc in subjoinData.hiteachCC" :key="itemc.key">
+                                                        <div>
+                                                            <span>{{itemc.title}}</span>
+                                                            <span class="ccnums">{{itemc.num}}</span>
+                                                            <span class="endtimes">(到期日:{{itemc.end}})</span>
+                                                        </div>
+                                                    </div>
+                                            </div>
+                                            <!--HiTeach 附加功能 end-->
                                         </div>
-                                        <div class="rightsbox-item-expansion" v-show="item.prodCode ==='IPALB6EY'">
+                                        </div>
+                                        <!-- <div class="rightsbox-item-expansion" v-show="item.prodCode ==='IPALB6EY'">
                                             <p class="expansion-title">产品详细</p>
                                             <div><span>空间大小:</span> <span class="expansion-sizenum">{{item.number}}   GB</span></div>
-                                        </div>
+                                        </div> -->
                                     </div>
                                 </el-carousel-item>
                             </el-carousel>
                         </div>
-                        <div class="subjoin">
-                           <div class="subjoin-item" >
-                                <p class="subjoin-title">{{subjoinData.hiteachTitle}}</p>
-                                <div class="subjoin-content" v-for="item in subjoinData.hiteach" :key="item.key">
-                                    <div>
-                                        <span>{{item.title}}</span>
-                                        <span class="ccnums" v-show="item.key==='webirs'">{{item.value}}</span>
-                                        <span class="endtimes" v-if="item.exps >= notTime">(到期日:{{item.end}})</span>
-                                        <span class="endtimes-error" v-else>(到期日:{{item.end}})</span>
-                                    </div>
-                                </div>
-                           </div>
-                           <div class="subjoin-item" >
-                                <p class="subjoin-title">{{subjoinData.hiteachCCTitle}}</p>
-                                <div class="subjoin-content" v-for="itemc in subjoinData.hiteachCC" :key="itemc.key">
-                                    <div>
-                                        <span>{{itemc.title}}</span>
-                                        <span class="ccnums">{{itemc.num}}</span>
-                                        <span class="endtimes">(到期日:{{itemc.end}})</span>
-                                    </div>
-                                </div>
-                           </div>
-                        </div>
                     </div>
                 </div>
                  <!--权益 end-->
                 <div class="tab-state">
-                    <div :class="[sizeandequity ==='size' ? 'opts':'','tab-state-btn']" @click="sizeandequity='size'">我的空间</div>
                     <div :class="[sizeandequity !=='size' ? 'opts':'','tab-state-btn']" @click="sizeandequity='equity'">我的权益</div>
+                    <div :class="[sizeandequity ==='size' ? 'opts':'','tab-state-btn']" @click="sizeandequity='size'">我的空间</div>
                 </div>
             </div>
             <div class="iesdiv">
@@ -207,7 +212,7 @@ let { proxy } = getCurrentInstance()
 let activeName = ref('basics')
 let userdetailState=ref(false)
 let tabPosition = ref('left')
-let sizeandequity=ref('size')
+let sizeandequity=ref('equity')
 let usernames=ref('')
 let userdata = ref([
     { id: 1, icon: '#icon-ic_idcard', value: '0', title: '',key:'integral',check:false ,hint:'用户ID'},
@@ -466,12 +471,16 @@ let gaugedata = ref({
     }]
 })
 let gaugelabels = ref([
-    { id: 1, value: 0, title: '文档', color: '#58D9F9' },
-    {id:2,value:0,title:'学校分配空间',color:'#58D9F9'},
-    { id: 3, value: 0, title: '视频', color:'#58D9F9' },
-    { id: 4, value: 0, title: '试卷', color:'#58D9F9' },
-    { id: 5, value: 0, title: 'Hiteach上传', color: '#58D9F9' },
-    {id:6,value:0,title:'其他',color:'#58D9F9'},
+    // { id: 1, value: 0, title: '文档', color: '#58D9F9' },
+    // {id:2,value:0,title:'学校分配空间',color:'#58D9F9'},
+    // { id: 3, value: 0, title: '视频', color:'#58D9F9' },
+    // { id: 4, value: 0, title: '试卷', color:'#58D9F9' },
+    // { id: 5, value: 0, title: 'Hiteach上传', color: '#58D9F9' },
+    // {id:6,value:0,title:'其他',color:'#58D9F9'},
+     {id:1,value:0,title:'已使用',key:'use',color: '#58D9F9'},
+     {id:2,value:0,title:'已剩余',key:'residue',color: '#58D9F9'},
+     {id:3,value:0,title:'学校分配空间',key:'allocation',color: '#58D9F9'},
+     {id:4,value:0,title:'总大小',key:'total',color: '#58D9F9'},
 ])
 let rightsdata=ref([
     { name: 'XXXXXX', time: '2024/08/29', code: 'ais' },
@@ -873,7 +882,7 @@ init()
 .size-item{
     display: flex;
     flex-wrap: wrap;
-    margin:0% 2%;
+    margin:0% 1%;
     width:25%;
     line-height: 20px;
     align-items: center;
@@ -958,7 +967,7 @@ init()
 }
 .rightsbox-item{
     text-align: left;
-    border-bottom: 1px solid #ccc;
+    /* border-bottom: 1px solid #ccc; */
     font-size:14px;
     line-height: 25px;
     height:100%;
@@ -986,6 +995,9 @@ init()
     line-height: 18px;
     padding-left: 4px;
 }
+.subjoin-item{
+    margin-top:5px;
+}
 .rightsbox-item-time span:nth-child(3){
     margin-left:5px;
 }

+ 102 - 106
TEAMModelBI/ClientApp/src/view/userInquire/ies.vue

@@ -65,15 +65,16 @@
             </div>
         <el-divider />
             <div class="ies-flex">
-                <div class="ies-flex-echart">
-                    <Pies :piesData="echartsBar"></Pies>
-                </div>
-                <div class="ies-flex-text">
-                    <p>总计:</p>
-                    <p v-for="item in personageSize" :key="item.key">
-                        <span>{{item.title}}:</span><span class="sizenum-text">{{item.value}}</span> GB
-                    </p>
-                </div>
+                <!-- <div class="schools-item" v-for="item in schooldata" :key="item.code">
+                <div class="schools-item-name">{{item.name}}<span class="school-item-edition">专业版</span></div>
+                <p class="schools-item-location">{{item.code}} | {{item.location}}</p>
+                <div class="schools-item-charge">负责课程数<span class="schools-item-charge-num">{{item.class}}</span></div>
+                <div class="schools-item-size">
+                    <p class="schools-item-size-title">学校空间状态</p>
+                    <span class="schools-item-size-text">{{item.totalsize}}GB 中的 {{item.occupy}}GB (20%)</span>
+                </div> -->
+            <!-- </div> -->
+            <!-- <bars :barData="echartsBar"></bars> -->
             </div>
             <div class="dialog-school">
                 <el-dialog v-model="allschoolState" title="加入学校列表" width="50%" :before-close="handleClose">
@@ -120,11 +121,9 @@
  import { ArrowRight } from '@element-plus/icons'
  import * as echarts from 'echarts'
  import bars from '@/components/echarts/commonBar.vue'
- import Pies from './echarts/pie.vue'
  let props = defineProps({
     iesdata: Object,
 })
-let { proxy } = getCurrentInstance()
  let relevancedata = ref([
       { title: '资源数', icon: '#icon-anli', value: 0, key: 'material' },
       { title: '试题数', icon: '#icon-tiku', value: 0, key: 'question' },
@@ -149,74 +148,108 @@ let { proxy } = getCurrentInstance()
       {name:'南京特殊教育师范学院',code:'ntsjsy',location:'中国',class:15,totalsize:300,occupy:75}
  ])
  let allschoolList=ref([])
- let personageSize=ref([
-    {title:'总大小',value:0,key:'total'},
-    {title:'已使用',value:0,key:'used'},
-    {title:'已剩余',value:0,key:'residue'},
-    {title:'学校分配空间',value:0,key:'allocation'}
- ])
  let echartsBar=ref({
-    title: {
-        text: 'IES个人空间',
-        x: 'center',
-        y: 'center',
-        textStyle: {
-            fontWeight: 'normal',
-            color: '#0580f2',
-            fontSize: '20'
+    tooltip: {
+        trigger: 'axis',
+        axisPointer: {
+            type: 'shadow'
         }
     },
-    color: ['rgba(176, 212, 251, 1)'], 
-    // legend: {
-    //     show: true,
-    //     itemGap: 12,
-    //     data: ['01', '02']
-    // },
-    "tooltip": {
-        "trigger": 'item',
-        "formatter": "{b} : ({d}%)"
+    grid: {
+        // top: '15%',
+        // right: '3%',
+        // left: '5%',
+        bottom: '8%'
     },
+    xAxis: [{
+        data: ['合作','互动','任务','差异化','测验'],
+        axisLine: {
+            lineStyle: {
+                color: '#333'
+            }
+        },
+        axisLabel: {
+            // margin: 10,
+            color: '#333',
+            textStyle: {
+                fontSize: 10
+            },
+        },
+    }],
+    yAxis: [{
+        name: "课堂型态",
+        nameTextStyle: {
+            color: '#0177d4',
+            fontSize: 12
+        },
+        axisLine: {
+            show:true,
+            lineStyle: {
+                color: '#0177d4',
+                width:'1'
+            }
+        },
+        axisLabel: {
+            color: '#0177d4',
+            fontSize: 16
+        },
+        splitLine: {
+            show:false,
+            lineStyle: {
+                color: '#0177d4'
+            }
+        },
+    }],
     series: [{
-        type: 'pie',
-        clockWise: true,
-        radius: ['55%', '80%'],
-        itemStyle: {
-            normal: {
-                label: {
-                    show: false
-                },
-                labelLine: {
-                    show: false
-                }
+        type: 'bar',
+        data: [300, 450, 770, 203],
+        barWidth: '16px',
+        barBorderRadius: 5,
+        itemStyle:{
+            normal:{
+                color:new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+                    offset: 0,
+                    color: '#00b0ff'
+                }, {
+                    offset: 0.8,
+                    color: '#7052f4'
+                    }], false),
+               barBorderRadius: 5,
             }
         },
-        hoverAnimation: true, 
-        data: [{
-            value: 80,
-            name: '已使用',
-            itemStyle: {
-                normal: {
-                    color: { // 完成的圆环的颜色
-                        colorStops: [{
-                            offset: 0,
-                            color: '#00cefc' // 0% 处的颜色
-                        }, {
-                            offset: 1,
-                            color: '#367bec' // 100% 处的颜色
-                        }]
+        label: {
+            normal: {
+                show: true,
+                lineHeight: 30,
+                width: 80,
+                height: 30,
+                backgroundColor: 'rgba(0,160,221,0.1)',
+                borderRadius: 200,
+                position: ['-8', '-60'],
+                distance: 1,
+                formatter: [
+                    '    {d|●}',
+                    ' {a|{c}}     \n',
+                    '    {b|}'
+                ].join(''),
+                rich: {
+                    d: {
+                        color: '#3CDDCF',
+                    },
+                    a: {
+                        color: '#00b0ff',
+                        align: 'center',
                     },
-                    label: {
-                        show: false
+                    b: {
+                        width: 1,
+                        height: 30,
+                        borderWidth: 1,
+                        borderColor: '#234e6c',
+                        align: 'left'
                     },
-                    labelLine: {
-                        show: false
-                    }
-                } 
+                }
             }
-        }, {
-            name: '已剩余',
-            value: 20
-        }]
+        }
     }]
  })
  function initdatas(){
@@ -251,26 +284,8 @@ let { proxy } = getCurrentInstance()
         items.size.percentage=Math.round(((items.size.used/ items.size.total).toFixed(2))*100)
         allschoolList.value.push(items)
     })
-    //处理空间大小
-    let {usedSize,surplusSize,totalSize,teachSize}=props.iesdata
-    let transitionUsed=usedSize ?bytesToGB(usedSize):0
-    let transitionSuplus=surplusSize ? bytesToGB(surplusSize):0
-    let transitionTotal=totalSize ? bytesToGB(totalSize):0
-    let transitionTeach=teachSize ? bytesToGB(teachSize):0
-    console.log(transitionUsed,transitionSuplus,transitionTotal,transitionTeach,'各个大小')
-    // echartsBar.value.series[0].data[0].value = (usedSize/totalSize).toFixed(2)*100
-    echartsBar.value.series[0].data[0].value= transitionUsed !==0 ? Math.round((transitionUsed/transitionTotal).toFixed(2)*100):0
-    echartsBar.value.series[0].data[1].value=100-Number(echartsBar.value.series[0].data[0].value)
-    personageSize.value[0].value=transitionTotal
-    personageSize.value[1].value=transitionUsed
-    personageSize.value[2].value=transitionSuplus
-    personageSize.value[3].value=transitionTeach
     console.log(allschoolList.value,'list')
  }
- function bytesToGB(bytes) {
-  const gb = bytes / (1024 * 1024 * 1024);
-  return gb.toFixed(0); // 将结果保留两位小数
-}
  onMounted(() => {
     initdatas()
 })
@@ -316,21 +331,6 @@ let { proxy } = getCurrentInstance()
     justify-content: space-between;
     overflow: hidden;
     overflow-x: auto; */
-    display: flex;
-    align-items: center;
- }
- .ies-flex-echart{
-    width:70%;
-    height:100%;
- }
- .ies-flex-text{
-    width:30%;
-    text-align: left;
-    padding-left: 1%;
-    line-height: 40px;
- }
- .ies-flex-text p{
-    margin-bottom: 5px;
  }
  .schools-item{
     flex: 0 0 40%;
@@ -539,10 +539,6 @@ let { proxy } = getCurrentInstance()
  .fontsize{
     font-size:12px;
  }
- .sizenum-text{
-    font-weight: bold;
-    color:#409EFF;
- }
  </style>
 <style>
 .dialog-school .el-dialog__body{

+ 6 - 6
TEAMModelBI/ClientApp/src/view/userInquire/iot.vue

@@ -494,10 +494,10 @@
     { icon: '#icon--caozuorizhi', title: 'T指数', content: '课程T绿灯数', state: true, value: 0 },
   ])
   let inuseList = ref([
-    { title: '任务数', value: 15, icon: '#icon-renwu', percent: '41.2%', class: 'task', textClass: 'task-text' },
-    { title: '作品数', value: 10, icon: '#icon-yiwancheng-', percent: '30%', class: 'accomplish', textClass: 'accomplish-text' },
-    { title: '题目数', value: 22, icon: '#icon-ic_mianxing_jiakaotimu_1', percent: '10%', class: 'topic', textClass: 'topic-text' },
-    { title: '互动次数', value: 58, icon: '#icon-hudongshequ', percent: '5%', class: 'interaction', textClass: 'interaction-text' },
+    { title: '学习任务数', value: 15, icon: '#icon-renwu', percent: '41.2%', class: 'task', textClass: 'task-text' },
+    { title: '学习作品数', value: 10, icon: '#icon-yiwancheng-', percent: '30%', class: 'accomplish', textClass: 'accomplish-text' },
+    { title: '测验题目数', value: 22, icon: '#icon-ic_mianxing_jiakaotimu_1', percent: '10%', class: 'topic', textClass: 'topic-text' },
+    { title: '学生互动次数', value: 58, icon: '#icon-hudongshequ', percent: '5%', class: 'interaction', textClass: 'interaction-text' },
   ])
   let classType = ref([
     { name: '合作型态课堂', value: 20, percent: '41.2%', class: 'task', textClass: 'task-text' },
@@ -557,7 +557,7 @@
           }
         },
         boundaryGap: true, // 坐标轴两边是否留白
-        data: ['合作型态', '互动型态', '任务型态', '差异化型态', '测验型态', '无型态', '未上课']
+        data: ['合作', '互动', '任务', '差异化', '测验', '无型态', '未上课']
       },
       yAxis: [
         {
@@ -896,7 +896,7 @@
   }
   .lessons-box {
     width: 50%;
-    height: 36vh;
+    height: 36.3vh;
     border-radius: 5px;
     background: #fff;
     box-shadow: 0 2px 5px #e9e9e9;

+ 11 - 7
TEAMModelBI/ClientApp/src/view/userInquire/socrates.vue

@@ -33,7 +33,7 @@
         <div class="tnum-content">
                 <div class="selectbox">
                     <div><el-button v-for="item in buttonSelect" :key="item.value" :type="item.click ? 'primary':''" size="small" class="clickbox" @click="selectTime(item.value)">{{item.name}}</el-button></div>
-                    <div class="nowaday-time">时间:<span>{{hiteachDatas.appear.start_date}}~{{hiteachDatas.appear.end_date}}</span></div>
+                    <div class="nowaday-time">时间:<span class="time-values">{{hiteachDatas.appear.start_date}}~{{hiteachDatas.appear.end_date}}</span></div>
                 </div>
                 <div class="contentbox">
                     <!-- <div class="nowaday-time">时间:2023/07/05-2023/07/11</div> -->
@@ -52,7 +52,7 @@
                         <div class="restbox-item" >
                             <div class="restbox-left" v-for="item in tdatas" :key="item.key">
                                 <div class="left-content">{{item.title}}:
-                                    <span>{{item.values}}</span><span v-show="item.key ==='times' ||item.key ==='studentime'" class="time-unit">Min</span>
+                                    <span class="content-num">{{item.values}}</span><span v-show="item.key ==='times' ||item.key ==='studentime'" class="time-unit">Min</span>
                                 </div>
                             </div>
                             <!-- <div class="restbox-right">
@@ -265,7 +265,8 @@ let hiteachDatas=ref({
 let buttonSelect = ref([
     { name: '周', value: 'week', click: true },
     { name: '月', value: 'month', click: false },
-    {name:'年',value:'year',click:false}
+    {name:'年',value:'year',click:false},
+    {name:'全部',value:'total',click:false}
 ])
 let proportiondata = ref({
     legend: {
@@ -400,7 +401,7 @@ function selectTime(values) {
     console.log(values)
     let hiteach_data=props.sokratesdatas.hiteach_data
     values === 'week' ?  hiteachDatas.value.appear=hiteach_data.this_week:values === 'month' ? hiteachDatas.value.appear=hiteach_data.this_month:
-    values === 'year' ? hiteachDatas.value.appear=hiteach_data.this_year:''
+    values === 'year' ? hiteachDatas.value.appear=hiteach_data.this_year:values ==='total' ? hiteachDatas.value.appear=hiteach_data.total:''
     tdatas.value[0].values=hiteachDatas.value.appear.duration
     tdatas.value[1].values=hiteachDatas.value.appear.attendance
     tdatas.value[2].values=hiteachDatas.value.appear.interaction
@@ -472,7 +473,7 @@ function selectTime(values) {
 }
 .nowaday-time{
     font-size:14px;
-    color:#bbbecd;
+    color:#303133;
     text-align: left;
 }
 .nowaday{
@@ -523,11 +524,11 @@ function selectTime(values) {
 }
 .left-content{
     font-size:14px;
-    color:#bbbecd;
+    color:#303133;
 }
 .left-content span{
     font-size:16px;
-    color: #8a90a8;
+    color: #909399;
     font-weight: bold;
 }
 .hiteachbox-content{
@@ -536,4 +537,7 @@ function selectTime(values) {
 .time-unit{
     margin:0px 5px;
 }
+.time-values,.content-num{
+    color:#409EFF !important;
+}
 </style>