Browse Source

文件包和备注

release_0.0.2
deartibers 2 years ago
parent
commit
d067752179
  1. BIN
      code/VideoAccess-VCMP/web/client/assets/video/remarks.mp4
  2. 1
      code/VideoAccess-VCMP/web/client/index.ejs
  3. 91
      code/VideoAccess-VCMP/web/client/src/sections/equipmentWarehouse/components/remarksModal.jsx
  4. 26
      code/VideoAccess-VCMP/web/client/src/sections/equipmentWarehouse/containers/camera.jsx
  5. 9
      code/VideoAccess-VCMP/web/webpack.config.prod.js

BIN
code/VideoAccess-VCMP/web/client/assets/video/remarks.mp4

Binary file not shown.

1
code/VideoAccess-VCMP/web/client/index.ejs

@ -6,6 +6,7 @@
<meta name="viewport" content="minimum-scale=1, initial-scale=1, width=device-width" />
<link rel="shortcut icon" href="/assets/images/favicon.ico">
<script src="/assets/js/jessibuca/jessibuca.js"></script>
<script src="https://lf1-cdn-tos.bytegoofy.com/obj/iconpark/icons_14797_10.b43556420cacd0119dedf94deff663bb.js"></script>
</head>
<body>

91
code/VideoAccess-VCMP/web/client/src/sections/equipmentWarehouse/components/remarksModal.jsx

@ -0,0 +1,91 @@
import React, { useState, useRef, useEffect } from "react";
import { connect } from "react-redux";
import { Modal, Spin,Input } from "@douyinfe/semi-ui";
import TextScroll from "../../../components/textScroll";
function remarksModal (props) {
const {
close,
visible,
} = props;
const [videoObj, setVideoObj] = useState(); //
useEffect(() => {
setVideoObj({
type: 'remarks',
// serialNo: row.serialNo,
// yingshiToken: row.secretYingshi?.token,
// playUrlSd: row.gbCamera?.playUrl?.liveUrl?.sd?.ezopen,
// playUrlHd: row.gbCamera?.playUrl?.liveUrl?.hd?.ezopen,
})
}, []);
function handleOk () {
//
close();
}
function handleAfterClose () {
//
}
function handleCancel () {
close();
//
}
return (
<>
<Modal
title="备注管理"
okText="确定"
cancelText="取消"
visible={visible}
onOk={handleOk}
width={763}
afterClose={handleAfterClose}
onCancel={handleCancel}
>
<div style={{margin:"2px 14px 18px 29px",display:'flex'}}>
<div style={{width:394}}>
<div style={{display:'flex'}}>
<div style={{color:'#1859C1',fontWeight: 600}}>请添加备注信息</div>
<div>3/3</div>
</div>
<div style={{marginTop:20}}>
<Input prefix={<div style={{color: 'rgba(0, 0, 0, 0.75)',margin:'0px 12px'}}>01</div>} showClear></Input>
</div>
<div style={{marginTop:12}}>
<Input prefix={<div style={{color: 'rgba(0, 0, 0, 0.75)',margin:'0px 12px'}}>02</div>} showClear></Input>
</div>
<div style={{marginTop:12}}>
<Input prefix={<div style={{color: 'rgba(0, 0, 0, 0.75)',margin:'0px 12px'}}>03</div>} showClear></Input>
</div>
</div>
<div style={{width:306,marginLeft:20,position: ""}}>
<div style={{ paddingRight: 12,position: "absolute",width: 306,color:'#F9F9F9',background:'rgba(24, 89, 193, 0.8)' }}>
<TextScroll content={['周杰伦7月6日出专辑,请大家多多捧场备注周杰伦7月6日出专辑,请大家多多捧场备注,请大家多多捧场备注','assdasdasdasdss']} duration={6} />
</div>
<video
id="cameraBanner"
autoPlay
loop
muted
style={{ width: 306,height:185, objectFit: "cover", }}
src="/assets/video/remarks.mp4"
type="video/mp4"
/>
</div>
</div>
</Modal>
</>
);
}
function mapStateToProps (state) {
const { auth, global, members, CameraKind, CameraAbility } = state;
return {
loading: members.isRequesting,
user: auth.user,
actions: global.actions,
CameraKind: CameraKind.data || [],
CameraAbility: CameraAbility.data || [],
};
}
export default connect(mapStateToProps)(remarksModal);

26
code/VideoAccess-VCMP/web/client/src/sections/equipmentWarehouse/containers/camera.jsx

@ -16,6 +16,7 @@ import {
import { SimpleFileDownButton, VideoPlayModal } from "$components";
import "../style.less";
import CameraModal from "../components/cameraModal";
import RemarksModal from "../components/remarksModal";
import Setup from "../components/setup";
import SideSheets from "../components/sideSheet";
import { skeletonScreen } from "../components/skeletonScreen";
@ -24,6 +25,7 @@ import { accessType } from "./nvr";
const CameraHeader = (props) => {
const { dispatch, actions, user, loading, equipmentWarehouseCamera } = props;
const [cameraModal, setCameraModal] = useState(false);
const [remarksModal,setRemarksModal] = useState(false);
const [videoPlay, setVideoPlay] = useState(false);
const [modalName, setModalName] = useState("");
const [setup, setSetup] = useState(false);
@ -268,6 +270,21 @@ const CameraHeader = (props) => {
>
<Button theme="borderless">删除</Button>
</Popconfirm>
<Button
theme="borderless"
onClick={() => {
setVideoObj({
type:'remarks',
// serialNo: row.serialNo,
// yingshiToken: row.secretYingshi.token,
// playUrlSd: row.gbCamera.playUrl.liveUrl.sd.ezopen,
// playUrlHd: row.gbCamera.playUrl.liveUrl.hd.ezopen,
})
setRemarksModal(true)
}}
>
备注
</Button>
</div>
);
},
@ -809,6 +826,15 @@ const CameraHeader = (props) => {
}} />
: ""
}
{
remarksModal?
<RemarksModal
visible={true}
close={() => {
setRemarksModal(false)
}} >
</RemarksModal>:''
}
</>
);
};

9
code/VideoAccess-VCMP/web/webpack.config.prod.js

@ -1,6 +1,7 @@
var path = require('path');
var webpack = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin');
const SemiWebpackPlugin = require('@douyinfe/semi-webpack-plugin').default;
const PATHS = {
app: path.join(__dirname, 'client/src'),
@ -30,7 +31,13 @@ module.exports = {
new HtmlWebpackPlugin({
filename: '../index.html',
template: './client/index.ejs'
})
}),
new SemiWebpackPlugin({
theme: {
name: '@semi-bot/semi-theme-fscamera',
include: '~@semi-bot/semi-theme-fscamera/scss/local.scss'
}
}),
],
optimization: {
splitChunks: {

Loading…
Cancel
Save