|
@@ -11,7 +11,7 @@
|
|
{{ '班级列表' }}
|
|
{{ '班级列表' }}
|
|
<Icon type="ios-arrow-down"></Icon>
|
|
<Icon type="ios-arrow-down"></Icon>
|
|
</span>
|
|
</span>
|
|
- <DropdownMenu slot="list" v-for="(item,index) in this.$store.state.schoolBaseInfo.schoolBaseInfo.period" :value="item.id" :key="index">
|
|
|
|
|
|
+ <DropdownMenu slot="list" v-for="(item,index) in periods" :value="item.id" :key="index">
|
|
<DropdownItem :name="item.id">{{ item.name }}</DropdownItem>
|
|
<DropdownItem :name="item.id">{{ item.name }}</DropdownItem>
|
|
</DropdownMenu>
|
|
</DropdownMenu>
|
|
</Dropdown>
|
|
</Dropdown>
|
|
@@ -176,40 +176,40 @@
|
|
</p>
|
|
</p>
|
|
<div class="class-list-filter">
|
|
<div class="class-list-filter">
|
|
<div class="class-list-filter-box">
|
|
<div class="class-list-filter-box">
|
|
- <Dropdown class="sort-dropdown" trigger="click" placement="bottom-start">
|
|
|
|
|
|
+ <Dropdown class="sort-dropdown" trigger="click" placement="bottom-start" @on-click="function(e){ filterHiteachVer = e }" >
|
|
<span style="cursor: pointer;color:white;">
|
|
<span style="cursor: pointer;color:white;">
|
|
{{ '顯示所有版本的Hiteach' }}
|
|
{{ '顯示所有版本的Hiteach' }}
|
|
<Icon type="ios-arrow-down"></Icon>
|
|
<Icon type="ios-arrow-down"></Icon>
|
|
</span>
|
|
</span>
|
|
<DropdownMenu slot="list">
|
|
<DropdownMenu slot="list">
|
|
- <DropdownItem name="All">{{ '顯示所有版本的Hiteach' }}</DropdownItem>
|
|
|
|
- <DropdownItem name="Standard">{{ '僅顯示Hiteach Standard版本' }}</DropdownItem>
|
|
|
|
- <DropdownItem name="Pro">{{ '僅顯示Hiteach Pro版本' }}</DropdownItem>
|
|
|
|
|
|
+ <DropdownItem name="ALL">{{ '顯示所有版本的Hiteach' }}</DropdownItem>
|
|
|
|
+ <DropdownItem name="STD">{{ '僅顯示Hiteach Standard版本' }}</DropdownItem>
|
|
|
|
+ <DropdownItem name="PRO">{{ '僅顯示Hiteach Pro版本' }}</DropdownItem>
|
|
<DropdownItem name="TBL">{{ '僅顯示Hiteach TBL版本' }}</DropdownItem>
|
|
<DropdownItem name="TBL">{{ '僅顯示Hiteach TBL版本' }}</DropdownItem>
|
|
</DropdownMenu>
|
|
</DropdownMenu>
|
|
</Dropdown>
|
|
</Dropdown>
|
|
<div class="dark-iview-input" style="padding-right:10px;">
|
|
<div class="dark-iview-input" style="padding-right:10px;">
|
|
- <Input clearable v-model="serchCode" size="small" suffix="ios-search" @on-change="filterCode"></Input>
|
|
|
|
|
|
+ <Input clearable v-model="serchCode" size="small" suffix="ios-search" ></Input>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="hiteach-code-wrap-list">
|
|
<div class="hiteach-code-wrap-list">
|
|
<vuescroll>
|
|
<vuescroll>
|
|
- <div class="hiteach-collapse" style="border-bottom: 1px solid #424242;position: relative;cursor: pointer;" v-for="(item, index) in showhiteachData" :key="index">
|
|
|
|
- <div @click="openHiSub(index)" class="hiteach-collapse-main" style="display: flex;align-items: center;padding: 20px 0 20px 20px;">
|
|
|
|
|
|
+ <div class="hiteach-collapse" v-for="(item, index) in showhiteachData" :key="index">
|
|
|
|
+ <div @click="openHiSub(index)" class="hiteach-collapse-main">
|
|
|
|
|
|
- <Icon v-if="item.deviceMax > 1" :type="item.subOpen ? 'ios-arrow-up' : 'ios-arrow-down'" size="30" color="white" style="position: absolute;right: 5px;top: 20px;"/>
|
|
|
|
|
|
+ <Icon class="arrowIcon" v-if="item.deviceMax > 1" :type="item.subOpen ? 'ios-arrow-up' : 'ios-arrow-down'" size="30" color="white" />
|
|
|
|
|
|
- <v-icon style="width: 60px;height: 60px;margin-right: 30px;" :iconClass="item.prodName == 'STD' ? 'htc_std' : item.prodName == 'TBL' ? 'htc_tbl' : 'htc_pro'" />
|
|
|
|
|
|
+ <v-icon class="proIcon" :iconClass="item.prodName == 'STD' ? 'htc_std' : item.prodName == 'TBL' ? 'htc_tbl' : 'htc_pro'" />
|
|
|
|
|
|
- <div style="font-size: 12px;letter-spacing: 1px;">
|
|
|
|
|
|
+ <div class="proCont">
|
|
<ul>
|
|
<ul>
|
|
<li>
|
|
<li>
|
|
- <h1 class="title" style="display: inline-block;margin-right: 12px;font-size: 16px;font-weight: 500;color: #bdbdbd;color:white;">
|
|
|
|
|
|
+ <h1 class="title">
|
|
{{ item.prodGroup +' '+item.prodName}}
|
|
{{ item.prodGroup +' '+item.prodName}}
|
|
</h1>
|
|
</h1>
|
|
- <span style="margin-right: 12px;padding: 2px 5px;background: #1cc0f3;border-radius: 3px;color: white;;">
|
|
|
|
|
|
+ <span class="serialType">
|
|
{{ item.deviceMax == 1 ? $t('單一') : $t('大量')}}
|
|
{{ item.deviceMax == 1 ? $t('單一') : $t('大量')}}
|
|
</span>
|
|
</span>
|
|
<span style="color: #1cc0f3;font-size:12px">
|
|
<span style="color: #1cc0f3;font-size:12px">
|
|
@@ -218,15 +218,10 @@
|
|
</span>
|
|
</span>
|
|
</li>
|
|
</li>
|
|
<li><span style="color: #1cc0f3;">{{ item.serial }}</span></li>
|
|
<li><span style="color: #1cc0f3;">{{ item.serial }}</span></li>
|
|
- <li>
|
|
|
|
- <Tag type="border" :color="item.aprule.sokapp ? '#1cc0f3' : '#8d8d8d'"> {{ $t('蘇格拉底議課')}}</Tag>
|
|
|
|
- <Tag type="border" :color="item.aprule.sokreport ? '#1cc0f3' : '#8d8d8d'"> {{ $t('蘇格拉底報告')}}</Tag>
|
|
|
|
- <Tag type="border" :color="item.aprule.sokDestop ? '#1cc0f3' : '#8d8d8d'"> {{ $t('蘇格拉底桌面')}}</Tag>
|
|
|
|
- <Tag type="border" :color="item.aprule.sokvdo ? '#1cc0f3' : '#8d8d8d'"> {{ $t('蘇格拉底影片')}}</Tag>
|
|
|
|
- <Tag type="border" :color="item.aprule.remoteSys ? '#1cc0f3' : '#8d8d8d'"> {{ $t('遠距教室服務')}}</Tag>
|
|
|
|
- <Tag type="border" :color="item.aprule.ezs ? '#1cc0f3' : '#8d8d8d'"> {{ $t('錄播系統')}}</Tag>
|
|
|
|
|
|
+ <li style="display: block;">
|
|
|
|
+ <div v-for="(aprule, index) in aprules" :key="index" class="tag" :class="{active: item.aprule[aprule]}">{{ $t('schoolBaseInfo.'+ aprule)}}</div>
|
|
</li>
|
|
</li>
|
|
- <li><span style="color: #8d8d8d;">序號到期日: </span>{{item.DateDate | timeFmt}}</li>
|
|
|
|
|
|
+ <li><span style="color: #8d8d8d;">{{$t('序號到期日')}}: </span>{{item.endDate | timeFmt}}</li>
|
|
</ul>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -239,13 +234,13 @@
|
|
<ul>
|
|
<ul>
|
|
<!-- 被關聯要變色 #888888;-->
|
|
<!-- 被關聯要變色 #888888;-->
|
|
<li>
|
|
<li>
|
|
- <h3>{{ dbItem.uuid }}</h3>
|
|
|
|
|
|
+ <h3>{{ dbItem.pcname }}</h3>
|
|
</li>
|
|
</li>
|
|
<li>
|
|
<li>
|
|
- <span>{{ dbItem.ip }} | {{ dbItem.deveiceId }} </span>
|
|
|
|
|
|
+ <span>{{ dbItem.ip }} {{ dbItem.uuid ? ' | '+ dbItem.uuid : dbItem.uuid2 ? ' | ' + dbItem.uuid2 : ''}} </span>
|
|
</li>
|
|
</li>
|
|
<li>
|
|
<li>
|
|
- <span>{{ dbItem.computer }}</span>
|
|
|
|
|
|
+ <span>{{ dbItem.os }}</span>
|
|
</li>
|
|
</li>
|
|
</ul>
|
|
</ul>
|
|
<span v-if="false" style="color: #1cc0f3;padding: 0 15px;">
|
|
<span v-if="false" style="color: #1cc0f3;padding: 0 15px;">
|
|
@@ -257,7 +252,7 @@
|
|
<template v-else>
|
|
<template v-else>
|
|
<div class="hiteach-collapse-sub gradient" style="display: flex;align-items: center;border-top: 1px solid rgb(66, 66, 66);margin-left: 20px;letter-spacing: 1px;font-size: 12px;padding: 20px;">
|
|
<div class="hiteach-collapse-sub gradient" style="display: flex;align-items: center;border-top: 1px solid rgb(66, 66, 66);margin-left: 20px;letter-spacing: 1px;font-size: 12px;padding: 20px;">
|
|
<span style="margin-right: 70px;" ></span>
|
|
<span style="margin-right: 70px;" ></span>
|
|
- <div style="display: flex;justify-content: space-between;align-items: center;width: 100%;">
|
|
|
|
|
|
+ <div style="display: flex;justify-content: space-between;align-items: center;width: 100%;color: #8d8d8d">
|
|
{{ '此序號尚未啟用' }}
|
|
{{ '此序號尚未啟用' }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -336,13 +331,14 @@
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return {
|
|
return {
|
|
- showhiteachData: [],
|
|
|
|
|
|
+ hiteachData: [],
|
|
tblFlag: false,
|
|
tblFlag: false,
|
|
stdFlag: false,
|
|
stdFlag: false,
|
|
proFlag: false,
|
|
proFlag: false,
|
|
test1: true,
|
|
test1: true,
|
|
// 開發中
|
|
// 開發中
|
|
orderBy: 'id',
|
|
orderBy: 'id',
|
|
|
|
+ filterHiteachVer: 'ALL',
|
|
updateBefore:'',
|
|
updateBefore:'',
|
|
filterPeriod: undefined,
|
|
filterPeriod: undefined,
|
|
editStatus: true,//可切换编辑状态
|
|
editStatus: true,//可切换编辑状态
|
|
@@ -501,13 +497,14 @@
|
|
computed: {
|
|
computed: {
|
|
...mapGetters({
|
|
...mapGetters({
|
|
periods: 'user/getPeriods', // 學制s
|
|
periods: 'user/getPeriods', // 學制s
|
|
- classes: 'user/getClasses', // 教室ID
|
|
|
|
|
|
+ aprules: 'schoolBaseInfo/getAprules', // 學制s
|
|
}),
|
|
}),
|
|
filterPeriodName: function(){
|
|
filterPeriodName: function(){
|
|
|
|
+ let data = this.periods
|
|
let pId = this.filterPeriod
|
|
let pId = this.filterPeriod
|
|
let name = ''
|
|
let name = ''
|
|
if(pId !== ''){
|
|
if(pId !== ''){
|
|
- let temp = this.$store.state.schoolBaseInfo.schoolBaseInfo.period.filter( item => {
|
|
|
|
|
|
+ let temp = data.filter( item => {
|
|
return pId == item.id
|
|
return pId == item.id
|
|
})
|
|
})
|
|
if(temp.length >0 ) name = temp[0].name
|
|
if(temp.length >0 ) name = temp[0].name
|
|
@@ -526,6 +523,37 @@
|
|
return this.$t('依學生數排序')
|
|
return this.$t('依學生數排序')
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
+ },
|
|
|
|
+ showhiteachData: function(){
|
|
|
|
+ let data = this.hiteachData
|
|
|
|
+ let filterText = this.filterHiteachVer
|
|
|
|
+ if( Array.isArray(data) && data.length > 0 && filterText != 'ALL'){
|
|
|
|
+ data = data.filter( item => {
|
|
|
|
+ return item.prodName == filterText
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(this.serchCode !=''){
|
|
|
|
+ data = data.filter((item, index) => {
|
|
|
|
+ let verName = item.prodGroup + item.prodName
|
|
|
|
+ let pcNames = false;
|
|
|
|
+
|
|
|
|
+ if(Array.isArray(item.deviceBound) && item.deviceBound.length > 0) {
|
|
|
|
+ pcNames = item.deviceBound.some( db => {
|
|
|
|
+ if(db.pcname) {
|
|
|
|
+ return db.pcname.indexOf(this.serchCode) != -1
|
|
|
|
+ } else {
|
|
|
|
+ return false
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return item.serial.indexOf(this.serchCode) != -1 || verName.indexOf(this.serchCode) != -1 || pcNames
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return data
|
|
}
|
|
}
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
@@ -619,7 +647,7 @@
|
|
},
|
|
},
|
|
confirmAdd() {
|
|
confirmAdd() {
|
|
this.hiTeachs.push(this.hiTeachItem)
|
|
this.hiTeachs.push(this.hiTeachItem)
|
|
- this.filterCode()
|
|
|
|
|
|
+ // this.filterCode()
|
|
this.hiTeachItem = {
|
|
this.hiTeachItem = {
|
|
code: '',
|
|
code: '',
|
|
single: undefined,
|
|
single: undefined,
|
|
@@ -699,13 +727,13 @@
|
|
this.drawSchoolPlan('imgUrl')
|
|
this.drawSchoolPlan('imgUrl')
|
|
this.initIcon()
|
|
this.initIcon()
|
|
},
|
|
},
|
|
- filterCode() {
|
|
|
|
- if (this.serchCode == '') {
|
|
|
|
- this.hiTeachsShow = [...this.hiTeachs]
|
|
|
|
- } else {
|
|
|
|
- this.hiTeachsShow = this.hiTeachs.filter(item => item.code.indexOf(this.serchCode) != -1)
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
|
|
+ // filterCode() {
|
|
|
|
+ // if (this.serchCode == '') {
|
|
|
|
+ // this.hiTeachsShow = [...this.hiTeachs]
|
|
|
|
+ // } else {
|
|
|
|
+ // this.hiTeachsShow = this.hiTeachs.filter(item => item.code.indexOf(this.serchCode) != -1)
|
|
|
|
+ // }
|
|
|
|
+ // },
|
|
|
|
|
|
drawText(text, x, y) {
|
|
drawText(text, x, y) {
|
|
this.schoolPlan = document.getElementById('school-plan')
|
|
this.schoolPlan = document.getElementById('school-plan')
|
|
@@ -1107,7 +1135,7 @@
|
|
this.classroomListShow[this.curClassIndex].style = 'smart'
|
|
this.classroomListShow[this.curClassIndex].style = 'smart'
|
|
this.updated = true
|
|
this.updated = true
|
|
}
|
|
}
|
|
- this.filterCode()
|
|
|
|
|
|
+ // this.filterCode()
|
|
}
|
|
}
|
|
},
|
|
},
|
|
initData() {
|
|
initData() {
|
|
@@ -1165,17 +1193,14 @@
|
|
if(item.deviceMax == 1) item.subOpen = true
|
|
if(item.deviceMax == 1) item.subOpen = true
|
|
return item
|
|
return item
|
|
})
|
|
})
|
|
- console.log(temp, '3333333333333333333333')
|
|
|
|
})
|
|
})
|
|
- console.log(temp, 'temp')
|
|
|
|
- this.showhiteachData = temp
|
|
|
|
- console.log(this.showhiteachData, 'showhiteachData')
|
|
|
|
|
|
+ this.hiteachData = temp
|
|
},
|
|
},
|
|
getHiteachList: async function() {
|
|
getHiteachList: async function() {
|
|
let data = []
|
|
let data = []
|
|
await this.$api.classroom.GetHiteachList(this.$store.state.user.schoolCode).then(
|
|
await this.$api.classroom.GetHiteachList(this.$store.state.user.schoolCode).then(
|
|
(res) => {
|
|
(res) => {
|
|
- data = res.data
|
|
|
|
|
|
+ data = res.serial
|
|
},
|
|
},
|
|
(err) => {
|
|
(err) => {
|
|
this.$Message.error('API error!')
|
|
this.$Message.error('API error!')
|
|
@@ -1184,14 +1209,14 @@
|
|
return data
|
|
return data
|
|
},
|
|
},
|
|
openHiSub(index){
|
|
openHiSub(index){
|
|
- if(this.showhiteachData.length > 0){
|
|
|
|
|
|
+ if(this.showhiteachData.length > 0 && this.showhiteachData[index].deviceMax > 1){
|
|
this.showhiteachData[index].subOpen = !this.showhiteachData[index].subOpen
|
|
this.showhiteachData[index].subOpen = !this.showhiteachData[index].subOpen
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
},
|
|
mounted() {
|
|
mounted() {
|
|
this.filterClassname()
|
|
this.filterClassname()
|
|
- this.filterCode()
|
|
|
|
|
|
+ // this.filterCode()
|
|
this.initData()
|
|
this.initData()
|
|
this.initHiteachData()
|
|
this.initHiteachData()
|
|
},
|
|
},
|
|
@@ -1224,6 +1249,7 @@
|
|
},
|
|
},
|
|
created() {
|
|
created() {
|
|
this.editStatus = this.noStatus
|
|
this.editStatus = this.noStatus
|
|
|
|
+ this.getClassroom()
|
|
this.$store.dispatch('teachers/getTeacherList').then(res => { })
|
|
this.$store.dispatch('teachers/getTeacherList').then(res => { })
|
|
}
|
|
}
|
|
}
|
|
}
|