You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

147 lines
5.4 KiB

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,
rowId,
dispatch,
actions,
cameraRemarks
} = props;
const { equipmentWarehouse } = actions;
const [ScrollList, setScrollList] = useState([{num:'01',value:''},{num:'02',value:''},{num:'03',value:''}]); //显示
const [showScrollList, setShowScrollList] = useState([]); //显示
const [roll,setroll] = useState(false);
const [showValueNum,setShowValueNum] = useState(0);
const valueNum = useRef(0);
//初始化
useEffect(() => {
let myScrollList=ScrollList
let sortCameraRemarks =cameraRemarks//排序
sortCameraRemarks.sort((a,b)=>{return a.id-b.id})
for (let index = 0; index < sortCameraRemarks.length; index++) {
myScrollList[index].value=sortCameraRemarks[index].remark
}
setScrollList(myScrollList)
let mycameraRemarks=[]
for (let index = 0; index < sortCameraRemarks.length; index++) {
mycameraRemarks.push(sortCameraRemarks[index].remark)
}
setShowScrollList(mycameraRemarks)
}, []);
function handleOk () {
//点击弹框确定 右边按钮
dispatch(
equipmentWarehouse.postCameraRemark({
cameraId:rowId,
remark:showScrollList
})
).then((res) => {
close();
})
}
function handleCancel () {
close();
//点击弹框取消 左边按钮
}
//修改
function onChange(value,num){
valueNum.current=0
let myScrollList=ScrollList
myScrollList[num].value=value
setScrollList(myScrollList);
setShowScrollList([value])
for (let index = 0; index < myScrollList.length; index++) {
if(myScrollList[index].value){
valueNum.current=valueNum.current+1
}
}
setShowValueNum(valueNum.current);
}
//获取焦点
function onFocus(num){
setShowScrollList([ScrollList[num].value])
setroll(true)
}
//失去焦点
function onBlur(){
setShowScrollList([])
let myScrollList = []
for (let index = 0; index < ScrollList.length; index++) {
if(ScrollList[index].value){
myScrollList.push(ScrollList[index].value)
}
}
setShowScrollList(myScrollList)
setroll(false)
}
return (
<>
<Modal
title="备注管理"
okText="确定"
cancelText="取消"
visible={visible}
onOk={handleOk}
width={763}
onCancel={handleCancel}
>
<div style={{margin:"2px 14px 18px 29px",display:'flex'}}>
<div style={{width:394}}>
<div style={{display:'flex',marginBottom:8,marginTop:11}}>
<div style={{color:'#1859C1',fontWeight: 600}}>请添加备注信息</div>
<div>{showValueNum}/3</div>
</div>
<div style={{marginTop:8}}>
{ScrollList.map((item, index) => (
<div key={index} style={{marginTop:19}}>
<Input
prefix={<div style={{color: 'rgba(0, 0, 0, 0.75)',margin:'0px 12px'}}>{item.num}</div>}
value={item.value}
placeholder="请输入备注信息不超过25个字符"
onChange={(value)=>onChange(value,index)}
onFocus={()=>onFocus(index)}
onBlur={onBlur}
maxLength={25}
showClear></Input>
</div>
))}
</div>
</div>
<div style={{width:308,marginLeft:20,border:'1px solid #F5F6F7'}}>
<div style={{ position: "absolute",background:'rgba(24,89,193,0.8)',width:306}}>
<TextScroll content={showScrollList} roll={roll} duration={6} />
</div>
<video
id="cameraBanner"
autoPlay
loop
muted
style={{ width: 306,height:185, objectFit: "cover", }}
src="/assets/video/37ov3-lit2e.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);