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 ( <>
请添加备注信息
({showValueNum}/3)
{ScrollList.map((item, index) => (
{item.num}
} value={item.value} placeholder="请输入备注信息不超过25个字符" onChange={(value)=>onChange(value,index)} onFocus={()=>onFocus(index)} onBlur={onBlur} maxLength={25} showClear>
))}
); } 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);