feat():水情

master
李神峰 2024-06-07 10:56:32 +08:00
parent b0ab11123a
commit 8657ff0de3
18 changed files with 134 additions and 160 deletions

View File

@ -12,6 +12,7 @@
<title></title>
<!--preload-links-->
<!--app-context-->
<script src="./static/h5Player/h5player.min.js"></script>
</head>
<body>
<div id="app"><!--app-html--></div>

View File

@ -13,13 +13,8 @@ $http.beforeRequest = function (options) {
uni.showLoading({
title: '数据加载中'
})
if (options.url.indexOf('/my/') !== -1) {
options.header = {
Authorization: store.state.address.token
}
console.log(options.header)
}
if (options.url.indexOf('/getLoginInfo') !== -1) {
if (options.url.indexOf('/doLogin') == -1) {
options.header = {
'gs-token': uni.getStorageSync('Gs-Token')
}

View File

@ -16,7 +16,9 @@
"autoclose" : true,
"delay" : 0
},
"modules" : {},
"modules" : {
"VideoPlayer" : {}
},
/* */
"distribute" : {
/* */
@ -60,7 +62,7 @@
"usingComponents" : true
},
"vueVersion" : "2",
"h5": {
"template": "template.html"
"h5" : {
"template" : "template.html"
}
}

22
package-lock.json generated
View File

@ -7,10 +7,10 @@
"": {
"dependencies": {
"@escook/request-miniprogram": "^0.2.1",
"crypto-js": "^4.2.0",
"echarts": "^4.9.0",
"es6-promise": "^4.2.8",
"flv.js": "^1.6.2",
"crypto-js": "^4.2.0",
"moment": "^2.30.1"
}
},
@ -19,6 +19,11 @@
"resolved": "https://registry.npmmirror.com/@escook/request-miniprogram/-/request-miniprogram-0.2.1.tgz",
"integrity": "sha512-ueWV5YsaEm/ycQZuEjMiA88GFMhfBQSjy9GrP9omy4xAQajkGTbYIlnhzsDfWzRPmRC1fKmAiKMrCVcgS+SHcQ=="
},
"node_modules/crypto-js": {
"version": "4.2.0",
"resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.2.0.tgz",
"integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
},
"node_modules/echarts": {
"version": "4.9.0",
"resolved": "https://registry.npmjs.org/echarts/-/echarts-4.9.0.tgz",
@ -41,11 +46,6 @@
"webworkify-webpack": "^2.1.5"
}
},
"node_modules/crypto-js": {
"version": "4.2.0",
"resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.2.0.tgz",
"integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
},
"node_modules/moment": {
"version": "2.30.1",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
@ -71,6 +71,11 @@
"resolved": "https://registry.npmmirror.com/@escook/request-miniprogram/-/request-miniprogram-0.2.1.tgz",
"integrity": "sha512-ueWV5YsaEm/ycQZuEjMiA88GFMhfBQSjy9GrP9omy4xAQajkGTbYIlnhzsDfWzRPmRC1fKmAiKMrCVcgS+SHcQ=="
},
"crypto-js": {
"version": "4.2.0",
"resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.2.0.tgz",
"integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
},
"echarts": {
"version": "4.9.0",
"resolved": "https://registry.npmjs.org/echarts/-/echarts-4.9.0.tgz",
@ -93,11 +98,6 @@
"webworkify-webpack": "^2.1.5"
}
},
"crypto-js": {
"version": "4.2.0",
"resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.2.0.tgz",
"integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
},
"moment": {
"version": "2.30.1",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",

View File

@ -4,10 +4,10 @@
},
"pages": [
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
"path" : "pages/login/login",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
@ -44,13 +44,7 @@
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/login/login",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/forewarning/forewarning",
"style" :
@ -85,8 +79,8 @@
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
},
"onMessage": "handleMessage"
},
{
"path" : "pages/rain/rain",
@ -125,32 +119,26 @@
"enablePullDownRefresh": false
}
},
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
}
],
"tabBar": {
"color": "#333333",
"selectedColor": "#eb4450",
"list": [
{
"pagePath": "pages/index/index",
"iconPath": "/static/tabs/my2_icon@2x.png",
"selectedIconPath": "static/tabs/my2_icon@2x.png",
"text": "pages"
},
{
"pagePath": "pages/homeIndex/index",
"iconPath": "/static/tabs/首页@2x.png",
"selectedIconPath": "static/tabs/首页2@2x.png",
"text": "首页"
},
{
"pagePath": "pages/addressBook/addressBook",
"iconPath": "/static/tabs/my2_icon@2x.png",
"selectedIconPath": "static/tabs/my2_icon@2x.png",
"text": "通讯录"
},
{
"pagePath": "pages/mypage/mypage",
"iconPath": "/static/images/my1.png",

View File

@ -9,17 +9,13 @@
>
</uni-data-select>
</view>
<view
class="video-box" v-if="this.list.length">
<!-- <web-view :src="webURL" style="height: 500px;"></web-view> -->
<video id="video-element" controls=""></video>
<view class="video-box" v-if="this.list.length">
<!-- <web-view :src="webURL" style="height: 400px;"></web-view> -->
<iframe :src="webURL" style="height: 300px;width:380px" frameborder="0" :allowfullscreen="true"></iframe>
</view>
</view>
</template>
<script>
// import flvjs from "@/node_modules/flv.js/dist/flv.min.js"
// import 'es6-promise/auto';
// import flvjs from "flv.js"
export default{
props:{
stcd:String,
@ -31,8 +27,6 @@
value: "",
list:[],
webURL:'',
urls:"",
flv:null
}
},
methods: {
@ -60,11 +54,7 @@
const {data} = await uni.$http.get(
`/gunshiApp/xfflood/xfCctvB/preview/${id}`)
if(data.code == 200){
console.log(data.data);
this.urls = data.data;
this.webURL="/static/h5Player/webplayer.html?cameraIndexCode="+id+"&cameraUrl="+data.data
this.flv.updateConfig({ url: data.data })
this.flv.load()
this.webURL="./static/h5Player/webplayer.html?cameraIndexCode="+id+"&cameraUrl="+data.data
}
}catch(e){
uni.$showMsg()
@ -74,18 +64,6 @@
console.log("e:", e);
this.getVideoSrc(e)
},
creatFlvElement(){
const videoElement = document.getElementById('video-element'); //
const flvPlayer = flvjs.createPlayer({
type: 'flv',
url: '' // WebSocket
});
flvPlayer.attachMediaElement(videoElement); //
flvPlayer.load(); //
flvPlayer.play(); //
this.flv = flvPlayer;
}
},
mounted() {
this.getList()

View File

@ -219,13 +219,13 @@ const navList = [
value: '雨情',
key: 1,
icon: '../../static/tabs/形状 1@2x.png',
url:''
url:"/pages/rain/rain"
},
{
value: '水情',
key: 2,
icon: '../../static/tabs/water (1) 拷贝@2x.png',
url:''
url:"/pages/water/water"
},
{
value: '工情灾情',

View File

@ -1,41 +0,0 @@
<template>
<view class="container">
<view class="intro">本项目已包含uni ui组件测试测试测试无需import和注册可直接使用在代码区键入字母u即可通过代码助手列出所有可用组件光标置于组件名称处按F1即可查看组件文档</view>
<text class="intro">详见</text>
<uni-link :href="href" :text="href"></uni-link>
</view>
</template>
<script>
export default {
data() {
return {
href: 'https://uniapp.dcloud.io/component/README?id=uniui'
}
},
methods: {
async getSwiperList(){
try{
const res = await uni.$http.get(
"/gunshiApp/xfflood/xfProjectIncident/getList?_=1716880158438"
)
console.log(res)
}catch(e){
uni.$showMsg()
}
},
onLoad(){
this.getSwiperList()
}
}
}
</script>
<style>
.container {
padding: 20px;
font-size: 14px;
line-height: 24px;
}
</style>

View File

@ -79,6 +79,7 @@
if (res.data.data){
uni.setStorageSync('Gs-Token', res.data.data)
uni.$http.get('/gunshiApp/xfflood/getLoginInfo').then(res=>{
console.log("sss",res.data.data);
uni.setStorageSync('value', res.data.data)
})
}

View File

@ -17,12 +17,13 @@
<!-- 搜索以及多级下拉 -->
<view class="search-box">
<view class="search-item">
<view style="display:flex" v-show="limit == 1">
<view class="" @click="handleClick" >
{{selecetItem.adnm == "全部" ? "咸丰县" : selecetItem.adnm || columns[0][0].adnm}}
</view>
<u-icon name="arrow-down-fill" color="#000" size="20" v-show="switchIcon"></u-icon>
<u-icon name="arrow-up-fill" color="#000" size="20" v-show="!switchIcon"></u-icon>
</view>
<view class="rain-input" style="width: 50%;">
<u--input
placeholder="请输入站点"
@ -32,6 +33,7 @@
:value="formData.stArg"
></u--input>
</view>
<view style="display:flex" v-show="limit == 1">
<view class="" @click="handleClick1" >
{{selecetItem1.basName == "全部" ? "流域" : selecetItem1.basName || "流域"}}
</view>
@ -39,6 +41,7 @@
<u-icon name="arrow-up-fill" color="#000" size="20" v-show="!switchIcon1"></u-icon>
</view>
</view>
</view>
<!-- 单纯下拉 -->
<view class="time-select">
<view :class="{'jiangyu':true,'noClick':rainTime}" @click="handleJiangyu" >
@ -167,6 +170,9 @@
import Table from "./Table"
import filter from "../../static/images/filter.png"
import moment from "moment"
import {disType} from "../utils/dicType.js"
const adcd = uni.getStorageSync('value').adcd
const type = disType(adcd)
export default {
data() {
return {
@ -206,7 +212,7 @@
etm:"",//
columns: //
[
[{"adnm": "咸丰县", "adcd": "422826100000000"}],[]
[{"adnm": "咸丰县", "adcd":adcd }],[]
],
columnData: [[]],
columns1:[[]], //,
@ -216,6 +222,7 @@
basCode:'',
source:["SH","SW","QX","SK"],
stArg:'',
adcd:type == 1 ? undefined :adcd,
etm:moment().set({ hour: 8, minute: 0, second: 0, millisecond: 0 }).format("YYYY-MM-DD HH:mm"),
stm:moment().subtract(1, 'day').set({ hour: 8, minute: 0, second: 0, millisecond: 0 }).format("YYYY-MM-DD HH:mm")
}
@ -230,6 +237,9 @@
stm:moment().subtract(this.formData.timeType, 'hours').format("YYYY-MM-DD HH:mm"),
etm:moment().format("YYYY-MM-DD HH:mm")
}
},
limit(){
return disType(adcd)
}
},
watch:{

View File

@ -112,6 +112,7 @@
<style lang="scss" scoped>
.rain-detail-box{
position: relative;
.nav-bar{
display: flex;
justify-content: center;

View File

@ -9,33 +9,40 @@
>
</uni-data-select>
</view>
<view class="video-box">
<!-- <video :src="videoObject.src" controls is-live="true"></video> -->
<!-- <HFivePlayer :wsUrl="videoObject" :size="1" :playerID="'111'"/> -->
<view class="video-box" >
<iframe :src="webURL" style="height: 300px;width:370px;" frameborder="0" ref="videoFrame"></iframe>
</view>
<!-- <u-overlay :show="show" @click="show = false">
<view class="warp" style="position:relative;">
<view class="rect" >
<iframe :src="webURL" style="height: 100vh;width:100vw" frameborder="0" ref="videoFrame"></iframe>
<image src="/static/images/m1.png" style="position:absolute; bottom:0,right:0"></image>
</view>
</view>
</u-overlay> -->
<!-- <button @click="show=true"></button> -->
</view>
</template>
<script>
// import HFivePlayer from "../../../components/VideoPlay/videoPlay.vue"
export default {
props:{
stcd:String,
source:String,
default:''
},
// components:{
// HFivePlayer
// },
data() {
return {
value: "",
list:[],
videoObject:{},
webURL:'',
show:false
}
},
methods: {
// handleMessage(){
// console.log(111111111111111);
// },
async getList(){
try{
const {data} = await uni.$http.get(
@ -55,21 +62,12 @@
const {data} = await uni.$http.get(
`/gunshiApp/xfflood/xfCctvB/preview/${id}`)
if(data.code == 200){
console.log(data.data);
this.videoObject = {src:data.data}
this.webURL="./static/h5Player/webplayer.html?cameraIndexCode="+id+"&cameraUrl="+data.data
}
}catch(e){
uni.$showMsg()
}
},
playStatus(val){
if(val.type === 'success'){
console.log('播放成功');
}else{
console.log('播放失败')
console.log(val.msg)
}
},
change(e) {
console.log("e:", e);
this.getVideoSrc(e)
@ -77,7 +75,15 @@
},
mounted() {
this.getList()
}
// // 退
// document.addEventListener('fullscreenchange', this.exitFullScreen);
// document.addEventListener('webkitfullscreenchange', this.exitFullScreen);
// document.addEventListener('mozfullscreenchange', this.exitFullScreen);
// document.addEventListener('MSFullscreenChange', this.exitFullScreen);
},
onLoad() {
window.addEventListener('message', (e)=>{console.log("eeee",e);});
},
}
</script>

View File

@ -14,3 +14,14 @@ export function repDict(e) {
}
return name
}
// 县,乡镇判断
export function disType(e) {
let type;
if (e.endsWith('000000000')) {
type = 1;
} else if (e.endsWith('000000')) {
type = 0;
}
return type;
}

View File

@ -51,6 +51,9 @@
<script>
import Table from "./table.vue"
import {disType} from "../../utils/dicType.js"
const adcd = uni.getStorageSync('value').adcd
const type = disType(adcd)
export default {
props:{
stcd:String,
@ -76,6 +79,7 @@
formData:{
args:'',
sources:["SH","SW"],
adcd:type == 1 ? undefined :adcd,
},
list:[], //
saveList:[] //
@ -98,6 +102,7 @@
this.getList()
},
async getList(){
console.log(1111,this.formData);
try{
const {data} = await uni.$http.post(
"/gunshiApp/xfflood/river/water/list",{...this.formData}

View File

@ -51,6 +51,9 @@
<script>
import Table from "./table.vue"
import {disType} from "../../utils/dicType.js"
const adcd = uni.getStorageSync('value').adcd
const type = disType(adcd)
export default {
props:{
stcd:String,
@ -77,6 +80,7 @@
formData:{
args:'',
sources:["SW","SK"],
adcd:type == 1 ? undefined :adcd,
},
list:[], //
saveList:[] //

View File

@ -3,7 +3,7 @@
<view class="nav-bar">
<u-icon name="arrow-left" color="#000" size="28" @click="backTo"></u-icon>
<view class="title">
测试
</view>
</view>
<view class="tab-bar" >

View File

@ -5,9 +5,9 @@
<script src="./h5player.min.js"></script>
<style type="text/css">
.myplayer {
width: 90vw;
height: 28vh;
border-radius: 2vh;
width: 100%;
height: 300px;
/* border-radius: 2vh; */
overflow: hidden;
/* background: #000; */
}
@ -20,7 +20,7 @@
// 初始化插件
var myPlugin = new JSPlugin({
szId: 'play_window', //需要英文字母开头 必填
szBasePath: './h5player.min.js', // 必填,引用H5player.min.js的js相对路径
szBasePath: './', // 必填,引用H5player.min.js的js相对路径
iCurrentSplit: 1,
})
// 获取视频播放流
@ -37,7 +37,6 @@
playURL,
mode: 1
}, curIndex).then(() => {
console.log("dsdsdsddsdsdsds1111111111111");
console.info('JS_Play success 播放成功');
// do you want...
// 抓图
@ -47,7 +46,7 @@
myPlugin.JS_CapturePicture(curIndex, fileName, fileType,imageData => {
console.info('JS_CapturePicture success 抓图成功'); //2.1.0开始全是base64之前的版本存在blob或者是base64
// do you want...
plus.storage.setItem(cameraIndexCode,imageData);
// plus.storage.setItem(cameraIndexCode,imageData);
})
}, (err) => {
console.info('JS_Play failed:', err);
@ -62,6 +61,20 @@
if (r != null) return unescape(r[2]);
return null;
}
function wholeFullScreen(){
myPlugin.JS_FullScreenDisplay(true).then(
() => { console.log(`wholeFullScreen success`) },
e => { console.error(e) }
)
}
myPlugin.JS_SetWindowControlCallback({
windowFullCcreenChange: function (bFull) { //全屏切换回调
console.log('fullScreen callback: ', bFull);
window.parent.postMessage("childLoaded", "*");
},
})
// wholeFullScreen()
</script>
</body>
</html>

View File

@ -15,7 +15,7 @@
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))
document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<script src="static/h5Player/h5player.min.js"></script>
<script src="../static/h5Player/h5player.min.js"></script>
<link rel="stylesheet" href="<%= BASE_URL %>static/index.<%= VUE_APP_INDEX_CSS_HASH %>.css" />
</head>
<body>