|
@@ -1,8 +1,11 @@
|
|
<template>
|
|
<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>
|
|
|
|
+ <div class="userdetails" v-loading="loading" element-loading-text="数据加载中...">
|
|
<div class="topbox">
|
|
<div class="topbox">
|
|
<div class="img-name">
|
|
<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="randomImage" fit="contain" /></div>
|
|
<div class="topbox-name">
|
|
<div class="topbox-name">
|
|
<div class="topbox-name-text">{{usernames}}</div>
|
|
<div class="topbox-name-text">{{usernames}}</div>
|
|
<div class="topbox-name-advance" @click="userdetailState=true">查看账户进阶数据<el-icon><MoreFilled /></el-icon></div>
|
|
<div class="topbox-name-advance" @click="userdetailState=true">查看账户进阶数据<el-icon><MoreFilled /></el-icon></div>
|
|
@@ -61,7 +64,8 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<el-divider />
|
|
<el-divider />
|
|
- <replaceHiTeach :detailsData="detailsIot"></replaceHiTeach>
|
|
|
|
|
|
+ <replaceHiTeach :detailsData="detailsIot" v-if="iotState"></replaceHiTeach>
|
|
|
|
+ <div v-else class="not-coupons">暂无数据</div>
|
|
</div>
|
|
</div>
|
|
<!-- <div class="hitadiv">
|
|
<!-- <div class="hitadiv">
|
|
<div class="common-header-title">
|
|
<div class="common-header-title">
|
|
@@ -92,8 +96,8 @@
|
|
<div class="equitystate" v-else>
|
|
<div class="equitystate" v-else>
|
|
<div class="rightsbox">
|
|
<div class="rightsbox">
|
|
<div class="rightsbox-content">
|
|
<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">
|
|
<div class="rightsbox-item-title">
|
|
<div class="rightsbox-item-title">
|
|
<p>[ID授权] {{item.name}}</p>
|
|
<p>[ID授权] {{item.name}}</p>
|
|
@@ -107,17 +111,15 @@
|
|
</div>
|
|
</div>
|
|
<div class="rightsbox-item-expansion" v-show="item.prodCode ==='Z6ELB6EZ'">
|
|
<div class="rightsbox-item-expansion" v-show="item.prodCode ==='Z6ELB6EZ'">
|
|
<p class="expansion-title">产品扩充项</p>
|
|
<p class="expansion-title">产品扩充项</p>
|
|
- <!--产品扩充-->
|
|
|
|
<div v-for="iteml in item.apruleArr" :key="iteml.key">
|
|
<div v-for="iteml in item.apruleArr" :key="iteml.key">
|
|
-<span :class="[iteml.state ? 'start-title':'error-title' ]">
|
|
-<span :class="[iteml.state ? 'start-title':'error-title' ]">
|
|
{{iteml.title}}
|
|
{{iteml.title}}
|
|
<span v-show="iteml.key ==='cligroup' || iteml.key ==='client_volume' || iteml.key ==='soknumber'">({{iteml.value}})</span>
|
|
<span v-show="iteml.key ==='cligroup' || iteml.key ==='client_volume' || iteml.key ==='soknumber'">({{iteml.value}})</span>
|
|
</span>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
- <!--产品扩充 end-->
|
|
|
|
- <!--HiTeach 附加功能-->
|
|
|
|
- <el-divider />
|
|
|
|
- <div class="subjoin">
|
|
|
|
|
|
+ </div>
|
|
|
|
+ <el-divider />
|
|
|
|
+ <div class="subjoin" v-show="item.prodCode ==='Z6ELB6EZ'">
|
|
<div class="subjoin-item" >
|
|
<div class="subjoin-item" >
|
|
<p class="subjoin-title">{{subjoinData.hiteachTitle}}</p>
|
|
<p class="subjoin-title">{{subjoinData.hiteachTitle}}</p>
|
|
<div class="subjoin-content" v-for="item in subjoinData.hiteach" :key="item.key">
|
|
<div class="subjoin-content" v-for="item in subjoinData.hiteach" :key="item.key">
|
|
@@ -138,17 +140,116 @@
|
|
<span class="endtimes">(到期日:{{itemc.end}})</span>
|
|
<span class="endtimes">(到期日:{{itemc.end}})</span>
|
|
</div>
|
|
</div>
|
|
</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>
|
|
</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>
|
|
|
|
+ <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>
|
|
- <!-- <div class="rightsbox-item-expansion" v-show="item.prodCode ==='IPALB6EY'">
|
|
|
|
|
|
+ <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'">
|
|
<p class="expansion-title">产品详细</p>
|
|
<p class="expansion-title">产品详细</p>
|
|
<div><span>空间大小:</span> <span class="expansion-sizenum">{{item.number}} GB</span></div>
|
|
<div><span>空间大小:</span> <span class="expansion-sizenum">{{item.number}} GB</span></div>
|
|
- </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>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -197,7 +298,7 @@
|
|
<!--back end-->
|
|
<!--back end-->
|
|
<!--所有登入时间dialog-->
|
|
<!--所有登入时间dialog-->
|
|
<div class="login-total">
|
|
<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">
|
|
<div class="logintotal-box-list">
|
|
<div class="logintotal-box-list">
|
|
<div :class="[item.state ? item.key:'notenabled-total','listbox-item-total']" v-for="item in productdata" :key="item.id">
|
|
<div :class="[item.state ? item.key:'notenabled-total','listbox-item-total']" v-for="item in productdata" :key="item.id">
|
|
@@ -216,7 +317,7 @@
|
|
<p class="logintotal-box-table-title">登入详细:</p>
|
|
<p class="logintotal-box-table-title">登入详细:</p>
|
|
<el-table :data="logintotalTable" style="width: 100%" height="35vh" border >
|
|
<el-table :data="logintotalTable" style="width: 100%" height="35vh" border >
|
|
<el-table-column prop="product" label="平台" align="center"/>
|
|
<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>
|
|
</el-table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -229,9 +330,32 @@
|
|
</div>
|
|
</div>
|
|
<!--所有登入时间dialog end-->
|
|
<!--所有登入时间dialog end-->
|
|
</div>
|
|
</div>
|
|
|
|
+ <div class="lastbtn" v-show="detailsData.length >1 && transferNum !==0" @click="lastUser()">
|
|
|
|
+ <div class="btn-ls">
|
|
|
|
+ <svg class="last-btns" aria-hidden="true">
|
|
|
|
+ <use xlink:href="#icon-icon-test"></use>
|
|
|
|
+ </svg>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="btn-ls-text">
|
|
|
|
+ <!-- <p class="next-school">{{advancevalue.last.name}}</p> -->
|
|
|
|
+ <p class="next-title">上一个</p>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="nextbtn" v-show="detailsData.length >1 && transferNum+1 !==detailsData.length" @click="nextUser()">
|
|
|
|
+ <div class="btn-ls">
|
|
|
|
+ <svg class="last-btns" aria-hidden="true">
|
|
|
|
+ <use xlink:href="#icon-icon-test1"></use>
|
|
|
|
+ </svg>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="btn-ls-text">
|
|
|
|
+ <!-- <p class="next-school">{{advancevalue.next.name}}</p> -->
|
|
|
|
+ <p class="next-title">下一个</p>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
</template>
|
|
</template>
|
|
<script setup>
|
|
<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 { Iphone,More,MoreFilled,ArrowLeft,Right } from '@element-plus/icons'
|
|
import commonHeatmapVue from '../../components/echarts/commonHeatmap.vue'
|
|
import commonHeatmapVue from '../../components/echarts/commonHeatmap.vue'
|
|
import commonGaugeVue from '../../components/echarts/commonGauge.vue'
|
|
import commonGaugeVue from '../../components/echarts/commonGauge.vue'
|
|
@@ -246,7 +370,7 @@ import replaceHiTeach from './iot.vue'
|
|
let props = defineProps({
|
|
let props = defineProps({
|
|
searchdata: Object,
|
|
searchdata: Object,
|
|
})
|
|
})
|
|
-let { proxy } = getCurrentInstance()
|
|
|
|
|
|
+let {ctx:that,proxy } = getCurrentInstance()
|
|
let activeName = ref('basics')
|
|
let activeName = ref('basics')
|
|
let userdetailState=ref(false)
|
|
let userdetailState=ref(false)
|
|
let tabPosition = ref('left')
|
|
let tabPosition = ref('left')
|
|
@@ -263,11 +387,11 @@ let userdata = ref([
|
|
let productdata = ref([
|
|
let productdata = ref([
|
|
{ id: 1, title: 'HiTeach', value:0,key:'HiTeach',state: false },
|
|
{ id: 1, title: 'HiTeach', value:0,key:'HiTeach',state: false },
|
|
{ id: 2, title: 'HiTA',value:0, key:'HiTA',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: 3, title: 'IES', value:0,key:'IES5', state: false },
|
|
|
|
+ { id: 4, title: '苏格拉底', value:0,key:'Sokrates', state: false },
|
|
|
|
+ { id: 5, title: '觀議課 APP', value:0,key:'SokAPP', state: false },
|
|
|
|
+ { id: 6, title: '通用账号', value:0,key:'Account ', state: false },
|
|
|
|
+ { id: 7, title: 'WebIRS5', value:0,key:'IRS', state: false },
|
|
])
|
|
])
|
|
let tableData = ref([
|
|
let tableData = ref([
|
|
{ time: '2023-07-05 15:33', ip: '222.209.14.199', location: '四川省成都市',platform:'HiTeach' },
|
|
{ time: '2023-07-05 15:33', ip: '222.209.14.199', location: '四川省成都市',platform:'HiTeach' },
|
|
@@ -532,9 +656,10 @@ let rightsdata=ref([
|
|
])
|
|
])
|
|
let detailsData = ref()
|
|
let detailsData = ref()
|
|
detailsData.value = props.searchdata?.length > 0 ? props.searchdata : ''
|
|
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(props.searchdata, '传输的值')
|
|
console.log(detailsData.value, '最终数据')
|
|
console.log(detailsData.value, '最终数据')
|
|
let powerExtension=ref([
|
|
let powerExtension=ref([
|
|
@@ -576,6 +701,24 @@ let buttonSelect = ref([
|
|
])
|
|
])
|
|
let loginDialog=ref(false)
|
|
let loginDialog=ref(false)
|
|
let logintotalTable=ref([])
|
|
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'),
|
|
|
|
+ ])
|
|
|
|
+const randomImage = computed(()=>{
|
|
|
|
+ const randomIndex = Math.floor(Math.random() * headerData.value.length);
|
|
|
|
+ console.log(randomIndex,'随机头像')
|
|
|
|
+ return headerData.value[randomIndex];
|
|
|
|
+})
|
|
const handleChildEvent = (payload) => {
|
|
const handleChildEvent = (payload) => {
|
|
userdetailState.value=false
|
|
userdetailState.value=false
|
|
}
|
|
}
|
|
@@ -585,7 +728,8 @@ const backClick = () => {
|
|
emits('parentClick','default') // 使用方式和 vue2 this.$emit 一样
|
|
emits('parentClick','default') // 使用方式和 vue2 this.$emit 一样
|
|
}
|
|
}
|
|
function initdata() {
|
|
function initdata() {
|
|
- let transmitData = detailsData.value[0]
|
|
|
|
|
|
+ console.log(detailsData.value,'进入方法查看')
|
|
|
|
+ let transmitData = detailsData.value[transferNum.value]
|
|
console.log(transmitData,'数据')
|
|
console.log(transmitData,'数据')
|
|
//header 基础信息
|
|
//header 基础信息
|
|
let { name,id,mobile, mail, schoolCode, schoolCodeW, points,country,province,city,} = transmitData
|
|
let { name,id,mobile, mail, schoolCode, schoolCodeW, points,country,province,city,} = transmitData
|
|
@@ -599,16 +743,23 @@ function initdata() {
|
|
//产品使用及安装情况 登入时间
|
|
//产品使用及安装情况 登入时间
|
|
let {login}=transmitData
|
|
let {login}=transmitData
|
|
let logintimes = login.length >0 ? login.sort(function(a,b){return b.time-a.time}):'无'
|
|
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='暂无'
|
|
logintimes !=='无' ? userdata.value[5].value=proxy.$common.timestampToTime(logintimes[0].time,'all'):userdata.value[5].value='暂无'
|
|
if(login.length >0){
|
|
if(login.length >0){
|
|
|
|
+ logintotalTable.value=[]
|
|
login.forEach(item => {
|
|
login.forEach(item => {
|
|
let typename=item.product
|
|
let typename=item.product
|
|
productdata.value.forEach(items=>{
|
|
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.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):'':''
|
|
})
|
|
})
|
|
- item.time=proxy.$common.timestampToTime(item.time,'all')
|
|
|
|
|
|
+ item.timeText=proxy.$common.timestampToTime(item.time,'all')
|
|
logintotalTable.value.push(item)
|
|
logintotalTable.value.push(item)
|
|
})
|
|
})
|
|
|
|
+ }else{
|
|
|
|
+ logintotalTable.value=[]
|
|
|
|
+ productdata.value.forEach((item)=>{
|
|
|
|
+ item.state=false
|
|
|
|
+ })
|
|
}
|
|
}
|
|
//空间与权益
|
|
//空间与权益
|
|
let {usedSize,teachSize,totalSize,surplusSize}=transmitData.ies5
|
|
let {usedSize,teachSize,totalSize,surplusSize}=transmitData.ies5
|
|
@@ -644,12 +795,13 @@ function initdata() {
|
|
let days = Math.floor(timeDifference / (24 * 60 * 60 ));
|
|
let days = Math.floor(timeDifference / (24 * 60 * 60 ));
|
|
console.log(days,'天数')
|
|
console.log(days,'天数')
|
|
item.intervalTime=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)
|
|
powerList.value.push(item)
|
|
})
|
|
})
|
|
//处理权益内 附加功能(HITeach附加 CC权限)
|
|
//处理权益内 附加功能(HITeach附加 CC权限)
|
|
let hiteachData=benefits.hiteach !==null ?benefits.hiteach:[] ; let ccData=benefits.hiteachcc !==null ?benefits.hiteachcc:[]
|
|
let hiteachData=benefits.hiteach !==null ?benefits.hiteach:[] ; let ccData=benefits.hiteachcc !==null ?benefits.hiteachcc:[]
|
|
|
|
+ console.log(hiteachData,ccData)
|
|
if(hiteachData.length >0){
|
|
if(hiteachData.length >0){
|
|
hiteachData.forEach((item)=>{
|
|
hiteachData.forEach((item)=>{
|
|
let funcKey=item.func;let startTime=proxy.$common.timestampToTime(item.get);let endTime=proxy.$common.timestampToTime(item.exp)
|
|
let funcKey=item.func;let startTime=proxy.$common.timestampToTime(item.get);let endTime=proxy.$common.timestampToTime(item.exp)
|
|
@@ -657,6 +809,7 @@ function initdata() {
|
|
funcKey === items.key ? (items.start=startTime,items.end=endTime,items.value=item.para,items.gets=item.get,items.exps=item.exp):''
|
|
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 ){
|
|
if(ccData.length >0 ){
|
|
ccData.forEach((itemA)=>{
|
|
ccData.forEach((itemA)=>{
|
|
@@ -683,40 +836,98 @@ function initdata() {
|
|
gaugedata.value.series[0].data[0].value=transitionUsed !==0 ? Math.round((transitionUsed/transitionTotal).toFixed(2)*100):0
|
|
gaugedata.value.series[0].data[0].value=transitionUsed !==0 ? Math.round((transitionUsed/transitionTotal).toFixed(2)*100):0
|
|
gaugedata.value.title[0].text=useGsize+' G'
|
|
gaugedata.value.title[0].text=useGsize+' G'
|
|
console.log(transitionUsed,transitionSuplus,transitionTeach,transitionTotal,'结果')
|
|
console.log(transitionUsed,transitionSuplus,transitionTeach,transitionTotal,'结果')
|
|
|
|
+
|
|
|
|
+ //处理上下一个
|
|
|
|
+ advancevalue.value.next=detailsData.value[transferNum.value+1]
|
|
|
|
+ loading.value=false
|
|
}
|
|
}
|
|
function bytesToGB(bytes) {
|
|
function bytesToGB(bytes) {
|
|
const gb = bytes / (1024 * 1024 * 1024);
|
|
const gb = bytes / (1024 * 1024 * 1024);
|
|
return gb.toFixed(2); // 将结果保留两位小数
|
|
return gb.toFixed(2); // 将结果保留两位小数
|
|
}
|
|
}
|
|
function init(){
|
|
function init(){
|
|
|
|
+ loading.value=true
|
|
|
|
+ console.log(detailsData.value,transferNum.value,'查看IOT')
|
|
//处理关于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显示问题
|
|
//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].click=true):(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].click=true):(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].click=true):(buttonSelect.value[2].disabled=true,buttonSelect.value[2].click=false)
|
|
}
|
|
}
|
|
function selectTime(value){
|
|
function selectTime(value){
|
|
console.log(value,'值')
|
|
console.log(value,'值')
|
|
value =='day' ?
|
|
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' ?
|
|
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' ?
|
|
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,'值')
|
|
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(() => {
|
|
onMounted(() => {
|
|
initdata()
|
|
initdata()
|
|
})
|
|
})
|
|
init()
|
|
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>
|
|
</script>
|
|
<style>
|
|
<style>
|
|
.userdetails{
|
|
.userdetails{
|
|
@@ -1003,7 +1214,7 @@ init()
|
|
}
|
|
}
|
|
.login-echart{
|
|
.login-echart{
|
|
width:100%;
|
|
width:100%;
|
|
- height:40vh;
|
|
|
|
|
|
+ height:54vh;
|
|
display: flex;
|
|
display: flex;
|
|
align-items: center;
|
|
align-items: center;
|
|
}
|
|
}
|
|
@@ -1067,6 +1278,7 @@ init()
|
|
.rightsbox-item-expansion div{
|
|
.rightsbox-item-expansion div{
|
|
line-height: 18px;
|
|
line-height: 18px;
|
|
padding-left: 4px;
|
|
padding-left: 4px;
|
|
|
|
+ margin-bottom: 3px;
|
|
}
|
|
}
|
|
.subjoin-item{
|
|
.subjoin-item{
|
|
margin-top:5px;
|
|
margin-top:5px;
|
|
@@ -1089,7 +1301,7 @@ init()
|
|
color:#909399;
|
|
color:#909399;
|
|
}
|
|
}
|
|
.subjoin{
|
|
.subjoin{
|
|
- height:20vh;
|
|
|
|
|
|
+ height:25vh;
|
|
line-height: 20px;
|
|
line-height: 20px;
|
|
color:#73767a;
|
|
color:#73767a;
|
|
overflow: hidden;
|
|
overflow: hidden;
|
|
@@ -1164,7 +1376,7 @@ init()
|
|
}
|
|
}
|
|
.logintotal-box-list{
|
|
.logintotal-box-list{
|
|
display: flex;
|
|
display: flex;
|
|
- flex-wrap: wrap;
|
|
|
|
|
|
+ flex-wrap: nowrap;
|
|
overflow: hidden;
|
|
overflow: hidden;
|
|
overflow-x: auto;
|
|
overflow-x: auto;
|
|
}
|
|
}
|
|
@@ -1178,6 +1390,124 @@ init()
|
|
margin-bottom: 5px;
|
|
margin-bottom: 5px;
|
|
color:#606266;
|
|
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;
|
|
|
|
+}
|
|
|
|
+.nowgroup-num,.totalgroup-num{
|
|
|
|
+ color:#409EFF;
|
|
|
|
+ margin:0px 3px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.lastbtn {
|
|
|
|
+ width: 80px;
|
|
|
|
+ height: auto;
|
|
|
|
+ line-height: 20px;
|
|
|
|
+ position: absolute;
|
|
|
|
+ left: 0%;
|
|
|
|
+ top: 45%;
|
|
|
|
+ opacity: 0.5;
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-wrap: wrap;
|
|
|
|
+ justify-content: center;
|
|
|
|
+ align-items: center;
|
|
|
|
+ border-radius: 5px;
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ padding: 5px;
|
|
|
|
+}
|
|
|
|
+.nextbtn {
|
|
|
|
+ width: 80px;
|
|
|
|
+ height: auto;
|
|
|
|
+ line-height: 20px;
|
|
|
|
+ position: absolute;
|
|
|
|
+ right: 0%;
|
|
|
|
+ top: 43%;
|
|
|
|
+ opacity: 0.5;
|
|
|
|
+ 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 {
|
|
|
|
+ width: 100%;
|
|
|
|
+}
|
|
|
|
+.btn-ls-text {
|
|
|
|
+ margin-top: 3px;
|
|
|
|
+ color: #303a5d;
|
|
|
|
+ opacity: 0;
|
|
|
|
+}
|
|
|
|
+.last-btns {
|
|
|
|
+ width: 40px;
|
|
|
|
+ height: 40px;
|
|
|
|
+ vertical-align: -0.5em;
|
|
|
|
+ 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;
|
|
|
|
+}
|
|
</style>
|
|
</style>
|
|
<style>
|
|
<style>
|
|
.inquirebox-details .el-divider{
|
|
.inquirebox-details .el-divider{
|
|
@@ -1192,4 +1522,7 @@ init()
|
|
.login-total .el-overlay .el-dialog__header{
|
|
.login-total .el-overlay .el-dialog__header{
|
|
padding:5px !important;
|
|
padding:5px !important;
|
|
}
|
|
}
|
|
|
|
+.recordbox-item .el-tag{
|
|
|
|
+ cursor: pointer;
|
|
|
|
+}
|
|
</style>
|
|
</style>
|