Browse Source

Merge branch 'cmy/develop-bi' into develop

chenmy 1 year ago
parent
commit
2c248d2f4d

+ 1 - 1
TEAMModelBI/ClientApp/public/index.html

@@ -12,7 +12,7 @@
     </title>
 </head>
 <script src="https://g.alicdn.com/dingding/dinglogin/0.0.5/ddLogin.js"></script>
-<script src="https://at.alicdn.com/t/c/font_2934132_nf8jqig0xx8.js"></script>
+<script src="https://at.alicdn.com/t/c/font_2934132_z6jnssvqk88.js"></script>
 <script src="../src/access/iconfont.js"></script>
 
 <body>

+ 138 - 34
TEAMModelBI/ClientApp/src/view/userInquire/details.vue

@@ -19,8 +19,8 @@
                         <use :xlink:href="[item.correlation ? '#icon-zhengque3':'#icon-tishi2']"></use>
                     </svg>
                 </div>
-                <el-button type="" size="small" v-show="item.key ==='school'&& !item.correlation" class="changebtn">更改</el-button>
-                <el-button type="" size="small" v-show="item.key ==='local'">更改</el-button>
+                <!-- <el-button type="" size="small" v-show="item.key ==='school'&& !item.correlation" class="changebtn">更改</el-button> -->
+                <!-- <el-button type="" size="small" v-show="item.key ==='local'">更改</el-button> -->
             </div>
            </div>
         </div>
@@ -32,7 +32,7 @@
                             <p class="item-title">{{item.title}}</p>
                             <div class="item-content" v-show="item.state">
                                 <div class="content-left">
-                                    <span>上次登陆时间:{{item.subhead2Value}}</span>
+                                    <span>上次登陆时间:{{item.value}}</span>
                                 </div>
                             </div>
                             <div class="notenabled-title" v-show="!item.state">近期未使用</div>
@@ -50,7 +50,7 @@
             <div class="hiteachboxdiv">
                 <div  class="common-header-title">
                     <div>HiTeach</div>
-                    <div class="expire">到期日:XXXXX</div>
+                    <!-- <div class="expire">到期日:XXXXX</div> -->
                 </div>
                 <el-divider />
                 <Hiteach></Hiteach>
@@ -58,7 +58,7 @@
             <div class="hitadiv">
                 <div  class="common-header-title">
                     <div>HiTA</div>
-                    <div class="expire">到期日:XXXXX</div>
+                    <!-- <div class="expire">到期日:XXXXX</div> -->
                 </div>
                 <el-divider />
                 <HiTA></HiTA>
@@ -66,7 +66,7 @@
             <div class="user-size">
                 <div  class="common-header-title">
                     <div>空间与权益</div>
-                    <div class="expire">到期日:XXXXX</div>
+                    <!-- <div class="expire">到期日:XXXXX</div> -->
                 </div>
                 <el-divider /> 
                 <div class="sizestate" v-if="sizeandequity ==='size'">
@@ -81,17 +81,39 @@
                             <commonGaugeVue :gaugeData="gaugedata"></commonGaugeVue>
                     </div>
                 </div>
+                <!--权益-->
                 <div class="equitystate" v-else>
                     <div class="rightsbox">
-                        <p class="rightsbox-title">权益列表:</p>
                         <div class="rightsbox-content">
-                            <div class="rightsbox-item" v-for="item in rightsdata" :key="item.key">
-                                <div class="rightsbox-item-name">{{item.name}}</div>
-                                <div class="rightsbox-item-time">到期日:{{item.time}}</div>
-                            </div>
+                            <el-carousel trigger="click" height="35vh" autoplay="false">
+                                <el-carousel-item v-for="item in powerList" :key="item">
+                                    <div class="rightsbox-item">
+                                        <div class="rightsbox-item-title">
+                                            <p>ID授权 {{item.name}}</p>
+                                        </div>
+                                        <div class="rightsbox-item-time">
+                                            <p>
+                                                <span>时间:</span>
+                                                <span class="rightsbox-item-time-num">{{item.startDateText}}~{{item.endDateText}}</span>
+                                                <span>共<span class="rightsbox-item-timenums">{{item.intervalTime}}</span>天</span>
+                                            </p>
+                                        </div>
+                                        <div class="rightsbox-item-expansion">
+                                            <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>
+                                        </div>
+                                    </div>
+                                </el-carousel-item>
+                            </el-carousel>
                         </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>
@@ -157,7 +179,7 @@ let userdata = ref([
     { id: 2, icon: '#icon-shouji', value: '0', title: '',key:'phone',check:true,hint:'手机号码'},
     { id: 3, icon: '#icon-dibudaohanglan-', value: '', title: '',key:'school',correlation:false,check:true,hint:'学校'},
     { id: 4, icon: '#icon-youxiang', value: '', title: '', key: 'email', check: true, hint: '邮箱' },
-    { id: 5, icon: '#icon-yuyan-shi', value: '中文(简体)', title: '',key:'local',check:false ,hint:'语系'},
+    { id: 5, icon: '#icon-weizhi', value: '', title: '',key:'local',check:false ,hint:'地区位置'},
     { id: 6, icon: '#icon-shijian2', value: '2023-04-23', title: '', key: 'time', check: false ,hint:'上次登录时间' },
 ])
 let productdata = ref([
@@ -320,7 +342,7 @@ let gaugedata = ref({
         x: 'center',
         bottom:'33%',
         textStyle: {
-            fontSize: '14',
+            fontSize: '16',
             color: '#313a5e',
             foontWeight: '600',
         },
@@ -328,7 +350,7 @@ let gaugedata = ref({
     series: [
         {
         type: 'gauge',
-        radius: '135%',
+        radius: '85%',
         center: ['50%', '70%'],
         startAngle: 180,
         endAngle: 0,
@@ -388,7 +410,7 @@ let gaugedata = ref({
             offsetCenter: [0, '0%'], // x, y,单位px
             textStyle: {
               color: '#313a5e',
-              fontSize: 12
+              fontSize: 14
             }
         },
         detail: {
@@ -430,34 +452,87 @@ let sokratesData=detailsData.value[0].sokrates
 let pointsData=detailsData.value[0].points
 console.log(props.searchdata, '传输的值')
 console.log(detailsData.value, '最终数据')
+let powerExtension=ref([
+    {title:'USB錄影支援',key:'hdcam',state:false},
+    {title:'蘇格拉底議課APP',key:'sokapp',state:false},
+    {title:'蘇格拉底影片',key:'sokvdo',state:false},
+    {title:'AI智能終端',key:'ezs',state:false},
+    {title:'AI文句分析',key:'wordanls',state:false},
+    {title:'電子學生證',key:'dgistuid',state:false},
+    {title:'蘇格拉底小數據',key:'soksdata',state:false},
+    {title:'雲端診斷分析系統',key:'cloudas',state:false},
+    {title:'分組數',key:'cligroup',value:0,state:false},
+    {title:'IRS連線授權數',key:'client_volume',value:0,state:false},
+    {title:'議課人數',key:'soknumber',value:0,state:false},
+    {title:'IRS硬體遙控器',key:'irs',state:true},
+])
+let powerList=ref([])
 const handleChildEvent = (payload) => {
     userdetailState.value=false
-};
+}
 function initdata() {
     let transmitData = detailsData.value[0]
     console.log(transmitData,'数据')
     //header 基础信息 
-    let { name,id,mobile, mail, schoolCode, schoolCodeW, points } = transmitData
+    let { name,id,mobile, mail, schoolCode, schoolCodeW, points,country,province,city,} = transmitData
     usernames.value=name
     userdata.value[0].value = id
     userdata.value[1].value = mobile
-    userdata.value[2].value = 'XXXX'
+    userdata.value[2].value = schoolCodeW ? schoolCodeW : schoolCode ? schoolCode:'无'
+    schoolCodeW ? userdata.value[2].correlation=true:false
     userdata.value[3].value = mail
-    userdata.value[4].value = 'XXXX'
-    userdata.value[5].value = 'XXXX-XX-XX'
+    userdata.value[4].value = country && province && city ? country+'-'+province+city:country+'-'+province
     //产品使用及安装情况
     let {login}=transmitData
+    let logintimes = login.length >0 ? login.sort(function(a,b){return b.time-a.time}):'无'
+    userdata.value[5].value=proxy.$common.timestampToTime(logintimes[0].time,'all')
     if(login.length >0){
        login.forEach(item => {
          let typename=item.product
          productdata.value.forEach(items=>{
-            typename === items.key ? items.value === 0 ? (items.value=item.time,items.state=true): item.time > items.value ? (items.value=item.time,items.state=true):'':''
+            typename === items.key ? items.value === 0 ? (items.value=proxy.$common.timestampToTime(item.time,'all'),items.state=true): item.time > items.value ? (items.value=proxy.$common.timestampToTime(item.time,'all'),items.state=true):'':''
          })
        })
     }
     //空间与权益
     let {usedSize,teachSize,totalSize,surplusSize}=transmitData.ies5
     let usePercentum=parseInt(((Number(bytesToGB(usedSize))+Number(bytesToGB(teachSize)))/Number(bytesToGB(totalSize)))*100);let useGsize=proxy.$common.convertSize(usedSize)
+    
+    //权益内容
+    let {prod}=transmitData
+    prod.forEach((item)=>{
+        //处理名字
+        item.name=item.prodCode ==='Z6ELB6EZ' ? 'HiTeach 5':item.prodCode ==='IPALB6EY' ? 'IES 5 個人空間':''
+        //处理扩展内容
+        let apruleItem=item.aprule
+        item.apruleArr=[]
+        if(apruleItem !==null && item.prodCode ==='Z6ELB6EZ'){
+            apruleItem.hdcam ? powerExtension.value[0].state=true:powerExtension.value[0].state=false
+            apruleItem.sokapp ? powerExtension.value[1].state=true:powerExtension.value[1].state=false
+            apruleItem.sokvdo ? powerExtension.value[2].state=true:powerExtension.value[2].state=false
+            apruleItem.ezs ? powerExtension.value[3].state=true:powerExtension.value[3].state=false
+            apruleItem.wordanls ? powerExtension.value[4].state=true:powerExtension.value[4].state=false
+            apruleItem.dgistuid ? powerExtension.value[5].state=true:powerExtension.value[5].state=false
+            apruleItem.soksdata ? powerExtension.value[6].state=true:powerExtension.value[6].state=false
+            apruleItem.cloudas ? powerExtension.value[7].state=true:powerExtension.value[7].state=false
+            apruleItem.cligroup !==0 ? (powerExtension.value[8].state=true,powerExtension.value[8].value=apruleItem.cligroup):powerExtension.value[8].state=false
+            apruleItem.client_volume !==0 ? (powerExtension.value[9].state=true,powerExtension.value[9].value=apruleItem.client_volume):powerExtension.value[9].state=false
+            apruleItem.soknumber !==0 ? (powerExtension.value[10].state=true,powerExtension.value[10].value=apruleItem.soknumber):powerExtension.value[10].state=false
+            apruleItem.hasOwnProperty('irs') ? powerExtension.value[11].state=false:powerExtension.value[11].state=true
+            item.apruleArr=powerExtension.value
+        }
+        //处理时间
+        let startDates=new Date(item.startDate);let endDates=new Date(item.endDate)
+        let timeDifference = endDates.getTime() - startDates.getTime();
+        console.log(timeDifference)
+        let days = Math.floor(timeDifference / (24 * 60 * 60 ));
+        console.log(days,'天数')
+        item.intervalTime=days
+        item.startDateText=proxy.$common.timestampToTime(item.startDate)
+        item.endDateText=proxy.$common.timestampToTime(item.endDate)
+        powerList.value.push(item)  
+    })
+    console.log(powerList,'处理数据的结果')
     //空间图表
     gaugedata.value.series[0].data[0].value=usePercentum
     gaugedata.value.title[0].text=useGsize+'G'
@@ -562,7 +637,7 @@ onMounted(() => {
 .listbox-item{
     width:18%;
     line-height: 30px;
-    padding: 0% 2%;
+    padding: 1%;
     border-radius: 5px;
     margin:0% 4%;
 }
@@ -580,7 +655,7 @@ onMounted(() => {
 }
 .content-left,.content-right{
     margin-top:5px;
-    font-size:16px;
+    font-size:14px;
 }
 .content-left p,.content-right p{
     margin-bottom: 0px;
@@ -588,7 +663,7 @@ onMounted(() => {
 }
 .content-left span,.content-right span{
     color:#fff;
-    font-size:16px;
+    font-size:14px;
 }
 .HiTeach{
     background: linear-gradient(to top right, #7d82fe, #6fa5fe);
@@ -743,7 +818,7 @@ onMounted(() => {
 }
 .login-echart{
     width:100%;
-    height:15vh;
+    height:40vh;
     display: flex;
     align-items: center;
 }
@@ -775,24 +850,53 @@ onMounted(() => {
     padding: 1%;
     display: flex;
     flex-direction: column;
-    height: 18vh;
+    /* height: 18vh; */
     overflow: hidden;
     overflow-y: auto;
 }
 .rightsbox-item{
-    display: flex;
-    justify-content: space-between;
-    align-items: center;
+    text-align: left;
     border-bottom: 1px solid #ccc;
-}
-.rightsbox-item{
     font-size:14px;
+    padding: 1%;
+    line-height: 30px;
 }
-.rightsbox-item-name{
-    font-weight: bold;
+.rightsbox-item p{
+    margin-bottom: 5px;
+}
+.rightsbox-item-title{
+    width:100%;
+    font-size:16px;
+    font-weight: 700;
+    padding-left: 2px;
 }
 .rightsbox-item-time{
-    color:#3ca1cd;
+    width:100%;
+    font-size:14px;
+    padding-left: 8px;
+}
+.rightsbox-item-expansion{
+    width:100%;
+    font-size:14px;
+    padding-left: 8px;
+}
+.rightsbox-item-expansion div{
+    line-height: 20px;
+    padding-left: 4px;
+}
+.rightsbox-item-time span:nth-child(3){
+    margin-left:5px;
+}
+.expansion-title{
+    font-size:14px;
+    line-height: 20px;
+    font-weight: 700;
+}
+.rightsbox-item-time-num,.rightsbox-item-timenums,.start-title{
+    color:#409EFF;
+}
+.error-title{
+    color:#909399;
 }
 .scorebox{
     width: 23%;

+ 1 - 1
TEAMModelBI/ClientApp/src/view/userInquire/userdetail.vue

@@ -27,7 +27,7 @@
                         <span>2019-05-28</span>
                     </div>
                 </el-form-item>
-                <el-form-item label="国家/地区">
+                <el-form-item label="账户语系">
                     <div class="user-from-integral">
                         <div v-show="!userdata.countrystate">
                             <el-input v-model="userdata.country" disabled placeholder="Please input" />