|
|
@@ -1,126 +1,122 @@
|
|
|
<template>
|
|
|
<div
|
|
|
v-loading="videoLoading"
|
|
|
- class="detail"
|
|
|
+ class="c-detail"
|
|
|
>
|
|
|
- <i
|
|
|
- class="el-icon-close closeDetail"
|
|
|
- @click="close"
|
|
|
- />
|
|
|
- <div class="detail-top">
|
|
|
- <div class="detail_text">
|
|
|
- {{ camera.name }}人流量监测
|
|
|
- </div>
|
|
|
- <div class="detail_border" />
|
|
|
+ <div class="c-detail-header">
|
|
|
+ <div class="c-detail-header__name u-ellipsis"> {{ camera.name }}</div>
|
|
|
+ <i
|
|
|
+ class="c-detail-header__close el-icon-close u-pointer"
|
|
|
+ @click="close"
|
|
|
+ />
|
|
|
</div>
|
|
|
<video
|
|
|
ref="player"
|
|
|
- class="video"
|
|
|
+ class="o-simple-video"
|
|
|
muted
|
|
|
autoplay
|
|
|
+ controls
|
|
|
:poster="poster"
|
|
|
/>
|
|
|
- <div class="detail-buttom">
|
|
|
- <el-row :gutter="16">
|
|
|
- <el-col :span="24">
|
|
|
- <div class="video-controls l-flex--row">
|
|
|
+ <div class="c-detail-footer has-padding">
|
|
|
+ <div class="l-flex--row c-sibling-item--v c-video-controls">
|
|
|
+ <div
|
|
|
+ v-show="settingBshow"
|
|
|
+ class="settingB"
|
|
|
+ >
|
|
|
+ <div v-show="settingTab">
|
|
|
<div
|
|
|
- v-show="settingBshow"
|
|
|
- class="settingB"
|
|
|
+ v-for="(item, index) in setData"
|
|
|
+ :key="index"
|
|
|
+ class="settingT"
|
|
|
+ @click="setClick(index)"
|
|
|
>
|
|
|
- <div v-show="settingTab">
|
|
|
- <div
|
|
|
- v-for="(item, index) in setData"
|
|
|
- :key="index"
|
|
|
- class="settingT"
|
|
|
- @click="setClick(index)"
|
|
|
- >
|
|
|
- {{ item }} <i class="el-icon-arrow-right" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div v-show="!settingTab">
|
|
|
- <div
|
|
|
- class="settingT settingsub"
|
|
|
- @click="setBack"
|
|
|
- >
|
|
|
- <i class="el-icon-arrow-left" />{{ setData[settingActive] }}
|
|
|
- </div>
|
|
|
- <div class="settingHeight">
|
|
|
- <div
|
|
|
- v-for="(item, index) in settingData[settingActive]"
|
|
|
- :key="index"
|
|
|
- class="settingT settingsub"
|
|
|
- @click="settingClick(index)"
|
|
|
- >
|
|
|
- <i :class="{ 'el-icon-check': item.active }" />
|
|
|
- {{ item.value }}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ {{ item }} <i class="el-icon-arrow-right" />
|
|
|
</div>
|
|
|
- <div class="l-flex__auto">
|
|
|
- <i
|
|
|
- class="status u-pointer"
|
|
|
- :class="{ stop: !playing }"
|
|
|
- @click="onPlayOrPause"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <i
|
|
|
- class="setting u-pointer"
|
|
|
- @click="onSettings"
|
|
|
- />
|
|
|
- <i
|
|
|
- class="refresh u-pointer"
|
|
|
- @click="onRefresh"
|
|
|
- />
|
|
|
</div>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <div class="o-detail">
|
|
|
- <div>
|
|
|
- <span class="o-detail_title">设备名称:</span><span>{{ camera.name }}</span>
|
|
|
- </div>
|
|
|
- <div>
|
|
|
- <span class="o-detail_title">ID:</span><span>{{ camera.identifier }}</span>
|
|
|
- </div>
|
|
|
- <div>
|
|
|
- <span class="o-detail_title">用户名:</span><span>{{ camera.username }}</span>
|
|
|
+ <div v-show="!settingTab">
|
|
|
+ <div
|
|
|
+ class="settingT settingsub"
|
|
|
+ @click="setBack"
|
|
|
+ >
|
|
|
+ <i class="el-icon-arrow-left" />{{ setData[settingActive] }}
|
|
|
</div>
|
|
|
- <div>
|
|
|
- <span class="o-detail_title">备注:</span><span>{{ camera.remark }}</span>
|
|
|
+ <div class="settingHeight">
|
|
|
+ <div
|
|
|
+ v-for="(item, index) in settingData[settingActive]"
|
|
|
+ :key="index"
|
|
|
+ class="settingT settingsub"
|
|
|
+ @click="settingClick(index)"
|
|
|
+ >
|
|
|
+ <i :class="{ 'el-icon-check': item.active }" />
|
|
|
+ {{ item.value }}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </el-col>
|
|
|
- <el-col :span="16">
|
|
|
- <div class="o-detail">
|
|
|
- <div
|
|
|
- id="main"
|
|
|
- style="width: 100%; height: 200px"
|
|
|
- />
|
|
|
- <div class="choosedate">
|
|
|
- <div class="timeBtn">
|
|
|
- <span
|
|
|
- :class="{ active: active === 'hour' }"
|
|
|
- @click="timeType('hour')"
|
|
|
- >1小时</span>
|
|
|
- <span
|
|
|
- :class="{ active: active === 'day' }"
|
|
|
- @click="timeType('day')"
|
|
|
- >1天</span>
|
|
|
- </div>
|
|
|
- <el-date-picker
|
|
|
- v-model="datevalue"
|
|
|
- type="datetime"
|
|
|
- placeholder="选择日期时间"
|
|
|
- prefix-icon="el-icon-date"
|
|
|
- format="yyyy-MM-dd HH:mm"
|
|
|
- value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
- @change="onDateTimeChange()"
|
|
|
- />
|
|
|
+ </div>
|
|
|
+ <div class="l-flex__auto">
|
|
|
+ <i
|
|
|
+ class="status u-pointer"
|
|
|
+ :class="{ stop: !playing }"
|
|
|
+ @click="onPlayOrPause"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <i
|
|
|
+ class="setting u-pointer"
|
|
|
+ @click="onSettings"
|
|
|
+ />
|
|
|
+ <i
|
|
|
+ class="refresh u-pointer"
|
|
|
+ @click="onRefresh"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="l-flex c-sibling-item--v far">
|
|
|
+ <div class="l-flex__none c-sibling-item c-block c-camera-info">
|
|
|
+ <div class="c-sibling-item--v">
|
|
|
+ <span class="c-camera-info__title">ID:</span><span>{{ camera.identifier }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="c-sibling-item--v">
|
|
|
+ <span class="c-camera-info__title">用户名:</span><span>{{ camera.username }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="c-sibling-item--v">
|
|
|
+ <span class="c-camera-info__title">备注:</span><span>{{ camera.remark }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="l-flex__auto c-sibling-item far c-block">
|
|
|
+ <div
|
|
|
+ id="main"
|
|
|
+ class="o-canvas"
|
|
|
+ />
|
|
|
+ <div class="c-choose-date">
|
|
|
+ <div class="c-sibling-item c-choose-date__time u-pointer">
|
|
|
+ <span
|
|
|
+ class="c-choose-date__item"
|
|
|
+ :class="{ active: active === 'hour' }"
|
|
|
+ @click="onTimeTypeChanged('hour')"
|
|
|
+ >
|
|
|
+ 1小时
|
|
|
+ </span>
|
|
|
+ <span
|
|
|
+ class="c-choose-date__item"
|
|
|
+ :class="{ active: active === 'day' }"
|
|
|
+ @click="onTimeTypeChanged('day')"
|
|
|
+ >
|
|
|
+ 1天
|
|
|
+ </span>
|
|
|
</div>
|
|
|
+ <el-date-picker
|
|
|
+ v-model="datevalue"
|
|
|
+ class="c-sibling-item far"
|
|
|
+ type="datetime"
|
|
|
+ placeholder="选择日期时间"
|
|
|
+ prefix-icon="el-icon-date"
|
|
|
+ format="yyyy-MM-dd HH:mm"
|
|
|
+ value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
+ @change="onDateTimeChange()"
|
|
|
+ />
|
|
|
</div>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
@@ -169,10 +165,10 @@ export default {
|
|
|
this.getAvailableParam()
|
|
|
},
|
|
|
mounted () {
|
|
|
- this.getflv()
|
|
|
+ this.createPlayer()
|
|
|
this.getStatistic(
|
|
|
- this.getStarttime(new Date(), 'now'),
|
|
|
- this.getStarttime(new Date())
|
|
|
+ this.getStartTime(new Date(), 'now'),
|
|
|
+ this.getStartTime(new Date())
|
|
|
)
|
|
|
},
|
|
|
methods: {
|
|
|
@@ -180,7 +176,7 @@ export default {
|
|
|
this.destroyPlayer()
|
|
|
this.$emit('close')
|
|
|
},
|
|
|
- getflv () {
|
|
|
+ createPlayer () {
|
|
|
if (flvjs.isSupported()) {
|
|
|
// 创建一个flvjs实例
|
|
|
this.player = flvjs.createPlayer({
|
|
|
@@ -215,7 +211,7 @@ export default {
|
|
|
frameRate: this.infoData.frameRate.slice(0, -3)
|
|
|
}).then(() => {
|
|
|
this.destroyPlayer()
|
|
|
- this.getflv()
|
|
|
+ this.createPlayer()
|
|
|
})
|
|
|
},
|
|
|
getAvailableParam () {
|
|
|
@@ -341,25 +337,25 @@ export default {
|
|
|
},
|
|
|
onRefresh () {
|
|
|
this.destroyPlayer()
|
|
|
- this.getflv()
|
|
|
+ this.createPlayer()
|
|
|
},
|
|
|
- timeType (type) {
|
|
|
+ onTimeTypeChanged (type) {
|
|
|
this.active = type
|
|
|
let startTime
|
|
|
if (this.datevalue.length) {
|
|
|
startTime = this.datevalue
|
|
|
} else {
|
|
|
this.datevalue = new Date()
|
|
|
- startTime = this.getStarttime(new Date(), 'now')
|
|
|
+ startTime = this.getStartTime(new Date(), 'now')
|
|
|
}
|
|
|
- this.getStatistic(startTime, this.getStarttime(startTime, type))
|
|
|
+ this.getStatistic(startTime, this.getStartTime(startTime, type))
|
|
|
},
|
|
|
onDateTimeChange () {
|
|
|
if (this.datevalue) {
|
|
|
- this.getStatistic(this.datevalue, this.getStarttime(this.datevalue, this.active))
|
|
|
+ this.getStatistic(this.datevalue, this.getStartTime(this.datevalue, this.active))
|
|
|
}
|
|
|
},
|
|
|
- getStarttime (time, type) {
|
|
|
+ getStartTime (time, type) {
|
|
|
let onehour = 60 * 60 * 1000
|
|
|
if (type === 'day') {
|
|
|
onehour = 60 * 60 * 1000 * 24
|
|
|
@@ -390,7 +386,7 @@ export default {
|
|
|
this.initEchart()
|
|
|
})
|
|
|
},
|
|
|
- getxdata (data) {
|
|
|
+ getXData (data) {
|
|
|
const arr = []
|
|
|
data.forEach(item => {
|
|
|
const time = item.eventTime.slice(11, 16)
|
|
|
@@ -398,7 +394,7 @@ export default {
|
|
|
})
|
|
|
return arr
|
|
|
},
|
|
|
- getydata (data) {
|
|
|
+ getYData (data) {
|
|
|
const arr = []
|
|
|
data.forEach(item => {
|
|
|
arr.push(item.insidePeopleNum)
|
|
|
@@ -407,8 +403,8 @@ export default {
|
|
|
},
|
|
|
initEchart () {
|
|
|
const data = this.echartsData.filter(item => item.insidePeopleNum !== 0)
|
|
|
- const xdata = this.getxdata(data)
|
|
|
- const ydata = this.getydata(data)
|
|
|
+ const xdata = this.getXData(data)
|
|
|
+ const ydata = this.getYData(data)
|
|
|
const chartDom = document.getElementById('main')
|
|
|
const myChart = echarts.init(chartDom)
|
|
|
myChart.setOption({
|
|
|
@@ -488,217 +484,206 @@ export default {
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
-.detail {
|
|
|
+$theme-blue: #003e90;
|
|
|
+
|
|
|
+.o-simple-video {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+}
|
|
|
+
|
|
|
+.c-detail {
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
position: relative;
|
|
|
overflow: hidden;
|
|
|
+}
|
|
|
+
|
|
|
+.c-detail-header {
|
|
|
+ position: absolute;
|
|
|
+ top: 0;
|
|
|
+ left: 0;
|
|
|
+ width: 100%;
|
|
|
+ padding-top: $spacing;
|
|
|
+ color: #fff;
|
|
|
+ font-size: 24px;
|
|
|
+ text-align: center;
|
|
|
+ background-color: rgba($theme-blue, 0.8);
|
|
|
+ z-index: 9;
|
|
|
|
|
|
- .closeDetail {
|
|
|
+ &::after {
|
|
|
+ content: "";
|
|
|
position: absolute;
|
|
|
- top: 5px;
|
|
|
- right: 20px;
|
|
|
- color: #000;
|
|
|
- font-size: 42px;
|
|
|
- z-index: 3;
|
|
|
- cursor: pointer;
|
|
|
+ top: 100%;
|
|
|
+ left: 50%;
|
|
|
+ width: 700px;
|
|
|
+ height: 0;
|
|
|
+ border-top: 16px solid rgba($theme-blue, 0.8);
|
|
|
+ border-right: 16px solid transparent;
|
|
|
+ border-bottom: 16px solid transparent;
|
|
|
+ border-left: 16px solid transparent;
|
|
|
+ transform: translateX(-50%);
|
|
|
}
|
|
|
|
|
|
- .video {
|
|
|
- width: 100%;
|
|
|
- height: 100vh;
|
|
|
- object-fit: contain;
|
|
|
+ &__name {
|
|
|
+ display: inline-block;
|
|
|
+ width: 600px;
|
|
|
}
|
|
|
|
|
|
- .detail-buttom {
|
|
|
+ &__close {
|
|
|
position: absolute;
|
|
|
- left: 0;
|
|
|
- bottom: 0;
|
|
|
- width: 100%;
|
|
|
- padding: 16px;
|
|
|
-
|
|
|
- .o-detail {
|
|
|
- padding: 24px 24px 70px;
|
|
|
- background-color: rgba(0, 62, 144, 0.8);
|
|
|
- color: #fff;
|
|
|
- line-height: 36px;
|
|
|
- height: 238px;
|
|
|
- position: relative;
|
|
|
- border-radius: $radius--mini;
|
|
|
-
|
|
|
- &_title {
|
|
|
- width: 72px;
|
|
|
- display: inline-block;
|
|
|
- border-radius: $radius--mini;
|
|
|
- }
|
|
|
-
|
|
|
- .choosedate {
|
|
|
- position: absolute;
|
|
|
- right: 20px;
|
|
|
- top: 10px;
|
|
|
- .timeBtn {
|
|
|
- display: inline-block;
|
|
|
- border-radius: $radius--mini;
|
|
|
- background: #4478bc;
|
|
|
- height: 24px;
|
|
|
- line-height: 24px;
|
|
|
- margin-right: 16px;
|
|
|
-
|
|
|
- span {
|
|
|
- font-size: 14px;
|
|
|
- background: #4478bc;
|
|
|
- border-radius: $radius--mini;
|
|
|
- padding: 0 7px;
|
|
|
- display: inline-block;
|
|
|
- cursor: pointer;
|
|
|
- width: 50px;
|
|
|
- text-align: center;
|
|
|
- }
|
|
|
+ top: 50%;
|
|
|
+ right: 0;
|
|
|
+ padding: $spacing;
|
|
|
+ color: #fff;
|
|
|
+ font-size: 42px;
|
|
|
+ transform: translateY(-50%);
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
- .active {
|
|
|
- background: #0096ff;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+.c-detail-footer {
|
|
|
+ position: absolute;
|
|
|
+ left: 0;
|
|
|
+ bottom: 0;
|
|
|
+ width: 100%;
|
|
|
+}
|
|
|
|
|
|
- .video-controls {
|
|
|
- background-color: rgba(0, 6, 13, 0.75);
|
|
|
- height: 48px;
|
|
|
- border-radius: $radius--mini;
|
|
|
- margin-bottom: 16px;
|
|
|
- position: relative;
|
|
|
+.c-block {
|
|
|
+ position: relative;
|
|
|
+ height: 238px;
|
|
|
+ padding: $spacing $spacing 0;
|
|
|
+ color: #fff;
|
|
|
+ line-height: 1;
|
|
|
+ background-color: rgba($theme-blue, 0.8);
|
|
|
+}
|
|
|
|
|
|
- .status {
|
|
|
- display: inline-block;
|
|
|
- width: 30px;
|
|
|
- height: 30px;
|
|
|
- margin-left: 12px;
|
|
|
- background-image: url("~@/assets/icon_stop.png");
|
|
|
+.c-camera-info {
|
|
|
+ width: 25%;
|
|
|
|
|
|
- &.stop {
|
|
|
- background-image: url("~@/assets/icon_start.png");
|
|
|
- }
|
|
|
- }
|
|
|
+ &__title {
|
|
|
+ display: inline-block;
|
|
|
+ width: 72px;
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
- .setting {
|
|
|
- display: inline-block;
|
|
|
- width: 30px;
|
|
|
- height: 30px;
|
|
|
- margin-right: 50px;
|
|
|
- background-image: url("~@/assets/icon_setting.png");
|
|
|
- }
|
|
|
+.c-video-controls {
|
|
|
+ position: relative;
|
|
|
+ height: 48px;
|
|
|
+ border-radius: $radius--mini;
|
|
|
+ background-color: rgba(0, 6, 13, 0.75);
|
|
|
|
|
|
- .refresh {
|
|
|
- display: inline-block;
|
|
|
- width: 30px;
|
|
|
- height: 30px;
|
|
|
- margin-right: 38px;
|
|
|
- background-image: url("~@/assets/icon_refresh.png");
|
|
|
- }
|
|
|
+ .status {
|
|
|
+ display: inline-block;
|
|
|
+ width: 30px;
|
|
|
+ height: 30px;
|
|
|
+ margin-left: 12px;
|
|
|
+ background-image: url("~@/assets/icon_stop.png");
|
|
|
|
|
|
- .settingB {
|
|
|
- position: absolute;
|
|
|
- padding: 10px 0px;
|
|
|
- background-color: rgba($color: #000000, $alpha: 0.85);
|
|
|
- right: 134px;
|
|
|
- transform: translateX(50%);
|
|
|
- bottom: 48px;
|
|
|
- color: #fff;
|
|
|
-
|
|
|
- .settingT {
|
|
|
- position: relative;
|
|
|
- padding: 0px 16px;
|
|
|
- width: 180px;
|
|
|
- height: 40px;
|
|
|
- line-height: 40px;
|
|
|
- cursor: pointer;
|
|
|
-
|
|
|
- &:hover {
|
|
|
- background-color: rgba(69, 69, 69, 0.85);
|
|
|
- }
|
|
|
-
|
|
|
- i {
|
|
|
- position: absolute;
|
|
|
- top: 13px;
|
|
|
- right: 16px;
|
|
|
- }
|
|
|
- }
|
|
|
+ &.stop {
|
|
|
+ background-image: url("~@/assets/icon_start.png");
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- .settingHeight {
|
|
|
- max-height: 250px;
|
|
|
- overflow: auto;
|
|
|
- }
|
|
|
+ .setting {
|
|
|
+ display: inline-block;
|
|
|
+ width: 30px;
|
|
|
+ height: 30px;
|
|
|
+ margin-right: 50px;
|
|
|
+ background-image: url("~@/assets/icon_setting.png");
|
|
|
+ }
|
|
|
|
|
|
- .settingsub {
|
|
|
- width: 140px;
|
|
|
- padding-left: 42px;
|
|
|
- i {
|
|
|
- position: absolute;
|
|
|
- left: 16px;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ .refresh {
|
|
|
+ display: inline-block;
|
|
|
+ width: 30px;
|
|
|
+ height: 30px;
|
|
|
+ margin-right: 38px;
|
|
|
+ background-image: url("~@/assets/icon_refresh.png");
|
|
|
}
|
|
|
|
|
|
- .detail-top {
|
|
|
+ .settingB {
|
|
|
position: absolute;
|
|
|
- top: 0;
|
|
|
- left: 0;
|
|
|
- width: 100%;
|
|
|
- padding-top: 16px;
|
|
|
+ padding: 10px 0px;
|
|
|
+ background-color: rgba($color: #000000, $alpha: 0.85);
|
|
|
+ right: 134px;
|
|
|
+ transform: translateX(50%);
|
|
|
+ bottom: 48px;
|
|
|
color: #fff;
|
|
|
- font-size: 24px;
|
|
|
- text-align: center;
|
|
|
- background-color: rgba(0, 62, 144, 0.8);
|
|
|
- z-index: 2;
|
|
|
|
|
|
- .detail {
|
|
|
- &_border {
|
|
|
+ .settingT {
|
|
|
+ position: relative;
|
|
|
+ padding: 0px 16px;
|
|
|
+ width: 180px;
|
|
|
+ height: 40px;
|
|
|
+ line-height: 40px;
|
|
|
+ cursor: pointer;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background-color: rgba(69, 69, 69, 0.85);
|
|
|
+ }
|
|
|
+
|
|
|
+ i {
|
|
|
position: absolute;
|
|
|
- left: 50%;
|
|
|
- width: 700px;
|
|
|
- height: 0;
|
|
|
- border-top: 16px solid rgba(0, 62, 144, 0.8);
|
|
|
- border-right: 16px solid transparent;
|
|
|
- border-bottom: 16px solid transparent;
|
|
|
- border-left: 16px solid transparent;
|
|
|
- transform: translateX(-50%);
|
|
|
+ top: 13px;
|
|
|
+ right: 16px;
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- &_text {
|
|
|
- height: 32px;
|
|
|
- width: 600px;
|
|
|
- margin: auto;
|
|
|
- white-space: nowrap;
|
|
|
- text-overflow: ellipsis;
|
|
|
- overflow: hidden;
|
|
|
+ .settingHeight {
|
|
|
+ max-height: 250px;
|
|
|
+ overflow: auto;
|
|
|
+ }
|
|
|
+
|
|
|
+ .settingsub {
|
|
|
+ width: 140px;
|
|
|
+ padding-left: 42px;
|
|
|
+ i {
|
|
|
+ position: absolute;
|
|
|
+ left: 16px;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-video::-webkit-media-controls-fullscreen-button {
|
|
|
- display: none;
|
|
|
-}
|
|
|
-//所有控件
|
|
|
-video::-webkit-media-controls-enclosure {
|
|
|
- display: none;
|
|
|
-}
|
|
|
-</style>
|
|
|
-<style lang="scss">
|
|
|
-.choosedate {
|
|
|
- input {
|
|
|
- background-color: transparent;
|
|
|
+.c-choose-date {
|
|
|
+ position: absolute;
|
|
|
+ right: $spacing;
|
|
|
+ top: $spacing;
|
|
|
+
|
|
|
+ &__time {
|
|
|
+ display: inline-block;
|
|
|
+ border-radius: $radius--mini;
|
|
|
+ background: #4478bc;
|
|
|
height: 24px;
|
|
|
line-height: 24px;
|
|
|
+ }
|
|
|
+
|
|
|
+ &__item {
|
|
|
+ display: inline-block;
|
|
|
+ width: 50px;
|
|
|
font-size: 14px;
|
|
|
+ text-align: center;
|
|
|
+ border-radius: $radius--mini;
|
|
|
+ background-color: #4478bc;
|
|
|
+
|
|
|
+ &.active {
|
|
|
+ background: #0096ff;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ ::v-deep input {
|
|
|
+ height: 24px;
|
|
|
color: #fff;
|
|
|
- // padding: 0 10px !important;
|
|
|
+ font-size: 14px;
|
|
|
+ line-height: 24px;
|
|
|
+ background-color: transparent;
|
|
|
}
|
|
|
- .el-input__prefix {
|
|
|
- top: -2px;
|
|
|
+
|
|
|
+ ::v-deep .el-input__icon {
|
|
|
+ line-height: 24px;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+.o-canvas {
|
|
|
+ width: 100%;
|
|
|
+ height: 200px;
|
|
|
+}
|
|
|
</style>
|