|
@@ -35,6 +35,47 @@
|
|
|
</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
+ <div class="panel-water-deep" v-if="waterDeepShow">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="timeRange.time1"
|
|
|
+ type="datetime"
|
|
|
+ placeholder="请选择"
|
|
|
+ size="small"
|
|
|
+ popper-class="date-popper"
|
|
|
+ class="date-picker-custom1"
|
|
|
+ value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
+ @change="handlePickTime"
|
|
|
+ />
|
|
|
+ <span class="time-select-divider">至</span>
|
|
|
+ <el-date-picker
|
|
|
+ v-model="timeRange.time2"
|
|
|
+ type="datetime"
|
|
|
+ placeholder="请选择"
|
|
|
+ size="small"
|
|
|
+ popper-class="date-popper"
|
|
|
+ class="date-picker-custom1"
|
|
|
+ value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
+ @change="handlePickTime"
|
|
|
+ />
|
|
|
+ <span class="play-btn" :class="{'btn-disabled': playState===-1}" v-show="playState<1" @click="water_play">播放</span>
|
|
|
+ <span class="play-btn" v-show="playState===1||playState===2" @click="water_stop">结束</span>
|
|
|
+ <span class="play-btn" v-show="playState===1" @click="water_pause">暂停</span>
|
|
|
+ <span class="play-btn" v-show="playState===2" @click="water_resume">继续</span>
|
|
|
+ <el-popover
|
|
|
+ placement="bottom"
|
|
|
+ trigger="click"
|
|
|
+ popper-class="speed-content"
|
|
|
+ effect="dark"
|
|
|
+ >
|
|
|
+ <span class="speed" :class="{'selected': playSpeed===1}" @click="water_speed(1)">x1.0</span>
|
|
|
+ <span class="speed" :class="{'selected': playSpeed===2}" @click="water_speed(2)">x2.0</span>
|
|
|
+ <span class="speed" :class="{'selected': playSpeed===3}" @click="water_speed(3)">x3.0</span>
|
|
|
+ <template #reference>
|
|
|
+ <span class="play-btn" :class="{'btn-disabled': playState===-1}">倍速调整</span>
|
|
|
+ </template>
|
|
|
+ </el-popover>
|
|
|
+
|
|
|
+ </div>
|
|
|
|
|
|
</div>
|
|
|
</template>
|
|
@@ -51,6 +92,10 @@ export default {
|
|
|
import bus from '@/utils/bus'
|
|
|
import { GetWeather } from '@/apis/other'
|
|
|
import { ueCallfullExtent } from '@/utils/UIInteractions'
|
|
|
+ import { ElDatePicker, ElPopover } from 'element-plus'
|
|
|
+ import 'element-plus/es/components/date-picker/style/css'
|
|
|
+ import 'element-plus/es/components/popover/style/css'
|
|
|
+ import { ueCallQueryWater, ueCallPlayWater, ueCallStopWater, ueCallContinueWater, ueCallResetWater, ueCallSetWaterSpeed } from '@/utils/UIInteractions'
|
|
|
|
|
|
onMounted(() => [
|
|
|
getWeather()
|
|
@@ -74,9 +119,9 @@ export default {
|
|
|
|
|
|
const subList = reactive([
|
|
|
{ name: '码头', status: false },
|
|
|
- { name: '航道', status: true },
|
|
|
- { name: '岸线', status: false },
|
|
|
- { name: '船舶', status: false },
|
|
|
+ { name: '航道', status: false },
|
|
|
+ { name: '水深', status: false },
|
|
|
+ { name: '船舶', status: true },
|
|
|
{ name: '视频', status: false },
|
|
|
{ name: '水下地形', status: false },
|
|
|
])
|
|
@@ -85,12 +130,21 @@ export default {
|
|
|
subList[index].status = !subList[index].status
|
|
|
if(subList[index].status===true) {
|
|
|
switch(index) {
|
|
|
+ case 2:
|
|
|
+ timeRange.time1 = useDateFormat((new Date).getTime() - 24 * 60 * 60 * 1000, 'YYYY-MM-DD HH:mm:00').value
|
|
|
+ timeRange.time2 = useDateFormat((new Date).getTime(), 'YYYY-MM-DD HH:mm:00').value
|
|
|
+ handlePickTime()
|
|
|
+ waterDeepShow.value = true
|
|
|
+ break
|
|
|
case 5:
|
|
|
bus.emit('toggle_sxdx', true)
|
|
|
break
|
|
|
}
|
|
|
} else {
|
|
|
switch(index) {
|
|
|
+ case 2:
|
|
|
+ waterDeepShow.value = false
|
|
|
+ break
|
|
|
case 5:
|
|
|
bus.emit('toggle_sxdx', false)
|
|
|
break
|
|
@@ -99,11 +153,57 @@ export default {
|
|
|
}
|
|
|
|
|
|
const temperature = ref('8')
|
|
|
- const humidity = ref('77')
|
|
|
const time = useDateFormat(useNow(), 'HH:mm')
|
|
|
const date = useDateFormat(useNow(), 'YYYY.MM.DD')
|
|
|
const day = useDateFormat(useNow(), 'ddd', { locales: 'en-US' })
|
|
|
|
|
|
+ const waterDeepShow = ref(false)
|
|
|
+
|
|
|
+ const timeRange = reactive({
|
|
|
+ time1: '',
|
|
|
+ time2: ''
|
|
|
+ })
|
|
|
+
|
|
|
+ const playSpeed = ref(1)
|
|
|
+ const playState = ref(0) /* 0--未开始/已结束; 1--播放中; 2--已暂停; -1--禁用状态 */
|
|
|
+
|
|
|
+ function handlePickTime() {
|
|
|
+ if(timeRange.time1&&timeRange.time2) {
|
|
|
+ playState.value = -1
|
|
|
+ ueCallQueryWater(timeRange.time1, timeRange.time2)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ bus.on('ueRec_WaterFinish', () => {
|
|
|
+ playState.value = 0
|
|
|
+ ueCallResetWater()
|
|
|
+ })
|
|
|
+
|
|
|
+ bus.on('ueRec_QueryWaterFinish', () => {
|
|
|
+ playState.value = 0
|
|
|
+ })
|
|
|
+
|
|
|
+ function water_speed(s) {
|
|
|
+ playSpeed.value = s
|
|
|
+ ueCallSetWaterSpeed(playSpeed.value)
|
|
|
+ }
|
|
|
+ function water_play() {
|
|
|
+ ueCallPlayWater()
|
|
|
+ playState.value = 1
|
|
|
+ }
|
|
|
+ function water_stop() {
|
|
|
+ ueCallResetWater()
|
|
|
+ playState.value = 0
|
|
|
+ }
|
|
|
+ function water_pause() {
|
|
|
+ ueCallStopWater()
|
|
|
+ playState.value = 2
|
|
|
+ }
|
|
|
+ function water_resume() {
|
|
|
+ ueCallContinueWater()
|
|
|
+ playState.value = 1
|
|
|
+ }
|
|
|
+
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
@@ -623,5 +723,51 @@ export default {
|
|
|
} */
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ .panel-water-deep {
|
|
|
+ position: absolute;
|
|
|
+ height: 40px;
|
|
|
+ bottom: -10px;
|
|
|
+ left: 50%;
|
|
|
+ transform: translateX(-50%);
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+
|
|
|
+ .time-select-divider {
|
|
|
+ margin: 0 10px;
|
|
|
+ font-size: 16px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .play-btn {
|
|
|
+ width: 100px;
|
|
|
+ height: 40px;
|
|
|
+ margin-left: 10px;
|
|
|
+ background: url('../../assets/imgs/header/bg-sw-btn.png');
|
|
|
+ background-size: 100% 100%;
|
|
|
+ cursor: pointer;
|
|
|
+ line-height: 40px;
|
|
|
+ font-size: 18px;
|
|
|
+ font-family: YSBTH;
|
|
|
+ color: #a9c1d8;
|
|
|
+ &.btn-disabled {
|
|
|
+ filter: brightness(0.5);
|
|
|
+ cursor: not-allowed;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ :deep(.date-picker-custom1) {
|
|
|
+ height: 40px;
|
|
|
+ .el-input__wrapper {
|
|
|
+ box-sizing: border-box;
|
|
|
+ width: 209px;
|
|
|
+ height: 40px;
|
|
|
+ padding-left: 20px;
|
|
|
+ border: none;
|
|
|
+ background: url('../../assets/imgs/header/bg-sw-timepicker.png');
|
|
|
+ background-size: 100% 100%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
</style>
|