|
@@ -1,8 +1,43 @@
|
|
|
<template>
|
|
|
- <div class="userdetails">
|
|
|
+ <div class="entirety">
|
|
|
+ <div class="groupdata" v-show="detailsData.length >1">
|
|
|
+ <span class="nowgroup-num">{{transferNum+1}}</span>/<span class="totalgroup-num">{{detailsData.length}}</span>
|
|
|
+ <div class="lastbtn" v-if="detailsData.length >1 && transferNum !==0" @click="lastUser()" title="上一个">
|
|
|
+ <div class="btn-ls">
|
|
|
+ <svg class="last-btns" aria-hidden="true">
|
|
|
+ <use xlink:href="#icon-icon-test"></use>
|
|
|
+ </svg>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="lastbtn" v-else title="上一个">
|
|
|
+ <div class="btn-ls">
|
|
|
+ <svg class="last-btns" aria-hidden="true">
|
|
|
+ <use xlink:href="#icon-icon-test-copy"></use>
|
|
|
+ </svg>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="nextbtn" v-if="detailsData.length >1 && transferNum+1 !==detailsData.length" @click="nextUser()" title="下一个">
|
|
|
+ <div class="btn-ls">
|
|
|
+ <svg class="last-btns" aria-hidden="true">
|
|
|
+ <use xlink:href="#icon-icon-test1"></use>
|
|
|
+ </svg>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="nextbtn" v-else title="下一个">
|
|
|
+ <div class="btn-ls">
|
|
|
+ <svg class="last-btns" aria-hidden="true">
|
|
|
+ <use xlink:href="#icon-icon-test1-copy"></use>
|
|
|
+ </svg>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="userdetails" v-loading="loading" element-loading-text="数据加载中...">
|
|
|
<div class="topbox">
|
|
|
<div class="img-name">
|
|
|
- <div class="topbox-images"><el-image src="https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg" fit="fill" /></div>
|
|
|
+ <div class="topbox-images">
|
|
|
+ <el-image :src="userPortrait" v-if="userPortrait"/>
|
|
|
+ <el-image :src="randomImage" fit="contain" v-else/>
|
|
|
+ </div>
|
|
|
<div class="topbox-name">
|
|
|
<div class="topbox-name-text">{{usernames}}</div>
|
|
|
<div class="topbox-name-advance" @click="userdetailState=true">查看账户进阶数据<el-icon><MoreFilled /></el-icon></div>
|
|
@@ -37,7 +72,7 @@
|
|
|
<p class="item-title">{{item.title}}</p>
|
|
|
<div class="item-content" v-show="item.state">
|
|
|
<div class="content-left">
|
|
|
- <span>上次登陆时间:{{item.value}}</span>
|
|
|
+ <span>上次登陆时间:{{item.valueText}}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="notenabled-title" v-show="!item.state">近期未使用</div>
|
|
@@ -47,7 +82,7 @@
|
|
|
<el-divider />
|
|
|
<!--账户进阶数据-->
|
|
|
<div class="user-details" v-if="userdetailState">
|
|
|
- <Userdetail @updateView='handleChildEvent '></Userdetail>
|
|
|
+ <Userdetail @updateView='handleChildEvent' :detailsData="pointsData"></Userdetail>
|
|
|
</div>
|
|
|
<!--账户进阶数据 end-->
|
|
|
<!--产品页面-->
|
|
@@ -61,7 +96,8 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<el-divider />
|
|
|
- <replaceHiTeach :detailsData="detailsIot"></replaceHiTeach>
|
|
|
+ <replaceHiTeach :detailsData="detailsIot" v-if="iotState"></replaceHiTeach>
|
|
|
+ <div v-else class="not-coupons">暂无数据</div>
|
|
|
</div>
|
|
|
<!-- <div class="hitadiv">
|
|
|
<div class="common-header-title">
|
|
@@ -92,8 +128,8 @@
|
|
|
<div class="equitystate" v-else>
|
|
|
<div class="rightsbox">
|
|
|
<div class="rightsbox-content">
|
|
|
- <el-carousel trigger="click" height="62vh" :autoplay="false">
|
|
|
- <el-carousel-item v-for="item in powerList" :key="item">
|
|
|
+ <!-- <el-carousel trigger="click" height="60vh" :autoplay="false">
|
|
|
+ <el-carousel-item v-for="item in powerList" :key="item" v-show="powerList.length >0">
|
|
|
<div class="rightsbox-item">
|
|
|
<div class="rightsbox-item-title">
|
|
|
<p>[ID授权] {{item.name}}</p>
|
|
@@ -107,17 +143,15 @@
|
|
|
</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>
|
|
|
+ <el-divider />
|
|
|
+ <div class="subjoin" v-show="item.prodCode ==='Z6ELB6EZ'">
|
|
|
<div class="subjoin-item" >
|
|
|
<p class="subjoin-title">{{subjoinData.hiteachTitle}}</p>
|
|
|
<div class="subjoin-content" v-for="item in subjoinData.hiteach" :key="item.key">
|
|
@@ -138,17 +172,120 @@
|
|
|
<span class="endtimes">(到期日:{{itemc.end}})</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ </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>
|
|
|
+ </el-carousel-item>
|
|
|
+ <el-carousel-item v-show="powerList.length ===0">
|
|
|
+ <div class="power-notdata">暂无权益内容</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 v-show="item.exps < notTime || item.end ===0">
|
|
|
+ <span class="expire">{{item.title}}</span>
|
|
|
+ <span class="ccnums expire" v-show="item.key==='webirs'">{{item.value}}</span>
|
|
|
+ <span class="endtimes-error">(到期日:{{item.end}})</span>
|
|
|
+ </div>
|
|
|
+ <div v-show="item.exps >= notTime">
|
|
|
+ <span>{{item.title}}</span>
|
|
|
+ <span class="ccnums" v-show="item.key==='webirs'">{{item.value}}</span>
|
|
|
+ <span class="endtimes" >(到期日:{{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 v-show="itemc.end < notTime || itemc.end ===0">
|
|
|
+ <span class="expire">{{itemc.title}}</span>
|
|
|
+ <span class="ccnums expire">{{itemc.num}}</span>
|
|
|
+ <span class="endtimes expire">(到期日:{{itemc.end}})</span>
|
|
|
+ </div>
|
|
|
+ <div v-show="itemc.end > notTime">
|
|
|
+ <span>{{itemc.title}}</span>
|
|
|
+ <span class="ccnums">{{itemc.num}}</span>
|
|
|
+ <span class="endtimes">(到期日:{{itemc.end}})</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <!--HiTeach 附加功能 end-->
|
|
|
+ </div>
|
|
|
+ </el-carousel-item>
|
|
|
+ </el-carousel> -->
|
|
|
+ <div class="prodlist">
|
|
|
+ <div v-if="powerList.length >0">
|
|
|
+ <div class="prodlist-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>
|
|
|
+ <p v-show="item.aprule.schoolinfo">
|
|
|
+ <span>学校:</span>
|
|
|
+ <span class="rightsbox-item-timenums">{{item.aprule.schoolinfo.name}}</span>
|
|
|
+ </p>
|
|
|
</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-->
|
|
|
</div>
|
|
|
- <!-- <div class="rightsbox-item-expansion" v-show="item.prodCode ==='IPALB6EY'">
|
|
|
+ <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>
|
|
|
+ <el-divider />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="power-notdata" v-else>暂无权益内容</div>
|
|
|
+ <!--HiTeach 附加功能-->
|
|
|
+ <div class="subjoin">
|
|
|
+ <div class="subjoin-item" >
|
|
|
+ <p class="subjoin-title">{{subjoinData.hiteachTitle}}</p>
|
|
|
+ <div v-if="subjoinData.hiteach.length >0">
|
|
|
+ <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="not-datas" v-else>暂无数据</div>
|
|
|
+ <el-divider />
|
|
|
+ </div>
|
|
|
+ <div class="subjoin-item" >
|
|
|
+ <p class="subjoin-title">{{subjoinData.hiteachCCTitle}}</p>
|
|
|
+ <div v-if="subjoinData.hiteachCC.length >0">
|
|
|
+ <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 class="not-datas" v-else>暂无数据</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!--HiTeach 附加功能 end-->
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -192,12 +329,12 @@
|
|
|
<!--产品页面end-->
|
|
|
<!--back-->
|
|
|
<div class="back-btns">
|
|
|
- <el-button type="info" :icon="ArrowLeft" size="small" @click="backClick">返回搜索</el-button>
|
|
|
+ <el-button type="primary" :icon="ArrowLeft" size="small" @click="backClick">返回搜索</el-button>
|
|
|
</div>
|
|
|
<!--back end-->
|
|
|
<!--所有登入时间dialog-->
|
|
|
<div class="login-total">
|
|
|
- <el-dialog v-model="loginDialog" title="所有登入情况" width="65%" :before-close="handleClose">
|
|
|
+ <el-dialog v-model="loginDialog" title="所有登入情况" width="70%" :before-close="handleClose">
|
|
|
<div class="logintotal-box">
|
|
|
<div class="logintotal-box-list">
|
|
|
<div :class="[item.state ? item.key:'notenabled-total','listbox-item-total']" v-for="item in productdata" :key="item.id">
|
|
@@ -205,7 +342,7 @@
|
|
|
<div class="item-content" v-show="item.state">
|
|
|
<div class="content-left">
|
|
|
<p>上次登陆时间</p>
|
|
|
- <span>{{item.value}}</span>
|
|
|
+ <span>{{item.valueText}}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="notenabled-title-total" v-show="!item.state">近期未使用</div>
|
|
@@ -216,7 +353,7 @@
|
|
|
<p class="logintotal-box-table-title">登入详细:</p>
|
|
|
<el-table :data="logintotalTable" style="width: 100%" height="35vh" border >
|
|
|
<el-table-column prop="product" label="平台" align="center"/>
|
|
|
- <el-table-column prop="time" label="时间" align="center"/>
|
|
|
+ <el-table-column prop="timeText" label="时间" align="center"/>
|
|
|
</el-table>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -229,9 +366,10 @@
|
|
|
</div>
|
|
|
<!--所有登入时间dialog end-->
|
|
|
</div>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
<script setup>
|
|
|
-import { ref, getCurrentInstance, watch, h, nextTick,onMounted,defineProps,defineEmits } from 'vue'
|
|
|
+import { ref, getCurrentInstance, watch, h, nextTick,onMounted,defineProps,defineEmits,computed } from 'vue'
|
|
|
import { Iphone,More,MoreFilled,ArrowLeft,Right } from '@element-plus/icons'
|
|
|
import commonHeatmapVue from '../../components/echarts/commonHeatmap.vue'
|
|
|
import commonGaugeVue from '../../components/echarts/commonGauge.vue'
|
|
@@ -246,7 +384,7 @@ import replaceHiTeach from './iot.vue'
|
|
|
let props = defineProps({
|
|
|
searchdata: Object,
|
|
|
})
|
|
|
-let { proxy } = getCurrentInstance()
|
|
|
+let {ctx:that,proxy } = getCurrentInstance()
|
|
|
let activeName = ref('basics')
|
|
|
let userdetailState=ref(false)
|
|
|
let tabPosition = ref('left')
|
|
@@ -261,13 +399,13 @@ let userdata = ref([
|
|
|
{ id: 6, icon: '#icon-shijian2', value: '0', title: '', key: 'time', check: false ,hint:'上次登录时间' },
|
|
|
])
|
|
|
let productdata = ref([
|
|
|
- { id: 1, title: 'HiTeach', value:0,key:'HiTeach',state: false },
|
|
|
- { id: 2, title: 'HiTA',value:0, key:'HiTA',state: false },
|
|
|
- { id: 3, title: 'IES', value:0,key:'IES', state: false },
|
|
|
- { id: 4, title: '苏格拉底', value:0,key:'Socrates', state: false },
|
|
|
- { id: 5, title: 'HiTeach CC', value:0,key:'cc', state: false },
|
|
|
- { id: 6, title: '通用账号', value:0,key:'general', state: false },
|
|
|
- { id: 7, title: 'IRS', value:0,key:'irs', state: false },
|
|
|
+ { id: 1, title: 'HiTeach', value:0,valueText:'',key:'HiTeach',state: false },
|
|
|
+ { id: 2, title: 'HiTA',value:0,valueText:'',key:'HiTA',state: false },
|
|
|
+ { id: 3, title: 'IES', value:0,valueText:'',key:'IES5', state: false },
|
|
|
+ { id: 4, title: '苏格拉底', value:0,valueText:'',key:'Sokrates', state: false },
|
|
|
+ { id: 5, title: '觀議課 APP', value:0,valueText:'',key:'SokAPP', state: false },
|
|
|
+ { id: 6, title: '通用账号', value:0,valueText:'',key:'Account ', state: false },
|
|
|
+ { id: 7, title: 'WebIRS5', value:0,valueText:'',key:'IRS', state: false },
|
|
|
])
|
|
|
let tableData = ref([
|
|
|
{ time: '2023-07-05 15:33', ip: '222.209.14.199', location: '四川省成都市',platform:'HiTeach' },
|
|
@@ -532,23 +670,27 @@ let rightsdata=ref([
|
|
|
])
|
|
|
let detailsData = ref()
|
|
|
detailsData.value = props.searchdata?.length > 0 ? props.searchdata : ''
|
|
|
-let ies5datas=detailsData.value[0].ies5
|
|
|
-let sokratesData=detailsData.value[0].sokrates
|
|
|
-let pointsData=detailsData.value[0]
|
|
|
+let transferNum=ref(0) //*滚动的数值*
|
|
|
+let ies5datas=ref(detailsData.value[transferNum.value].ies5)
|
|
|
+let sokratesData=ref(detailsData.value[transferNum.value].sokrates)
|
|
|
+let pointsData=ref(detailsData.value[transferNum.value])
|
|
|
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:'蘇格拉底桌面',key:'sokdesk',state:false},
|
|
|
+ {title:'蘇格拉底報告',key:'sokrpt',state:false},
|
|
|
+ {title:'蘇格拉底小數據',key:'soksdata',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:'智慧評分系統',key:'scorsys',state:false},
|
|
|
{title:'IRS硬體遙控器',key:'irs',state:true},
|
|
|
])
|
|
|
let subjoinData=ref({
|
|
@@ -576,6 +718,25 @@ let buttonSelect = ref([
|
|
|
])
|
|
|
let loginDialog=ref(false)
|
|
|
let logintotalTable=ref([])
|
|
|
+let iotState=ref(true)
|
|
|
+let advancevalue=ref({
|
|
|
+ last:'',
|
|
|
+ next:''
|
|
|
+})
|
|
|
+let loading=ref(false)
|
|
|
+let headeronly=ref(require('@/assets/img/default1.png'))
|
|
|
+let headerData=ref([
|
|
|
+ require('@/assets/img/default1.png'),
|
|
|
+ require('@/assets/img/default2.png'),
|
|
|
+ require('@/assets/img/default3.png'),
|
|
|
+ require('@/assets/img/default4.png'),
|
|
|
+ ])
|
|
|
+let userPortrait=ref() //用户头像
|
|
|
+const randomImage = computed(()=>{
|
|
|
+ const randomIndex = Math.floor(Math.random() * headerData.value.length);
|
|
|
+ console.log(randomIndex,'随机头像')
|
|
|
+ return headerData.value[randomIndex];
|
|
|
+})
|
|
|
const handleChildEvent = (payload) => {
|
|
|
userdetailState.value=false
|
|
|
}
|
|
@@ -585,10 +746,12 @@ const backClick = () => {
|
|
|
emits('parentClick','default') // 使用方式和 vue2 this.$emit 一样
|
|
|
}
|
|
|
function initdata() {
|
|
|
- let transmitData = detailsData.value[0]
|
|
|
- console.log(transmitData,'数据')
|
|
|
+ console.log(detailsData.value,'进入方法查看')
|
|
|
+ let transmitData = detailsData.value[transferNum.value]
|
|
|
+ console.log(transmitData,'数据details')
|
|
|
//header 基础信息
|
|
|
- let { name,id,mobile, mail, schoolCode, schoolCodeW, points,country,province,city,} = transmitData
|
|
|
+ let { name,id,mobile, mail, schoolCode, schoolCodeW, points,country,province,city,picture} = transmitData
|
|
|
+ userPortrait.value=picture
|
|
|
usernames.value=name
|
|
|
userdata.value[0].value = id
|
|
|
userdata.value[1].value = mobile
|
|
@@ -599,16 +762,27 @@ function initdata() {
|
|
|
//产品使用及安装情况 登入时间
|
|
|
let {login}=transmitData
|
|
|
let logintimes = login.length >0 ? login.sort(function(a,b){return b.time-a.time}):'无'
|
|
|
+ console.log(logintimes,'时间!')
|
|
|
logintimes !=='无' ? userdata.value[5].value=proxy.$common.timestampToTime(logintimes[0].time,'all'):userdata.value[5].value='暂无'
|
|
|
+ productdata.value.forEach((itema)=>{itema.value =0})
|
|
|
if(login.length >0){
|
|
|
+ console.log('进入到多数组')
|
|
|
+ logintotalTable.value=[]
|
|
|
login.forEach(item => {
|
|
|
let typename=item.product
|
|
|
productdata.value.forEach(items=>{
|
|
|
- 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):'':''
|
|
|
+ typename === items.key ?
|
|
|
+ items.value === 0 ? (items.valueText=proxy.$common.timestampToTime(item.time,'all'),items.value=item.time,items.state=true):
|
|
|
+ item.time > items.value ? (items.valueText=proxy.$common.timestampToTime(item.time,'all'),items.value=item.time,items.state=true):'':''
|
|
|
})
|
|
|
- item.time=proxy.$common.timestampToTime(item.time,'all')
|
|
|
+ item.timeText=proxy.$common.timestampToTime(item.time,'all')
|
|
|
logintotalTable.value.push(item)
|
|
|
})
|
|
|
+ }else{
|
|
|
+ logintotalTable.value=[]
|
|
|
+ productdata.value.forEach((item)=>{
|
|
|
+ item.state=false
|
|
|
+ })
|
|
|
}
|
|
|
//空间与权益
|
|
|
let {usedSize,teachSize,totalSize,surplusSize}=transmitData.ies5
|
|
@@ -623,18 +797,21 @@ function initdata() {
|
|
|
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
|
|
|
+ apruleItem.hdcam ? powerExtension.value[0].state=true:powerExtension.value[0].state=false //USB錄影支援
|
|
|
+ apruleItem.sokapp ? powerExtension.value[1].state=true:powerExtension.value[1].state=false //蘇格拉底議課APP
|
|
|
+ apruleItem.sokvdo ? powerExtension.value[2].state=true:powerExtension.value[2].state=false //蘇格拉底影片
|
|
|
+ apruleItem.sokdesk ? powerExtension.value[3].state=true:powerExtension.value[3].state=false //蘇格拉底桌面
|
|
|
+ apruleItem.sokrpt ? powerExtension.value[4].state=true:powerExtension.value[4].state=false //蘇格拉底報告
|
|
|
+ apruleItem.soksdata ? powerExtension.value[5].state=true:powerExtension.value[5].state=false //蘇格拉底小數據
|
|
|
+ apruleItem.ezs ? powerExtension.value[6].state=true:powerExtension.value[6].state=false //AI智能終端
|
|
|
+ apruleItem.wordanls ? powerExtension.value[7].state=true:powerExtension.value[7].state=false //AI文句分析
|
|
|
+ apruleItem.dgistuid ? powerExtension.value[8].state=true:powerExtension.value[8].state=false //電子學生證
|
|
|
+ apruleItem.cloudas ? powerExtension.value[9].state=true:powerExtension.value[9].state=false //雲端診斷分析系統
|
|
|
+ apruleItem.cligroup !==0 ? (powerExtension.value[10].state=true,powerExtension.value[10].value=apruleItem.cligroup):powerExtension.value[10].state=false //分組數
|
|
|
+ apruleItem.client_volume !==0 ? (powerExtension.value[11].state=true,powerExtension.value[11].value=apruleItem.client_volume):powerExtension.value[11].state=false //IRS連線授權數
|
|
|
+ apruleItem.soknumber !==0 ? (powerExtension.value[12].state=true,powerExtension.value[10].value=apruleItem.soknumber):powerExtension.value[12].state=false //議課人數
|
|
|
+ apruleItem.scorsys ? (powerExtension.value[13].state=true,powerExtension.value[13].value=apruleItem.soknumber):powerExtension.value[13].state=false //智慧評分系統
|
|
|
+ apruleItem.hasOwnProperty('irs') ? powerExtension.value[14].state=false:powerExtension.value[14].state=true //IRS硬體遙控器
|
|
|
item.apruleArr=powerExtension.value
|
|
|
}
|
|
|
//处理时间
|
|
@@ -644,12 +821,14 @@ function initdata() {
|
|
|
let days = Math.floor(timeDifference / (24 * 60 * 60 ));
|
|
|
console.log(days,'天数')
|
|
|
item.intervalTime=days
|
|
|
- item.startDateText=item.startDateText ? proxy.$common.timestampToTime(item.startDate):0
|
|
|
- item.endDateText= item.endDateText? proxy.$common.timestampToTime(item.endDate):0
|
|
|
+ item.startDateText=item.startDate ? proxy.$common.timestampToTime(item.startDate):0
|
|
|
+ item.endDateText= item.endDate? proxy.$common.timestampToTime(item.endDate):0
|
|
|
powerList.value.push(item)
|
|
|
})
|
|
|
+ console.log(powerList.value,'权益内容')
|
|
|
//处理权益内 附加功能(HITeach附加 CC权限)
|
|
|
let hiteachData=benefits.hiteach !==null ?benefits.hiteach:[] ; let ccData=benefits.hiteachcc !==null ?benefits.hiteachcc:[]
|
|
|
+ console.log(hiteachData,ccData)
|
|
|
if(hiteachData.length >0){
|
|
|
hiteachData.forEach((item)=>{
|
|
|
let funcKey=item.func;let startTime=proxy.$common.timestampToTime(item.get);let endTime=proxy.$common.timestampToTime(item.exp)
|
|
@@ -657,6 +836,7 @@ function initdata() {
|
|
|
funcKey === items.key ? (items.start=startTime,items.end=endTime,items.value=item.para,items.gets=item.get,items.exps=item.exp):''
|
|
|
})
|
|
|
})
|
|
|
+ console.log(subjoinData.value)
|
|
|
}
|
|
|
if(ccData.length >0 ){
|
|
|
ccData.forEach((itemA)=>{
|
|
@@ -683,40 +863,98 @@ function initdata() {
|
|
|
gaugedata.value.series[0].data[0].value=transitionUsed !==0 ? Math.round((transitionUsed/transitionTotal).toFixed(2)*100):0
|
|
|
gaugedata.value.title[0].text=useGsize+' G'
|
|
|
console.log(transitionUsed,transitionSuplus,transitionTeach,transitionTotal,'结果')
|
|
|
+
|
|
|
+ //处理上下一个
|
|
|
+ advancevalue.value.next=detailsData.value[transferNum.value+1]
|
|
|
+ loading.value=false
|
|
|
}
|
|
|
function bytesToGB(bytes) {
|
|
|
const gb = bytes / (1024 * 1024 * 1024);
|
|
|
return gb.toFixed(2); // 将结果保留两位小数
|
|
|
}
|
|
|
function init(){
|
|
|
+ loading.value=true
|
|
|
+ console.log(detailsData.value,transferNum.value,'查看IOT')
|
|
|
//处理关于iot问题
|
|
|
- detailsData.value[0].iot.hiteach.day ?
|
|
|
- (buttonSelect.value[0].click=true,detailsIot.value=detailsData.value[0].iot.hiteach.day):
|
|
|
- detailsData.value[0].iot.hiteach.month ?
|
|
|
- (buttonSelect.value[1].click=true,detailsIot.value=detailsData.value[0].iot.hiteach.month):
|
|
|
- detailsData.value[0].iot.hiteach.year ?
|
|
|
- (buttonSelect.value[2].click=true,detailsIot.value=detailsData.value[0].iot.hiteach.year):''
|
|
|
+ detailsData.value[transferNum.value].iot.hiteach.day !==null ?
|
|
|
+ (buttonSelect.value[0].click=true,detailsIot.value=detailsData.value[transferNum.value].iot.hiteach.day,iotState.value=true):
|
|
|
+ detailsData.value[transferNum.value].iot.hiteach.month !==null ?
|
|
|
+ (buttonSelect.value[1].click=true,detailsIot.value=detailsData.value[transferNum.value].iot.hiteach.month,iotState.value=true):
|
|
|
+ detailsData.value[transferNum.value].iot.hiteach.year !==null ?
|
|
|
+ (buttonSelect.value[2].click=true,detailsIot.value=detailsData.value[transferNum.value].iot.hiteach.year,iotState.value=true):iotState.value=false
|
|
|
|
|
|
//BTN显示问题
|
|
|
- detailsData.value[0].iot.hiteach.day ? buttonSelect.value[0].disabled=false:buttonSelect.value[0].disabled=true
|
|
|
- detailsData.value[0].iot.hiteach.month ? buttonSelect.value[1].disabled=false:buttonSelect.value[1].disabled=true
|
|
|
- detailsData.value[0].iot.hiteach.year ? buttonSelect.value[2].disabled=false:buttonSelect.value[2].disabled=true
|
|
|
+ console.log(detailsData.value,'按钮问题')
|
|
|
+ detailsData.value[transferNum.value].iot.hiteach.day ? (buttonSelect.value[0].disabled=false):(buttonSelect.value[0].disabled=true,buttonSelect.value[0].click=false)
|
|
|
+ detailsData.value[transferNum.value].iot.hiteach.month ? (buttonSelect.value[1].disabled=false):(buttonSelect.value[1].disabled=true,buttonSelect.value[1].click=false)
|
|
|
+ detailsData.value[transferNum.value].iot.hiteach.year ? (buttonSelect.value[2].disabled=false):(buttonSelect.value[2].disabled=true,buttonSelect.value[2].click=false)
|
|
|
}
|
|
|
function selectTime(value){
|
|
|
console.log(value,'值')
|
|
|
value =='day' ?
|
|
|
- (buttonSelect.value[0].click=true,buttonSelect.value[1].click=false,buttonSelect.value[2].click=false,detailsIot.value=detailsData.value[0].iot.hiteach.day):
|
|
|
+ (buttonSelect.value[0].click=true,buttonSelect.value[1].click=false,buttonSelect.value[2].click=false,detailsIot.value=detailsData.value[transferNum.value].iot.hiteach.day):
|
|
|
value =='month' ?
|
|
|
- (buttonSelect.value[1].click=true,buttonSelect.value[0].click=false,buttonSelect.value[2].click=false,detailsIot.value=detailsData.value[0].iot.hiteach.month):
|
|
|
+ (buttonSelect.value[1].click=true,buttonSelect.value[0].click=false,buttonSelect.value[2].click=false,detailsIot.value=detailsData.value[transferNum.value].iot.hiteach.month):
|
|
|
value =='year' ?
|
|
|
- (buttonSelect.value[2].click=true,buttonSelect.value[0].click=false,buttonSelect.value[1].click=false,detailsIot.value=detailsData.value[0].iot.hiteach.year):''
|
|
|
+ (buttonSelect.value[2].click=true,buttonSelect.value[0].click=false,buttonSelect.value[1].click=false,detailsIot.value=detailsData.value[transferNum.value].iot.hiteach.year):''
|
|
|
|
|
|
console.log(detailsIot.value,'值')
|
|
|
}
|
|
|
+//切换用户 需要执行的内容
|
|
|
+function cutUser(){
|
|
|
+ loading.value=true
|
|
|
+ console.log(detailsData,'数据组')
|
|
|
+ ies5datas.value=detailsData.value[transferNum.value].ies5
|
|
|
+ sokratesData.value=detailsData.value[transferNum.value].sokrates
|
|
|
+ pointsData.value=detailsData.value[transferNum.value]
|
|
|
+ powerList.value=[]
|
|
|
+ initdata()
|
|
|
+ init()
|
|
|
+ setTimeout(()=>{loading.value=false},800)
|
|
|
+ that.$forceUpdate()
|
|
|
+ // let nowNums=transferNum.value
|
|
|
+ // if(nowNums+1 === detailsData.value.length){
|
|
|
+ // advancevalue.value.next={}
|
|
|
+ // advancevalue.value.last=detailsData.value[nowNums-1]
|
|
|
+ // }else if(nowNums.value !==0 && nowNums.value+1 !== detailsData.value.length){
|
|
|
+ // advancevalue.value.next=detailsData.value[nowNums+1]
|
|
|
+ // advancevalue.value.last=detailsData.value[nowNums-1]
|
|
|
+ // }else if(nowNums.value ===0){
|
|
|
+ // advancevalue.value.next=detailsData.value[nowNums+1]
|
|
|
+ // }
|
|
|
+}
|
|
|
+//下一个用户
|
|
|
+function nextUser(){
|
|
|
+ console.log(transferNum,'值')
|
|
|
+ transferNum.value=Number(transferNum.value)+1
|
|
|
+ if(transferNum.value === detailsData.value.length){}
|
|
|
+}
|
|
|
+//上一个用户
|
|
|
+function lastUser(){
|
|
|
+ if(transferNum.value !==0){
|
|
|
+ transferNum.value=Number(transferNum.value)-1
|
|
|
+ console.log(transferNum.value,'页数')
|
|
|
+ ies5datas.value=detailsData.value[transferNum.value].ies5
|
|
|
+ sokratesData.value=detailsData.value[transferNum.value].sokrates
|
|
|
+ pointsData.value=detailsData.value[transferNum.value]
|
|
|
+ }
|
|
|
+}
|
|
|
onMounted(() => {
|
|
|
initdata()
|
|
|
})
|
|
|
init()
|
|
|
+watch(()=>transferNum.value,(newnum)=>{
|
|
|
+ console.log(newnum,'变化的数字')
|
|
|
+ // nextTick(() => {
|
|
|
+ cutUser()
|
|
|
+ // })
|
|
|
+})
|
|
|
+// watch(() => props.detailsData, (newValue) => {
|
|
|
+// // propValue.value = newValue;
|
|
|
+// let datas={detailsData:newValue}
|
|
|
+// init(datas)
|
|
|
+// console.log(datas,'有数据进来')
|
|
|
+// });
|
|
|
</script>
|
|
|
<style>
|
|
|
.userdetails{
|
|
@@ -841,18 +1079,29 @@ init()
|
|
|
color:#fff;
|
|
|
font-size:14px;
|
|
|
}
|
|
|
+
|
|
|
.HiTeach{
|
|
|
- background: linear-gradient(to top right, #7d82fe, #6fa5fe);
|
|
|
+ background: linear-gradient(to top right, #0093E9, #80D0C7);
|
|
|
}
|
|
|
.HiTA{
|
|
|
background: linear-gradient(to top right, #ff6e72, #ff7390);
|
|
|
}
|
|
|
-.IES{
|
|
|
- background: linear-gradient(to top right, #ff8f64, #ffaa64);
|
|
|
+.IES5{
|
|
|
+ background: linear-gradient(to top right, #FBAB7E, #F7CE68);
|
|
|
}
|
|
|
-.Socrates{
|
|
|
+.Sokrates{
|
|
|
background: linear-gradient(to top right, #a55bfb, #bc5dfe);
|
|
|
}
|
|
|
+.SokAPP{
|
|
|
+ background: linear-gradient(to top right, #08AEEA, #2AF598);
|
|
|
+}
|
|
|
+.IRS{
|
|
|
+ background: linear-gradient(to top right, #FBDA61, #FF5ACD);
|
|
|
+}
|
|
|
+.Account{
|
|
|
+ background: linear-gradient(to top right, #FAACA8, #DDD6F3);
|
|
|
+}
|
|
|
+
|
|
|
.notenabled{
|
|
|
background-color: #dcdaef;
|
|
|
}
|
|
@@ -1003,7 +1252,7 @@ init()
|
|
|
}
|
|
|
.login-echart{
|
|
|
width:100%;
|
|
|
- height:40vh;
|
|
|
+ height:54vh;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
}
|
|
@@ -1067,6 +1316,7 @@ init()
|
|
|
.rightsbox-item-expansion div{
|
|
|
line-height: 18px;
|
|
|
padding-left: 4px;
|
|
|
+ margin-bottom: 3px;
|
|
|
}
|
|
|
.subjoin-item{
|
|
|
margin-top:5px;
|
|
@@ -1089,7 +1339,7 @@ init()
|
|
|
color:#909399;
|
|
|
}
|
|
|
.subjoin{
|
|
|
- height:20vh;
|
|
|
+ height:25vh;
|
|
|
line-height: 20px;
|
|
|
color:#73767a;
|
|
|
overflow: hidden;
|
|
@@ -1164,7 +1414,7 @@ init()
|
|
|
}
|
|
|
.logintotal-box-list{
|
|
|
display: flex;
|
|
|
- flex-wrap: wrap;
|
|
|
+ flex-wrap: nowrap;
|
|
|
overflow: hidden;
|
|
|
overflow-x: auto;
|
|
|
}
|
|
@@ -1178,6 +1428,127 @@ init()
|
|
|
margin-bottom: 5px;
|
|
|
color:#606266;
|
|
|
}
|
|
|
+.not-coupons{
|
|
|
+ display: flex;
|
|
|
+ height:90%;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ font-size:22px;
|
|
|
+ font-weight: 700;
|
|
|
+ color: #73767a;
|
|
|
+ /* line-height: 160px; */
|
|
|
+}
|
|
|
+.power-notdata{
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ font-size:22px;
|
|
|
+ font-weight: 700;
|
|
|
+ color: #73767a;
|
|
|
+ height: 30vh;
|
|
|
+}
|
|
|
+.expire{
|
|
|
+ color: #b1b3b8;
|
|
|
+}
|
|
|
+.groupdata{
|
|
|
+ line-height: 16px;
|
|
|
+ text-align: right;
|
|
|
+ font-size:14px;
|
|
|
+ color:#909399;
|
|
|
+ display: flex;
|
|
|
+ justify-content: right;
|
|
|
+ align-items: center;
|
|
|
+}
|
|
|
+.nowgroup-num,.totalgroup-num{
|
|
|
+ color:#409EFF;
|
|
|
+ margin:0px 3px;
|
|
|
+}
|
|
|
+
|
|
|
+.lastbtn {
|
|
|
+ width: 30px;
|
|
|
+ height: auto;
|
|
|
+ line-height: 20px;
|
|
|
+ /* position: absolute;
|
|
|
+ left: 0%;
|
|
|
+ top: 45%; */
|
|
|
+ opacity: 1;
|
|
|
+ display: flex;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ border-radius: 5px;
|
|
|
+ font-size: 14px;
|
|
|
+ padding: 5px;
|
|
|
+}
|
|
|
+.nextbtn {
|
|
|
+ width: 30px;
|
|
|
+ height: auto;
|
|
|
+ line-height: 20px;
|
|
|
+ /* position: absolute;
|
|
|
+ right: 0%;
|
|
|
+ top: 43%; */
|
|
|
+ opacity: 1;
|
|
|
+ display: flex;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ border-radius: 5px;
|
|
|
+ font-size: 14px;
|
|
|
+ padding: 5px;
|
|
|
+}
|
|
|
+.lastbtn:hover,
|
|
|
+.nextbtn:hover {
|
|
|
+ background-color: #dfe6e9;
|
|
|
+ opacity: 1;
|
|
|
+ box-shadow: rgba(6, 24, 44, 0.1) 0px 0px 0px 2px,
|
|
|
+ rgba(6, 24, 44, 0.1) 0px 4px 6px -1px,
|
|
|
+ rgba(255, 255, 255, 0.08) 0px 1px 0px inset;
|
|
|
+ cursor: pointer;
|
|
|
+}
|
|
|
+.lastbtn:hover .btn-ls-text,
|
|
|
+.nextbtn:hover .btn-ls-text {
|
|
|
+ opacity: 0.8;
|
|
|
+}
|
|
|
+.btn-ls-text {
|
|
|
+ margin-top: 3px;
|
|
|
+ color: #303a5d;
|
|
|
+ opacity: 0;
|
|
|
+}
|
|
|
+.last-btns {
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ vertical-align: -0.2em;
|
|
|
+ fill: currentColor;
|
|
|
+}
|
|
|
+.btn-ls-text p {
|
|
|
+ margin-bottom: 5px;
|
|
|
+}
|
|
|
+.next-school {
|
|
|
+ font-size: 12px;
|
|
|
+ color: #303a5d;
|
|
|
+ font-weight: bold;
|
|
|
+}
|
|
|
+.next-title {
|
|
|
+ font-size: 8px;
|
|
|
+ color: #34495e;
|
|
|
+}
|
|
|
+.entirety{
|
|
|
+ position: relative;
|
|
|
+}
|
|
|
+.prodlist{
|
|
|
+ height:60vh;
|
|
|
+ overflow: hidden;
|
|
|
+ overflow-y: auto;
|
|
|
+}
|
|
|
+.not-datas{
|
|
|
+ font-size:16px;
|
|
|
+ font-weight: 700;
|
|
|
+ color: #73767a;
|
|
|
+ line-height: 40px;
|
|
|
+}
|
|
|
+.login-total{
|
|
|
+ line-height: 40px;
|
|
|
+}
|
|
|
</style>
|
|
|
<style>
|
|
|
.inquirebox-details .el-divider{
|
|
@@ -1192,4 +1563,7 @@ init()
|
|
|
.login-total .el-overlay .el-dialog__header{
|
|
|
padding:5px !important;
|
|
|
}
|
|
|
+.recordbox-item .el-tag{
|
|
|
+ cursor: pointer;
|
|
|
+}
|
|
|
</style>
|