{"version":3,"sources":["utils/coordtransform_utils.js","utils/server.js","../public/assets/backgroundCustomer.png","../public/assets/sizemax1.png","../public/assets/sizemax2.png","../public/assets/sizemini.png","../public/assets/closeForm.png","../public/assets/login.png","page/login/Login.jsx","page/layout/menu.js","page/layout/state.js","page/layout/sider.jsx","../public/assets/meihao.ico","../public/assets/headBack.jpg","page/layout/header.jsx","../public/assets/backUp.png","page/layout/content.jsx","page/layout/index.jsx","page/user/User.jsx","../public/assets/warning.mp3","page/layout/page/DashBoard/index.jsx","page/layout/page/Monitor/History/index.jsx","page/layout/state_device.js","../public/assets/gpsIcon.png","page/layout/page/Monitor/Map/index.jsx","page/layout/page/Monitor/Alarm/index.jsx","../public/assets/tempOnline.png","../public/assets/tempUnline.png","../public/assets/humiOnline.png","../public/assets/humiUnline.png","../public/assets/paUnline.png","../public/assets/paOnline.png","../public/assets/signalOnline.png","../public/assets/signalUnline.png","../public/assets/timeout.png","../public/assets/timeWarn.png","../public/assets/Smoke.png","../public/assets/SmokeWarn.png","page/layout/page/Monitor/Data/set.jsx","page/layout/page/Monitor/Data/roomset.jsx","page/layout/page/Monitor/Data/set205.jsx","page/layout/page/Monitor/Data/set207.jsx","page/layout/page/Monitor/Data/deviceHistory.jsx","../public/assets/unLocation.png","page/layout/page/Monitor/Data/deviceMap.jsx","page/layout/page/Monitor/Data/device.jsx","page/layout/page/Monitor/Data/set209-902.jsx","page/layout/page/Monitor/Data/device902.jsx","page/layout/page/Monitor/Data/upDev.jsx","page/layout/page/Monitor/Data/plane.jsx","page/layout/page/Monitor/Data/index.jsx","page/layout/page/Monitor/BackUP/index.jsx","utils/sha1.js","page/layout/page/Manage/Area/index.jsx","page/layout/page/Manage/Device/index.jsx","page/layout/page/Manage/HMI/index.jsx","page/layout/page/Manage/User/index.jsx","page/layout/page/Manage/LocalUser/index.jsx","page/layout/page/Manage/Video/index.jsx","page/layout/page/Manage/Transport/tansport.jsx","page/layout/page/Manage/Transport/address.jsx","page/layout/page/Manage/Transport/goods.jsx","page/layout/page/Manage/Transport/transuser.jsx","page/layout/page/Manage/Transport/index.jsx","../public/assets/systs.png","page/layout/page/Manage/AlarmUser/index.jsx","page/layout/page/Monitor/Operation/index.jsx","page/layout/page/Monitor/Pay/index.jsx","../public/assets/help-index.png","../public/assets/apkDown.png","../public/assets/userInfo.png","../public/assets/indexAlarm.png","../public/assets/showData.png","../public/assets/showData1.png","../public/assets/indexHistory.png","../public/assets/indexMap.png","../public/assets/helpHistory.png","../public/assets/helpAlarmData.png","../public/assets/helpLogData.png","../public/assets/helpuser.png","../public/assets/helpuserAdd.png","../public/assets/helpMangerAlarm.png","../public/assets/helpMangerAlarmAdd.png","../public/assets/helpAddCoustom.png","../public/assets/helpAddAdress.png","../public/assets/helpAddGoods.png","../public/assets/helpAddTrans.png","../public/assets/helpTrans.png","../public/assets/helpTransChange.png","../public/assets/helpTransInfo.png","page/layout/page/Help/index.jsx","routes/router.js","routes/index.jsx","App.jsx","reportWebVitals.js","index.js"],"names":["module","exports","x_PI","PI","a","ee","wgs84togcj02","lng","lat","out_of_china","dlat","transformlat","dlng","transformlng","radlat","magic","Math","sin","sqrtmagic","sqrt","cos","gcj02towgs84","ret","abs","bd09togcj02","bd_lon","bd_lat","x","y","z","theta","atan2","gcj02tobd09","factory","http","post","get","axios","interceptors","request","use","config","headers","localStorage","getItem","err","Promise","reject","api","data","resolve","url","Mode","then","res","indexOf","console","log","code","notification","message","description","duration","msg","window","require","electron","undefined","ipcRenderer","send","put","delete","Login","history","useHistory","useState","username","setUsername","password","setPassword","isSaveLogin","setIsSaveLogin","useModal","modal","isShowTitle","setIsShowTitle","isMax","setIsMax","title","content","timerOut","loginIn","isAutoLogin","clearTimeout","error","key","account","md5","CefSharp","BindObjectAsync","bound","setLoginMode","getIsLogin","setToken","token","setItem","success","push","useEffect","setTimeout","PortStatus","myConf","getConfig","userLogin","pwd","getMaxWindow","className","style","backgroundImage","backgroundJpg","width","src","sizeMini","alt","srcset","height","onClick","e","minWindow","sizeMax1","sizeMax2","setMaxWindow","closeForm","closeWindow","fontSize","fontWeight","marginTop","textAlign","borderRadius","size","prefix","UserOutlined","placeholder","value","onChange","target","autoFocus","onPressEnter","document","getElementsByTagName","UnlockOutlined","type","checked","temp","block","menu","name","path","auth","local","u_type","icon","DashboardOutlined","DatabaseOutlined","child","soc","role","FundProjectionScreenOutlined","FieldTimeOutlined","NodeIndexOutlined","AlertOutlined","CarryOutOutlined","BranchesOutlined","PullRequestOutlined","VideoCameraOutlined","TeamOutlined","ControlOutlined","UngroupOutlined","BarsOutlined","QuestionCircleOutlined","StateContext","createContext","OPERATIONTYPE","State","props","useReducer","state","action","panes","devicestate","operationdetails","permissiontype","permission","operation","alarminfo","alarmlog","main","device","node","nodemap","gateway","devicetype","addresstype","goodstype","address","goods","transport","transuser","addressuser","tusertype","datadictionary","district","project","ulist","Array","ulist1","findParentuser","nop","list","mode","nops","filter","parent","length","nopUser","id","nopTitle","j","u","Object","titles","label","text","smscount","smssendcount","phonesendcount","phonecount","wechatcount","company","custom","children","nodes","splice","tempuser","systemuser","u1","clearchildrenisZero","i","tree","treeM","video","user_district","hmi","alarmtype","alarmsuer","alarmSound","setState","super","selUser_dev","dispatch","Provider","SubMenu","Sider","SiderWidth","setSiderWidth","SelectMenu","setSelectMenu","useContext","location","hash","menulist","transition","color","cursor","getElementsByClassName","from","map","item","slice","theme","defaultSelectedKeys","inlineCollapsed","index","citem","cindex","Item","to","Panel","RangePicker","Config","useForm","form","setConfig","coms","setComs","isAutoStart","autoStart","setAutoStart","regCode","setRegCode","isExitP","setIsExitP","startTime","setStartTime","endTime","setEndTime","setFieldsValue","onFinish","MODE","DBHOST","DBP","DBU","HOST","HOSTACT","HOSTPWD","rules","required","flex","maxTagCount","Option","display","flexDirection","alignItems","getBackPath","BACKUP","padding","allowEmpty","dates","dateStrings","Date","toString","marginLeft","start","end","setExitP","submit","Header","timer","useLocation","showConfig","setShowConfig","repw","setrepw","npwo","setnpwo","npw1","setnpw1","npw2","setnpw2","setmsg","menList","setMenList","showUserInfo","setShowUserInfo","showTitle","setShowTitle","setMyConf","devExp","setDevExp","devExp_","setDevExp_","devWarn","setDevWarn","devWarn_","setDevWarn_","setSimExp","setSimExp_","setSimWarn","setSimWarn_","showDev","setShowDev","showMode","setShowMode","msgCount","setMsgCount","showMsgModal","setShowMsgModal","nowTime","setNowTime","getDateTime","date","getFullYear","m","getMonth","d","getDate","h","getHours","minute","getMinutes","second","getSeconds","tempList","clearInterval","setInterval","prototype","getYMD","retDate","this","mm","dd","Title","loadData","d1Ms","loadTimeS","getTime","d2Ms","loadTimeE","setLoadData","day","mon","devList","hide","now","devExpList","devExpList_","devWarnList","devWarnList_","columnId","simExpList","simExpList_","simWarnList","simWarnList_","exp","expire","simExp","iccid_expire","findIndex","user_name","devs","exp_date","n","sort","b","columns","align","dataIndex","render","record","danger","pathname","classList","remove","disabled","boxShadow","zIndex","backgroundSize","iconMeiHao","whiteSpace","paddingTop","justifyContent","backgroundColor","borderTop","logo","process","overlay","href","download","margin","onMouseOver","el","getElementById","innerHTML","QRCode","colorDark","makeCode","host","visible","onOk","onCancel","footer","addonBefore","defaultValue","etoken","SoundTwoTone","twoToneColor","SettingOutlined","trigger","border","maskClosable","destroyOnClose","closable","onfinish","cancelText","okText","who","newpassword","warning","direction","Password","ss","centered","float","marginBottom","exDev","district_name","m_name","sn","time","sim","obj","titleForKey","keys","str","join","blob","Blob","downloadLink","createElement","URL","createObjectURL","click","exportCsv","bordered","pagination","hideOnSinglePage","rowKey","dataSource","defaultActiveKey","msgStatus","JSON","parse","tt","isRead","stringify","header","Content","clear","overflow","moment","locale","Mnanger","zhCN","User","formatDateTimes","inputTime","DashBoard","userdistrictlist","interval","Online","setOnline","setData","selectedRowKeys","setSelectedRowKeys","showDeal","setShowDeal","dealList","setDealList","showDealMsgBox","setShowDealMsgBox","showDealMsg","setShowDealMsg","tableLoad","setTableLoad","getAlarmData","audioEle","status","play","onlinep","round","todo_time","parseInt","temp_h","temp_l","humi","humi_h","humi_l","rowSelection","getCheckboxProps","audioSrc","strokeColor","strokeWidth","percent","format","Devices","fill","LinkOne","Node","Alarm","Messages","textShadow","borderBottom","sle","warn","nsle","alarm_date","loading","why","deal","values","alarm","now_date","setHours","setMinutes","setSeconds","TextArea","StateDeviceContext","StateDevice","state_device","dispatch_device","TabPane","todayTime","customWeekStartEndFormat","startOf","endOf","History","setLoading","showDevName","setShowDevName","selDevOptions","setSelDevOptions","devFliters","setDevFliters","dis","setDis","isHumi","setIsHumi","selNode","setSelNode","selNodeColums","setSelNodeColums","selDevice","setSelDevice","tmin","tmax","tavg","hmin","hmax","havg","dataF","setDataF","dataChart","setdataChart","nodeFliters","setNodeFliters","selNodes","setSelNodes","showNodeName","setShowNodeName","userName","setUserName","dateTime","setDateTime","startWeek","setStartWeek","endWeek","setEndWeek","monthTime","setMonthTime","AMTimes","setAMTimes","PMTimes","setPMTimes","tableType","setTableType","selNodeType","setSelNodeType","seriesTempData","setSeriesTempData","tempChart","setTempChart","tl","th","hl","hh","dataWainF","setDataWainF","showBound","setShowBound","isEmpty","setIsEmpty","selDevs","setSelDevs","recordCount","setRecordCount","tabKey","setTabKey","tableCurrent","setTableCurrent","tablePageSize","setTablePageSize","isExportHumi","setIsExportHumi","today","localeCompare","arrNode","arrDev","addEventListener","resize","setOption","option","tooltip","left","legend","top","xAxis","axisLabel","formatter","min","max","yAxis","toFixed","grid","rigeht","bottom","containLabel","series","configtemp","xField","autoFit","yField","seriesField","v","offset","slider","backgroundStyle","fillOpacity","columnStyle","foregroundStyle","trendCfg","lineStyle","stroke","annotations","lineDash","position","offsetY","offsetX","textBaseline","confighumi","columnsLeft","fixed","sorter","data_time","columnsRight","power","ud","unshift","addUserDistrict","userlist","user","antdPointClick","plot","on","args","points","ele","reverse","reduce","prec","cur","xLen","xLen1","yLen","yLen1","val","ceil","options","expandTrigger","info","showSearch","inputValue","some","toLowerCase","margin-left","optionFilterProp","allowClear","filterOption","input","sd","xxl","xl","lg","ranges","今天","subtract","picker","showTime","filterSort","optionA","optionB","find","humi_switch","humi_enable","ar","temp_switch","dev_val","isShowBound","apply","o","deviceInfos","Sn","includes","deviceInfo","Sensor","Hide","deviceInfoHide","TempAlarmHigh","TempAlarmLow","HumiAlarmHigh","HumiAlarmLow","temp_s","humi_s","count","baseData","temp_alarm","humi_alarm","districtname","door","seriesData","tempdata","humidata","smooth","symbol","concat","nodeCol","door_alarm","devNode","marginRight","spinning","tip","activeKey","visibility","tabBarExtraContent","paddingRight","canvas2","_canvas","w","getComputedStyle","getContext","scale","html2canvas","canvas","toDataURL","exportImg","fetch","method","credentials","Headers","response","blobUrl","aElement","filename","revokeObjectURL","catch","exportEXCEL","exportPDF","chartDom","myChart","echarts","dispatchAction","scrollDataIndex","dispose","tab","scroll","current","page","pageSize","paddingLeft","onReady","MapData","selDev","setSelDev","longitude","latitude","mapCenter","setMapCenter","devP","setDevP","mapZoom","setMapZoom","mapMarkVisibel","setMapMarkVisibel","pLineVisibel","setPLineVisible","sliderStatus","setSilderStatus","sliderRun","setSilderRun","markerRota","setMarkerRota","datadik","newp","marks","timesamp","timestamp","gps_lng","gps_lat","sp","gps_speed","ag","gps_dir","tm","onSelect","ID","Status","GPSLng","GPSLat","GPSDir","vgpsdata","gps","lbs_cell","gpst","gpsTrans","innerHeight","right","background","FastBackwardOutlined","FastForwardOutlined","CaretRightOutlined","PauseOutlined","SwapOutlined","CloseOutlined","tipFormatter","plugins","useAMapUI","events","created","ins","zoom","center","showDir","strokeWeight","UpCircleTwoTone","rotate","findUserDis","districts","userDis","tempDis","dataSave","setDataSave","showData","setShowData","isLoading","setIsLoading","defExpend","setDefExpend","selUser","setSelUser","selUserDis","setSelUserDis","selDis","setSelDis","closeInterval","setCloseInterval","tempData","arrDevice","filterDropdown","setSelectedKeys","selectedKeys","confirm","clearFilters","SearchOutlined","filterIcon","filtered","onFilter","trim","compare","filters","preventDefault","selectedRows","dropdownStyle","maxHeight","treeDefaultExpandedKeys","treeData","checkedChildren","unCheckedChildren","defaultChecked","shape","SyncOutlined","toLocaleDateString","pageSizeOptions","intReg","formatTime","strs","split","DeviceSet","setDevice","devices","setDevices","validity","serverIP","setServerIP","deviceTime","setDeviceTime","uploadInterval","setUploadInterval","sensorStop","setSensorStop","sensorAlarm","setSensorAlarm","powerAlarm","setPowerAlarm","batteryAlarm","setBatteryAlarm","overAlarm","setOverAlarm","store","setStore","revise","setRevise","devClose","setDevClose","devStronInfo","setDevStronInfo","load","setLoad","timeReadDataStart","setTimeReadDataStart","timeReadDataEnd","setTimeReadDataEnd","offtime","offline","setOffLine","showAffirm","setShowAffirm","affirmPwd","setAffirmPwd","setSetState","isSet","setIsSet","setDevList","selDevNodes","setSelDevNodes","isShowSet","setIsShowSet","cmd","setCmd","match","District","Type","ExprieStatus","devNodes","MName","Name","all","indeterminate","devsTemp","devsData","Params","StoreInfo","devsInfo","ReadDeviceParams","t","call","cloud","OverAlarm","StartTime","EndTime","SetDeviceParams","SetDevicesParams","SetDevicesWarning","Id","temp_warning_high","TempWarningHigh","temp_warning_low","TempWarningLow","humi_warning_high","HumiWarningHigh","humi_warning_low","HumiWarningLow","SetDevicesFree","nodeLen","gutter","span","Group","compact","addonAfter","test","parseFloat","Humi","WarningInterval","maxLength","reg","temp_waning_high","temp_waning_low","humi_waning_high","humi_waning_low","warning_interval","PowerAlarmTimeCount","Number","PowerAlarmMsgIntCount","PowerAlarmMsgCount","Time","TimeInt","TempCount","HumiCount","BatPowerAlarm","IPAddress","TempCompensate","HumiCompensate","RealTimeInt","DeviceTime","borderRightColor","starttime","endtime","NorStoreInt","AlmStoreInt","Enable","LinkAlarm","OffLineTime","autoComplete","OffLineAlarmInterval","OffLineAlarmCount","OffLineAlarm","ExclamationCircleOutlined","okType","CurrSector","CurrSectorAddr","ReadSector","ReadSectorAddr","LargeSector","devInfo","mn","paddingBottom","tempdevInfo","templist","sensonTemp","ttt","checkNodelen","textOverflow","HumiEnable","HumiSwitch","s","startsWith","changeSetState","DeviceRoomSet","runTime","setRunTime","orientation","channel","IOModel","isMore","setIsMore","checkedList","countMax","DeHumiHigh","DeHumiLow","dehumi_high","dehumi_low","DeHumiMode","dehumimode","dehumistatus","DeHumiStatus","DeviceHistory","showSelDevNodes","setShowSelDevNodes","showSelDevNodesValue","setShowSelDevNodesValue","setIndeterminate","checkAll","setCheckAll","setCheckedList","isChangeTime","setIsChangeTime","isWaiting","setIsWaiting","showUnitName","setShowUnitName","localCompany","setLocalCompany","minInterval","setMinInterval","showUnit","setShowUnit","useRef","connectNulls","replace","items","marker","configtemps","confighumis","DoorAlarm","getHistory","unitName","is_Humi","artemp","arLen","checkData","tH","tL","hH","hL","maxNum","normalData","warnData","getHistorys","onChange_Tab","onChange_Table","saveImage","unit","showMore","checkOptions","startT","dateStart","endT","destroyInactiveTabPane","DeviceMap","dataMap","setDataMap","startMapTime","setStartMapTime","endMapTime","setEndMapTime","mapLine","setMapLine","mapLine1","setMapLine1","markP","setmarkP","isLocation","setIsLocation","ll","Location","GPSStatus","BaseLac","gpss","unLocation","DeviceItem","showHis","setShowHis","showHisMore","setShowHisMore","showSet","setShowSet","showLocation","setShowLocation","startDTime","setStartDTime","modalBounds","setModalBounds","modalMoveDisabled","setModalMoveDisabled","draggleRef","React","createRef","showLastTime","setShowLastTime","timerout","onStart","event","uiData","documentElement","clientWidth","clientHeight","targetRect","getBoundingClientRect","num","showTimeAdmin","showTimeManger","showTimeUser","onMouseOut","modalRender","bounds","ref","callback","show","borderLeft","onDoubleClick","signalTimeOut","signalTimeWarn","HumiValue","TempValue","TempSwitch","PowerAlarm","Door","PowerStatus","paOnline","tempOnline","paUnline","tempUnline","TempAlarm","TempWarning","humiOnline","humiUnline","HumiAlarm","HumiWarning","Local","SignalTower","Csq","signalOnline","signalUnline","BoltOne","BatteryWorking","BatPower","LastMsgTime","Smoke","smokeWarn","smoke","BatteryFull","BatteryEmpty","smokeDevStoList","socketSendAlarm","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","alarmInfo","setAlarmInfo","devParam1","setDevParam1","devParam2","setDevParam2","a2","a3","a4","a6","a7","a8","a9","aa","isCache","setIsCache","GetStatus","ExSensor","setCatch","Cmd","pre","param","high","low","alarm_count","compensate","exSensonTemp","Device902Item","enable","DeviceContext","DeviceFix","actDevice","dispatchDevice","formRef","devTypetemp","devType","labelCol","xs","sm","wrapperCol","UpDevManage","showFixModel","setShowFixModel","tableData","setTableData","disFilter","setDisFilter","devTypeFilter","setDevTypeFilter","nodeSerch","devSerch","arrs","onFilterDropdownVisibleChange","focus","multiple","rowClassName","upSn","Plane","showDiv","showDivH","disID","setDisID","editVisb","setEditVisb","backImgURL","setBackImgURL","xRelative","setXRelative","yRelative","setYRelative","newVisb","setNewVisb","fontColor","setDeviceInfo","devicesInfo","setDevicesInfo","addMapEle","setAddMapEle","planeName","setPlaneName","planeIndex","setPlaneIndex","planesInfo","setPlanesInfo","showWidth","setShowWidth","showHeight","setShowHeight","isFullScreen","setIsFullScreen","isReflash","setIsReflash","showPlane","requestFullscreen","mozRequestFullscreen","webkitRequestFullscreen","body","msRequestFullscreen","params","img","image","imgObj","Image","exitFullscreen","msExitFullscreen","webkitCancelFullscreen","mozCancelFullscreen","layout","layItem","layIndex","tempDev","devID","devSensorType","xPercent","yPercent","EnvironmentOutlined","showUploadList","file","UploadOutlined","backgroundRepeat","onContextMenu","tempEle","menuListEle","tempEleX","tempEleY","clientX","clientY","tempArr","beforeScroll","dateTimer","Data","showArea","setShowArea","showDef","setShowDef","setShow","showtree","setShowTree","showOff","setShowOff","expendKey","setExpendKey","autoExpandParent","setAutoExpandParent","selKey","setSelKey","planeVis","setPlaneVis","showDataF","setShowDataF","showDis","setShowDis","showTreeDis","setShowTreeDis","showUpData","setShowUpData","showUpDataModal","setShowUpDataModal","storeDevOptions","setStoreDevOptions","incDevOptions","setIncDevOptions","vehDevOptions","setVehDevOptions","devTypeOptions","setDevTypeOptions","selDevType","setSelDevType","storeIndeterminate","setStoreIndeterminate","incIndeterminate","setIncIndeterminate","vehIndeterminate","setVehIndeterminate","storeCheckAll","setStoreCheckAll","incCheckAll","setIncCheckAll","vehCheckAll","setVehCheckAll","storeChecked","setStoreChecked","incChecked","setIncChecked","vehChecked","setVehChecked","storeDevValues","setStoreDevValues","incDevValues","setIncDevValues","vehDevValues","setVehDevValues","setDates","upQYID","setUpQYID","upKEY","setUpKEY","upAuto","setUpAuto","Search","sortBy","filterData","deviceslist","nodeLists","getUpDevs","storeDevs","vehDevs","incDevs","storeValues","incValues","vehValues","typeRadioOptions","treeToList","getparent","arr","pid","p","loginUser","oData","userData","dsl","temshowDis","showUnLine","parentUser","userTree","parentName","dOn","isUpDataHeB","dataCon","smokeAlarmList","showD","borderRight","eKey","querySelectorAll","titleRender","nodeDate","defaultExpandedKeys","blockNode","showLine","switcherIcon","DownOutlined","expandedKeys","onExpand","showIcon","us","ds","l","renderItem","DoubleRightOutlined","DoubleLeftOutlined","MenuOutlined","AppstoreOutlined","enterButton","onSearch","self","it","UpOutlined","overflowY","onScroll","offsetHeight","showDivHB","scrollHeight","scrollTop","dire","LayoutOutlined","alignContent","flexFlow","From","disabledDate","diff","tooLate","tooEarly","onCalendarChange","onOpenChange","open","elem","querySelector","elems","elem1","secretkey","qyid","d_ids","BackUP","setBackUPFile","showlist","setShowlist","plain","DownloadOutlined","sha1","sha1_ft","c","sha1_kt","safe_add","lsw","rol","cnt","binarray","hex_tab","charAt","binb2hex","blockArray","olda","oldb","oldc","oldd","olde","core_sha1","nblk","blks","charCodeAt","AlignSHA1","changeDev","AreaContext","getSimByIccid","iccid","simToken","r","resp","json","appKey","floor","sign","callSign","expiryDate","msisdn","expireTime","mobile","Secret","DeviceNew","lockMName","setLockMName","master","setMaster","nodeNum","setNodeNum","nodeStatus1","nodeStatus2","setSimToken","temp_alarm_high","temp_alarm_low","humi_alarm_high","humi_alarm_low","power_alarm","valuePropName","getFieldValue","resultCode","newDate","active","controls","data1","tempEles","simStatus","setSimStatus","add","openDate","DeviceManage","actArea","setFullYear","showNewModel","setShowNewModel","simSerch","vis","imei","project_id","AreaNew","dispatchArea","area","onKeyDown","AreaManage","showNewDevModel","setShowNewDevModel","devMangerModel","setDevMangerModel","with","overflowCount","showZero","userInfo","islock","date1","date2","days","getSimBySim","disOptions","setDisOptions","arrDis","d_d","d_u","simdate","validator","_","Error","treeNodeFilterProp","iccid_expire_real","selectUser","setSelectUser","simStatus1","simChange","setSimChange","cardedittime","cardedittimeauto","result","Sim","ICCID","ICCID_Ex","treeDefaultExpandAll","filterCol","setFilterCol","showDevC","setShowDevC","devCustom","setDevCustom","selDevCID","setSelDevCID","dev","simauto","newvalues","exDevIndex","expirestatus","len","fil","SelectInput","keyword","HMIContext","HmiNew","actHmi","dispatchHmi","HMIManage","editPointVisb","setEditPointVisb","isMouseDown","setIsMouseDown","isMoving","setIsMoving","moveEle","setMoveEle","moveDevInfo","setMoveDevInfo","scrollLeft","scrollWidth","onMouseMove","tClient","onMouseDown","onMouseUp","editId","tempArrs","UserNew","actUser","dispatchUser","onfinishNew","selectUserType","setSelectUserType","selectUserRole","setSelectUserRole","isCompany","setIsCompany","tempP","companyUser","findParent","hasFeedback","dependencies","setProperty","userRole","roles","UserFix","userParentRoles","UserManage","phone","showLogo","setShowLogo","logoloading","setLogoLoading","showSelectArea","setShowSelectArea","userSelectArea","setUserSelectArea","selArea","setSelArea","reSetPassWord","setReSetPassWord","setIsReSetPassWord","setUserParentRoles","showNotify","setShowNotify","showSms","setShowSms","showPhone","setShowPhone","showWx","setShowWx","userRecord","setUserRecord","smsNum","setSmsNum","phoneNum","setPhoneNum","wxCount","setWxCount","setTodo_time","userdistricts","setUserdistricts","serchUser","setSerchUser","setCustom","showCustom","setShowCustom","typeTemp","expandable","defaultExpandedRowKeys","rowExpandable","defaultPageSize","listType","LoadingOutlined","PlusOutlined","checkedValues","belong","forbiden","todo","datestring","LocalUserNew","setUserRole","LocalUserFix","LocalUserManage","VideoContext","VideoNew","actVideo","dispatchVideo","video_name","liveurl","VideoManage","Step","text1","TransportContext","TransportNew","actTransport","dispatchTransport","setSelUsers","setDevs","serial","onBlur","users","filterTreeNode","fromuser","fromaddressuser","touser","toaddressuser","tranuser","tranaddressuser","TransportManage","start_time","end_time","errmsg","showErrorModel","setShowErrorModel","showDetailModel","setShowDetailModel","querySerial","setQuerySerial","queryStatus","setQueryStatus","queryStartTime","setQueryStartTime","queryResult","setQueryResult","dataHis","setDataHis","tickCount","systemsuer","dateString","headStyle","extra","placement","ghost","ProfileTwoTone","strNode","realData","gpsdata","nodeCols","battery","csq","legendName","ContainerTwoTone","CarTwoTone","CloseCircleTwoTone","CheckCircleTwoTone","tob","AddressContext","AddressNew","actAddress","dispatchAddress","PersonContext","PersonNew","actPerson","dispatchPerson","person","AddressManage","showNewPModel","setShowNewPModel","showFixPModel","setShowFixPModel","columnsPerson","GoodsContext","GoodsNew","actGoods","dispatchGoods","setSavecycle","save_cycle","GoodsManage","login","TransuserContext","TransuserNew","actTransuser","dispatchTransuser","TransuserManager","TransportIndex","findUnderUser","underUser","checkNumber","theObj","AlarmUserContext","qrtime","qrInterval","flowid","AlarmUserNew","actAlarmUser","dispatchAlarmUser","qrcode","setQrcode","qrcodeUrl","setQrcodeUrl","wechat","setWechat","smsCount","setSmsCount","setUserDis","fetchDataQR","AlarmUser","valueOf","ticket","disName","alarmtypesms","alarmtypewe","alarmtypephone","timerange","timerelay","dateStr","SysTs","timerangewechat","timerelaywechat","vphone","timerangephone","timerelayphone","AlarmUserManage","alarmUser","setAlarmUser","tempUsers","innerWidth","setInnerWidth","lineNub","DetailsCreate","DeTailsModal","logs","column","details","operation_date","operation_table","operation_name","operation_type","user_id","explained","String","ellipsis","new_value","old_value","Operation","showDetailsModel","setShowDetailsModel","oType","setOType","pType","setPType","logData","setLogData","userSerch","usertype","ids","substr","wordWrap","wordBreak","pam","isPay","nowDate_month","nowDate_year","simExp_year","simExp_month","PayManage","simExpire","setShowModal","setSelectedDev","setSelVal","setSelectedRow","showModal","itemValue","setItemValue","modeValue","setModeValue","selectedDev","selectedRow","selVal","showVal","devExpire","tempVal","Help","component","Loyout","cover","helpIndex","apkDown","indexAlarm","showData1","indexHistory","indexMap","helpHistory","helpAlarmData","helpLogData","helpTrans","helpAddCoustom","helpAddAddress","helpAddGoods","helpAddTrans","helpTransChange","helpTransInfo","helpuser","helpuserAdd","helpMangerAlarm","helpMangerAlarmAdd","RouteMap","router","exact","App","getReg","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM"],"mappings":"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","file":"static/js/main.3f91037e.chunk.js","sourcesContent":["/**\r\n * Created by Wandergis on 2015/7/8.\r\n * 提供了百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换\r\n */\r\n//UMD魔法代码\r\n// if the module has no dependencies, the above pattern can be simplified to\r\n(function (root, factory) {\r\n module.exports = factory();\r\n}(this, function () {\r\n //定义一些常量\r\n var x_PI = 3.14159265358979324 * 3000.0 / 180.0;\r\n var PI = 3.1415926535897932384626;\r\n var a = 6378245.0;\r\n var ee = 0.00669342162296594323;\r\n /**\r\n * 百度坐标系 (BD-09) 与 火星坐标系 (GCJ-02)的转换\r\n * 即 百度 转 谷歌、高德\r\n * @param bd_lon\r\n * @param bd_lat\r\n * @returns {*[]}\r\n */\r\n var bd09togcj02 = function bd09togcj02(bd_lon, bd_lat) {\r\n var bd_lon = +bd_lon;\r\n var bd_lat = +bd_lat;\r\n var x = bd_lon - 0.0065;\r\n var y = bd_lat - 0.006;\r\n var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_PI);\r\n var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_PI);\r\n var gg_lng = z * Math.cos(theta);\r\n var gg_lat = z * Math.sin(theta);\r\n return [gg_lng, gg_lat]\r\n };\r\n\r\n /**\r\n * 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换\r\n * 即谷歌、高德 转 百度\r\n * @param lng\r\n * @param lat\r\n * @returns {*[]}\r\n */\r\n var gcj02tobd09 = function gcj02tobd09(lng, lat) {\r\n var lat = +lat;\r\n var lng = +lng;\r\n var z = Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * x_PI);\r\n var theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * x_PI);\r\n var bd_lng = z * Math.cos(theta) + 0.0065;\r\n var bd_lat = z * Math.sin(theta) + 0.006;\r\n return [bd_lng, bd_lat]\r\n };\r\n\r\n /**\r\n * WGS84转GCj02\r\n * @param lng\r\n * @param lat\r\n * @returns {*[]}\r\n */\r\n var wgs84togcj02 = function wgs84togcj02(lng, lat) {\r\n var lat = +lat;\r\n var lng = +lng;\r\n if (out_of_china(lng, lat)) {\r\n return [lng, lat]\r\n } else {\r\n var dlat = transformlat(lng - 105.0, lat - 35.0);\r\n var dlng = transformlng(lng - 105.0, lat - 35.0);\r\n var radlat = lat / 180.0 * PI;\r\n var magic = Math.sin(radlat);\r\n magic = 1 - ee * magic * magic;\r\n var sqrtmagic = Math.sqrt(magic);\r\n dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);\r\n dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);\r\n var mglat = lat + dlat;\r\n var mglng = lng + dlng;\r\n return [mglng, mglat]\r\n }\r\n };\r\n\r\n /**\r\n * GCJ02 转换为 WGS84\r\n * @param lng\r\n * @param lat\r\n * @returns {*[]}\r\n */\r\n var gcj02towgs84 = function gcj02towgs84(lng, lat) {\r\n var lat = +lat;\r\n var lng = +lng;\r\n if (out_of_china(lng, lat)) {\r\n return [lng, lat]\r\n } else {\r\n var dlat = transformlat(lng - 105.0, lat - 35.0);\r\n var dlng = transformlng(lng - 105.0, lat - 35.0);\r\n var radlat = lat / 180.0 * PI;\r\n var magic = Math.sin(radlat);\r\n magic = 1 - ee * magic * magic;\r\n var sqrtmagic = Math.sqrt(magic);\r\n dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);\r\n dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);\r\n var mglat = lat + dlat;\r\n var mglng = lng + dlng;\r\n return [lng * 2 - mglng, lat * 2 - mglat]\r\n }\r\n };\r\n\r\n var transformlat = function transformlat(lng, lat) {\r\n var lat = +lat;\r\n var lng = +lng;\r\n var ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng));\r\n ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;\r\n ret += (20.0 * Math.sin(lat * PI) + 40.0 * Math.sin(lat / 3.0 * PI)) * 2.0 / 3.0;\r\n ret += (160.0 * Math.sin(lat / 12.0 * PI) + 320 * Math.sin(lat * PI / 30.0)) * 2.0 / 3.0;\r\n return ret\r\n };\r\n\r\n var transformlng = function transformlng(lng, lat) {\r\n var lat = +lat;\r\n var lng = +lng;\r\n var ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng));\r\n ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;\r\n ret += (20.0 * Math.sin(lng * PI) + 40.0 * Math.sin(lng / 3.0 * PI)) * 2.0 / 3.0;\r\n ret += (150.0 * Math.sin(lng / 12.0 * PI) + 300.0 * Math.sin(lng / 30.0 * PI)) * 2.0 / 3.0;\r\n return ret\r\n };\r\n\r\n /**\r\n * 判断是否在国内,不在国内则不做偏移\r\n * @param lng\r\n * @param lat\r\n * @returns {boolean}\r\n */\r\n var out_of_china = function out_of_china(lng, lat) {\r\n var lat = +lat;\r\n var lng = +lng;\r\n // 纬度3.86~53.55,经度73.66~135.05 \r\n return !(lng > 73.66 && lng < 135.05 && lat > 3.86 && lat < 53.55);\r\n };\r\n\r\n return {\r\n bd09togcj02: bd09togcj02,\r\n gcj02tobd09: gcj02tobd09,\r\n wgs84togcj02: wgs84togcj02,\r\n gcj02towgs84: gcj02towgs84\r\n }\r\n}));","import axios from \"axios\";\r\nimport { notification } from 'antd';\r\nimport { Mode } from '../App';\r\nlet http = {\r\n post: '',\r\n get: ''\r\n}\r\n\r\naxios.interceptors.request.use(config => {\r\n config.headers = {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n 'Authorization': `Bearer ${localStorage.getItem('token')}`\r\n };\r\n return config\r\n}, (err) => {\r\n return Promise.reject(err);\r\n})\r\n\r\nhttp.post = function (api, data) {\r\n return new Promise((resolve, reject) => {\r\n var url =\"\";\r\n if(Mode==='local'){\r\n url=\"http://127.0.0.1:8086\"; \r\n }\r\n axios.post(url+api, data).then((res) => {\r\n if (api.indexOf(\"/v1/\") > -1 || api.indexOf(\"/v3/\") > -1) {\r\n console.log('postres'+res);\r\n if (res.data.code == 0) {\r\n notification['success']({\r\n message: '操作成功',\r\n description: '',\r\n duration: 2,\r\n });\r\n }else{\r\n if(res.data.msg==='命令已缓存'){\r\n notification['success']({\r\n message: '操作成功',\r\n description: res.data.msg,\r\n duration: 2,\r\n });\r\n }else{\r\n notification['error']({\r\n message: '操作失败',\r\n description: res.data.msg,\r\n duration: 2,\r\n });\r\n }\r\n }\r\n // if (res.data.code == 200) {\r\n \r\n // }\r\n }\r\n resolve(res.data)\r\n })\r\n })\r\n}\r\n\r\nhttp.get = function (api, data) {\r\n return new Promise((resolve, reject) => {\r\n var url =\"\";\r\n if(Mode==='local'){\r\n url=\"http://127.0.0.1:8086\"; \r\n }\r\n axios.get(url+api, data).then((res) => {\r\n if (res.data.code == 999) {\r\n //密钥失败\r\n console.log(\"密钥过期\")\r\n if (window.require) {\r\n const electron = window.require('electron');\r\n if (electron !== undefined) {\r\n const { ipcRenderer } = electron;\r\n ipcRenderer.send('close')\r\n }\r\n }\r\n }\r\n resolve(res.data)\r\n })\r\n })\r\n}\r\n\r\nhttp.put = function (api, data) {\r\n // console.log(data)\r\n return new Promise((resolve, reject) => {\r\n var url =\"\";\r\n if(Mode==='local'){\r\n url=\"http://127.0.0.1:8086\"; \r\n }\r\n axios.put(url+api, data).then((res) => {\r\n if (res.data.code == 0) {\r\n notification['success']({\r\n message: '操作成功',\r\n description: '',\r\n duration: 2,\r\n });\r\n }\r\n if (res.data.code == 200) {\r\n notification['error']({\r\n message: '操作失败',\r\n description: res.data.msg,\r\n duration: 2,\r\n });\r\n }\r\n resolve(res.data)\r\n })\r\n })\r\n}\r\n\r\nhttp.delete = function (api, data) {\r\n return new Promise((resolve, reject) => {\r\n var url =\"\";\r\n if(Mode==='local'){\r\n url=\"http://127.0.0.1:8086\"; \r\n }\r\n axios.delete(url+api, data).then((res) => {\r\n if (res.data.code == 0) {\r\n notification['success']({\r\n message: '操作成功',\r\n description: '',\r\n duration: 2,\r\n });\r\n }\r\n if (res.data.code == 200) {\r\n notification['error']({\r\n message: '操作失败',\r\n description: res.data.msg,\r\n duration: 2,\r\n });\r\n }\r\n resolve(res.data)\r\n })\r\n })\r\n}\r\n\r\nexport default http","export default __webpack_public_path__ + \"static/media/backgroundCustomer.7280b672.png\";","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAIA0lEQVR4Xu2djZEbRRCFzxFgR4CIAByBRQQ2ESAisB0BRwSYCJAjwESAiMAmAuQIcAbQH15VHUbz1zuz0vW+rprSnXZ6tvv1m57e2b3bBzeSVSPwYNXey/kbEWDlJBABRICVI7By95UBRICVI7By95UBRICrReChWfaVta21z6af+Y62BnlnTn6w9n763E+fXX2/xgxAwL+19mxFwa4N6sE6/m7ttlah1O+aCEDgn0+BL9mt4zc3Lw2EV3OBuAYCkNK/t7bTjG8OJ8vEd9b4dMmlCUDwf9asd8XurtI39ssbzyiXJADBf2tt4zFcOv9D4Af75rYVl0sRgOD/Ym3barD6ZxFgOdi3YHQpAhB8qvyScBnE+kble7DG77Q1CJfAyJMJq02l019PWFV1vwQBXphlP1ZYR8CpdN0FTsU57lMXJgy4lYjABHlU69jSBCD1/2ktt5mDA6xnsy9xakG4Z/0gAZMoJ9X1wNIEKBl/NK8eW1tLmvdyj2zAMpoS8ANH8MzKkgQozX6M5nLmUDJax/9FoDSZ9taHovBqCLAzS7jmT0mXna2Sw8GOcxl9KhY/da2qFlgyA/xmFm4TAWATg9kvaUOA4EOClLAMZIvoJQnwd8ZQ905WG14he+eyAIU0mTUpSxEgx9SqVBUydH2c2tkwqaW1mFmXIkDOyIM5wOaFxIfAxtS4tD4nR/vyi0tlAKp+Zj7ttJuVMhISRBIe4gB8GmvwyMtacP4rAV4xu/bOABjDJsXTKfCRgjrHFwjOdvZ+IsWcsc7pQoDU5hq7gkkC9iIAJ9c9/bqwQgJ26sgOveRiBDjNeJ7kyW3v9nI00jjFCr3B2YsQgIDrYY6GKJ3pSn1AATy3RlicAARf9/PnBf+kzVLAPkh2w6ZwqkUJQPDZ1UttQfaBZV2jkAG4XPNmgkUJUPswByHEof0USy6NvA7eNzpszODPrW2t8XONkAHYuvXIYgS4Neuo9ktysA56mOMjSpCAv3PYlUCz48Wdu8QYixAAJrPvnKv2meHcgsQRyX8RYMkke4JjToo3cM4oL0IAKv4ci0lhFDNHRT6JQE39dDDt1q3x4QTYmlEUfikh6Bit4JfZX0OC1rujwwlwa37l1v6mJ1HLGIXvwTKQuoGD83trxad57qA0nAAYi9HnxFu4hI9ywcHcklq8ifPJ2EMJQPEy66mTtUc64T9LQeouHiotWXUoAbi7l3qOf861q3jxsa7aJoCofrR7ItKwu4G59b/nDY01EiI3uVrqgKEZILdWUahgqMSHwDNTSz3f31JbDSVAbuu39XLFB1NcrVx91bK8DiVAbp1qKVTihtHvmQjgxy6EpggQIox+J0QAP3YhNEWAEGH0OyEC+LELoSkChAij3wkRwI9dCE0RIEQY/U6IAH7sQmiKACHC6HdCBPBjF0JTBAgRRr8TIoAfuxCaIkCIMPqdEAH82IXQFAFChNHvhAjgxy6EpggQIox+J0QAP3YhNEWAEGH0OyEC+LELoSkChAij3wkRwI9dCE0RIEQY/U6IAH7sQmiKACHC6HdCBPBjF0JTBAgRRr8TIoAfuxCaIkCIMPqdEAH82IXQFAFChNHvhAjgxy6EpggQIox+J0QAP3YhNEWAEGH0OyEC+LELoSkChAij3wkRwI9dCE0RIEQY/U6IAH7sQmj2IMDGkBj68mj9p9BxXOtBgFlj1Lw7WAS4bgK8MPNS/87/YMey7x8SAcYFt2bkWbN3OsGsdw6IADVhGtdnLgFysx+ri//MWwQYF9yakecQ4OFU/PF5Tj7Yl49KRogAJYTGHp9DgNJ7HKteOSMCjA1waXQPAZjxvMKP9J8SZn/Vy6hFgFKIxh5vJQD9mfl85qRq9jOACDA2wKXRawnArN9NMz+15p/O9c5+oPgjCxRFBChCNLRDjgAE8CdrT6YZXwo8hqJD8CFBlYgAVTAN65QjgOekzW9xEwE8MPfT6UUAZv5La/tW00SAVsT69u9BAILPzH/jMU0E8KDWT2cuAQ7TzK9e8z81XQToF0zPSF4CMOu51HvlOeldHRFgLoLz9FsIQNCZ6VwZMPOrLvNK5tUQQO8OLqHoP741Ve7mnZPjtK6/nwLO712C3poBuNec2nak8pydhvz43XvNnXnABDsne/uS4m6o1GSAW7OAvedzQuXJC6QlPgRyL+ZmYjHBhkoNAZ6ZBalXnJOSqm46DPXifg7Ozt5ba5uE+Yu8mb2GANiXez159Y2H+xmnYVazrKYe5eKkTKzjsLNPA9cSIFcIkgUeL2HsaDAWHL80+xdbWmsJkFsGwO1gjZsQkjoEcms/IyyS/jlRLQHoy7Pnm4x/ezs2vGqtw/eqe92adamiGsMXrataCFDKAsoEed6R9lnzdwV6Lnpp3UIA7M49gnzyy31n6qrn7TzjtqZOHZXLoBeZQK0EgMUsBXyWBCKwLPw6dTxO6a2kF+E4gaax1ft0+iz5BV6s/YdSx57HWwnAuVv2r3vaGnksgu++pTsHGA8BON/WWmoPe449a9VtfpKnF1BeApwyASSoWQ562RttnIvN/BOQcwjAGAQfErAsSNoQ4NYua/6xTa1v77kEOFnDtuZza5u+5oUcjVnP9vneWvfbu62I9SLAXSJQ9W5bDVlBf2b862sJ/Anv3gQ4jcvSsLP25ZQV+H1N2YG0fkrtf9jP7O1DgKuTUQS4Okdl0HkERICVM0MEEAFWjsDK3VcGEAFWjsDK3VcGEAFWjsDK3f8HSHFkn5tKsbEAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAADKklEQVR4Xu2VvVECYRiE7wIgtYRLUEISHVM7sAQtgRKsAEqwA1swdUgIZUjoQHJmOLnMkIPlm1n3Ib7b259nXuqKX3QDdXR6wlcAEA4BAABAeAPh8bkAABDeQHh8LgAAhDcQHp8LAADhDYTH5wIAQHgD4fG5AAAQ3kB4fC4AAIQ3EB6fCwAA4Q2Ex+cCAEB4A+HxuQAAEN5AeHwuAACENxAenwsAAOENhMfnAgBAeAPh8bkAABDeQHh8LgAAhDcQHp8LAADhDYTH5wIAQHgD4fG5AAAQ3kB4fC4AAIQ3EB6fCwAA4Q2Ex+cCAEB4A+HxuQAAEN5AeHwuAACENxAenwsAAOENhMfnAgBAeAPh8bkAABDeQHh8LgAAhDcQHp8LAADhDYTH5wIAQLkGmmZ6MxgMmnJf9PvSZrNclXRd5AJMJo9NezjMj8GeS4az/VbbLtab5ayE/yIA3N0+fDB+vznrtn393izf+73V/+mrA9Cd/dFw+NPfWvgbbft5vAJP124BAK7d8Ln6/wWALj9/AWdQUNez9fprccabvV65+gXo3HR/A8PhaF5X7Usvd5kP76q6fisxfldvEQD+7jge308zdz0t9X6/3263q91pT1/+VHEALreMgrIBAFC2aagFAIajKS0DgLJNQy0AMBxNaRkAlG0aagGA4WhKywCgbNNQCwAMR1NaBgBlm4ZaAGA4mtIyACjbNNQCAMPRlJYBQNmmoRYAGI6mtAwAyjYNtQDAcDSlZQBQtmmoBQCGoyktA4CyTUMtADAcTWkZAJRtGmoBgOFoSssAoGzTUAsADEdTWgYAZZuGWgBgOJrSMgAo2zTUAgDD0ZSWAUDZpqEWABiOprQMAMo2DbUAwHA0pWUAULZpqAUAhqMpLQOAsk1DLQAwHE1pGQCUbRpqAYDhaErLAKBs01ALAAxHU1oGAGWbhloAYDia0jIAKNs01AIAw9GUlgFA2aahFgAYjqa0DADKNg21AMBwNKVlAFC2aagFAIajKS0DgLJNQy0AMBxNaRkAlG0aagGA4WhKywCgbNNQCwAMR1NaBgBlm4ZaAGA4mtIyACjbNNT6BTZGN4Hk19QKAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAFWUlEQVR4Xu2di1EUQRCGIQNCwAwgA4lAzAAz0AjECNQIJAM0AslAQrgMMAT7L28LgfNud2a69+/HVE0Vxe3udPf37eyD3eP4qFrqChynzr6SPyoBkktQApQAySuQPP2aAUqA5BVInn7NACVA8gokT79mgBIgeQWSp18zQAmQvALJ068ZoARIXoHk6dcMUAIkr0Dy9GsGKAGSVyB5+lYzwInU+VT6b+mb5DWnSl9bgDPJ9tsWPiRAu5f+VfoNVSWSBqMpwGup6a30CfzzEn+SX1wnrfuctFG399LfbGuIHefH6B1HSwAE/1M6ZoB97Yt8+GFONZIts2/ngQjno+qhJQDM/TwzyJLgaaFQu497Zk4s/V3625n13buYlgA47l8tCLAk+FusOfCnsr6SHzYLarxzUS0BsPcjmSUtuwRL4KOuOHSiZl1NS4Dr7TS2NLisEiyFj7oOqZWWADgJfFhKf7v8kMQax15jtRb49DMAAryUjsvAlpZFglb4uKF2IR1XBF1NawaYgmo5F5jWjS5BK/xh0z82pC0AxigJXu6jPfDvZHO4BMQs0N0sBCgJnmKigW81A9Th4FEAKvjWAmSfCejgryFAVgko4a8lQDYJaOGvKUAWCajhry1AdAno4TMIEFUCF/BZBIgmgRv4TAJEkcAVfDYBvEvgDj6jAF4lcAmfVQBvEriFzyyAFwlcw2cXgF0C9/A9CMAqQQj4XgRgkyAMfE8CsEjQA/9GksCj3EOe5EFBRjSrJ4JGxLq2BOHge5sBJonWeMYwJHyvAljPBGHhexbASoLQ8L0LoC1BePgRBNCSIAX8KAKMliAN/EgCjJIgFfxoAvRKcCcbOJN+0nDTgvImz5w8vN0ImpNTz32COdt/voxb+BFngBE3i5ZI4Bp+ZAF6DwdzJHAPP7oAmhKEgJ9BAA0JwsDPIsBICULBzyTACAnCwc8mAG7yzP320l0ngV/kl+G+1jbifYBd8Hru8P27vXASZBBgFPxJhFASRBdgNPxwEkQWQAt+KAmiCqANP4wEEQWwgh9CgmgC9MC/F6L4c3BLc3tiGEmAHvjTTR78pw5sp6W5lCCKACPgT2/s9DxP4E6CCAKMhD/t+Wkk8C6ABvxUEngWQBN+Ggm8CmABP4UEHgWwhB9eAm8CrAE/tASeBFgTflgJvAjAAD+kBB4EYIIfTgJ2ARjhh5KAWQBm+GEkYBXAA/wQEjAK4Am+ewnYBPAI37UETAJ4hu9WAhYBIsB3KQGDAJHgu5NgbQEiwnclwZoCRIbvRoK1BMgA34UEawiQCT69BNYCZIRPLYGlAJnh00pgJUDBf3zVhOqRcwsBCv7L94xoJNAWoOD//yWzHgneyWZvWt5fe76OpgAF/zChVgnwGtu59M3hIfYvoSXAiQz7S/ppQ4Awm+6/azXkMXeVVglQI7yL2NW0BMDe3/KNXNng91wdoFY4FHQ1LQG+SVRXCyPLCr9VgiFvImsJcCtZXS4QIDv8FgneykrfF9R456JaAlzLaPiyhTmt4D+t0pxzgjtZ5WJOcQ8toyUATgIfDg0unxf83UXatwPdyyo4AYQE3U1LAASGQwAOBf9rBX8/vjP5GLPB6+1iuPRDzT5Jx89DmqYACPBKOg4Fp/9Ei+CRBJIZlsiQavBuBPXbaISnLcAUM2YDHBaQBKawAq9Bs2GbVgI0hFarWFSgBLCoMvEYJQAxHIvQSgCLKhOPUQIQw7EIrQSwqDLxGCUAMRyL0EoAiyoTj1ECEMOxCK0EsKgy8RglADEci9BKAIsqE49RAhDDsQitBLCoMvEYJQAxHIvQSgCLKhOPUQIQw7EI7Q/i2ZuQBAEs7QAAAABJRU5ErkJggg==\"","export default __webpack_public_path__ + \"static/media/login.a604b10b.png\";","import React, { useEffect, useState } from 'react';\r\nimport { Button, message, Input, Checkbox,Modal,Tooltip } from 'antd';\r\nimport './Login.less';\r\nimport { UserOutlined, UnlockOutlined } from '@ant-design/icons';\r\nimport http from \"../../utils/server\";\r\nimport md5 from 'js-md5';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { Mode } from '../../App';\r\n// import backgroundJpg from '../../../public/assets/backgroundMeiHao.jpg';\r\nimport backgroundJpg from '../../../public/assets/backgroundCustomer.png';\r\n// import backgroundJpg from '../../../public/assets/background.png';\r\nimport sizeMax1 from '../../../public/assets/sizemax1.png'\r\nimport sizeMax2 from '../../../public/assets/sizemax2.png'\r\nimport sizeMini from '../../../public/assets/sizemini.png'\r\nimport closeForm from '../../../public/assets/closeForm.png'\r\n// import loginpng from '../../../public/assets/loginMeiHao.png';\r\nimport loginpng from '../../../public/assets/login.png';\r\nfunction Login() {\r\n let history = useHistory()\r\n const [username, setUsername] = useState('');\r\n const [password, setPassword] = useState('');\r\n const [isSaveLogin,setIsSaveLogin] = useState(false);\r\n // const [myConf,setMyConf] = useState({}); \r\n const [modal, contextHolder] = Modal.useModal();\r\n const [isShowTitle,setIsShowTitle] = useState(false);//本地登录是否显示最大化最小化关闭\r\n const [isMax,setIsMax] = useState(false);\r\n const config = {\r\n title: '系统提示',\r\n content: (\r\n <>\r\n
端口打开失败
\r\n \r\n ),\r\n };\r\n let timerOut='';\r\n // let isSaveLogin = false;\r\n useEffect(()=>{\r\n if (window.CefSharp !== undefined) {\r\n setTimeout(() => {\r\n http.get('/s/getserver',{}).then(data=>{\r\n if(data.code===0){\r\n if(!data.data.PortStatus){\r\n modal.error(config);\r\n message.error(\"端口打开失败\");\r\n }\r\n }\r\n })\r\n }, 60000);\r\n window.CefSharp.BindObjectAsync(\"bound\");\r\n let myConf =window.bound.getConfig();\r\n setUsername(myConf.isSaveLogin?myConf.userLogin:'');\r\n setPassword(myConf.isSaveLogin?myConf.pwd:'');\r\n setIsSaveLogin(myConf.isSaveLogin);\r\n if (window.bound.getMaxWindow){\r\n setIsShowTitle(true)\r\n let isMax = window.bound.getMaxWindow();\r\n setIsMax(isMax);\r\n }\r\n // isSaveLogin = myConf.isSaveLogin;\r\n }\r\n },[])\r\n useEffect(()=>{\r\n timerOut = setTimeout(() => {\r\n if(isSaveLogin){\r\n clearTimeout(timerOut);\r\n loginIn(username,password,true);\r\n }\r\n }, 5000);\r\n },[isSaveLogin,username,password])\r\n\r\n function loginIn(username, password,isAutoLogin) {\r\n clearTimeout(timerOut);\r\n if (username === '' || password === '' || username === undefined) {\r\n message.error({ content: '信息不完善', key: '1' });\r\n } else {\r\n http.post(\"/s/login\", { account: username, password: md5(password) }).then(data => {\r\n if (data.code === 0) {\r\n if (window.CefSharp !== undefined) {\r\n window.CefSharp.BindObjectAsync(\"bound\");\r\n isAutoLogin?window.bound.setLoginMode(true,username,password):\r\n window.bound.setLoginMode(false,username,password);\r\n window.bound.getIsLogin&&window.bound.getIsLogin(true);\r\n window.bound.setToken(data.data.token)\r\n }\r\n localStorage.setItem(\"token\", data.data.token);\r\n localStorage.setItem(\"tokenis\", true);\r\n // localStorage.setItem(\"type_\",data.data.type );\r\n // localStorage.setItem(\"role\",data.data.role );\r\n // localStorage.setItem(\"user_\", data.data.name);\r\n // localStorage.setItem(\"account_\", data.data.account);\r\n localStorage.getItem('show')===null&&localStorage.setItem('show','0');\r\n message.success(\"登录成功\");\r\n Mode ==='soc' ?\r\n history.push('/')\r\n :\r\n history.push('/monitor/data');\r\n } else {\r\n message.error({ content: data.msg, key: '2' })\r\n setIsSaveLogin(false)\r\n // isSaveLogin = false;\r\n }\r\n })\r\n }\r\n }\r\n\r\n return (\r\n
\r\n {/*
\r\n
{Mode !== 'soc'?\"自动化监测软件\":'温湿度监测云平台'}
\r\n
专业、专注
\r\n
*/}\r\n \r\n {\r\n\r\n isShowTitle&&\r\n
\r\n
\r\n \r\n {/* _ */}\r\n \"\"{\r\n window.CefSharp.BindObjectAsync(\"bound\");\r\n window.bound.minWindow()\r\n }}/>\r\n \r\n \r\n \"\"{\r\n window.CefSharp.BindObjectAsync(\"bound\");\r\n window.bound.setMaxWindow()\r\n setIsMax(!isMax)\r\n }}/>\r\n \r\n \r\n \"\"{\r\n window.CefSharp.BindObjectAsync(\"bound\");\r\n window.bound.closeWindow()\r\n }}/> \r\n \r\n
\r\n }\r\n
\r\n {/*
*/}\r\n {/* \"登录\" */}\r\n {/* \"登录\" */}\r\n
\r\n {/*
*/}\r\n
\r\n
欢迎登录
\r\n {/* {Mode==='soc'&&} */}\r\n \r\n }\r\n placeholder='用户名'\r\n value={username}\r\n onChange={(e) => { setUsername(e.target.value) }}\r\n autoFocus={true}\r\n onPressEnter={(e)=>{\r\n loginIn(document.getElementsByTagName('input')[0].value, document.getElementsByTagName('input')[1].value,isSaveLogin?true:false);\r\n }}\r\n />\r\n\r\n }\r\n placeholder='密码'\r\n value={password}\r\n type='password'\r\n onChange={(e) => setPassword(e.target.value)}\r\n onPressEnter={(e)=>{\r\n loginIn(document.getElementsByTagName('input')[0].value, document.getElementsByTagName('input')[1].value,isSaveLogin?true:false);\r\n }}\r\n />\r\n \r\n {\r\n Mode!=='soc'&&\r\n
\r\n {\r\n clearTimeout(timerOut)\r\n let temp = e.target.checked;\r\n setIsSaveLogin(temp);\r\n if (window.CefSharp !== undefined ) {\r\n if(temp){\r\n timerOut=setTimeout(() => {\r\n loginIn(username, password,true)\r\n }, 2000);\r\n }else{\r\n window.bound.setLoginMode(false,username,password);\r\n }\r\n }\r\n }}>自动登录\r\n
\r\n }\r\n \r\n
{Mode !== 'soc'?\"自动化监测软件\":'监测云平台 v_3.0'}
\r\n
\r\n
\r\n
\r\n )\r\n}\r\nexport default Login;","import {\r\n DashboardOutlined,\r\n FundProjectionScreenOutlined,\r\n FieldTimeOutlined,\r\n AlertOutlined,\r\n CarryOutOutlined,\r\n DeliveredProcedureOutlined,\r\n ControlOutlined,\r\n VideoCameraOutlined,\r\n UngroupOutlined,\r\n TeamOutlined,\r\n DatabaseOutlined,\r\n BranchesOutlined,\r\n NodeIndexOutlined,\r\n PullRequestOutlined,\r\n QuestionCircleOutlined,\r\n SafetyCertificateOutlined,\r\n BarsOutlined,\r\n} from '@ant-design/icons';\r\n\r\n\r\nconst menu = [\r\n // 仪表盘\r\n {\r\n name: '仪表盘',\r\n key: '1',\r\n path: '/',\r\n auth: false,\r\n local: true,\r\n u_type: 104,\r\n icon: < DashboardOutlined />,\r\n }, \r\n // 数据监控\r\n {\r\n name: '数据监控',\r\n path: '/monitor',\r\n auth: false,\r\n local: true,\r\n u_type: 104,\r\n icon: < DatabaseOutlined />,\r\n key: '2',\r\n child: [{\r\n name: '实时数据',\r\n key: '2-1',\r\n auth: false,\r\n local: true,\r\n soc: true,\r\n role: '301',\r\n u_type: 104,\r\n icon: < FundProjectionScreenOutlined />,\r\n path: '/monitor/data'\r\n }, \r\n {\r\n name: '历史数据',\r\n key: '2-2',\r\n auth: false,\r\n local: true,\r\n soc: true,\r\n role: '301',\r\n u_type: 104,\r\n icon: < FieldTimeOutlined />,\r\n path: '/monitor/records'\r\n }, \r\n {\r\n name: '轨迹位置',\r\n key: '2-3',\r\n auth: false,\r\n local: true,\r\n soc: true,\r\n role: '301',\r\n u_type: 104,\r\n icon: ,\r\n path: '/monitor/map'\r\n }, \r\n {\r\n name: '报警数据',\r\n key: '2-4',\r\n auth: false,\r\n local: true,\r\n soc: true,\r\n role: '301',\r\n u_type: 104,\r\n icon: < AlertOutlined />,\r\n path: '/monitor/alarm'\r\n }, \r\n {\r\n name: '操作日志',\r\n key: '2-5',\r\n auth: false,\r\n local: true,\r\n soc: true,\r\n role: '301',\r\n u_type: 104,\r\n icon: < CarryOutOutlined />,\r\n path: '/monitor/operation'\r\n }, \r\n // {\r\n // name: '备份管理',\r\n // key: '2-6',\r\n // auth: false,\r\n // local: true,\r\n // soc: true,\r\n // u_type: 104,\r\n // icon: < DeliveredProcedureOutlined />,\r\n // path: '/monitor/backup'\r\n // },\r\n // {\r\n // name: '续费管理',\r\n // key: '2-7',\r\n // auth: false,\r\n // local: false,\r\n // soc: true,\r\n // u_type: 104,\r\n // icon: < DeliveredProcedureOutlined />,\r\n // path: '/monitor/pay'\r\n // }\r\n ]},\r\n // 管理\r\n {\r\n name: '管理',\r\n path: '/manage',\r\n auth: false,\r\n local: true,\r\n u_type: 103,\r\n icon: < BranchesOutlined />,\r\n key: '3',\r\n child: [{\r\n name: '订单管理',\r\n key: '3-3',\r\n auth: false,\r\n local: false,\r\n soc: true,\r\n role: '306',\r\n u_type: 103,\r\n icon: ,\r\n path: '/manage/transport'\r\n }, {\r\n name: '视频管理',\r\n key: '3-4',\r\n auth: false,\r\n local: false,\r\n soc: true,\r\n role: '311',\r\n u_type: 103,\r\n icon: < VideoCameraOutlined />,\r\n path: '/manage/video'\r\n }, {\r\n name: '用户管理',\r\n key: '3-6',\r\n auth: false,\r\n local: false,\r\n soc: true,\r\n role: '309',\r\n u_type: 103,\r\n icon: < TeamOutlined />,\r\n path: '/manage/user'\r\n },{\r\n name: '区域管理',\r\n key: '3-1',\r\n auth: false,\r\n local: true,\r\n soc: false,\r\n role: '308',\r\n u_type: 103,\r\n icon: < ControlOutlined />,\r\n path: '/manage/area'\r\n },\r\n {\r\n name: '设备管理',\r\n key: '3-2',\r\n auth: false,\r\n local: true,\r\n soc: true,\r\n role: '307',\r\n u_type: 103,\r\n icon: < ControlOutlined />,\r\n path: '/manage/device'\r\n }, {\r\n name: '报警管理',\r\n key: '3-7',\r\n auth: false,\r\n local: true,\r\n soc: true,\r\n role: '302',\r\n u_type: 103,\r\n icon: < TeamOutlined />,\r\n path: '/manage/alarmuser'\r\n }, {\r\n name: '平面管理',\r\n key: '3-5',\r\n auth: false,\r\n local: true,\r\n soc: true,\r\n role: '310',\r\n u_type: 103,\r\n icon: < UngroupOutlined />,\r\n path: '/manage/hmi'\r\n }, \r\n {\r\n name: '用户管理',\r\n key: '3-10',\r\n auth: false,\r\n local: true,\r\n soc: false,\r\n role: '309',\r\n u_type: 103,\r\n icon: < BarsOutlined />,\r\n path: '/manage/localuser'\r\n },\r\n ]},\r\n // 帮助\r\n {\r\n name: '帮助',\r\n key: '4',\r\n path: '/help',\r\n auth: false,\r\n local: false,\r\n role: '301',\r\n u_type: 104,\r\n icon: ,\r\n }, \r\n]\r\nexport default menu;","import React, { createContext, useReducer, useCallback } from 'react';\r\nexport const StateContext = createContext({})\r\nexport const MainContext = createContext({})\r\nexport const TimeFormatSeconds = function (time) {\r\n var d = time ? new Date(time) : new Date();\r\n var year = d.getFullYear();\r\n var month = d.getMonth() + 1;\r\n var day = d.getDate();\r\n var hours = d.getHours();\r\n var min = d.getMinutes();\r\n var seconds = d.getSeconds();\r\n\r\n if (month < 10) month = '0' + month;\r\n if (day < 10) day = '0' + day;\r\n if (hours < 0) hours = '0' + hours;\r\n if (min < 10) min = '0' + min;\r\n if (seconds < 10) seconds = '0' + seconds;\r\n\r\n return (year + '-' + month + '-' + day + ' ' + hours + ':' + min + ':' + seconds);\r\n}\r\nexport const OPERATIONTYPE = ['增', '改', '删']\r\n\r\nexport const State = props => {\r\n const reducer = (state, action) => {\r\n switch (action.type) {\r\n case 'panes':\r\n return {\r\n ...state,\r\n panes: action.panes\r\n }\r\n case 'devicestate':\r\n return {\r\n ...state,\r\n devicestate: action.devicestate\r\n }\r\n case 'operationdetails':\r\n return {\r\n ...state,\r\n operationdetails: action.operationdetails\r\n }\r\n case 'permissiontype':\r\n return {\r\n ...state,\r\n permissiontype: action.permissiontype\r\n }\r\n case 'permission':\r\n return {\r\n ...state,\r\n permission: action.permission\r\n }\r\n case 'operation':\r\n return {\r\n ...state,\r\n operation: action.operation\r\n }\r\n case 'history':\r\n return {\r\n ...state,\r\n history: action.history\r\n }\r\n case 'alarminfo':\r\n return {\r\n ...state,\r\n alarminfo: action.alarminfo\r\n }\r\n case 'alarmlog':\r\n return {\r\n ...state,\r\n alarmlog: action.alarmlog\r\n }\r\n case 'main': {\r\n return {\r\n ...state,\r\n main: action.main\r\n }\r\n }\r\n case 'device':\r\n return {\r\n ...state,\r\n device: action.device\r\n }\r\n case 'node':\r\n return {\r\n ...state,\r\n node: action.node\r\n }\r\n case 'nodemap':\r\n return {\r\n ...state,\r\n nodemap: action.nodemap\r\n }\r\n case 'gateway':\r\n return {\r\n ...state,\r\n gateway: action.gateway\r\n }\r\n case 'devicetype':\r\n return {\r\n ...state,\r\n devicetype: action.devicetype\r\n }\r\n case 'addresstype':\r\n return {\r\n ...state,\r\n addresstype: action.addresstype\r\n }\r\n case 'goodstype':\r\n return {\r\n ...state,\r\n goodstype: action.goodstype\r\n }\r\n case 'address':\r\n return {\r\n ...state,\r\n address: action.address\r\n }\r\n case 'goods':\r\n return {\r\n ...state,\r\n goods: action.goods\r\n }\r\n case 'transport':\r\n return {\r\n ...state,\r\n transport: action.transport\r\n }\r\n case 'transuser':\r\n return {\r\n ...state,\r\n transuser: action.transuser\r\n } \r\n case 'addressuser':\r\n return {\r\n ...state,\r\n addressuser: action.addressuser\r\n } \r\n case 'tusertype':\r\n return {\r\n ...state,\r\n tusertype: action.tusertype\r\n } \r\n case 'datadictionary':\r\n return {\r\n ...state,\r\n datadictionary: action.datadictionary\r\n }\r\n case 'district': \r\n return {\r\n ...state,\r\n district: action.district\r\n }\r\n case 'project':\r\n return {\r\n ...state,\r\n district: action.project\r\n }\r\n case 'systemuser':\r\n var ulist = new Array();\r\n var ulist1 = new Array();//不含普通用户的树形结构 \r\n function findParentuser(nop, list, child,mode) {\r\n if (list) {\r\n const nops = list.filter(x => { return x.parent === nop })\r\n if (nops.length === 0) {\r\n return\r\n } else {\r\n const nopUser = list.filter(x => x.id === nop )\r\n let nopTitle = '';\r\n if(nopUser.length>0){\r\n nopTitle = nopUser[0].title\r\n }\r\n let x = 0;\r\n for (var j = 0; j < nops.length; j++) {\r\n var u = new Object\r\n u.key = nops[j].id\r\n u.title = nops[j].title\r\n u.titles = nops[j].title\r\n u.label = mode?nops[j].name:nops[j].title\r\n u.text = nops[j].title\r\n u.value = nops[j].id\r\n u.account = nops[j].account\r\n u.name = nops[j].name\r\n u.type = nops[j].type\r\n u.parent = nops[j].parent\r\n u.id = nops[j].id\r\n u.smscount = nops[j].smscount\r\n u.smssendcount = nops[j].smssendcount\r\n u.phonesendcount = nops[j].phonesendcount\r\n u.phonecount = nops[j].phonecount\r\n u.wechatcount = nops[j].wechatcount\r\n u.company = nops[j].company\r\n u.custom = nops[j].custom\r\n u.children = new Array()\r\n u.nodes = new Array()\r\n if(u.titles===nopTitle){\r\n child.splice(x,0,u)\r\n x+=1;\r\n }else{\r\n child.push(u);\r\n }\r\n // u.titles===nopTitle?child.unshift(u):\r\n // child.push(u);\r\n findParentuser(nops[j].id, list, u.children,mode)\r\n findParentuser(nops[j].id, list, u.nodes,mode)\r\n }\r\n }\r\n }\r\n }\r\n if (state.main.type < 102) {\r\n let tempuser = action.systemuser.filter(x=>x.type!==100);\r\n findParentuser(0, tempuser, ulist,true);\r\n findParentuser(0, tempuser.filter(x=>x.type!==104), ulist1);\r\n }else {\r\n let userLogin = action.systemuser.length>0?action.systemuser[0]:false\r\n var u = new Object\r\n u.key = state.main.id\r\n u.title = state.main.title\r\n u.titles = state.main.title\r\n u.text = state.main.title\r\n u.label = state.main.name\r\n u.value = state.main.id\r\n u.account = state.main.account\r\n u.name = state.main.name\r\n u.type = state.main.type\r\n u.parent = state.main.parent\r\n u.id = state.main.id\r\n u.smscount = userLogin&&userLogin.smscount\r\n u.smssendcount = userLogin&&userLogin.smssendcount\r\n u.wechatcount = userLogin&&userLogin.wechatcount\r\n u.phonesendcount = userLogin&&userLogin.phonesendcount\r\n u.phonecount = userLogin&&userLogin.phonecount\r\n u.company = userLogin&&userLogin.company\r\n u.custom = userLogin&&userLogin.custom\r\n u.children = new Array()\r\n u.nodes = new Array()\r\n findParentuser(state.main.id, action.systemuser, u.children,true)\r\n findParentuser(state.main.id, action.systemuser, u.nodes,true)\r\n ulist.push(u);\r\n var u1 = new Object\r\n u1.key = state.main.id\r\n u1.title = state.main.title\r\n u1.titles = state.main.title\r\n u1.text = state.main.title\r\n u1.label = state.main.title\r\n u1.value = state.main.id\r\n u1.account = state.main.account\r\n u1.name = state.main.name\r\n u1.type = state.main.type\r\n u1.parent = state.main.parent\r\n u1.id = state.main.id\r\n u1.smscount = userLogin&&userLogin.smscount\r\n u1.smssendcount = userLogin&&userLogin.smssendcount\r\n u1.wechatcount = userLogin&&userLogin.wechatcount\r\n u1.company = userLogin&&userLogin.company\r\n u1.custom = userLogin&&userLogin.custom\r\n u1.phonesendcount = userLogin&&userLogin.phonesendcount\r\n u1.phonecount = userLogin&&userLogin.phonecount\r\n u1.children = new Array()\r\n u1.nodes = new Array()\r\n findParentuser(state.main.id, action.systemuser.filter(x=>x.type!==104), u1.children);\r\n ulist1.push(u1);\r\n }\r\n function clearchildrenisZero(list) {\r\n for (var i = 0; i < list.length; i++) {\r\n if (list[i].children) {\r\n if (list[i].children.length === 0) {\r\n list[i].children = null\r\n } else {\r\n clearchildrenisZero(list[i].children)\r\n }\r\n }\r\n }\r\n }\r\n clearchildrenisZero(ulist)\r\n // console.log(ulist)\r\n return {\r\n ...state,\r\n systemuser: { tree: ulist, list: action.systemuser,treeM:ulist1, }\r\n }\r\n case 'video':\r\n return {\r\n ...state,\r\n video: action.video\r\n }\r\n case 'user_district':\r\n return {\r\n ...state,\r\n user_district: action.user_district\r\n }\r\n case 'hmi':\r\n return {\r\n ...state,\r\n hmi: action.hmi\r\n }\r\n case 'alarmtype':\r\n return {\r\n ...state,\r\n alarmtype: action.alarmtype\r\n }\r\n case 'alarmsuer':\r\n return {\r\n ...state,\r\n alarmsuer: action.alarmsuer\r\n }\r\n case 'alarmSound':\r\n return{\r\n ...state,\r\n alarmSound:action.alarmSound\r\n }\r\n case 'setState':\r\n return{\r\n ...state,\r\n setState:action.setState\r\n }\r\n case 'super':\r\n return{\r\n ...state,\r\n super:action.super\r\n }\r\n case 'selUser_dev':\r\n return{\r\n ...state,\r\n selUser_dev:action.selUser_dev\r\n }\r\n default:\r\n return state\r\n }\r\n }\r\n const [state, dispatch] = useReducer(reducer, {\r\n permissiontype: [],\r\n alarminfo: [],\r\n datadictionary: [],\r\n main: [],\r\n device: [],\r\n gateway: [],\r\n devicetype: [],\r\n district: [],\r\n user_district: [],\r\n nodemap: [],\r\n systemuser: { tree: [], list: [] },\r\n video: [],\r\n hmi: [],\r\n project: [],\r\n node: [],\r\n devicestate: [],\r\n address: [],\r\n addresstype: [],\r\n transport: [],\r\n goodstype: [],\r\n goods: [],\r\n transuser:[],\r\n goods:[],\r\n alarmtype: [],\r\n alarmsuer: [],\r\n alarmSound:false,\r\n addressuser:[],\r\n panes:[],\r\n operation:[],\r\n setState:0,//设置参数权限\r\n super:0,//导出excel权限\r\n selUser_dev:'',//到期提醒用户\r\n })\r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n}","import React, { useEffect, useState, useContext } from 'react'\r\nimport { Button, Menu, } from 'antd';\r\nimport menulist from './menu'\r\nimport { StateContext } from './state';\r\nimport { Link } from 'react-router-dom';\r\n// import { MenuOutlined, AppstoreOutlined } from '@ant-design/icons';\r\nimport './silder.less'\r\nconst { SubMenu } = Menu;\r\nfunction Sider() {\r\n\r\n const [SiderWidth, setSiderWidth] = useState(80)\r\n const [SelectMenu, setSelectMenu] = useState([\"1\"]);\r\n const { state, dispatch } = useContext(StateContext)\r\n useEffect(() => {\r\n var path = window.location.hash\r\n for (var i = 0; i < menulist.length; i++) {\r\n\r\n if ('#' + menulist[i].path === path) {\r\n setSelectMenu([menulist[i].key])\r\n break\r\n }\r\n if (menulist[i].child) {\r\n for (var j = 0; j < menulist[i].child.length; j++) {\r\n if ('#' + menulist[i].child[j].path === path) {\r\n setSelectMenu([menulist[i].key])\r\n break\r\n }\r\n }\r\n }\r\n }\r\n // dispatch({ type: 'panes', panes:[{title:'仪表盘',content:menulist[0].path,key:menulist[0].key}] })\r\n }, [])\r\n return (\r\n
\r\n
{\r\n let temp = document.getElementsByClassName('hisshow');\r\n if (SiderWidth === 200) {\r\n setSiderWidth(80);\r\n if (temp.length>0){\r\n let list = Array.from(temp);\r\n list.map(item=>{\r\n let name = item.className;\r\n if (name.indexOf('tableshow1')===-1){\r\n name = name+'1';\r\n item.className = name;\r\n } \r\n })\r\n \r\n }\r\n } else {\r\n setSiderWidth(200);\r\n if (temp.length>0){\r\n let list = Array.from(temp);\r\n list.map(item=>{\r\n let name = item.className;\r\n if (name.indexOf('tableshow1')!==-1){\r\n name = name.slice(0,-1);\r\n item.className = name;\r\n }\r\n })\r\n \r\n }\r\n }\r\n }}>\r\n \r\n {\r\n SiderWidth === 200 ?'<':'>'\r\n }\r\n
\r\n {/*
*/}\r\n \r\n {\r\n menulist.map((item, index) => { return(\r\n item.u_type >= state.main.type && (item.child ?\r\n \r\n {\r\n item.child.map((citem, cindex) => { return (\r\n (!citem.auth || (citem.auth && state.main.type === 101)) && citem.soc && citem.u_type >= state.main.type \r\n && state.main.role.indexOf(citem.role)>-1\r\n && (\r\n \r\n {citem.name}\r\n {/* */}\r\n \r\n ) \r\n )})\r\n }\r\n :\r\n {item.name})\r\n\r\n )})\r\n }\r\n \r\n {/*
*/}\r\n {/*
{ setSiderWidth(SiderWidth === 200 ? 80 : 200) }} style={{ height: 48, backgroundColor: '#001529', textAlign: 'center', padding: 12, cursor: 'pointer' }}>\r\n {\r\n SiderWidth === 200 ?\r\n :\r\n \r\n }\r\n
*/}\r\n
\r\n )\r\n}\r\n\r\nexport default Sider","export default __webpack_public_path__ + \"static/media/meihao.427a74b2.ico\";","export default __webpack_public_path__ + \"static/media/headBack.5db5b122.jpg\";","import React, { useContext, useState, useEffect } from 'react'\r\nimport { Menu, Dropdown, Modal, Space, Input, Checkbox, Form, Select, Button, Tooltip ,DatePicker, message,Table,Badge,Collapse} from 'antd'\r\nimport { SettingOutlined, SoundTwoTone, SoundFilled,BellOutlined } from '@ant-design/icons'\r\nimport { StateContext } from './state';\r\nimport { useHistory, useLocation } from 'react-router-dom'\r\nimport http from '../../utils/server'\r\nimport md5 from 'js-md5';\r\nimport menulist from './menu'\r\nimport { Link } from 'react-router-dom';\r\nimport './style.less'\r\nimport backUp from '../../../public/assets/backUp.png'\r\nimport sizeMax1 from '../../../public/assets/sizemax1.png'\r\nimport sizeMax2 from '../../../public/assets/sizemax2.png'\r\nimport sizeMini from '../../../public/assets/sizemini.png'\r\nimport closeForm from '../../../public/assets/closeForm.png'\r\nimport iconMeiHao from '../../../public/assets/meihao.ico'\r\nimport backgroundImage from '../../../public/assets/headBack.jpg'\r\n// import apknewDown from '../../../public/assets/apknewDown.png'\r\nimport { Mode } from '../../App';\r\nimport {moment} from 'moment'\r\nconst { SubMenu } = Menu;\r\nconst { Panel } = Collapse;\r\nconst { RangePicker } = DatePicker;\r\nfunction exportCsv(obj) {\r\n var title = obj.title;\r\n var titleForKey = Object.keys(obj.data[0]);\r\n var data = obj.data;\r\n var str = [];\r\n str.push(obj.title.join(\",\") + \"\\n\");\r\n for (var i = 0; i < data.length; i++) {\r\n var temp = [];\r\n for (var j = 0; j < titleForKey.length; j++) {\r\n temp.push(data[i][titleForKey[j]]);\r\n }\r\n str.push(temp.join(\",\") + \"\\n\");\r\n }\r\n var blob = new Blob(['\\uFEFF' + str.join('')], {\r\n type: 'text/plain;charset=utf-8',\r\n });\r\n var downloadLink = document.createElement(\"a\");\r\n downloadLink.href = URL.createObjectURL(blob);\r\n downloadLink.download = \"export.csv\";\r\n downloadLink.click();\r\n}\r\nfunction Config(props) {\r\n\r\n const [form] = Form.useForm();\r\n const [config, setConfig] = useState([]);\r\n const [coms, setComs] = useState([]);\r\n const [autoStart, setAutoStart] = useState(props.myConf.isAutoStart?true:false);\r\n const [regCode,setRegCode] = useState('');\r\n const [syncMon,setSyncMon]=useState('');\r\n const [isExitP,setIsExitP] = useState(props.myConf.isExitP?true:false);\r\n const [startTime, setStartTime] = useState('')//历史数据开始时间\r\n const [endTime, setEndTime] = useState('')\r\n useEffect(() => {\r\n \r\n http.get(\"/v1/getconfig\", {}).then(data => {\r\n if (data.code === 0) {\r\n setConfig(data.data)\r\n form.setFieldsValue(data.data)\r\n }\r\n })\r\n http.get(\"/v1/getcom\", {}).then(data => {\r\n if (data.code === 0) {\r\n setComs(data.data)\r\n }\r\n })\r\n http.get(\"/v1/regcode\", {}).then(data => {\r\n if (data.code === 0) {\r\n setRegCode(data.data)\r\n }\r\n })\r\n \r\n }, [])\r\n\r\n return (\r\n {\r\n http.post(\"/v1/setconfig\", { ...value, MODE: config.MODE ,\r\n DBHOST:config.DBHOST,DBP:config.DBP,DBU:config.DBU,\r\n HOST:config.HOST,HOSTACT:config.HOSTACT,HOSTPWD:config.HOSTPWD\r\n }).then(data => {\r\n if (data.code === 0) {\r\n form.setFieldsValue(data.data)\r\n }\r\n })\r\n }}>\r\n \r\n \r\n \r\n\r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n \r\n {\r\n coms.map(item => (\r\n {item}\r\n ))\r\n }\r\n \r\n \r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n \r\n \r\n
注册码:{regCode}
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n if (window.CefSharp !== undefined) {\r\n window.CefSharp.BindObjectAsync(\"bound\");\r\n let b= window.bound.setAutoStart(e.target.checked);\r\n if(b){\r\n setAutoStart(e.target.checked);\r\n }\r\n }\r\n }}>开机自启\r\n 设置/取消开机自启功能时,需要关闭程序。右击程序图标选择以管理员身份运行\r\n
\r\n
\r\n {/* {\r\n setSyncMon(dateString)\r\n console.log(dateString);\r\n }} /> */}\r\n\r\n {\r\n console.log(dates,dateStrings);\r\n if(dates===null){\r\n setStartTime('');\r\n setEndTime('');\r\n }else{\r\n setStartTime(dateStrings[0]);\r\n setEndTime(dates[1]!==null?dateStrings[1]:new Date().toString('yyyy-mm-dd'));\r\n } \r\n }}\r\n />\r\n \r\n
\r\n
\r\n {\r\n if (window.CefSharp !== undefined) {\r\n window.CefSharp.BindObjectAsync(\"bound\");\r\n window.bound.setExitP(e.target.checked);\r\n setIsExitP(e.target.checked)\r\n }\r\n }}>退出需要密码\r\n
\r\n
\r\n \r\n
\r\n \r\n )\r\n}\r\nfunction formatDateTimes(inputTime) {\r\n var date = new Date(inputTime);\r\n var y = date.getFullYear();\r\n var m = date.getMonth() + 1;\r\n m = m < 10 ? ('0' + m) : m;\r\n var d = date.getDate();\r\n d = d < 10 ? ('0' + d) : d;\r\n var h = date.getHours();\r\n h = h < 10 ? ('0' + h) : h;\r\n var minute = date.getMinutes();\r\n var second = date.getSeconds();\r\n minute = minute < 10 ? ('0' + minute) : minute;\r\n second = second < 10 ? ('0' + second) : second;\r\n return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;\r\n};\r\n\r\nfunction Header(props) {\r\n const { state, dispatch} = useContext(StateContext)\r\n let history = useHistory()\r\n let location= useLocation()\r\n const [showConfig, setShowConfig] = useState(false)\r\n const [repw, setrepw] = useState(false);\r\n const [npwo, setnpwo] = useState(\"\");\r\n const [npw1, setnpw1] = useState(\"\");\r\n const [npw2, setnpw2] = useState(\"\");\r\n const [msg, setmsg] = useState(\"\");\r\n const [menList,setMenList]=useState([]);\r\n const [showUserInfo,setShowUserInfo] = useState(false);\r\n const [showTitle, setShowTitle] = useState(\"\");\r\n const [myConf,setMyConf] = useState({}); \r\n const [devExp,setDevExp] = useState([]); //显示数据\r\n const [devExp_,setDevExp_] = useState([]);//导出数据源 \r\n const [devWarn,setDevWarn] = useState([]); //显示数据\r\n const [devWarn_,setDevWarn_] = useState([]); //导出数据源 \r\n const [simExp,setSimExp] = useState([]); //显示数据\r\n const [simExp_,setSimExp_] = useState([]);//导出数据源 \r\n const [simWarn,setSimWarn] = useState([]); //显示数据\r\n const [simWarn_,setSimWarn_] = useState([]); //导出数据源 \r\n const [showDev,setShowDev] = useState(false)\r\n const [showMode,setShowMode] = useState(1)\r\n const [msgCount,setMsgCount] = useState(0);//未读消息数量\r\n const [showMsgModal,setShowMsgModal] = useState(false);\r\n const [showMsg,setShowMsg] = useState('');\r\n const [nowTime,setNowTime] = useState('');\r\n const [isMax,setIsMax] = useState(false);\r\n const [isShowTitle,setIsShowTitle] = useState(false);\r\n let timer;\r\n function getDateTime(){\r\n var date = new Date();\r\n var y = date.getFullYear();\r\n var m = date.getMonth() + 1;\r\n m = m < 10 ? ('0' + m) : m;\r\n var d = date.getDate();\r\n d = d < 10 ? ('0' + d) : d;\r\n var h = date.getHours();\r\n h = h < 10 ? ('0' + h) : h;\r\n var minute = date.getMinutes();\r\n var second = date.getSeconds();\r\n minute = minute < 10 ? ('0' + minute) : minute;\r\n second = second < 10 ? ('0' + second) : second;\r\n setNowTime( h + ':' + minute +'\\r\\n'+y + '年' + m + '月' + d + '日');\r\n }\r\n useEffect(()=>{\r\n http.get(\"/v1/main\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'main', main: data.data })\r\n let tempList = [];\r\n menulist.filter(x=>x.local&& x.u_type>= data.data.type).map((item, index) =>{\r\n if(item.child){\r\n item.child.filter(x=>x.local&& x.u_type>= data.data.type&&data.data.role.indexOf(x.role)>-1).map(m=>{\r\n tempList.push(m)\r\n })\r\n }else{\r\n tempList.push(item)\r\n }\r\n })\r\n setMenList(tempList)\r\n } \r\n })\r\n if(props.local){\r\n getDateTime();\r\n clearInterval(timer);\r\n timer=setInterval(() => {\r\n getDateTime();\r\n }, 60000);\r\n return ()=>clearInterval(timer);\r\n }\r\n },[])\r\n useEffect(()=>{\r\n if(props.local !== undefined){\r\n Date.prototype.getYMD = function(){\r\n let retDate = this.getFullYear()+\"-\";\r\n let mm = this.getMonth()+1;\r\n if(mm<10){\r\n retDate+='0'+mm+\"-\"\r\n }else{\r\n retDate+=mm+\"-\"\r\n }\r\n let dd = this.getDate();\r\n if(dd<10){\r\n retDate+='0'+dd;\r\n }else{\r\n retDate+=dd;\r\n }\r\n return retDate;\r\n }\r\n \r\n props.local !== undefined && http.get(\"/v1/getconfig\", {}).then(data => {\r\n if (data.code === 0) {\r\n setShowTitle(data.data.Title);\r\n }\r\n })\r\n if (window.CefSharp !== undefined) {\r\n window.CefSharp.BindObjectAsync(\"bound\");\r\n let myConf =window.bound.getConfig();\r\n if (window.bound.getMaxWindow){\r\n setIsShowTitle(true)\r\n let isMax = window.bound.getMaxWindow();\r\n setIsMax(isMax);\r\n }\r\n if(myConf.loadData){\r\n var d1Ms = new Date(myConf.loadTimeS).getTime();\r\n let d2Ms = new Date(myConf.loadTimeE).getTime();\r\n let dayMs = 1000*60*60*24;\r\n let timer = setInterval(() => {\r\n if(d1Ms>d2Ms){\r\n clearInterval(timer)\r\n window.bound.setLoadData(false);\r\n } else{\r\n let day = new Date(d1Ms).getYMD();\r\n console.log(\"同步时间\"+day);\r\n http.post(\"/v1/setsync\", {mon:day}).then(data => console.log(data));\r\n d1Ms+=dayMs;\r\n }\r\n }, 60000);\r\n }\r\n }\r\n\r\n }else{\r\n // setMsgCount(3)\r\n // let msgStatus = JSON.parse(localStorage.getItem(\"msgStatus\"));\r\n // setShowMsg(msgStatus);\r\n // let ttmsg= msgStatus.filter(x=>!x.isRead);\r\n // setMsgCount(ttmsg.length);\r\n http.get(\"/v1/device\", {}).then(data => {\r\n if (data.code === 0) {\r\n if(data.data!==null&&data.data.length>0){\r\n let devList = data.data.filter(x=>x.node===1&&x.hide===0);\r\n let now = new Date().getTime();\r\n let devExpList = [];\r\n let devExpList_ = [];\r\n let devWarnList = [];\r\n let devWarnList_ = [];\r\n let columnId = 1;\r\n let simExpList = [];\r\n let simExpList_ = [];\r\n let simWarnList = [];\r\n let simWarnList_ = [];\r\n devList.map(m=>{\r\n let exp = new Date(m.expire).getTime();\r\n let simExp = new Date(m.iccid_expire).getTime();\r\n if (expnow){\r\n devExpList_.push(m)\r\n if(devExpList.findIndex(x=>x.user_name===m.user_name)===-1){\r\n devExpList.push({id:columnId,user_name:m.user_name,devs:[m],exp_date:m.expire})\r\n columnId++\r\n }else{\r\n devExpList.map((n,i)=>{\r\n if(n.user_name===m.user_name){\r\n devExpList[i].devs.push(m)\r\n if(new Date(devExpList[i].exp_date).getTime()>exp){\r\n devExpList[i].exp_date=m.expire\r\n }\r\n }\r\n })\r\n }\r\n }\r\n columnId=1;\r\n if (simExpnow){\r\n simExpList_.push(m)\r\n if(simExpList.findIndex(x=>x.user_name===m.user_name)===-1){\r\n simExpList.push({id:columnId,user_name:m.user_name,devs:[m],exp_date:m.iccid_expire})\r\n columnId++\r\n }else{\r\n simExpList.map((n,i)=>{\r\n if(n.user_name===m.user_name){\r\n simExpList[i].devs.push(m)\r\n if(new Date(simExpList[i].exp_date).getTime()>exp){\r\n simExpList[i].exp_date=m.iccid_expire\r\n }\r\n }\r\n })\r\n }\r\n }\r\n columnId=1;\r\n if (exp > now && (now+30*24*60*60*1000)>exp){\r\n devWarnList_.push(m)\r\n if(devWarnList.findIndex(x=>x.user_name===m.user_name)===-1){\r\n devWarnList.push({id:columnId,user_name:m.user_name,devs:[m],exp_date:m.expire})\r\n columnId++\r\n }else{\r\n devWarnList.map((n,i)=>{\r\n if(n.user_name===m.user_name){\r\n devWarnList[i].devs.push(m)\r\n }\r\n if(new Date(devWarnList[i].exp_date).getTime()>exp){\r\n devWarnList[i].exp_date=m.expire\r\n }\r\n })\r\n }\r\n }\r\n\r\n columnId=1;\r\n if (simExp > now && (now+30*24*60*60*1000)>simExp){\r\n simWarnList_.push(m)\r\n if(simWarnList.findIndex(x=>x.user_name===m.user_name)===-1){\r\n simWarnList.push({id:columnId,user_name:m.user_name,devs:[m],exp_date:m.iccid_expire})\r\n columnId++\r\n }else{\r\n simWarnList.map((n,i)=>{\r\n if(n.user_name===m.user_name){\r\n simWarnList[i].devs.push(m)\r\n }\r\n if(new Date(simWarnList[i].exp_date).getTime()>exp){\r\n simWarnList[i].exp_date=m.iccid_expire\r\n }\r\n })\r\n }\r\n }\r\n })\r\n devExpList.sort((a,b)=>a.exp_date>b.exp_date);\r\n devWarnList.sort((a,b)=>a.exp_date>b.exp_date);\r\n simExpList.sort((a,b)=>a.exp_date>b.exp_date);\r\n simWarnList.sort((a,b)=>a.exp_date>b.exp_date);\r\n setDevExp(devExpList)\r\n setDevExp_(devExpList_)\r\n setDevWarn(devWarnList)\r\n setDevWarn_(devWarnList_)\r\n setSimExp(simExpList)\r\n setSimExp_(simExpList_)\r\n setSimWarn(simWarnList)\r\n setSimWarn_(simWarnList_)\r\n }\r\n }\r\n })\r\n }\r\n // let el = document.getElementById('qrcode')\r\n },[])\r\n const columns = [\r\n {\r\n title:'到期日期',\r\n align:'center',\r\n dataIndex:'exp_date'\r\n },\r\n {\r\n title: '用户名称',\r\n align: 'center',\r\n dataIndex: 'user_name',\r\n },\r\n {\r\n title: '设备数量',\r\n align: 'center',\r\n render: (text, record) => (\r\n
\r\n {\r\n record.devs.length\r\n }\r\n
\r\n ),\r\n },\r\n {\r\n title: '操作',\r\n width: 150,\r\n dataIndex: 'operation',\r\n key: 'id',\r\n align: 'center',\r\n render: (text, record) => (\r\n
\r\n {/* */}\r\n \r\n {/* 管理 */}\r\n \r\n
\r\n ),\r\n }\r\n ]\r\n return (\r\n//72E4FF\r\n
\r\n \r\n {\r\n props.local !== undefined &&\r\n
\r\n
\r\n {\r\n isShowTitle&&\r\n
\r\n \r\n
{nowTime}
\r\n
\r\n }\r\n
\r\n \r\n
\r\n {showTitle}温湿度监测系统\r\n
\r\n
\r\n {\r\n isShowTitle&&\r\n
\r\n
\r\n \r\n {/* _ */}\r\n \"\"{\r\n window.CefSharp.BindObjectAsync(\"bound\");\r\n window.bound.minWindow()\r\n }}/>\r\n \r\n \r\n \"\"{\r\n window.CefSharp.BindObjectAsync(\"bound\");\r\n window.bound.setMaxWindow()\r\n setIsMax(!isMax)\r\n }}/>\r\n \r\n \r\n \"\"{\r\n window.CefSharp.BindObjectAsync(\"bound\");\r\n window.bound.closeWindow()\r\n }}/> \r\n \r\n
\r\n }\r\n
\r\n \r\n
\r\n }\r\n
\r\n {/*
*/}\r\n {props.local !== undefined ?\r\n
\r\n \r\n {\r\n\r\n menList.map((item, index) => \r\n {item.name}\r\n ) \r\n }\r\n \r\n
:\r\n
\r\n {state.main.logo !== '' ? :
}\r\n
{state.main.title}
\r\n \r\n {\r\n devWarn.length>0&&\r\n\r\n {\r\n setShowDev(true)\r\n setShowMode(2)\r\n }}>{`您有${devWarn_.length}台设备即将到期点击查看详情`}\r\n\r\n }\r\n \r\n \r\n {\r\n devExp.length>0&&\r\n {\r\n setShowDev(true)\r\n setShowMode(1)\r\n }}>{`您有${devExp_.length}台设备已到期点击查看详情`}\r\n\r\n }\r\n \r\n \r\n
\r\n }\r\n {/* {\r\n props.local !== undefined&&\r\n
{showTitle}
\r\n } */}\r\n
\r\n {\r\n // props.local === undefined&&\r\n // \r\n // \r\n // \r\n }\r\n {\r\n props.local === undefined ?\r\n \r\n \r\n
加载中...
\r\n
\r\n \r\n apk(点击下载)\r\n \r\n }>\r\n {\r\n setTimeout(() => {\r\n let el = document.getElementById('qrcode')\r\n if(el!==null){\r\n el.innerHTML='';\r\n var qrcode = new window.QRCode(el, {\r\n width : 100,\r\n height : 100,\r\n colorDark:\"#1890ff\"\r\n });\r\n qrcode.makeCode('http://'+window.location.host+\"/static/appDownLoad/down.html\");\r\n }\r\n }, 1000);\r\n }} \r\n \r\n >APP下载\r\n :null\r\n }\r\n {/* */}\r\n {/* */}\r\n setShowUserInfo(false)}\r\n onCancel={() => setShowUserInfo(false)}\r\n footer={null}\r\n >\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
{dispatch({type:'alarmSound',alarmSound:!state.alarmSound});}}>\r\n {\r\n // state.alarmSound?:\r\n \r\n }\r\n
\r\n
\r\n {\r\n props.local !== undefined ?\r\n \r\n
{\r\n http.post(\"/v1/startbackup\", {}).then(data => console.log(data));\r\n }}>\r\n \"\"\r\n
\r\n
\r\n : null\r\n }\r\n {\r\n (props.local !== undefined &&state.main.type<102 )?\r\n \r\n
{\r\n if (window.CefSharp !== undefined) {\r\n window.CefSharp.BindObjectAsync(\"bound\");\r\n let myConf =window.bound.getConfig();\r\n setMyConf(myConf);\r\n }\r\n setShowConfig(true)\r\n \r\n }}>\r\n \r\n
\r\n
\r\n : null\r\n }\r\n \r\n \r\n
{\r\n setrepw(true)\r\n }}>修改密码
\r\n
\r\n \r\n
{\r\n // localStorage.clear();\r\n dispatch({type:'super',super:0})\r\n dispatch({type:'setState',setState:0})\r\n http.post('/v1/logout',{})\r\n history.push('/login')\r\n }}>退出登录
\r\n
\r\n }>\r\n {state.main.account}\r\n \r\n {/*
*/}\r\n\r\n {\r\n setShowConfig(false)\r\n }}>\r\n {\r\n console.log(\"object\")\r\n }} />\r\n \r\n {\r\n (npw1 === npw2 && npw1.length > 2) ?\r\n http.post(\"/v1/userspassword\", { who: state.main.account, password: md5(npwo), account: state.main.account, newpassword: md5(npw1) }).then(data => {\r\n if (data.code === 0) {\r\n Modal.success({\r\n title: \"成功\",\r\n content: \"密码修改成功,请重新登录\",\r\n onOk() { history.push('/login') },\r\n });\r\n } else {\r\n Modal.warning({\r\n title: data.code,\r\n content: data.msg,\r\n });\r\n }\r\n }) : setmsg(\"密码长度大于2位,并且两次密码相同\")\r\n\r\n }}\r\n onCancel={() => {\r\n setnpwo(\"\")\r\n setnpw1(\"\")\r\n setnpw2(\"\")\r\n setmsg(\"\")\r\n setrepw(false)\r\n }}>\r\n \r\n {\r\n setnpwo(e.target.value)\r\n\r\n }} />\r\n {\r\n let ss = e.target.value\r\n ss != npw2 ? setmsg(\"两次输入的密码不相同\") : setmsg(\"\")\r\n setnpw1(e.target.value)\r\n\r\n }} />\r\n {\r\n let ss = e.target.value\r\n ss != npw1 ? setmsg(\"两次输入的密码不相同\") : setmsg(\"\")\r\n setnpw2(e.target.value)\r\n\r\n }} />\r\n {msg}\r\n \r\n \r\n
\r\n
\r\n \r\n {\r\n setShowDev(false)\r\n }}\r\n >\r\n
\r\n \r\n
\r\n record.id} columns={columns} size='small' dataSource={showMode===1?devExp:devWarn} \r\n />\r\n \r\n {\r\n setShowMsgModal(false);\r\n }}>\r\n {\r\n let msgStatus = JSON.parse(localStorage.getItem(\"msgStatus\"));\r\n console.log('msgStatus',msgStatus);\r\n if(msgStatus){\r\n // console.log('msgStatus',);\r\n let tt = msgStatus.filter(x=>x.id===2)[0];\r\n console.log(tt);\r\n if(!tt.isRead){\r\n setMsgCount(msgCount-1)\r\n }\r\n msgStatus[1].isRead = true; \r\n }else{\r\n setMsgCount(msgCount-1)\r\n msgStatus=[{'id':1,'isRead':true},{'id':2,'isRead':false}]\r\n }\r\n localStorage.setItem(\"msgStatus\", JSON.stringify(msgStatus));\r\n }}>\r\n \r\n

{\"text\"}

\r\n
\r\n \r\n

{'text'}

\r\n
\r\n \r\n

{'text'}

\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n )\r\n}\r\n\r\n\r\nexport default Header","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAACQCAYAAADnRuK4AAACiklEQVR4nO3dy00bUQCF4ZTgElICJaQEl+ASXAI76z6iKYESKIESKCEluASyCLvE+HHGvuP4+6Sz5XrGv5AMgvn2DQAAAAAAAAAAAAAAuJ5a61MpfV1r3djN9jT6fY9N07Sqvb/U1j9swHp/Gd1ApLWf0/Cb+Ojr/XV0Bxerre+H30D7mKZpNbqFs9Van0bfOPuzXWs/RvdwNgEtZwIyAZmAznI0oCv8nKLWuvnqzLnPO/g6vvjwUFrbzn7ekXstoNPPFJCAojMFJKDoTAEJKDozDqjWuimlPf9rtdbNSV9DQLm7Daj314Nf48RfCwhoBgISUERAAooISEARAQkoIiABRQQkoIiABBQRkIAiAhJQREACighIQBEBCSgiIAFFBCSgiIAEFBGQgCICElDkjgN6+Qzg7wnodu41oFleh4ByAhJQREACiiwxoEN/rjP3vnwNAjrNEgNawgR0IgEJKCIgAUVGBFRKX48O5GhApa/nvm4BzWSaptXoQI5sv9vtvs993QKaUWltu4BQDnz3ac/XuGYBzX/2prb+Vnv/tYi1/nbqf/a48HoFxOUERERARAREREBEBEREQEQERERARAREREBEBEREQEQERERARAREREBEBEREQEQERERARAREREBEBEREQEQERERARAREREBEBEREQEQERERARAREREBEBEREQEQERERARAREREBEBEREQEQERERARAREREBEBETkIQMqrW1L6WvLV488bPi/DMhuNwGZgExAZ7mDR3A/zK7xqPGb+Hxi8fAb+ODbj+7gYqX09QJu4EOvtLYd3UHk8yPm++gb+WDb19bf6xWfVT/ENE0ru81Gv9cAAAAAAAAAAAAAAADA1fwGVRK0ixiNt/UAAAAASUVORK5CYII=\"","import React, { useEffect, useContext } from 'react'\r\n\r\nimport { StateContext } from './state';\r\nimport http from '../../utils/server'\r\nimport { useHistory } from 'react-router-dom'\r\n// import { Tabs } from 'antd';\r\n// const { TabPane } = Tabs;\r\n\r\nfunction Content(props) {\r\n let history = useHistory();\r\n const { state,dispatch } = useContext(StateContext)\r\n useEffect(() => {\r\n http.get(\"/v1/main\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'main', main: data.data })\r\n } else {\r\n localStorage.clear()\r\n history.push('/login')\r\n }\r\n })\r\n }, [])\r\n return (\r\n
\r\n {state.main.id !== undefined && props.children}\r\n {/* {\r\n console.log(state.panes.filter(x=>x.key===e)[0]);\r\n history.push(state.panes.filter(x=>x.key===e)[0].content);\r\n }}>\r\n {\r\n state.panes.map(pane => (\r\n \r\n {\r\n // pane.content\r\n state.main.id !== undefined && props.children.filter(x=>x.key==pane.content)\r\n }\r\n \r\n ))\r\n }\r\n */}\r\n
\r\n \r\n )\r\n}\r\n\r\n\r\nexport default Content","import Sider from './sider'\r\nimport Header from './header'\r\nimport Content from './content'\r\nimport { ConfigProvider } from 'antd'\r\nimport zhCN from 'antd/lib/locale/zh_CN';\r\nimport { Mode } from '../../App'\r\nimport moment from 'moment'\r\nimport 'moment/locale/zh-cn'\r\nmoment.locale('zh-cn')\r\nfunction Mnanger(props) {\r\n if (Mode === 'soc') {\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n {props.children}\r\n
\r\n
\r\n
\r\n )\r\n } else {\r\n return (\r\n \r\n
\r\n
\r\n {props.children}\r\n
\r\n
\r\n )\r\n }\r\n}\r\nexport default Mnanger;","\r\nfunction User() {\r\n\r\n return (\r\n
\r\n jksldjafkl\r\n
\r\n )\r\n}\r\nexport default User;","export default __webpack_public_path__ + \"static/media/warning.60687cee.mp3\";","import React, { useContext, useEffect, useState } from 'react'\r\nimport { Progress, Modal, Tag, Form, Button, Table, Input,message } from 'antd'\r\nimport { Devices, LinkOne, LinkInterrupt,Alarm,Messages } from '@icon-park/react';\r\nimport http from '../../../../utils/server'\r\nimport { StateContext } from '../../state';\r\nimport { Mode } from '../../../../App';\r\nimport audioSrc from '../../../../../public/assets/warning.mp3'\r\nimport './index.less'\r\nimport { useHistory } from 'react-router-dom'\r\nfunction formatDateTimes(inputTime) {\r\n var date = new Date(inputTime);\r\n var y = date.getFullYear();\r\n var m = date.getMonth() + 1;\r\n m = m < 10 ? ('0' + m) : m;\r\n var d = date.getDate();\r\n d = d < 10 ? ('0' + d) : d;\r\n var h = date.getHours();\r\n h = h < 10 ? ('0' + h) : h;\r\n var minute = date.getMinutes();\r\n var second = date.getSeconds();\r\n minute = minute < 10 ? ('0' + minute) : minute;\r\n second = second < 10 ? ('0' + second) : second;\r\n return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;\r\n};\r\nconst alarmtype = [\r\n '设备电源断电报警',\r\n '设备电源恢复报警',\r\n '设备监测开门报警',\r\n '设备监测关门报警',\r\n '探头电源异常报警',\r\n '探头电源恢复正常',\r\n '探头监测开门报警',\r\n '探头监测关门报警',\r\n '探头连接失败报警',\r\n '探头连接恢复正常',\r\n '探头温度超标报警',\r\n '探头温度恢复报警',\r\n '探头湿度超标报警',\r\n '探头湿度恢复报警',\r\n '探头温度预警',\r\n '探头湿度预警',\r\n '探头压强超标报警',\r\n '探头压强恢复报警',\r\n]\r\n\r\nfunction DashBoard() {\r\n let history = useHistory();\r\n const [form] = Form.useForm();\r\n const { state, dispatch } = useContext(StateContext)\r\n const [Online, setOnline] = useState(0)\r\n const [data, setData] = useState([])\r\n\r\n const [selectedRowKeys, setSelectedRowKeys] = useState([])\r\n const [showDeal, setShowDeal] = useState(false)\r\n const [dealList, setDealList] = useState([])\r\n const [showDealMsgBox, setShowDealMsgBox] = useState(false)\r\n const [showDealMsg, setShowDealMsg] = useState([])\r\n const [tableLoad,setTableLoad] = useState(true);\r\n let timer;\r\n let interval;\r\n\r\n function getAlarmData(){\r\n let audioEle = document.getElementById('audio');\r\n http.get(\"/v1/alarmday?day=\" + formatDateTimes(new Date()), {}).then(data => {\r\n setTableLoad(false)\r\n if (data.code === 0) {\r\n if(data.data.findIndex(x=>x.status===0)!==-1){\r\n !state.alarmSound &&audioEle.play();\r\n }\r\n for (var i = 0; i < data.data.length; i++) {\r\n data.data[i]['key'] = data.data[i].id\r\n }\r\n setData(data.data.filter(x=>x.type<14||x.type>15).sort((a,b)=>b.id-a.id))\r\n }\r\n })\r\n }\r\n\r\n function quitIE(){\r\n localStorage.clear();\r\n history.push('/login')\r\n }\r\n\r\n useEffect(() => {\r\n http.get(\"/v1/devicestatus\", {}).then(data => {\r\n if (data.code === 0 && data.data !== null&&data.data.length>0) {\r\n var onlinep = Math.round(data.data.filter(x => { return x.Online }).length / data.data.length * 100)\r\n setOnline(onlinep)\r\n dispatch({ type: 'devicestate', devicestate: data.data })\r\n }\r\n })\r\n http.get(\"/v1/district\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'district', district: data.data })\r\n }\r\n })\r\n http.get(\"/v1/users\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'systemuser', systemuser: data.data })\r\n if(data.data.length>0){\r\n let d = data.data[0].todo_time;\r\n // if(d==='0001-01-01 00:00:00') return;\r\n var date = new Date(d).getTime()-new Date().getTime();\r\n if(date*1<0) return;\r\n // parseInt(date/(1000*60*60*24))<=0 &&\r\n // Modal.warning({\r\n // title: '年检提醒',\r\n // content: `年检时间已过,设定的年检时间:${d.slice(0,10)}`,\r\n // okText: '确认',\r\n // cancelText: '取消',\r\n // }) \r\n parseInt(date/(1000*60*60*24))<30 &&parseInt(date/(1000*60*60*24))>0&&\r\n Modal.warning({\r\n title: '年检提醒',\r\n content: `即将开始年检,年检时间:${d.slice(0,10)}`,\r\n okText: '确认',\r\n cancelText: '取消',\r\n })\r\n }\r\n }\r\n })\r\n http.get(\"/v1/userdistricts\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'user_district', user_district: data.data })\r\n }\r\n })\r\n http.get(\"/v1/device\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'device', device: data.data })\r\n }\r\n })\r\n\r\n http.get(\"/v1/alarmsuer\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'alarmsuer', alarmsuer: data.data })\r\n }\r\n })\r\n getAlarmData()\r\n\r\n // Mode==='soc'&&Modal.info({\r\n // title: '更新提示',\r\n // width:600,\r\n // content: (\r\n //
\r\n //

实时数据双击测点更改为查询主机多测点历史数据

\r\n //

实时数据中单击参数设置或者设备编号进行参数设置

\r\n //

添加报警联系人时必须要用手机扫描二维码关注公众号才能收到微信报警

\r\n //
\r\n // ),\r\n // onOk() {},\r\n // });\r\n return () => clearInterval(timer)\r\n }, [])\r\n useEffect(() => {\r\n clearInterval(interval);\r\n interval = setInterval(() => {\r\n getAlarmData()\r\n }, 5*60*1000)\r\n return () => clearInterval(interval)\r\n }, [])\r\n const columns = [\r\n {\r\n title: '报警时间',\r\n dataIndex: 'alarm_date',\r\n key: 'alarm_date',\r\n align: 'center',\r\n },\r\n Mode!=='soc'?{width:0}:{\r\n title: '所属用户',\r\n dataIndex: 'user',\r\n key: 'user',\r\n align: 'center',\r\n },\r\n {\r\n title: '所属区域',\r\n dataIndex: 'districtname',\r\n key: 'districtname',\r\n align: 'center',\r\n },\r\n {\r\n title: '主机',\r\n dataIndex: 'device',\r\n key: 'device',\r\n align: 'center',\r\n render:(text,record)=>(\r\n
\r\n
{record.m_name}
\r\n
编号:{record.device}
\r\n
\r\n )\r\n },\r\n {\r\n title: '测点',\r\n dataIndex: 'node',\r\n key: 'node',\r\n align: 'center',\r\n render:(text,record)=>(\r\n
\r\n
{record.name}
\r\n
编号:{record.node}
\r\n
\r\n )\r\n },\r\n {\r\n title: '报警类型',\r\n dataIndex: 'type',\r\n key: 'type',\r\n align: 'left',\r\n width:150,\r\n render: (text, record) => (\r\n
{alarmtype[record.type]}
\r\n )\r\n },\r\n {\r\n title: '记录值',\r\n // dataIndex: 'temp',\r\n // key: 'temp',\r\n align: 'center',\r\n width: 180,\r\n render: (text, record) =>{ \r\n if(record.type===10||record.type===11||record.type===14){\r\n return(\r\n
\r\n
{record.temp}℃
\r\n
上限:{record.temp_h}℃-下限:{record.temp_l}℃
\r\n
\r\n )\r\n }\r\n if(record.type===12||record.type===13||record.type===15) return (\r\n
\r\n
{record.humi}%RH
\r\n
上限:{record.humi_h}%RH-下限:{record.humi_l}%RH
\r\n
\r\n )\r\n if(record.type===16||record.type===17) return(\r\n
\r\n
{record.temp}Pa
\r\n
上限:{record.temp_h}Pa-下限:{record.temp_l}Pa
\r\n
\r\n )\r\n }\r\n },\r\n {\r\n title: '状态',\r\n dataIndex: 'status',\r\n key: 'status',\r\n align: 'center',\r\n render: (text, record) => (\r\n record.status === 0 ? 未处理 :\r\n \r\n )\r\n }\r\n ]\r\n const onSelectChange = selectedRowKeys => {\r\n setSelectedRowKeys(selectedRowKeys)\r\n };\r\n const rowSelection = {\r\n selectedRowKeys,\r\n onChange: onSelectChange,\r\n getCheckboxProps: (record) => ({\r\n disabled: record.status === 1, // Column configuration not to be checked\r\n }),\r\n };\r\n return (\r\n
\r\n
\r\n {\r\n setShowDealMsgBox(false)\r\n }}>\r\n
报警原因:{showDealMsg.why || \"未知\"}
\r\n
处理人员:{showDealMsg.who || \"未知\"}
\r\n
处理结果:{showDealMsg.deal || \"未知\"}
\r\n
\r\n {\r\n setShowDeal(false)\r\n }}>\r\n {\r\n http.post(\"/v1/dealalarms\", { alarm: dealList, msg: JSON.stringify(values) }).then(data => {\r\n if (data.code === 0) {\r\n var now_date = new Date();\r\n now_date.setHours(0);\r\n now_date.setMinutes(0);\r\n now_date.setSeconds(0);\r\n http.get(\"/v1/alarmday?day=\" + formatDateTimes(now_date), {}).then(data => {\r\n if (data.code === 0) {\r\n for (var i = 0; i < data.data.length; i++) {\r\n data.data[i]['key'] = data.data[i].id\r\n }\r\n setData(data.data)\r\n }\r\n })\r\n }\r\n })\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default DashBoard","import React, { useContext, useEffect, useState } from 'react'\r\nimport { Table, DatePicker, Select, Button, message, Tabs, Spin, Cascader, Tag, Row, Col } from 'antd'\r\nimport { StateContext} from '../../../state';\r\nimport { StateDeviceContext } from '../../../state_device';\r\nimport http from '../../../../../utils/server'\r\nimport { Line } from '@ant-design/charts';\r\nimport './style.less'\r\nimport moment from 'moment';\r\nimport { Mode } from '../../../../../App'\r\nimport html2canvas from 'html2canvas';\r\nimport Checkbox from 'antd/lib/checkbox/Checkbox';\r\nimport * as echarts from 'echarts';\r\n\r\n// 绘制图表\r\nconst { Option } = Select;\r\nconst { RangePicker } = DatePicker;\r\nconst { TabPane } = Tabs;\r\nvar todayTime=0;\r\n\r\nconst customWeekStartEndFormat = value =>\r\n `${moment(value).startOf('week').format('MM/DD')} ~ ${moment(value)\r\n .endOf('week')\r\n .format('MM/DD')}`;\r\n\r\nfunction formatDateTimes(inputTime) {\r\n var date = new Date(inputTime);\r\n var y = date.getFullYear();\r\n var m = date.getMonth() + 1;\r\n m = m < 10 ? ('0' + m) : m;\r\n var d = date.getDate();\r\n d = d < 10 ? ('0' + d) : d;\r\n var h = date.getHours();\r\n h = h < 10 ? ('0' + h) : h;\r\n var minute = date.getMinutes();\r\n var second = date.getSeconds();\r\n minute = minute < 10 ? ('0' + minute) : minute;\r\n second = second < 10 ? ('0' + second) : second;\r\n return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;\r\n};\r\n\r\nfunction exportCsv(obj) {\r\n var title = obj.title;\r\n var titleForKey = Object.keys(obj.data[0]);\r\n var data = obj.data;\r\n var str = [];\r\n str.push(obj.title.join(\",\") + \"\\n\");\r\n for (var i = 0; i < data.length; i++) {\r\n var temp = [];\r\n for (var j = 0; j < titleForKey.length; j++) {\r\n temp.push(data[i][titleForKey[j]]);\r\n }\r\n str.push(temp.join(\",\") + \"\\n\");\r\n }\r\n var blob = new Blob(['\\uFEFF' + str.join('')], {\r\n type: 'text/plain;charset=utf-8',\r\n });\r\n var downloadLink = document.createElement(\"a\");\r\n downloadLink.href = URL.createObjectURL(blob);\r\n downloadLink.download = \"export.csv\";\r\n downloadLink.click();\r\n}\r\nvar userdistrictlist;\r\nfunction History() {\r\n const { state, dispatch } = useContext(StateContext)\r\n const { state_device, dispatch_device } = useContext(StateDeviceContext)\r\n const [loading, setLoading] = useState(false);\r\n const [showDevName, setShowDevName] = useState(null);//选中的主机名\r\n const [selDevOptions, setSelDevOptions] = useState([]);//区域主机选项\r\n const [devFliters, setDevFliters] = useState([]);//所有主机选项\r\n const [dis, setDis] = useState('');\r\n const [isHumi, setIsHumi] = useState(false);\r\n const [selNode, setSelNode] = useState([]);\r\n const [selNodeColums, setSelNodeColums] = useState([]);//多测点查询表格列显示内容\r\n const [selDevice, setSelDevice] = useState({});//已选择的测点\r\n\r\n const [startTime, setStartTime] = useState('')\r\n const [endTime, setEndTime] = useState('')\r\n const [data, setData] = useState([])//报表数据\r\n const [dataF, setDataF] = useState({ tmin: 0, tmax: 0, tavg: 0, hmin: 0, hmax: 0, havg: 0 })//查询设备的最大 最小 平均值\r\n const [dataChart, setdataChart] = useState([])//直线图数据\r\n const [nodeFliters, setNodeFliters] = useState([]);\r\n const [selNodes, setSelNodes] = useState([]);\r\n const [showNodeName, setShowNodeName] = useState([]);\r\n const [interval,setInterval] = useState(0);\r\n const [userName,setUserName] = useState('');\r\n const [localCompany,setLocalCompany] = useState('');//本地公司名称\r\n const [dateTime,setDateTime] = useState('');//周期报表时间\r\n const [startWeek,setStartWeek] = useState('');//周报表开始时间\r\n const [endWeek,setEndWeek] = useState('');//周报表结束时间\r\n const [monthTime,setMonthTime] = useState('');//月报表时间\r\n const [AMTimes,setAMTimes] = useState([9]);//报表每日上午时间点\r\n const [PMTimes,setPMTimes] = useState([15]);//报表每日上午时间点\r\n const [tableType,setTableType] = useState(0);//报表类型 0普通历史数据 1日报表 2周报表 3月报表\r\n const [selNodeType,setSelNodeType] = useState(201);//设备主机类型 类型不同单位显示不同\r\n const [seriesTempData,setSeriesTempData] = useState([]);\r\n const [tempChart,setTempChart] = useState(undefined);\r\n const [dataWainF, setDataWainF] = useState({ tl: 0, th: 0, hl: 0, hh: 0 })\r\n const [showBound,setShowBound] = useState(false);\r\n const [isEmpty,setIsEmpty] = useState(false);\r\n const [selDevs,setSelDevs] = useState([]);\r\n const [recordCount,setRecordCount] = useState('');//记录条数\r\n const [tabKey,setTabKey] = useState(\"1\")\r\n const [tableCurrent,setTableCurrent] = useState(1)\r\n const [tablePageSize,setTablePageSize] = useState(10)\r\n const [isExportHumi,setIsExportHumi] = useState(true);\r\n useEffect(() => {\r\n let today = new Date().setHours(0,0,0);\r\n todayTime = new Date(today).getTime();\r\n http.get(\"/v1/district\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'district', district: data.data });\r\n }\r\n })\r\n http.get(\"/v1/users\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'systemuser', systemuser: data.data.sort((a,b)=>a.name.localeCompare(b.name,'zh')) });\r\n }\r\n })\r\n http.get(\"/v1/userdistricts\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'user_district', user_district: data.data });\r\n }\r\n })\r\n http.get(\"/v1/device\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'device', device: data.data });\r\n let arrNode = new Array();\r\n let arrDev = new Array();\r\n data.data.filter(x=>x.node>0).sort((a, b) => a.sn - b.sn).map(m => {\r\n arrNode.push({ label: m.name+'-'+m.sn, value: m.id, sn: m.sn ,expire:m.expire});\r\n arrDev.findIndex(x => x.value === m.sn) === -1 && arrDev.push({ label: m.m_name+'-'+m.sn, value: m.sn ,expire:m.expire});\r\n })\r\n setDevFliters(arrDev);\r\n setNodeFliters(arrNode);\r\n setSelNodes(arrNode);\r\n setSelDevOptions(arrDev.filter(x=>new Date(x.expire).getTime()>todayTime));\r\n }\r\n })\r\n http.get(\"/v1/devicestatus\", {}).then(data => {\r\n if (data.code === 0) {\r\n if (data.data !== null) { \r\n dispatch_device({ type: 'devicestate', devicestate: data.data });\r\n }\r\n }\r\n })\r\n window.addEventListener('resize',()=>{\r\n setTimeout(() => {\r\n tempChart&&tempChart.resize();\r\n tempChart&&tempChart.setOption(option);\r\n }, 500);\r\n })\r\n }, []);\r\n useEffect(()=>{\r\n tempChart&& option && tempChart.setOption(option);\r\n },[seriesTempData,showBound,selNodeType])\r\n //报表查询上午时间选项\r\n const AMOptions=[\r\n {label:'0点',value:0},\r\n {label:'1点',value:1},\r\n {label:'2点',value:2},\r\n {label:'3点',value:3},\r\n {label:'4点',value:4},\r\n {label:'5点',value:5},\r\n {label:'6点',value:6},\r\n {label:'7点',value:7},\r\n {label:'8点',value:8},\r\n {label:'9点',value:9},\r\n {label:'10点',value:10},\r\n {label:'11点',value:11},\r\n ];\r\n //报表查询下午时间选项\r\n const PMOptions=[\r\n {label:'12点',value:12},\r\n {label:'13点',value:13},\r\n {label:'14点',value:14},\r\n {label:'15点',value:15},\r\n {label:'16点',value:16},\r\n {label:'17点',value:17},\r\n {label:'18点',value:18},\r\n {label:'19点',value:19},\r\n {label:'20点',value:20},\r\n {label:'21点',value:21},\r\n {label:'22点',value:22},\r\n {label:'23点',value:23},\r\n ]\r\n const option = {\r\n tooltip: {\r\n trigger: 'axis',\r\n },\r\n title: {\r\n left: 'center',\r\n text:isHumi?`${userName}\\n${startTime}-${endTime}曲线图 \\n 温度最小值${dataF.tmin}温度最大值${dataF.tmax}湿度最小值${dataF.hmin}湿度最大值${dataF.hmax}`:`${userName}\\n${startTime}-${endTime}曲线图 \\n 温度最小值${dataF.tmin}温度最大值${dataF.tmax}`\r\n },\r\n legend:{\r\n top:80,\r\n type:'scroll',\r\n },\r\n xAxis: {\r\n type: 'time',\r\n axisLabel:{\r\n formatter:'{HH}:{mm}:{ss} \\n {yyyy}-{MM}-{dd} '\r\n },\r\n min:startTime,\r\n max:endTime\r\n },\r\n yAxis: {\r\n type: 'value',\r\n\r\n min: function (value) {\r\n return value.min.toFixed(1) - 2;\r\n },\r\n max : function (value) {\r\n return value.max.toFixed(1) +2;\r\n }, \r\n axisLabel:{\r\n formatter:function (value, index) {\r\n return value.toFixed(1) ;\r\n }\r\n }\r\n },\r\n grid:\r\n {\r\n left:50,\r\n rigeht:0,\r\n bottom:0,\r\n top:120,\r\n containLabel:true\r\n },\r\n // dataZoom: [\r\n // {\r\n // type: 'inside',\r\n // start: 0,\r\n // end: 20\r\n // },\r\n // {\r\n // start: 0,\r\n // end: 20\r\n // }\r\n // ],\r\n series: seriesTempData,\r\n }; \r\n const configtemp = {\r\n data: dataChart.filter(x=>x.node!==0),\r\n padding: 'auto',\r\n xField: 'data_time',\r\n // height: 200,\r\n autoFit:true,\r\n yField: 'temp',\r\n seriesField: 'name',\r\n yAxis: {\r\n label: {\r\n formatter: function formatter(v) {\r\n var i = v.indexOf('.');\r\n return i===-1?v:v.slice(0,i+2);\r\n },\r\n },\r\n // tickCount:10\r\n max:(isEmpty||dataF.tmax> dataWainF.th)?dataF.tmax+2:dataWainF.th+2,\r\n min:!isEmpty&&dataWainF.tlx.node!==0),\r\n padding: 'auto',\r\n xField: 'data_time',\r\n // height: 200,\r\n autoFit:true,\r\n yField: 'humi',\r\n seriesField: 'name',\r\n yAxis: {\r\n label: {\r\n formatter: function formatter(v) {\r\n var i = v.indexOf('.');\r\n return i===-1?v:v.slice(0,i+2);\r\n },\r\n },\r\n // tickCount:10\r\n max:(!isEmpty&&dataWainF.hh>dataF.hmax)?(dataWainF.hh>97?100:dataWainF.hh+2):(dataF.hmax>97?100:dataF.hmax+2),\r\n min:(!isEmpty&&dataWainF.hlnew Date(a.data_time).getTime() -new Date(b.data_time).getTime() ,\r\n }\r\n ]\r\n },\r\n ]\r\n const columnsRight = [\r\n\r\n {\r\n title: '信号',\r\n dataIndex: 'csq',\r\n key: 'id',\r\n align: 'center',\r\n width: 80,\r\n },\r\n {\r\n title: '电源',\r\n dataIndex: 'power',\r\n key: 'id',\r\n align: 'center',\r\n width: 80,\r\n render: (text, record) => (\r\n
{record.power === 0 ? \"正常\" : \"电池\"}
\r\n )\r\n },\r\n {\r\n title: '电量',\r\n dataIndex: 'battery',\r\n key: 'id',\r\n align: 'center',\r\n width: 80,\r\n },\r\n ]\r\n if (Mode==='soc') {\r\n //登录用户是普通用户\r\n if(state.main.type===104){\r\n const ud = state.district;\r\n userdistrictlist = new Array();\r\n ud.map(item => {\r\n var u = new Object;\r\n u.key = item.id;\r\n u.title = item.name;\r\n u.label = item.name;\r\n u.text = item.name;\r\n u.value =item.id;\r\n u.name = item.name;\r\n // u.id = item.id\r\n userdistrictlist.unshift(u);\r\n })\r\n }else if(state.systemuser.treeM){\r\n userdistrictlist = JSON.parse(JSON.stringify(state.systemuser.treeM));\r\n if (userdistrictlist && userdistrictlist.length > 0) {\r\n addUserDistrict(userdistrictlist);\r\n }\r\n }\r\n }\r\n if (Mode!=='soc' && state.district) {\r\n userdistrictlist = new Array();\r\n state.district.map(item => {\r\n var u = new Object;\r\n u.key = item.id;\r\n u.title = item.name;\r\n u.label = item.name;\r\n u.text = item.name;\r\n u.value = item.id;\r\n u.name = item.name;\r\n // u.id = item.id\r\n userdistrictlist.push(u);\r\n })\r\n\r\n }\r\n function addUserDistrict(userlist) {\r\n for (var i = 0; i < userlist.length; i++) {\r\n if (!userlist[i].children) {\r\n let ud=[];\r\n userlist[i].id&& (ud = state.district.filter(x => x.user == userlist[i].id));//筛查userlist[i]创建的所有区域\r\n if (ud.length > 0) {\r\n userlist[i].children = [];\r\n ud.map(item => {\r\n var u = new Object;\r\n u.key = item.id;\r\n u.title = item.name;\r\n u.label = item.name;\r\n u.text = item.name;\r\n u.value = 'dis'+item.id;\r\n u.name = item.name;\r\n userlist[i].children.unshift(u);\r\n })\r\n }\r\n else{\r\n userlist[i].id&&(userlist.splice(i,1));\r\n // userlist[i].id&&(userlist[i].disabled=true);\r\n }\r\n } else {\r\n let ud=[];\r\n userlist[i].id&& (ud = state.district.filter(x => x.user == userlist[i].id));//筛查userlist[i]创建的所有区域\r\n if (ud.length > 0) {\r\n ud.map(item => {\r\n var u = new Object;\r\n u.key = item.id;\r\n u.title = item.name;\r\n u.label = item.name;\r\n u.text = item.name;\r\n u.value = 'dis'+item.id;\r\n u.name = item.name;\r\n // u.id = item.id\r\n userlist[i].children.unshift(u);\r\n })\r\n }\r\n addUserDistrict(userlist[i].children);\r\n }\r\n }\r\n }\r\n \r\n const onChange_Tab = key => {\r\n setTabKey(key)\r\n if (key==='2'){\r\n setTimeout(() => {\r\n let chartDom = document.getElementById('tempEcharts');\r\n if(chartDom){\r\n let myChart = echarts.init(chartDom);\r\n option && myChart.setOption(option);\r\n myChart.resize();\r\n myChart&&setTempChart(myChart);\r\n myChart&&myChart.dispatchAction({\r\n type: 'legendScroll',\r\n scrollDataIndex: 5,\r\n // legendId: string\r\n })\r\n } \r\n }, 500);\r\n \r\n }else{\r\n tempChart&&tempChart.dispose();\r\n }\r\n };\r\n const onChange_Table = (page,pageSize) =>{\r\n setTableCurrent(page)\r\n setTablePageSize(pageSize)\r\n }\r\n const antdPointClick =(plot) => {\r\n plot.on('element:click', args => {\r\n const {x,y} = args\r\n let points = args.data.points;\r\n // let data = args.data.data;\r\n points = points.reverse()\r\n let ele = points.reduce((prec,cur)=>{\r\n let xLen = Math.abs(prec.x-x);\r\n let xLen1 = Math.abs(cur.x-x);\r\n let yLen = Math.abs(prec.y-y);\r\n let yLen1 = Math.abs(cur.y-y);\r\n if(Math.sqrt(xLen*xLen+yLen*yLen)val.x===ele.x&&val.y===ele.y)\r\n setTabKey('1');\r\n setTableCurrent(Math.ceil(index/tablePageSize))\r\n });\r\n }\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n {/* {\r\n Mode==='local'&&
{localCompany}
\r\n } */}\r\n {/* 设备选择 */}\r\n
\r\n {/* 区域选择 */} \r\n
\r\n 区域\r\n {\r\n // setUserName(state.systemuser.list.filter(x=>x.id===val[val.length-2])[0].name);\r\n setSelNodes(nodeFliters);\r\n setSelDevOptions(devFliters.filter(x=>new Date(x.expire).getTime()>todayTime));\r\n setShowDevName(null);\r\n setShowNodeName([]);\r\n setSelDevice({});\r\n setSelNodeColums([]);\r\n if(val.length===0) return\r\n let arrNode = new Array();\r\n let arrDev = new Array();\r\n state.device.filter(x => x.district === val[val.length - 1].slice(3)*1&&x.node>0).sort((a, b) => a.sn - b.sn).map(m => {\r\n arrNode.push({ label: m.name+'-'+m.sn, value: m.id, sn: m.sn,expire:m.expire });\r\n arrDev.findIndex(x => x.value === m.sn) === -1 && arrDev.push({ label: m.m_name+'-'+m.sn, value: m.sn ,expire:m.expire});\r\n })\r\n setDis(val[val.length - 1].slice(3)*1);\r\n if (arrNode.length === 0) {\r\n message.info('该区域下暂无设备信息');\r\n setSelNodes([])\r\n setSelDevOptions([]);\r\n } else {\r\n setSelNodes(arrNode);\r\n setSelDevOptions(arrDev.filter(x=>new Date(x.expire).getTime()>todayTime));\r\n }\r\n \r\n }} showSearch={(inputValue, path) => path.some(option => option.label.toLowerCase().indexOf(inputValue.toLowerCase()) > -1)} />\r\n
\r\n {/* 主机方式查询 */}\r\n
\r\n 主机\r\n \r\n option.children.toLowerCase().indexOf(input.toLowerCase()) >= 0\r\n }\r\n value={showNodeName}\r\n maxTagCount = 'responsive'\r\n style={{ width: 360, marginLeft: 10 }}\r\n placeholder=\"选择测点\"\r\n onChange={value => {\r\n setShowNodeName(value);\r\n //初始化\r\n setDataF({tmin: 0, tmax: 0, tavg: 0, hmin: 0, hmax: 0, havg: 0 });\r\n setdataChart([]);\r\n setData([]);\r\n const sd = state.device.filter(x => { return value.indexOf(x.id) > -1 });\r\n if (sd.length > 0) {\r\n setSelDevice(sd[0]);\r\n setUserName(sd[0].user_name);\r\n setSelNodeType(sd[0].type);\r\n } else {\r\n setSelDevice({});\r\n return\r\n }\r\n if(sd.length>1){\r\n sd.sort((a,b)=>a.node-b.node);\r\n if(sd[0].node===0){\r\n let temp = sd.splice(0,1);\r\n sd.push(temp[0]);\r\n } \r\n }\r\n setSelDevs(sd);\r\n var nodes = new Array();\r\n sd.map(m=>{\r\n nodes.push(m.node);\r\n })\r\n setSelNode(nodes);\r\n }}\r\n >\r\n {\r\n selNodes.filter(x => new Date(x.expire).getTime()>todayTime&&(selDevice.sn === undefined ? x.sn > 0 : x.sn === selDevice.sn)).map(item => (\r\n \r\n {item.label}\r\n \r\n )) \r\n }\r\n \r\n
\r\n
\r\n {/*时间 报表类型选择 查询*/}\r\n \r\n {/* 是否查询周期报表 */}\r\n
\r\n {\r\n if(e.target.checked){\r\n setTableType(3);\r\n }else{\r\n setTableType(0);\r\n }\r\n \r\n }}>周期报表\r\n \r\n {/* 周期报表查询 */}\r\n 0?18:0} lg={tableType>0?18:0}>\r\n
\r\n {/* 选择周期报表类型月报表|周报表|日报表 */}\r\n
\r\n {\r\n if(tableType===0)return\r\n setDateTime('');\r\n setMonthTime('');\r\n setStartWeek('');\r\n setEndWeek('');\r\n tableType===3?setTableType(2):tableType===2?setTableType(1):setTableType(3);\r\n }}\r\n >\r\n {tableType===1?'日报表':tableType===2?'周报表':'月报表'}\r\n \r\n
\r\n {/* 选择周期报表每天上午的时间点 */}\r\n
\r\n
上午:
\r\n setAMTimes(value)}\r\n />\r\n
\r\n {/* 选择周期报表每天下午的时间点 */}\r\n
\r\n
下午:
\r\n setPMTimes(value)}\r\n />\r\n
\r\n {/* 选择周期报表查询时间段 */}\r\n
\r\n {\r\n tableType===1?\r\n {\r\n if(dates===null){\r\n setStartWeek('');\r\n setEndWeek('');\r\n }else{\r\n setStartWeek(dateStrings[0]+' 00:00:00');\r\n dates[1]!==null&&setEndWeek(dateStrings[1]+' 23:59:59');\r\n }\r\n // if (dateStrings[0] !== \"\") {\r\n // setStartWeek(dateStrings[0]+' 00:00:00');\r\n // setEndWeek(dateStrings[1]+' 23:59:59');\r\n // }\r\n }}\r\n />\r\n :\r\n {\r\n setDateTime(value)\r\n if(tableType===2){\r\n setStartWeek(moment(value).startOf('week').format('yyyy-MM-DD HH:mm:ss'));\r\n setEndWeek(moment(value).endOf('week').format('yyyy-MM-DD HH:mm:ss'));\r\n }else if(tableType===3){\r\n setMonthTime(time+'-01');\r\n }else{\r\n \r\n }\r\n }}\r\n />\r\n }\r\n
\r\n
\r\n \r\n {/* 普通报表查询 */}\r\n \r\n
\r\n {/* 时间选择 */}\r\n
\r\n 选择时间\r\n {\r\n if(dates===null){\r\n setStartTime('');\r\n setEndTime('');\r\n }else{\r\n setStartTime(dateStrings[0]+':00');\r\n dates[1]!==null&&setEndTime(dateStrings[1]+':00');\r\n }\r\n }}\r\n />\r\n
\r\n {/* 间隔选择 */}\r\n
\r\n 选择间隔\r\n {\r\n // Mode!=='soc'&&\r\n \r\n option.children.toLowerCase().indexOf(input.toLowerCase()) >= 0\r\n }\r\n filterSort={(optionA, optionB) =>\r\n optionA.children.toLowerCase().localeCompare(optionB.children.toLowerCase())\r\n }\r\n onChange={value=>setInterval(value)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n
\r\n \r\n
\r\n \r\n {/* 查询 */}\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
{selNodeType===205?'压强(Pa)':selNodeType===210?'压强(MPa)':'温度(℃)'}: 上限值:{data.length > 0 ? data[0].temp_h : ''}
\r\n
下限值:{data.length > 0 ? data[0].temp_l : ''}
\r\n
最大值:{dataF.tmax}
\r\n
最小值:{dataF.tmin}
\r\n
平均值:{dataF.tavg.toFixed(2)}
\r\n {\r\n isHumi&&
湿度(%RH): 上限值:{data.length > 0 ? data[0].humi_h : ''}
\r\n }\r\n {\r\n isHumi&&
下限值:{data.length > 0 ? data[0].humi_l : ''}
\r\n }\r\n {\r\n isHumi&&
最大值:{dataF.hmax}
\r\n }\r\n {\r\n isHumi&&
最小值:{dataF.hmin}
\r\n }\r\n {\r\n isHumi&&
平均值:{dataF.havg.toFixed(2)}
\r\n }\r\n
\r\n
\r\n\r\n {/* 数据展示区 */}\r\n
\r\n {\r\n // selNode.length<2&&\r\n \r\n }\r\n
\r\n \r\n 0&&\r\n
\r\n {/* 保存为图片 */}\r\n \r\n {/* 下载EXCEL */}\r\n {\r\n state.super>1&&\r\n \r\n }\r\n \r\n {/* 下载PDF */}\r\n \r\n {\r\n isHumi&&{\r\n e.target.checked?setIsExportHumi(true):setIsExportHumi(false);\r\n }}>导出湿度\r\n }\r\n {\r\n Mode==='local' &&\r\n
\r\n                         \r\n 只可导出不能导入\r\n
\r\n }\r\n \r\n \r\n
\r\n } \r\n onChange={onChange_Tab}>\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {/* */}\r\n
\r\n
\r\n
\r\n 开始时间:\r\n {startTime}\r\n
\r\n
\r\n 结束时间:\r\n {endTime}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {\r\n dataChart.length>0&& !showBound&&\r\n
\r\n 您选择的测点包含多个温(湿)度区间或者是空库,故不展示区间辅助线\r\n
\r\n }\r\n
\r\n {\r\n isHumi&&\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {\r\n dataChart.length>0&& !showBound&&\r\n
\r\n 您选择的测点包含多个温(湿)度区间或者是空库,故不展示区间辅助线\r\n
\r\n }\r\n
\r\n }\r\n
\r\n \r\n
\r\n
\r\n {/* 下载区 */}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default History","import React, { createContext, useReducer, useCallback } from 'react';\r\n\r\nexport const StateDeviceContext = createContext({})\r\n\r\n\r\nexport const TimeFormatSeconds = function (time) {\r\n var d = time ? new Date(time) : new Date();\r\n var year = d.getFullYear();\r\n var month = d.getMonth() + 1;\r\n var day = d.getDate();\r\n var hours = d.getHours();\r\n var min = d.getMinutes();\r\n var seconds = d.getSeconds();\r\n\r\n if (month < 10) month = '0' + month;\r\n if (day < 10) day = '0' + day;\r\n if (hours < 0) hours = '0' + hours;\r\n if (min < 10) min = '0' + min;\r\n if (seconds < 10) seconds = '0' + seconds;\r\n\r\n return (year + '-' + month + '-' + day + ' ' + hours + ':' + min + ':' + seconds);\r\n}\r\n\r\nexport const OPERATIONTYPE = ['增', '改', '删']\r\n\r\nexport const StateDevice = props => {\r\n const reducer = (state, action) => {\r\n switch (action.type) {\r\n case 'devicestate':\r\n return {\r\n ...state,\r\n devicestate: action.devicestate\r\n }\r\n default:\r\n return state\r\n }\r\n }\r\n\r\n const [state_device, dispatch_device] = useReducer(reducer, {\r\n devicestate: [],\r\n })\r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n}","export default __webpack_public_path__ + \"static/media/gpsIcon.623ba282.png\";","import React, { useContext, useState, useEffect } from 'react'\r\nimport { Button, Select, DatePicker, Slider, message, Spin, Cascader } from 'antd'\r\nimport { StateContext } from '../../../state';\r\nimport { Map, Marker, Polyline } from \"react-amap\";\r\nimport {\r\n FastBackwardOutlined,\r\n FastForwardOutlined,\r\n CaretRightOutlined,\r\n SwapOutlined,\r\n PauseOutlined, CloseOutlined, UpCircleTwoTone\r\n} from '@ant-design/icons';\r\nimport moment from 'moment';\r\nimport http from '../../../../../utils/server'\r\nimport { Mode } from '../../../../../App'\r\nimport pLocation from '../../../../../../public/assets/gpsIcon.png'\r\nimport gpsTrans from '../../../../../utils/coordtransform_utils'\r\n// const Acccc = props=>{\r\n// const map = props._map_;\r\n// if(!map){\r\n// console.log('组件必须作为 Map 的子组件使用');\r\n// return;\r\n// }\r\n// map.plugins('AMap.Geocoder',()=>{\r\n// const geoloc = new window.AMap.Geocoder({});\r\n// console.log(geoloc);\r\n// })\r\n// }\r\nlet interval = ''\r\n\r\nfunction formatDateTimes(inputTime) {\r\n var date = new Date(inputTime);\r\n var y = date.getFullYear();\r\n var m = date.getMonth() + 1;\r\n m = m < 10 ? ('0' + m) : m;\r\n var d = date.getDate();\r\n d = d < 10 ? ('0' + d) : d;\r\n var h = date.getHours();\r\n h = h < 10 ? ('0' + h) : h;\r\n var minute = date.getMinutes();\r\n var second = date.getSeconds();\r\n minute = minute < 10 ? ('0' + minute) : minute;\r\n second = second < 10 ? ('0' + second) : second;\r\n return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;\r\n};\r\nfunction exportCsv(obj) {\r\n if (obj.length === 0) return\r\n // var title = obj.title;\r\n var titleForKey = Object.keys(obj.data[0]);\r\n var data = obj.data;\r\n var str = [];\r\n str.push(obj.title.join(\",\") + \"\\n\");\r\n for (var i = 0; i < data.length; i++) {\r\n var temp = [];\r\n for (var j = 0; j < titleForKey.length; j++) {\r\n temp.push(data[i][titleForKey[j]]);\r\n }\r\n str.push(temp.join(\",\") + \"\\n\");\r\n }\r\n var blob = new Blob(['\\uFEFF' + str.join('')], {\r\n type: 'text/plain;charset=utf-8',\r\n });\r\n var downloadLink = document.createElement(\"a\");\r\n downloadLink.href = URL.createObjectURL(blob);\r\n downloadLink.download = \"export.csv\";\r\n downloadLink.click();\r\n}\r\nfunction MapData() {\r\n const { state, dispatch } = useContext(StateContext)\r\n const [loading, setLoading] = useState(false);\r\n const [selDev, setSelDev] = useState(null);\r\n const [selDevice, setSelDevice] = useState([]);\r\n const [selNodes, setSelNodes] = useState([]);\r\n const [startTime, setStartTime] = useState('')\r\n const [endTime, setEndTime] = useState('')\r\n const [data, setData] = useState([])\r\n const [dataF, setDataF] = useState([])\r\n const [mapCenter, setMapCenter] = useState({ longitude: 116, latitude: 39 });\r\n // const [mapCenter, setMapCenter] = useState({ longitude: 117.25489, latitude: 36.66493 });\r\n const [devP, setDevP] = useState({ longitude: 116, latitude: 39 });\r\n const [markP, setMarkP] = useState({ longitude: 117.24556, latitude: 36.65993 });\r\n const [mapZoom, setMapZoom] = useState(4)\r\n const [mapMarkVisibel, setMapMarkVisibel] = useState(false)\r\n const [pLineVisibel, setPLineVisible] = useState(false);\r\n const [sliderStatus, setSilderStatus] = useState(1)\r\n const [sliderRun, setSilderRun] = useState([])\r\n const { RangePicker } = DatePicker;\r\n const [nodeFliters, setNodeFliters] = useState([]);\r\n const [markerRota, setMarkerRota] = useState(0);\r\n var userdistrictlist;\r\n useEffect(() => {\r\n interval = setInterval(() => {\r\n if (sliderStatus === 0) {\r\n // console.log(sliderRun, data.length - 1);\r\n let a = sliderRun\r\n if (a == data.length - 1) {\r\n a = 0\r\n setSilderStatus(1);\r\n setSilderRun(0);\r\n } else {\r\n a = a + 1\r\n }\r\n setSilderRun(a)\r\n datadik(data, a)\r\n }\r\n }, 1000)\r\n return () => {\r\n clearInterval(interval)\r\n }\r\n }, [sliderStatus, sliderRun])\r\n useEffect(async () => {\r\n http.get(\"/v1/devicestatus\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'devicestate', devicestate: data.data })\r\n }\r\n })\r\n http.get(\"/v1/device\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'device', device: data.data })\r\n let arrDev = new Array();\r\n data.data.filter(d => d.location <2 &&new Date(d.expire).getTime()>new Date().getTime()).map(m => \r\n arrDev.findIndex(x=>x.label.includes(m.sn))===-1&&arrDev.push({ label: m.m_name+'-'+m.sn, value: m.id })\r\n );\r\n setNodeFliters(arrDev);\r\n setSelNodes(arrDev);\r\n }\r\n })\r\n await http.get(\"/v1/users\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'systemuser', systemuser: data.data.sort((a,b)=>a.name.localeCompare(b.name,'zh')) });\r\n }\r\n })\r\n\r\n }, []);\r\n function datadik(list, end) {\r\n var newp = new Array();\r\n var marks = new Array();\r\n var timesamp = 0;\r\n // var lngc = 0, latc = 0\r\n list.map((item, index) => {\r\n if (index <= end) {\r\n var timestamp = new Date(item.data_time).getTime() / 1000;\r\n if (index === 0) {\r\n timesamp = timestamp;\r\n } else {\r\n timestamp = timestamp - timesamp;\r\n }\r\n // lngc = lngc + item.gps_lng\r\n // latc = latc + item.gps_lat\r\n newp.push({ longitude: item.gps_lng, latitude: item.gps_lat, sp: item.gps_speed, ag: item.gps_dir, tm: timestamp });\r\n marks.push({ position: { longitude: item.gps_lng, latitude: item.gps_lat } });\r\n setDevP({ longitude: item.gps_lng, latitude: item.gps_lat });\r\n setMarkerRota(item.gps_dir);\r\n }\r\n })\r\n setDataF(newp)\r\n }\r\n if (Mode==='soc') {\r\n //登录用户是普通用户\r\n if(state.main.type===104){\r\n const ud = state.district;\r\n userdistrictlist = new Array();\r\n ud.map(item => {\r\n var u = new Object;\r\n u.key = item.id;\r\n u.title = item.name;\r\n u.label = item.name;\r\n u.text = item.name;\r\n u.value =item.id;\r\n u.name = item.name;\r\n // u.id = item.id\r\n userdistrictlist.unshift(u);\r\n })\r\n }else if(state.systemuser.treeM){\r\n userdistrictlist = JSON.parse(JSON.stringify(state.systemuser.treeM));\r\n if (userdistrictlist && userdistrictlist.length > 0) {\r\n addUserDistrict(userdistrictlist);\r\n }\r\n }\r\n }\r\n if (Mode!=='soc' && state.district) {\r\n userdistrictlist = new Array();\r\n state.district.map(item => {\r\n var u = new Object;\r\n u.key = item.id;\r\n u.title = item.name;\r\n u.label = item.name;\r\n u.text = item.name;\r\n u.value = item.id;\r\n u.name = item.name;\r\n // u.id = item.id\r\n userdistrictlist.push(u);\r\n })\r\n\r\n }\r\n function addUserDistrict(userlist) {\r\n for (var i = 0; i < userlist.length; i++) {\r\n if (!userlist[i].children) {\r\n let ud=[];\r\n userlist[i].id&& (ud = state.district.filter(x => x.user == userlist[i].id));//筛查userlist[i]创建的所有区域\r\n if (ud.length > 0) {\r\n userlist[i].children = [];\r\n ud.map(item => {\r\n var u = new Object;\r\n u.key = item.id;\r\n u.title = item.name;\r\n u.label = item.name;\r\n u.text = item.name;\r\n u.value = 'dis'+item.id;\r\n u.name = item.name;\r\n // u.id = item.id\r\n userlist[i].children.unshift(u);\r\n })\r\n }else{\r\n // userlist[i].id&&(userlist[i].disabled=true);\r\n userlist[i].id&&(userlist.splice(i,1));\r\n }\r\n } else {\r\n let ud=[];\r\n userlist[i].id&& (ud = state.district.filter(x => x.user == userlist[i].id));//筛查userlist[i]创建的所有区域\r\n if (ud.length > 0) {\r\n ud.map(item => {\r\n var u = new Object;\r\n u.key = item.id;\r\n u.title = item.name;\r\n u.label = item.name;\r\n u.text = item.name;\r\n u.value = 'dis'+item.id;\r\n u.name = item.name;\r\n // u.id = item.id;\r\n userlist[i].children.unshift(u);\r\n })\r\n }\r\n addUserDistrict(userlist[i].children);\r\n }\r\n }\r\n }\r\n\r\n return (<>\r\n \r\n
\r\n 选择区域\r\n {\r\n setSelNodes(nodeFliters);\r\n setSelDev(null);\r\n if(val.length===0) return\r\n let arrDev = new Array();\r\n state.device.filter(x => x.location < 2 && (x.district === val[val.length - 1].slice(3)*1)&&new Date(x.expire).getTime()>new Date().getTime()).sort((a, b) => a.sn - b.sn).map(m => {\r\n arrDev.findIndex(x=>x.label.includes(m.sn))===-1&&arrDev.push({ label: m.m_name+'-'+m.sn, value: m.id });\r\n })\r\n if (arrDev.length === 0) {\r\n message.info('该区域下暂无车载设备')\r\n setSelNodes([]);\r\n } else {\r\n setSelNodes(arrDev);\r\n }\r\n \r\n }} showSearch={(inputValue, path) => path.some(option => option.label.toLowerCase().indexOf(inputValue.toLowerCase()) > -1)} />\r\n\r\n 选择测点\r\n \r\n option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0\r\n }\r\n onSelect={(d) => {\r\n setSilderRun(0);\r\n setSilderStatus(1);\r\n setData([]);\r\n const sd = state.devicestate.filter(x => { return x.ID == d })\r\n if (sd.length > 0) {\r\n setSelDevice(sd[0])\r\n setSelDev(d)\r\n if(sd[0].Status.GPSLng!==0&&sd[0].Status.GPSLat!==0){\r\n setMapCenter({ longitude: sd[0].Status.GPSLng, latitude: sd[0].Status.GPSLat });\r\n setMarkerRota(sd[0].Status.GPSDir);\r\n }\r\n \r\n } else {\r\n setSelDevice([])\r\n setSelDev('')\r\n }\r\n }}\r\n />\r\n\r\n {\r\n if(dates===null){\r\n setStartTime('');\r\n setEndTime('');\r\n }else{\r\n setStartTime(dateStrings[0]+':00');\r\n dates[1]!==null&&setEndTime(dateStrings[1]+':00');\r\n } \r\n }}\r\n />\r\n\r\n
\r\n {Mode==='soc'&&data.length > 0 && }\r\n \r\n
\r\n
\r\n {data.length > 0 ?\r\n
\r\n\r\n
\r\n
时间轴
\r\n
\r\n { setSilderStatus(2); setSilderRun(sliderRun === 0 ? data.length - 1 : sliderRun - 1); datadik(data, sliderRun === 0 ? data.length - 1 : sliderRun - 1) }} />\r\n { setSilderStatus(3); setSilderRun(sliderRun === data.length - 1 ? 0 : sliderRun + 1); datadik(data, sliderRun === data.length - 1 ? 0 : sliderRun + 1) }} />\r\n {sliderStatus > 0 ? { setSilderStatus(0); setPLineVisible(true); }} /> : { setSilderStatus(1); }} />}\r\n { setSilderStatus(4); setSilderRun(data.length - 1); datadik(data, data.length - 1) }} />\r\n {\r\n setPLineVisible(false);\r\n setSilderStatus(1)\r\n }} />\r\n
\r\n {\r\n setSilderRun(value)\r\n datadik(data, value)\r\n }}\r\n tipFormatter={null}\r\n />\r\n
时间点:{sliderRun>=0&& data[sliderRun].data_time}
\r\n
: null}\r\n { \r\n console.log(ins);\r\n \r\n },\r\n click: () => { console.log('You Clicked The Map') }\r\n }} \r\n zoom={mapZoom} center ={mapCenter} \r\n >\r\n \r\n {/* ()}\r\n /> */}\r\n \r\n \r\n \r\n {/* \r\n \r\n */}\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default MapData","import React, { useState, useContext, useEffect } from 'react'\r\nimport { Table, DatePicker, Select, Button, message, Modal, Form, Input, Tag, Space, Cascader,TreeSelect,Switch,Tooltip, Dropdown,Menu} from 'antd'\r\nimport { StateContext } from '../../../state';\r\nimport http from '../../../../../utils/server'\r\nimport { Html5TwoTone, SearchOutlined ,SyncOutlined} from '@ant-design/icons';\r\nimport moment from 'moment';\r\nimport { Mode } from '../../../../../App';\r\nimport audioSrc from '../../../../../../public/assets/warning.mp3'\r\nconst { RangePicker } = DatePicker;\r\n\r\nfunction exportCsv(obj) {\r\n var title = obj.title;\r\n var titleForKey = Object.keys(obj.data[0]);\r\n var data = obj.data;\r\n var str = [];\r\n str.push(obj.title.join(\",\") + \"\\n\");\r\n for (var i = 0; i < data.length; i++) {\r\n var temp = [];\r\n for (var j = 0; j < titleForKey.length; j++) {\r\n temp.push(data[i][titleForKey[j]]);\r\n }\r\n str.push(temp.join(\",\") + \"\\n\");\r\n }\r\n var blob = new Blob(['\\uFEFF' + str.join('')], {\r\n type: 'text/plain;charset=utf-8',\r\n });\r\n var downloadLink = document.createElement(\"a\");\r\n downloadLink.href = URL.createObjectURL(blob);\r\n downloadLink.download = \"export.csv\";\r\n downloadLink.click();\r\n}\r\n\r\nfunction findUserDis(nop, list, districts,userDis) {\r\n if (list&&districts) {\r\n const nops = list.filter(x => { return x.parent === nop })\r\n if (nops.length === 0) {\r\n return\r\n } else {\r\n for (var j = 0; j < nops.length; j++) {\r\n let tempDis=districts.filter(x=>x.user===nops[j].id);\r\n tempDis.length>0&&userDis.push(...tempDis);\r\n findUserDis(nops[j].id, list,districts,userDis);\r\n }\r\n }\r\n }\r\n}\r\nfunction formatDateTimes(inputTime) {\r\n var date = new Date(inputTime);\r\n var y = date.getFullYear();\r\n var m = date.getMonth() + 1;\r\n m = m < 10 ? ('0' + m) : m;\r\n var d = date.getDate();\r\n d = d < 10 ? ('0' + d) : d;\r\n var h = date.getHours();\r\n h = h < 10 ? ('0' + h) : h;\r\n var minute = date.getMinutes();\r\n var second = date.getSeconds();\r\n minute = minute < 10 ? ('0' + minute) : minute;\r\n second = second < 10 ? ('0' + second) : second;\r\n return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;\r\n};\r\nconst alarmtype = [\r\n '设备电源断电报警',//0\r\n '设备电源恢复报警',//1\r\n '设备监测开门报警',//2\r\n '设备监测关门报警',//3\r\n '探头电源异常报警',//4\r\n '探头电源恢复正常',//5\r\n '探头监测开门报警',//6\r\n '探头监测关门报警',//7\r\n '探头连接失败报警',//8\r\n '探头连接恢复正常',//9\r\n '探头温度超标报警',//10\r\n '探头温度恢复报警',//11\r\n '探头湿度超标报警',//12\r\n '探头湿度恢复报警',//13\r\n '探头温度预警',//14\r\n '探头湿度预警',//15\r\n '探头压强超标报警',//16\r\n '探头压强恢复报警',//17\r\n]\r\n\r\nfunction Alarm() {\r\n const [form] = Form.useForm();\r\n const { state, dispatch } = useContext(StateContext)\r\n // const [selDevice, setSelDevice] = useState([]);//选择区域内同主机的测点\r\n // const [selDeviceNodes, setSelDeviceNodes] = useState([]);//测点方式查询 选择的测点设备\r\n // const [alarmDevOption, setAlarmDevOption] = useState([]);//区域内主机的选项\r\n // const [selAlarmDev, setSelAlarmDev] = useState('');//主机方式查询 选择的主机设备\r\n // const [disNodes, setDisNodes] = useState([])//选择区域内的所有测点\r\n // const [nodeFliters, setNodeFliters] = useState([])//所有测点\r\n // const [devFliters, setDevFliters] = useState([])//所有主机\r\n const [startTime, setStartTime] = useState('');\r\n const [endTime, setEndTime] = useState('');\r\n const [data, setData] = useState([]);//显示的报警数据\r\n const [dataSave, setDataSave] = useState([]);//保存查询的报警数据\r\n const [selectedRowKeys, setSelectedRowKeys] = useState([]);//选中的关键值\r\n const [showDeal, setShowDeal] = useState(false);\r\n const [dealList, setDealList] = useState([]);\r\n const [showDealMsgBox, setShowDealMsgBox] = useState(false);\r\n const [showDealMsg, setShowDealMsg] = useState([]);\r\n const [showData, setShowData] = useState([]);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [defExpend,setDefExpend]=useState([]);//树默认展示列表\r\n const [selUser, setSelUser] = useState(0);//树选择的用户\r\n const [selUserDis, setSelUserDis] = useState([]);//用户关联的区域 用户为空选择全部区域\r\n const [selDis, setSelDis] = useState(0);//选择的区域\r\n const [closeInterval, setCloseInterval] = useState(false)\r\n const [selDev,setSelDev] = useState('');\r\n const [selNode,setSelNode] = useState('');\r\n let interval;\r\n function autoRefresh(checked) {\r\n if (checked) {\r\n setCloseInterval(false)\r\n } else {\r\n setCloseInterval(true)\r\n }\r\n }\r\n\r\n function getAlarmData(){\r\n let audioEle = document.getElementById('audio');\r\n setIsLoading(true);\r\n var now_date = new Date(); now_date.setHours(0); now_date.setMinutes(0); now_date.setSeconds(0);\r\n let url = \"/v1/alarm?\" ;\r\n if(selUser!==0){\r\n if(selDis!==0){\r\n url+=`user=${selUser}&district=${selDis}&`\r\n }else{\r\n url+=`user=${selUser}&`\r\n }\r\n }else{\r\n selDis!==0&&(url=`/v1/alarm?district=${selDis}&`);\r\n }\r\n // url+=selUser!==0?`user=${selUser}&`:`user=${state.main.id}&`;\r\n startTime === ''? url += \"starttime=\" + formatDateTimes(now_date.getTime()) + \"&endtime=\" + formatDateTimes(new Date().getTime()):\r\n endTime===''? url+=\"starttime=\" + startTime + \"&endtime=\" + formatDateTimes(new Date().getTime()):\r\n url+=\"starttime=\" + startTime + \"&endtime=\" + endTime;\r\n http.get(url,{}).then((data) => {\r\n setData([]);\r\n setDataSave([]);\r\n setIsLoading(false);\r\n if (data.code === 0) {\r\n if(data.data.findIndex(x=>x.status===0)!==-1){\r\n !state.alarmSound&&audioEle.play();\r\n }\r\n for (var i = 0; i < data.data.length; i++) {\r\n data.data[i]['key'] = i;\r\n }\r\n let tempData = data.data.filter(x=>x.type<14||x.type>15)\r\n tempData.sort((a,b)=>{\r\n if(a.alarm_date===b.alarm_date){\r\n return b.id -a.id;\r\n }else{\r\n return new Date(b.alarm_date).getTime()-new Date(a.alarm_date).getTime()\r\n }\r\n });\r\n\r\n setData(tempData);\r\n setDataSave(tempData);\r\n }\r\n })\r\n }\r\n useEffect(() => {\r\n let audioEle = document.getElementById('audio');\r\n http.get(\"/v1/district\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'district', district: data.data });\r\n setSelUserDis(data.data);\r\n }\r\n })\r\n http.get(\"/v1/users\", {}).then(data => {\r\n if (data.code === 0) {\r\n let temp = data.data.sort((a,b)=>a.name.localeCompare(b.name,'zh'))\r\n dispatch({ type: 'systemuser', systemuser: temp })\r\n if(data.data.length>0){\r\n var userLogin =state.main;\r\n var list = [];\r\n temp.filter(x=>x.parent===userLogin.id).map(m=>list.push(m.id+\"\"));\r\n setDefExpend(list); \r\n } \r\n }\r\n })\r\n http.get(\"/v1/userdistricts\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'user_district', user_district: data.data })\r\n }\r\n })\r\n http.get(\"/v1/device\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'device', device: data.data })\r\n let arrDev = new Array();\r\n let arrDevice = new Array();\r\n data.data.map(m => {\r\n arrDev.push({ label: m.name+'-'+m.sn, value: m.id,sn:m.sn });\r\n arrDevice.findIndex(x => x.value === m.sn) === -1 && arrDevice.push({ label: m.m_name+'-'+m.sn, value: m.sn });\r\n })\r\n // setNodeFliters(arrDev);\r\n // setDisNodes(arrDev);\r\n // setAlarmDevOption(arrDevice);\r\n // setDevFliters(arrDevice);\r\n }\r\n })\r\n\r\n http.get(\"/v1/alarmday?day=\" + formatDateTimes(new Date()), {}).then(data => {\r\n setIsLoading(false);\r\n if (data.code === 0) {\r\n if(data.data.findIndex(x=>x.status===0)!==-1){\r\n !state.alarmSound&&audioEle.play();\r\n }\r\n for (var i = 0; i < data.data.length; i++) {\r\n data.data[i]['key'] = data.data[i].id;\r\n }\r\n let tempData = data.data.filter(x=>x.type<14||x.type>15)\r\n tempData.sort((a,b)=>b.id-a.id)\r\n setData(tempData);\r\n setDataSave(tempData);\r\n }\r\n })\r\n // return () => clearInterval(timer);\r\n }, []);\r\n useEffect(() => {\r\n clearInterval(interval);\r\n interval = setInterval(() => {\r\n if (!closeInterval) {\r\n getAlarmData()\r\n } else {\r\n clearInterval(interval)\r\n }\r\n }, 5*60*1000)\r\n return () => clearInterval(interval)\r\n }, [closeInterval,startTime,endTime,selUser,selDis])\r\n \r\n const columns = [\r\n {\r\n title: '报警时间',\r\n dataIndex: 'alarm_date',\r\n // key: 'id',\r\n align: 'center',\r\n width: 100\r\n },\r\n Mode!=='soc'?{width:0}:{\r\n title: '所属用户',\r\n dataIndex: 'user',\r\n // key: 'id',\r\n align: 'center',\r\n filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) =>\r\n (\r\n
\r\n setSelectedKeys(e.target.value ? [e.target.value] : [])}\r\n onPressEnter={() => confirm()}\r\n style={{ marginBottom: 8, display: 'block' }}\r\n />\r\n \r\n \r\n confirm()}\r\n icon={}\r\n size=\"small\"\r\n style={{ width: 90 }}\r\n >\r\n 查找\r\n \r\n\r\n \r\n
\r\n ),\r\n filterIcon: filtered => ,\r\n onFilter: (value, record) => record.user ? record.user.indexOf(value.trim()) !== -1 : ''\r\n },\r\n {\r\n title: '所属区域',\r\n dataIndex: 'districtname',\r\n // key: 'id',\r\n align: 'center',\r\n filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) =>\r\n (\r\n
\r\n setSelectedKeys(e.target.value ? [e.target.value] : [])}\r\n onPressEnter={() => confirm()}\r\n style={{ marginBottom: 8, display: 'block' }}\r\n />\r\n \r\n \r\n confirm()}\r\n icon={}\r\n size=\"small\"\r\n style={{ width: 90 }}\r\n >\r\n 查找\r\n \r\n\r\n \r\n
\r\n ),\r\n filterIcon: filtered => ,\r\n onFilter: (value, record) => record.districtname ? record.districtname.indexOf(value.trim()) !== -1 : ''\r\n },\r\n {\r\n title: '主机',\r\n dataIndex: 'device',\r\n // key: 'id',\r\n align: 'center',\r\n render: (text, record) => (\r\n
\r\n
{record.m_name}
\r\n
编号:{record.device}
\r\n
\r\n ),\r\n sorter: {\r\n compare: (a, b) => a.node - b.node,\r\n },\r\n filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) =>{\r\n return (\r\n
\r\n setSelectedKeys(e.target.value ? [e.target.value] : [])}\r\n onPressEnter={() => {\r\n setSelDev(selectedKeys[0])\r\n confirm()\r\n }}\r\n style={{ marginBottom: 8, display: 'block' }}\r\n />\r\n \r\n \r\n { \r\n // let info = state.device.filter(x=>x.sn.toString().indexOf(selectedKeys[0])!==-1||x.m_name.indexOf(selectedKeys[0])!==-1);\r\n\r\n // setSelDev(info.length>0?info[0].m_name:'')\r\n setSelDev(selectedKeys[0]?selectedKeys[0]:'')\r\n confirm()\r\n }}\r\n icon={}\r\n size=\"small\"\r\n style={{ width: 90 }}\r\n >\r\n 查找\r\n \r\n \r\n \r\n
\r\n )\r\n }\r\n ,\r\n filterIcon: filtered => ,\r\n // record.type ? alarmtype[record.type].includes(value) : ''\r\n onFilter: (value, record) => {\r\n return record.device ? record.device.toString().indexOf(value.trim()) !== -1 || record.m_name.toString().indexOf(value.trim()) !== -1 : ''\r\n }\r\n },\r\n {\r\n title: '测点',\r\n dataIndex: 'node',\r\n // key: 'id',\r\n align: 'center',\r\n render: (text, record) => (\r\n record.node===0?
--
:\r\n
\r\n
{record.name}
\r\n
编号:{record.node}
\r\n
\r\n ),\r\n sorter: {\r\n compare: (a, b) => a.node - b.node,\r\n },\r\n filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) =>\r\n (\r\n
\r\n setSelectedKeys(e.target.value ? [e.target.value] : [])}\r\n onPressEnter={() => {\r\n setSelNode(selectedKeys[0])\r\n confirm()\r\n }}\r\n style={{ marginBottom: 8, display: 'block' }}\r\n />\r\n \r\n \r\n {\r\n setSelNode(selectedKeys[0])\r\n confirm()\r\n }}\r\n icon={}\r\n size=\"small\"\r\n style={{ width: 90 }}\r\n >\r\n 查找\r\n \r\n\r\n \r\n
\r\n ),\r\n filterIcon: filtered => ,\r\n // record.type ? alarmtype[record.type].includes(value) : ''\r\n onFilter: (value, record) => record.node ? record.node.toString().indexOf(value.trim()) !== -1 || record.name.toString().indexOf(value.trim()) !== -1 : ''\r\n },\r\n {\r\n title: '报警类型',\r\n dataIndex: 'type',\r\n // key: 'type',\r\n align: 'left',\r\n width: 150,\r\n render: (text, record) => {\r\n return(\r\n
{alarmtype[record.type]}
\r\n )\r\n },\r\n sorter: {\r\n compare: (a, b) => a.type - b.type,\r\n },\r\n filters: [\r\n {\r\n text: '设备电源断电报警',\r\n value: 0,\r\n },\r\n {\r\n text: '设备电源恢复报警',\r\n value: 1,\r\n },\r\n {\r\n text: '设备监测开门报警',\r\n value: 2,\r\n },\r\n {\r\n text: '设备监测关门报警',\r\n value: 3,\r\n },\r\n {\r\n text: '探头电源异常报警',\r\n value: 4,\r\n },\r\n {\r\n text: '探头电源恢复正常',\r\n value: 5,\r\n },\r\n {\r\n text: '探头监测开门报警',\r\n value: 6,\r\n },\r\n {\r\n text: '探头监测关门报警',\r\n value: 7,\r\n },\r\n {\r\n text: '探头连接失败报警',\r\n value: 8,\r\n },\r\n {\r\n text: '探头连接恢复正常',\r\n value: 9,\r\n },\r\n {\r\n text: '探头温度超标报警',\r\n value: 10,\r\n },\r\n {\r\n text: '探头温度恢复报警',\r\n value: 11,\r\n },\r\n {\r\n text: '探头湿度超标报警',\r\n value: 12,\r\n },\r\n {\r\n text: '探头湿度恢复报警',\r\n value: 13,\r\n },\r\n // {\r\n // text: '探头湿度下限',\r\n // value: 14,\r\n // },\r\n // {\r\n // text: '探头湿度上限',\r\n // value: 15,\r\n // },\r\n {\r\n text: '探头压强超标报警',\r\n value: 16, \r\n },\r\n {\r\n text: '探头压强恢复报警',\r\n value: 17,\r\n },\r\n ],\r\n onFilter: (value, record) => {\r\n return record?record.type === value :''\r\n // if(record.type===12){\r\n // if(record.humi>record.humi_h){\r\n // return true\r\n // }\r\n // // if(record.humi{ \r\n if(record.type===10||record.type===11||record.type===14){\r\n return(\r\n
\r\n
{record.temp}℃
\r\n
上限:{record.temp_h}℃-下限:{record.temp_l}℃
\r\n
\r\n )\r\n }\r\n if(record.type===12||record.type===13||record.type===15) return (\r\n
\r\n
{record.humi}%RH
\r\n
上限:{record.humi_h}%RH-下限:{record.humi_l}%RH
\r\n
\r\n )\r\n if(record.type===16||record.type===17) return(\r\n
\r\n
{record.temp}Pa
\r\n
上限:{record.temp_h}Pa-下限:{record.temp_l}Pa
\r\n
\r\n )\r\n }\r\n },\r\n {\r\n title: '状态',\r\n dataIndex: 'status',\r\n // key: 'status',\r\n align: 'center',\r\n width: 100,\r\n sorter: {\r\n compare: (a, b) => a.status - b.status,\r\n },\r\n render: (text, record) => (\r\n record.status === 0 ? 未处理 :\r\n \r\n \r\n
报警原因:{showDealMsg.why || \"未知\"}
\r\n
\r\n \r\n
处理人员:{showDealMsg.who || \"未知\"}
\r\n
\r\n \r\n
处理结果:{showDealMsg.deal || \"未知\"}
\r\n
\r\n \r\n )}>\r\n {\r\n if(state.main.role.indexOf('312')===-1) return\r\n e.preventDefault() ;\r\n setShowDealMsg(JSON.parse(record.msg));\r\n setShowData(record);\r\n setShowDealMsgBox(true)\r\n }}\r\n onMouseOver={()=>setShowDealMsg(JSON.parse(record.msg))}\r\n >已处理\r\n
\r\n ),\r\n filters: [\r\n {\r\n text: '未处理',\r\n value: 0\r\n },\r\n {\r\n text: '已处理',\r\n value: 1\r\n },\r\n ],\r\n onFilter: (value, record) => record.status === value\r\n }\r\n ]\r\n const onSelectChange = (selectedRowKeys,selectedRows) => {\r\n setSelectedRowKeys(selectedRowKeys)\r\n };\r\n const rowSelection = {\r\n selectedRowKeys,\r\n onChange: onSelectChange,\r\n getCheckboxProps: (record) => ({\r\n disabled: record.status === 1, // Column configuration not to be checked\r\n }),\r\n };\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n {\r\n setShowDealMsgBox(false)\r\n }}>\r\n {setShowDealMsg({...showDealMsg,why:e.target.value})}}/>\r\n {setShowDealMsg({...showDealMsg,who:e.target.value})}}/>\r\n {setShowDealMsg({...showDealMsg,deal:e.target.value})}}/>\r\n {/*
报警原因:{showDealMsg.why || \"未知\"}
*/}\r\n {/*
处理人员:{showDealMsg.who || \"未知\"}
*/}\r\n {/*
处理结果:{showDealMsg.deal || \"未知\"}
*/}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {\r\n setShowDeal(false)\r\n }}>\r\n {\r\n http.post(\"/v1/dealalarms\", { alarm: dealList, msg: JSON.stringify(values) }).then(data => {\r\n if (data.code === 0) {\r\n setIsLoading(true);\r\n setSelectedRowKeys([]);\r\n getAlarmData();\r\n }\r\n })\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Alarm","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAACUElEQVR4Xu1b223CQBDE0AAlpISYxz8dJJRABZAKQiqIUkFIBYEK4BsESilUgLOObInH3c09LGPHww9Ip/Puzu3M7i0QtRr+ihoef4sAMAMajgApUHYC7Pf7xGSz3++XeiilGksDJwDMAFKAGlBrEdSJWBRFP71eL0ZVpQgRPBwO6yRJRipbrlXEuQoQAI2KMwNIAWoARZBVgGWQfQAbIXaCAAG2wgXMA3gX4GWIt0FehzkP4ECEEyGOxEqZCe52u1G73Z5mxlby/qkyXJWRmPj2Ir48iUgeT6fTx3A43JiaU+NQNAv+Wx7QRT1+hQC4cFWAGA8Gg6XOfyMA0renwT+j4NP1qgIgri1lVD72AsDUc18/sKoAIL8QBebC/9eQDLDVkDMbkMMuByM68CY6MPfKgHSTrTEV0i4aonNQxWEHnzbi1ziO46M3ALYgqABw0RBDlt1w2AYA8QcG/6ddNultA4IKABtHkX2f59oG7wQAAkFDAWsN0QGh4rAJWJfgnQEAICyk3EyuAwnJAl0wQq13sTNTVCKrtD/fZ02B802KoI4iVhNdw+EDgukkM3FdXwRiyfkb0BAHdetyCrO85ZTgv0zdFqKPz0lut9vHTqczFR8exP5KyvXCpPZBVcAXJB86uHI41DcvCoQYLVLAQvzI95YOgI4OZZ/8XQFIjecaIh+7qYb4cjg0C+6SAaFOF7mfABSJZh2fBTMAfZlZ9aDR7wYJADpBZgD4OhsBeO91UgD8A4UagFKUGtB0DUAZUvd1qAF1DxD5TwAQQv99/ReGTs5fN++MJwAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAACcklEQVR4Xu2aXU4CMRDH25UDACfQBMKr3oAbKEfgUYwBTiCewBgDr+oJhBPAEXxVvIK4rzxA7SaS8NF2OrubZZE/r/2a+XXm32kXKY78J4/cfwEAiIAjJ4AUyDoAyoOpcq05a1Uz3ZRMF4scBwBEAFIAGnDQIugQsXet4BfUqZKGCJYG07FW77ppLe4pwj4FAMCu4ogApAA0ACKIUwDHIEEAdUAKlyEUQqgEUQrjLoDLEG6DuA7jPQAPIgYCeBFifljBkxh1eys+TevyRLajfoFajpSUz5YxuXgS07Z19bv7pRAyVAv1GN5WJy4fnREQOR+ciDc9QZECpdvzAmDDVCmWje9WbWiz3wmgNPh6k0JdeTgfdcklACXk8KdVacQEYL90GCbMJQBqY5wRUO5/9IQM7pJEAENDVsuQOex6D9ixVS3vZze1XqwIiAYxFtuJAKaGGG005bCvTVoMJ2peaITdszA2AAaEHQBMDTHaaMphHwA+zkcLetcBHosaALA0xLZJ7Hl9nWcB8IiEHUOZGmIGYMhh12ZwnGcDcEKQ8mV2XWlue+EROVaNtTmjX5Yf9KDO9kCu87EAWCCEWqyatoIjDgSXM3/iOl4HEMf52ACigXoXOquSMxCLV1e15ZE+G5vp40yx/3keBEFbKXWqhWy0nBdeXGqf6BTwrAPIbj6R4OM8uRCjg/cpwJjT2TVNAUvDpswB2NIh651fwdsLgHUN0QZEN83XuDmcNAr2BiCp4WmNB4C0SB7qPGQEUN/z8+449UoMANQOIgKIf3RQAPfdjhQgPpRAA6gQhQYcuwZQEXLo7aQGHLqDlP0AQBH67+2/cBRqXz21nf8AAAAASUVORK5CYII=\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACb0lEQVRYR+2WX07bQBDGZ9ZReewmXCCREqo+0dyA3CA5AeQRoyrNCdKeACSU8Ag9QegNeoOEJwREgguQuG+NsHe6a9fU2jr2+g9ClRrJL2tn9tvffDOzCK/8w1feH/4LiCXAz67rL5Ea5/D9gx73LwH89G6PWTCVH3L5OCUIeY4j0G3rIjZ6YHt8eyAQ91d2q1NERO1scQ5EV0u7dRIX598QUBvffAa09tUJBImec7Qzr03uPgHgwF/zqO98bH1X1AjZKLpWGgHlDR+hW5k7w4bvDZO13AL4+PYDQ5wJorY6cR4fqGpiVJkJD3qKUCYPqI8l5mOJubu0m42sAvjxPcctdypNNpcGHG76f2onlCJmBPiA5F1lEUFo7SJQXawrnTBlmQn4ef5zEg6IZqkg6pI8OaHbj2s+USGpBPxU+FXA3iahjAatThZTRuLb49HORRo1YwEK6cpu9tICqvelC1BpYFvuSqbgQna15PaMyIFgT6ytdlLuw4MYEfC9oMoSqKtSkUiBxA8BeGlaupkE6EEVGXjzVI9dlypLIxA0JTYV+NSJulqZM84bpXugNlncI4kvuqtlj1jJTtnRCfjr60qjFAKhAWXAajTg8zq6Db3WpQAybeFGHthIQM56IuB6eQaTEkZxdHQDGwkIxiwOZCNqRwMEFLwZgjd8tN9dRt/9noJyjrSqSVVjJCA0YdxQSuqSilx4V8g9jIJZ4J0jgrM8bPZ1AmriMaKvukFDOoUF+PlE3BU/raHu6u3JTVcAG8TdG9VlBS0Ypd0pjVKQlEN10k3llvQucys2GUJ5vilMIM+mme8DRTcpXIYvKeAXqO5/MH+dwtoAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAACNklEQVRIS+1VPXrTQBCd3WDFdE6PFbnCDo1zAuQTkCPgE5CcgPgEghMYnyDJCZycwKYgNhVCTk86QPLOsKNPgv2EokUiXxpQo0/7M2/mzZsnAQ/8iAfGg38Q8KPrTInIuxeqBSz7UXJixvqN0pXX9gjpSBK+0MCTJsBCygBBzEji5bMwWVYC8uYHrzXcURD0N8moCeB63zlDhNnBJj4v3i8VjQmYUgzgA9A503PddY6kgIADkZSjQfgtXLvOQn929LnZIIpPmwGimPaj+JADLzzo8PswhNuy7+JabUAOwFkjwaSMliqaV93WSyHEq68yHuUJWnvIB1g8AnGhJI1iSMI/6WUb2h19Z06I48HN9rLsTuXgZ/060xdTKi0P036r1Tk5iL6/ueus1Wm4H6Tw7V0Z54GZSinE86dRPK5KzA7otgIkcWXr5b0BZrS+1kNQ2pNf1Qhf9+7ExoS1wlxAoJRfRRXuwLLoKrVFk8/XrnJ8k9LU/hQOi2uw3Xp/XWEqGqSLwSZ5l2e87rbmqasYayvXOeV9dprGokktznCcn4Cu80m7UM8MzBaoCC5s4qrsIVvaY3S+aNfYM12DgyPAZ7OaTFxTfbZX5jB5clbRpJmDeG8Oc56INu8em7c5i9rWAl39XuPBv3Z3jyXgfvFHmlZJdGX2kUHYg6vGo7LCvIfFAFmFc+2zY3MUsvVF/tuqPRarJ498ErJTFAInIhUMi9UxYBud4yqlWntoc+y6+/8B6zJmPf8Dd9c+LGBHLLUAAAAASUVORK5CYII=\"","import React, { useState, useContext, useEffect } from 'react'\r\nimport { StateContext } from '../../../state';\r\nimport { StateDeviceContext } from '../../../state_device';\r\nimport http from '../../../../../utils/server'\r\nimport { Row, Col, Button, Spin, Modal, Input, Space, Checkbox, Divider, DatePicker, Tabs, message, InputNumber, Select} from 'antd'\r\nimport moment from 'moment';\r\nimport { ExclamationCircleOutlined} from '@ant-design/icons'\r\nimport './device.less'\r\nimport { Mode } from '../../../../../App';\r\nimport md5 from 'js-md5';\r\nconst { RangePicker } = DatePicker;\r\nconst { TabPane } = Tabs;\r\nconst intReg = /^(0|1?\\d{0,2}|2[0-4]\\d|25[0-5])$/;\r\n\r\nfunction formatTime(time){\r\n if(time){\r\n var strs= time.split(':');\r\n if(strs.length<2) return time; \r\n strs[0].length===1&&(strs[0]='0'+strs[0]);\r\n strs[1].length===1&&(strs[1]='0'+strs[1]);\r\n return strs[0]+':'+strs[1];\r\n }\r\n}\r\nfunction DeviceSet(props) {\r\n const { state, dispatch } = useContext(StateContext)\r\n const { state_device, dispatch_device } = useContext(StateDeviceContext)\r\n const [device, setDevice] = useState(props.item)\r\n const [devices, setDevices] = useState({type:5,data:[]});\r\n const [serverIP, setServerIP] = useState({ validity: false, error: false, type: 1 })//IP \r\n const [deviceTime, setDeviceTime] = useState({ validity: false, error: false, type: 2 })//设备时间\r\n const [uploadInterval, setUploadInterval] = useState({ validity: false, error: false, type: 3 })//回传间隔\r\n const [sensorStop, setSensorStop] = useState({ validity: false, error: false, type: 4 })//停用\r\n const [sensorAlarm, setSensorAlarm] = useState({ validity: false, error: false, type: 5 })//探头报警参数\r\n const [powerAlarm, setPowerAlarm] = useState({ validity: false, error: false, type: 6 })//电源\r\n const [batteryAlarm, setBatteryAlarm] = useState({ validity: false, error: false, type: 7 })//电量\r\n const [overAlarm, setOverAlarm] = useState({ validity: false, error: false, type: 8 })//温湿度超标报警\r\n\r\n const [store, setStore] = useState({ validity: false, error: false, type: 9 })//存储间隔\r\n const [revise, setRevise] = useState({ validity: false, error: false, type: 10 })//补偿\r\n const [devClose, setDevClose] = useState({ validity: true, error: false, type: 11 })//关机\r\n const [devStronInfo, setDevStronInfo] = useState({ validity: true, error: false, type: 12})//存储信息\r\n const [load, setLoad] = useState(false)\r\n const [timeReadDataStart,setTimeReadDataStart] = useState({ validity: false, error: false, value:\"\" })\r\n const [timeReadDataEnd,setTimeReadDataEnd] = useState({ validity: false, error: false, value:\"\" })\r\n const [offline,setOffLine] = useState({offtime:10,interval:5,count:2});\r\n const [showAffirm,setShowAffirm] = useState(false);//设置参数身份确认弹窗\r\n const [affirmPwd,setAffirmPwd] = useState(''); //设置参数确认密码\r\n const [setState, setSetState] = useState(0);//设置状态 0不能设置 1普通设置 2超级设置\r\n const [isSet,setIsSet] = useState(false);//是否有设置权限\r\n const [devList, setDevList] = useState([]);//选中的主机名\r\n const [selDevNodes,setSelDevNodes] = useState([]);\r\n const [isShowSet,setIsShowSet] = useState(true);\r\n const [cmd,setCmd]= useState('');\r\n useEffect(() => {\r\n setSetState(state.setState);\r\n let role = state.main.role;\r\n setIsSet(role.match('305')===null?false:true)\r\n let devs = \r\n state.main.type<102? state_device.devicestate.filter(x=>x.Node!==0&&x.District===props.item.District&&\r\n (x.Type!==205&&x.Type!==207&&x.Type!==209))\r\n : \r\n state_device.devicestate.filter(x=>x.Node!==0&&x.District===props.item.District&&x.ExprieStatus!==3&&\r\n (x.Type!==205&&x.Type!==207&&x.Type!==209))\r\n let devNodes = [];\r\n devs.map(m=>{\r\n let temp = devNodes.findIndex(x=>x.sn===m.Sn)\r\n if(temp===-1){\r\n devNodes.push({sn:m.Sn,name:m.MName,nodes:[{value:m.ID,label:m.Name,key:m.ID,checked:false}],all:false,indeterminate:false})\r\n }else{\r\n devNodes[temp].nodes.push({value:m.ID,label:m.Name,key:m.ID,checked:false})\r\n }\r\n })\r\n if(devNodes.length>0){\r\n devNodes[0].all = true\r\n devNodes[0].nodes.map(m=>{\r\n m.checked = true\r\n })\r\n }\r\n devNodes.sort((a,b)=>a.sn-b.sn);\r\n setDevList(devNodes)\r\n \r\n if(devs.length>0){\r\n let devsTemp = devs.filter(x=>x.Sn===devs[0].Sn);\r\n let devsData =[{Sn:devs[0].Sn,Params:devs[0].Params,Sensor:[],StoreInfo:devs[0].StoreInfo,Type:devs[0].Type}];\r\n devsTemp.map(m=>{\r\n m.Sensor.Name = m.Name\r\n devsData[0].Sensor.push(m.Sensor)\r\n })\r\n let devsInfo = devices;\r\n devsInfo.data = devsData;\r\n setDevices(devsInfo)\r\n }\r\n setSelDevNodes(devs.sort((a,b)=>a.Sn-b.Sn))\r\n }, [])\r\n\r\n const ReadALL = (t, call) => {\r\n http.post((props.cloud ? \"/v3\" : \"/v1\") + \"/getdevice\", { ...t, device: device.Sn, node: device.Node }).then(data => {\r\n if (data.code == 0) {\r\n call({ ...t, validity: true })\r\n }\r\n })\r\n }\r\n const ReadDeviceParams = (t, call) => {\r\n setLoad(true)\r\n http.post((props.cloud ? \"/v3\" : \"/v1\") + \"/getdevice\", { ...t, device: device.Sn, node: device.Node }).then(data => {\r\n setLoad(false)\r\n if (data.code == 0) {\r\n if(data.data.Params.OverAlarm.StartTime!==\"\"){\r\n data.data.Params.OverAlarm.StartTime= formatTime(data.data.Params.OverAlarm.StartTime);\r\n data.data.Params.OverAlarm.EndTime= formatTime(data.data.Params.OverAlarm.EndTime);\r\n }\r\n data.data.Name = device.Name;\r\n data.data.MName = device.MName;\r\n setDevice(data.data);\r\n call({ ...t, validity: true });\r\n }\r\n })\r\n }\r\n const ReadDeviceData = () => {\r\n if(!timeReadDataStart.validity){\r\n Modal.error({\r\n title: '参数错误',\r\n centered: true,\r\n content: '请检查所设置的参数',\r\n });\r\n return\r\n }\r\n if(!timeReadDataEnd.validity){\r\n Modal.error({\r\n title: '参数错误',\r\n centered: true,\r\n content: '请检查所设置的参数',\r\n });\r\n return\r\n }\r\n setLoad(true)\r\n http.post((props.cloud ? \"/v3\" : \"/v1\") + \"/readdevicedata\", { \r\n device: device.Sn, \r\n node: device.Node,\r\n starttime:timeReadDataStart.value ,\r\n endtime:timeReadDataEnd.value\r\n }).then(data => {\r\n setLoad(false)\r\n if (data.code == 0) {\r\n\r\n }\r\n })\r\n }\r\n const SetDeviceOffLineAlarm = (t) => {\r\n setLoad(true)\r\n http.put((props.cloud ? \"/v3\" : \"/v1\") + \"/deviceoffline/\" + device.ID, { alarm: t.alarm ,offtime:t.offtime,interval:t.interval,count:t.count}).then(data => {\r\n setLoad(false)\r\n if (data.code == 0) {\r\n console.log(t);\r\n device.Sensor.OffLineAlarm=t.alarm;\r\n device.Sensor.OffLineTime=t.offtime;\r\n device.Sensor.OffLineAlarmInterval=t.interval;\r\n device.Sensor.OffLineAlarmCount=t.count;\r\n setDevice({ ...device})\r\n }\r\n })\r\n }\r\n const SetDeviceLinkAlarm = (t) => {\r\n setLoad(true)\r\n http.put((props.cloud ? \"/v3\" : \"/v1\") + \"/devicelink/\" + device.ID, { alarm: t }).then(data => {\r\n setLoad(false)\r\n if (data.code == 0) {\r\n device.Sensor.LinkAlarm=t;\r\n setDevice({ ...device})\r\n }\r\n })\r\n }\r\n const SetDeviceParams = (t) => {\r\n if (t.error) {\r\n Modal.error({\r\n title: '参数错误',\r\n centered: true,\r\n content: '请检查所设置的参数',\r\n });\r\n } else {\r\n setLoad(true)\r\n setTimeout(() => {\r\n http.post((props.cloud ? \"/v3\" : \"/v1\") + \"/setdevice\", { ...t, device: device }).then(data => {\r\n setLoad(false)\r\n })\r\n }, 1000);\r\n }\r\n }\r\n const SetDevicesParams = ()=> {\r\n setLoad(true)\r\n setTimeout(() => {\r\n http.post((props.cloud ? \"/v3\" : \"/v1\") + \"/setdevices\", { devices: devices }).then(data => {\r\n setLoad(false)\r\n })\r\n }, 1000);\r\n }\r\n const SetDevicesWarning=()=>{\r\n let devs = [];\r\n devices.data.map(m=>{\r\n m.Sensor.map(n=>{\r\n devs.push({\r\n sn:m.Sn,\r\n node:n.Id,\r\n temp_warning_high:n.TempWarningHigh,\r\n temp_warning_low:n.TempWarningLow,\r\n humi_warning_high:n.HumiWarningHigh,\r\n humi_warning_low:n.HumiWarningLow,\r\n })\r\n })\r\n })\r\n http.put((props.cloud ? \"/v3\" : \"/v1\")+\"/deviceswarning\", {\r\n devices:devs\r\n }).then(data=>{\r\n console.log('批量预警',data);\r\n })\r\n }\r\n const SetDevicesFree=()=>{\r\n let devs = [];\r\n devices.data.map(m=>{\r\n m.Sensor.map(n=>{\r\n devs.push({\r\n sn:m.Sn,\r\n node:n.Id,\r\n hide:n.Hide\r\n })\r\n })\r\n })\r\n http.put((props.cloud ? \"/v3\" : \"/v1\")+\"/devicesfree\", {\r\n devices:devs\r\n }).then(data=>{\r\n console.log('批量空库',data);\r\n })\r\n }\r\n return (\r\n
\r\n {\r\n }} tabBarExtraContent={}>\r\n \r\n
\r\n {device.Name}\r\n {' 主机名:' + device.MName}\r\n \r\n {' 主机编号:' + device.Sn} \r\n {' 测点ID: ' + device.Node} \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n {/* 温湿度预警 */}\r\n
\r\n
预警参数:
\r\n {/* */}\r\n \r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningHigh: parseFloat(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningHigh: 0 } })\r\n }\r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningLow: parseFloat(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningLow: 0 } })\r\n }\r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiWarningHigh: parseFloat(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiWarningHigh: 0 } })\r\n }\r\n }} disabled={device.Humi===0}/>\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiWarningLow: parseFloat(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiWarningLow: 0 } })\r\n }\r\n }} disabled={device.Humi===0}/>\r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?1:e.target.value;\r\n if (reg.test(val)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, WarningInterval: val*1 } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, WarningInterval: 2 } })\r\n }\r\n }} />\r\n {/*
\r\n
温度预警正常
\r\n
湿度预警正常
\r\n
*/}\r\n {/* 温度预警正常\r\n 湿度预警正常 */}\r\n
\r\n\r\n {/*
*/}\r\n
\r\n \r\n {/* */}\r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n {/* 温湿度报警 */}\r\n \r\n
报警参数:
\r\n {/* */}\r\n \r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n sensorAlarm.error = false\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempAlarmHigh: parseFloat(e.target.value) } })\r\n } else {\r\n sensorAlarm.error = true\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempAlarmHigh: (e.target.value) } })\r\n }\r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n sensorAlarm.error = false\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempAlarmLow: parseFloat(e.target.value) } })\r\n } else {\r\n sensorAlarm.error = true\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempAlarmLow: (e.target.value) } })\r\n }\r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n sensorAlarm.error = false\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiAlarmHigh: parseFloat(e.target.value) } })\r\n } else {\r\n sensorAlarm.error = true\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiAlarmHigh: (e.target.value) } })\r\n }\r\n }} disabled={device.Humi===0}/>\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n sensorAlarm.error = false\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiAlarmLow: parseFloat(e.target.value) } })\r\n } else {\r\n sensorAlarm.error = true\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiAlarmLow: (e.target.value) } })\r\n }\r\n }} disabled={device.Humi===0}/>\r\n \r\n\r\n {/* */}\r\n
\r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n\r\n \r\n
断电报警:
\r\n \r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n powerAlarm.error = false\r\n setDevice({ ...device, Params: { ...device.Params, PowerAlarmTimeCount: Number(val) } })\r\n } else {\r\n powerAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, PowerAlarmTimeCount: val } })\r\n }\r\n }} />\r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?1:e.target.value;\r\n if (reg.test(val)) {\r\n powerAlarm.error = false\r\n setDevice({ ...device, Params: { ...device.Params, PowerAlarmMsgIntCount: Number(val) } })\r\n } else {\r\n powerAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, PowerAlarmMsgIntCount: (val) } })\r\n }\r\n }} />\r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n powerAlarm.error = false\r\n setDevice({ ...device, Params: { ...device.Params, PowerAlarmMsgCount: parseFloat(val) } })\r\n } else {\r\n powerAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, PowerAlarmMsgCount: (val) } })\r\n }\r\n }} />\r\n \r\n
\r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n {/* 超标报警 */}\r\n \r\n
超标报警:
\r\n \r\n {\r\n var reg = /^\\d{2}\\:\\d{2}$/\r\n if (reg.test(e.target.value)) {\r\n overAlarm.error = false\r\n } else {\r\n overAlarm.error = true\r\n }\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, StartTime: (e.target.value) } } })\r\n }} />\r\n {\r\n var reg = /^\\d{2}\\:\\d{2}$/\r\n if (reg.test(e.target.value)) {\r\n overAlarm.error = false\r\n } else {\r\n overAlarm.error = true\r\n }\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, EndTime: (e.target.value) } } })\r\n }} />\r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n overAlarm.error = false\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, Time: Number(val) } } })\r\n } else {\r\n overAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, Time:val } } })\r\n }\r\n }} />\r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?1:e.target.value;\r\n if (reg.test(val)) {\r\n overAlarm.error = false\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, TimeInt: Number(val) } } })\r\n } else {\r\n overAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, TimeInt: val } } })\r\n }\r\n }} />\r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n overAlarm.error = false\r\n let count =Number(val);\r\n if(count>255){\r\n count=255\r\n }\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, TempCount: count} } })\r\n } else {\r\n overAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, TempCount: val } } })\r\n }\r\n }} />\r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n overAlarm.error = false\r\n let count =Number(val);\r\n if(count>255){\r\n count=255\r\n }\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, HumiCount: count } } })\r\n } else {\r\n overAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, HumiCount: val } } })\r\n }\r\n }} />\r\n \r\n
\r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n
电量报警:
\r\n \r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n batteryAlarm.error = false\r\n setDevice({ ...device, Params: { ...device.Params, BatPowerAlarm: Number(val) } })\r\n } else {\r\n batteryAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, BatPowerAlarm: val } })\r\n }\r\n }} />\r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n batteryAlarm.error = false\r\n setDevice({ ...device, Sensor: { ...device.Sensor, BatPowerAlarm: Number(val) } })\r\n } else {\r\n batteryAlarm.error = true\r\n setDevice({ ...device, Sensor: { ...device.Sensor, BatPowerAlarm: (val) } })\r\n }\r\n }} />\r\n \r\n
\r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n
原始命令:
\r\n \r\n {\r\n setCmd(e.target.value)\r\n }} />\r\n \r\n
\r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {/* 基本设置 */}\r\n {/* IP地址 */}\r\n
\r\n \r\n {\r\n setDevice({ ...device, Params: { ...device.Params, IPAddress: e.target.value } })\r\n }} />\r\n \r\n {\r\n setState>0&&state.main.type<103&&\r\n \r\n }\r\n \r\n \r\n \r\n {\r\n // 补偿\r\n setState>1&&\r\n \r\n \r\n
补偿:
温度:
\r\n {\r\n let value = e;\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempCompensate: value } })\r\n }} />\r\n
湿度:
\r\n {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiCompensate:e } })\r\n }} />\r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n
\r\n \r\n }\r\n {/* 回传间隔 */}\r\n \r\n \r\n {\r\n var reg = /^[\\d]{0,4}$/\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n uploadInterval.error = false\r\n setDevice({ ...device, Params: { ...device.Params, RealTimeInt: Number(val) } })\r\n } else {\r\n uploadInterval.error = true\r\n setDevice({ ...device, Params: { ...device.Params, RealTimeInt: val } })\r\n }\r\n }} />\r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n {/* 读取设备时间 */}\r\n \r\n \r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n {/* 远程关机 */}\r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n {/* 读取历史数据 */}\r\n \r\n \r\n
\r\n 读取历史数据:\r\n {\r\n // console.log(dateStrings)\r\n if (dateStrings[0] !== \"\") {\r\n setTimeReadDataStart({ validity: true, error: false, value:dateStrings[0] })\r\n setTimeReadDataEnd({ validity: true, error: false, value:dateStrings[1] })\r\n }\r\n }}\r\n />\r\n
\r\n\r\n \r\n
\r\n \r\n {/* 存储间隔 */}\r\n \r\n \r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n store.error = false\r\n setDevice({ ...device, Params: { ...device.Params, NorStoreInt: Number(val) } })\r\n } else {\r\n store.error = true\r\n setDevice({ ...device, Params: { ...device.Params, NorStoreInt: val } })\r\n }\r\n }} />\r\n {\r\n\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n store.error = false\r\n setDevice({ ...device, Params: { ...device.Params, AlmStoreInt: Number(val) } })\r\n } else {\r\n store.error = true\r\n setDevice({ ...device, Params: { ...device.Params, AlmStoreInt: val } })\r\n }\r\n }}/>\r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n {/* 探头停用 */}\r\n \r\n
探头停用:
\r\n {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, Enable: e.target.checked ? 1 : 0 } })\r\n }}>停用\r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n {/* 探头连接失败 */}\r\n \r\n \r\n
探头连接失败报警:
\r\n \r\n \r\n
空库设置:
\r\n 0} onChange={e=>{\r\n // setDevHide(2);\r\n // let devsTemp = JSON.parse(JSON.stringify(devices));\r\n // setDevices(devsTemp)\r\n setDevice({ ...device, Sensor: { ...device.Sensor, Hide: e.target.checked?2:0 } })\r\n\r\n }}>空库\r\n {\r\n // setDevHide(e.target.checked?2:3);\r\n setDevice({ ...device, Sensor: { ...device.Sensor, Hide: e.target.checked?2:3 } })\r\n }}>存储\r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n {/* 离线报警 */}\r\n \r\n
离线报警:
\r\n {\r\n setOffLine({...offline,offtime:e.target.value*1})\r\n }}/>\r\n {\r\n let reg = intReg\r\n let val = e.target.value===''?1:e.target.value;\r\n if(reg.test(val)){\r\n setOffLine({...offline,interval:val*1})\r\n }else{\r\n setOffLine({...offline,interval:1})\r\n }\r\n \r\n }}/>\r\n {\r\n setOffLine({...offline,count:e.target.value*1})\r\n }}/>\r\n \r\n \r\n \r\n {/* 存储信息 */}\r\n {\r\n setState>1&&\r\n \r\n
存储信息:
\r\n \r\n \r\n
当前存储数据的扇区:{device.StoreInfo.CurrSector}
\r\n
当前存储数据的扇区ADDRESS:{device.StoreInfo.CurrSectorAddr}
\r\n\r\n \r\n }\r\n {\r\n setState>1&&\r\n \r\n
读取存储数据的扇区:{device.StoreInfo.ReadSector}
\r\n
读取存储数据的扇区ADDRESS:{device.StoreInfo.ReadSectorAddr}
\r\n
大批量读取数据的起始扇区:{device.StoreInfo.LargeSector}
\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n // state.main.type===101&&\r\n \r\n
\r\n
\r\n {\r\n let devInfo= devices;\r\n if(e.target.checked){\r\n devList.map(m=>{\r\n m.all = true;\r\n m.nodes.map(mn=>{\r\n mn.checked = true\r\n })\r\n })\r\n let devsTemp = \r\n state.main.type<102? state_device.devicestate.filter(x=>x.Node!==0&&x.District===props.item.District&&\r\n (x.Type!==205&&x.Type!==207&&x.Type!==209))\r\n : \r\n state_device.devicestate.filter(x=>x.Node!==0&&x.District===props.item.District&&x.ExprieStatus!==3&&\r\n (x.Type!==205&&x.Type!==207&&x.Type!==209));\r\n let devsData=[]\r\n devsTemp.map(m=>{\r\n let temp =devsData.findIndex(x=>x.Sn===m.Sn);\r\n m.Sensor.Name = m.Name\r\n if(temp===-1){\r\n devsData.push({Sn:m.Sn,Params:m.Params,Sensor:[m.Sensor],StoreInfo:m.StoreInfo,Type:m.Type})\r\n }else{\r\n devsData[temp].Sensor.push(m.Sensor)\r\n }\r\n })\r\n devsData.sort((a,b)=>a.Sn-b.Sn)\r\n devInfo.data=devsData;\r\n }else{\r\n devList.map(m=>{\r\n m.all = false;\r\n m.nodes.map(mn=>{\r\n mn.checked = false\r\n })\r\n })\r\n devInfo.data =[]\r\n }\r\n let devs = devList.concat();\r\n setDevList(devs)\r\n setDevices(devInfo)\r\n }}>\r\n 全选\r\n \r\n
\r\n {\r\n devList.map((m,index)=>{\r\n return(\r\n
\r\n
\r\n 主机名: \r\n {m.name}\r\n
\r\n
\r\n 主机编号: \r\n {m.sn}\r\n
\r\n \r\n
\r\n 测点\r\n {\r\n let devInfo= devices;\r\n let tempdevInfo = state.main.type<102? state_device.devicestate.filter(x=>x.Node!==0&&x.District===props.item.District&&\r\n (x.Type!==205&&x.Type!==207&&x.Type!==209))\r\n : \r\n state_device.devicestate.filter(x=>x.Node!==0&&x.District===props.item.District&&x.ExprieStatus!==3&&\r\n (x.Type!==205&&x.Type!==207&&x.Type!==209));\r\n m.indeterminate = false\r\n if(e.target.checked){\r\n m.nodes.map(n=>{\r\n n.checked = true;\r\n })\r\n m.all = true;\r\n tempdevInfo.filter(x=>x.Sn===m.sn).map(n=>{\r\n let temp = devInfo.data.findIndex(x=>x.Sn===m.sn);\r\n n.Sensor.Name = n.Name\r\n if(temp===-1){\r\n devInfo.data.push({Sn:n.Sn,Params:n.Params,Sensor:[n.Sensor],StoreInfo:n.StoreInfo,Type:n.Type})\r\n }else{\r\n devInfo.data[temp].Sensor.push(n.Sensor)\r\n }\r\n })\r\n devInfo.data.sort((a,b)=>a.Sn-b.Sn)\r\n }else{\r\n m.all = false;\r\n m.nodes.map(n=>{\r\n n.checked = false\r\n })\r\n devInfo.data = devInfo.data.filter(x=>x.Sn!==m.sn)\r\n }\r\n let templist = devList.concat()\r\n setDevList(templist)\r\n setDevices(devInfo)\r\n }} checked={m.all}>\r\n 全选\r\n \r\n
\r\n
\r\n {\r\n m.nodes.map(mm=>{\r\n return(\r\n {\r\n let devInfo= devices;\r\n let temp = state_device.devicestate.filter(x=>x.ID === mm.value);\r\n let n = temp[0];\r\n let index = devInfo.data.findIndex(x=>x.Sn===n.Sn)\r\n if(e.target.checked){\r\n mm.checked = true;\r\n n.Sensor.Name = n.Name\r\n if(index===-1){\r\n devInfo.data.push({Sn:n.Sn,Params:n.Params,Sensor:[n.Sensor],StoreInfo:n.StoreInfo,Type:n.Type})\r\n devInfo.data.sort((a,b)=>a.Sn-b.Sn)\r\n }else{\r\n devInfo.data[index].Sensor.push(n.Sensor);\r\n devInfo.data[index].Sensor.sort((a,b)=>a.Id-b.Id)\r\n }\r\n \r\n }else{\r\n mm.checked = false\r\n let sensonTemp =devInfo.data[index].Sensor;\r\n sensonTemp= sensonTemp.filter(x=>x.Id!==n.Node);\r\n if(sensonTemp.length>0){\r\n devInfo.data[index].Sensor = sensonTemp;\r\n }else{\r\n devInfo.data=devInfo.data.filter(x=>x.Sn!==n.Sn)\r\n }\r\n \r\n }\r\n setDevices(devInfo)\r\n let ttt=devList.filter(x=>x.sn===m.sn)[0].nodes\r\n // console.log(ttt);\r\n let checkNodelen= ttt.filter(x=>x.checked).length\r\n if(checkNodelen===0||checkNodelen===ttt.length){\r\n m.indeterminate = false\r\n }else{\r\n m.indeterminate = true\r\n }\r\n if(checkNodelen===ttt.length){\r\n m.all = true\r\n }else{\r\n m.all = false\r\n }\r\n let templist=devList.concat()\r\n \r\n setDevList(templist)\r\n }}\r\n >{mm.label}\r\n )\r\n })\r\n }\r\n
\r\n
)\r\n })\r\n }\r\n \r\n
\r\n 0&&\r\n }\r\n onChange={key=>{\r\n setIsShowSet(true);\r\n if(key==='1'){//上下限\r\n devices.type = 5;\r\n }\r\n if(key==='2'){//超标\r\n devices.type = 8;\r\n }\r\n if(key==='3'){//预警\r\n devices.type = -1;\r\n }\r\n if(key==='4'){//空库\r\n devices.type = -2;\r\n }\r\n if(key==='5'){//断电\r\n devices.type = 6;\r\n }\r\n if(key==='6'){//补偿\r\n devices.type = 10;\r\n }\r\n if(key==='7'){//回传间隔\r\n devices.type = 3;\r\n }\r\n if(key==='8'){//存储间隔\r\n devices.type = 9;\r\n }\r\n if(key==='9'){//基本设置\r\n setIsShowSet(false)\r\n }\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }}\r\n >\r\n \r\n
\r\n \r\n \r\n {\r\n devices.data.map(m=>(\r\n m.Sensor.map(n=>{\r\n return(\r\n
\r\n
{n.Name}
\r\n
主机
\r\n
{m.Sn}
\r\n
测点
\r\n
{n.Id}
\r\n \r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n n.TempAlarmHigh = parseFloat(e.target.value)\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n } \r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n n.TempAlarmLow = parseFloat(e.target.value)\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n } \r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n n.HumiAlarmHigh = parseFloat(e.target.value)\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n } \r\n }} disabled={n.HumiEnable!==0||!n.HumiSwitch}/>\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n n.HumiAlarmLow = parseFloat(e.target.value) \r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n } \r\n }} disabled={n.HumiEnable!==0||!n.HumiSwitch}/>\r\n \r\n \r\n )\r\n })\r\n \r\n ))\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n devices.data.map(m=>{\r\n return(\r\n
\r\n {/*
{n.Name}
*/}\r\n
主机
\r\n
{m.Sn}
\r\n {/*
测点
*/}\r\n {/*
{n.Id}
*/}\r\n {/*
报警参数:
*/}\r\n {/* */}\r\n \r\n {\r\n let reg = /^\\d{2}\\:\\d{2}$/\r\n if (reg.test(e.target.value)) {\r\n m.Params.OverAlarm.StartTime = e.target.value;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }\r\n }} />\r\n {\r\n let reg = /^\\d{2}\\:\\d{2}$/\r\n if (reg.test(e.target.value)) {\r\n m.Params.OverAlarm.EndTime = e.target.value;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }\r\n }} />\r\n {\r\n let reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n m.Params.OverAlarm.Time = val*1;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }\r\n }} />\r\n {\r\n let reg = intReg\r\n let val = e.target.value===''?1:e.target.value;\r\n if (reg.test(val)) {\r\n m.Params.OverAlarm.TimeInt = val*1;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }\r\n }} />\r\n {\r\n let reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n let count =Number(val);\r\n if(count>255){\r\n count=255\r\n }\r\n m.Params.OverAlarm.TempCount =count;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }\r\n }} />\r\n {\r\n let reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n overAlarm.error = false\r\n let count =Number(val);\r\n if(count>255){\r\n count=255\r\n }\r\n m.Params.OverAlarm.HumiCount = count;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n } \r\n }} />\r\n \r\n \r\n )\r\n })\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n devices.data.map(m=>(\r\n m.Sensor.map(n=>{\r\n return(\r\n
\r\n
{n.Name}
\r\n
主机
\r\n
{m.Sn}
\r\n
测点
\r\n
{n.Id}
\r\n \r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n n.TempWarningHigh = parseFloat(e.target.value)\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }\r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n n.TempWarningLow = parseFloat(e.target.value)\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }\r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n n.HumiWarningHigh = parseFloat(e.target.value)\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }\r\n }} disabled={n.HumiEnable!==0||!n.HumiSwitch}/>\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n n.HumiWarningLow = parseFloat(e.target.value)\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n } \r\n }} disabled={n.HumiEnable!==0||!n.HumiSwitch}/>\r\n \r\n \r\n )\r\n })\r\n \r\n ))\r\n }\r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n
\r\n \r\n \r\n {\r\n devices.data.map(m=>(\r\n m.Sensor.map(n=>{\r\n return(\r\n
\r\n
{n.Name}
\r\n
主机
\r\n
{m.Sn}
\r\n
测点
\r\n
{n.Id}
\r\n 1} onChange={e=>{\r\n if(e.target.checked){\r\n n.Hide=2\r\n }else{\r\n n.Hide=0\r\n }\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }}>空库\r\n {\r\n n.Hide = e.target.checked?2:3;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n // setDevHide();\r\n }}>存储数据\r\n \r\n \r\n )\r\n })\r\n \r\n ))\r\n }\r\n \r\n \r\n \r\n \r\n */}\r\n \r\n
\r\n \r\n \r\n {\r\n devices.data.map(m=>{\r\n return(\r\n
\r\n {/*
{n.Name}
*/}\r\n
主机
\r\n
{m.Sn}
\r\n {/*
测点
*/}\r\n {/*
{n.Id}
*/}\r\n \r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n m.Params.PowerAlarmTimeCount = val*1;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n } \r\n }} />\r\n {\r\n let reg = intReg\r\n let val = e.target.value===''?1:e.target.value;\r\n if (reg.test(val)) {\r\n m.Params.PowerAlarmMsgIntCount = val*1;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }\r\n }} />\r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n m.Params.PowerAlarmMsgCount = val*1;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }\r\n }} />\r\n \r\n \r\n ) \r\n })\r\n }\r\n \r\n \r\n \r\n \r\n \r\n {\r\n setState>1 &&\r\n \r\n
\r\n \r\n \r\n {\r\n devices.data.map(m=>(\r\n m.Sensor.map(n=>{\r\n return(\r\n
\r\n
{n.Name}
\r\n
主机
\r\n
{m.Sn}
\r\n
测点
\r\n
{n.Id}
\r\n \r\n
补偿:
温度:
\r\n {\r\n n.TempCompensate = e;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }} />\r\n
湿度:
\r\n {\r\n n.HumiCompensate = e;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }} />\r\n
\r\n \r\n )\r\n })\r\n \r\n ))\r\n }\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n
\r\n \r\n \r\n {\r\n devices.data.map(m=>{\r\n return(\r\n
\r\n {/*
{n.Name}
*/}\r\n
主机
\r\n
{m.Sn}
\r\n {/*
测点
*/}\r\n {/*
{n.Id}
*/}\r\n {\r\n var reg = /^[\\d]{0,4}$/\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n m.Params.RealTimeInt = val*1;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n // setDevice({ ...device, Params: { ...device.Params, RealTimeInt: Number(val) } })\r\n } \r\n }} />\r\n \r\n ) \r\n })\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n devices.data.map(m=>{\r\n return(\r\n
\r\n {/*
{n.Name}
*/}\r\n
主机
\r\n
{m.Sn}
\r\n {/*
测点
*/}\r\n {/*
{n.Id}
*/}\r\n \r\n {\r\n let reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n m.Params.NorStoreInt = val*1;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n // setDevice({ ...device, Params: { ...device.Params, NorStoreInt: Number(val) } })\r\n }\r\n }} />\r\n {\r\n let reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n m.Params.AlmStoreInt = val*1;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n // setDevice({ ...device, Params: { ...device.Params, AlmStoreInt: Number(val) } })\r\n } \r\n }}/>\r\n \r\n \r\n ) \r\n })\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {/* 温湿度预警 */}\r\n
\r\n
预警:
\r\n \r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningHigh: parseFloat(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningHigh: 0 } })\r\n }\r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningLow: parseFloat(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningLow: 0 } })\r\n }\r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiWarningHigh: parseFloat(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiWarningHigh: 0 } })\r\n }\r\n }} disabled={device.Humi===0}/>\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiWarningLow: parseFloat(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiWarningLow: 0 } })\r\n }\r\n }} disabled={device.Humi===0}/>\r\n \r\n \r\n \r\n\r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n {/* 温湿度报警 */}\r\n \r\n
报警:
\r\n \r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempAlarmHigh: parseFloat(e.target.value) } })\r\n } else {\r\n sensorAlarm.error = true\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempAlarmHigh: (e.target.value) } })\r\n }\r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n sensorAlarm.error = false\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempAlarmLow: parseFloat(e.target.value) } })\r\n } else {\r\n sensorAlarm.error = true\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempAlarmLow: (e.target.value) } })\r\n }\r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n sensorAlarm.error = false\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiAlarmHigh: parseFloat(e.target.value) } })\r\n } else {\r\n sensorAlarm.error = true\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiAlarmHigh: (e.target.value) } })\r\n }\r\n }} disabled={device.Humi===0}/>\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n sensorAlarm.error = false\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiAlarmLow: parseFloat(e.target.value) } })\r\n } else {\r\n sensorAlarm.error = true\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiAlarmLow: (e.target.value) } })\r\n }\r\n }} disabled={device.Humi===0}/>\r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n {/* 断电 */}\r\n \r\n
断电:
\r\n \r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n powerAlarm.error = false\r\n setDevice({ ...device, Params: { ...device.Params, PowerAlarmTimeCount: Number(val) } })\r\n } else {\r\n powerAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, PowerAlarmTimeCount: val } })\r\n }\r\n }} />\r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?1:e.target.value;\r\n if (reg.test(val)) {\r\n powerAlarm.error = false\r\n setDevice({ ...device, Params: { ...device.Params, PowerAlarmMsgIntCount: Number(val) } })\r\n } else {\r\n powerAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, PowerAlarmMsgIntCount: (val) } })\r\n }\r\n }} />\r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n powerAlarm.error = false\r\n setDevice({ ...device, Params: { ...device.Params, PowerAlarmMsgCount: parseFloat(val) } })\r\n } else {\r\n powerAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, PowerAlarmMsgCount: (val) } })\r\n }\r\n }} />\r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n {/* 电量 */}\r\n \r\n
电量:
\r\n \r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n batteryAlarm.error = false\r\n setDevice({ ...device, Params: { ...device.Params, BatPowerAlarm: Number(val) } })\r\n } else {\r\n batteryAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, BatPowerAlarm: val } })\r\n }\r\n }} />\r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n batteryAlarm.error = false\r\n setDevice({ ...device, Sensor: { ...device.Sensor, BatPowerAlarm: Number(val) } })\r\n } else {\r\n batteryAlarm.error = true\r\n setDevice({ ...device, Sensor: { ...device.Sensor, BatPowerAlarm: (val) } })\r\n }\r\n }} />\r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n {/* 超标报警 */}\r\n \r\n
超标报警:
\r\n \r\n {\r\n var reg = /^\\d{2}\\:\\d{2}$/\r\n if (reg.test(e.target.value)) {\r\n overAlarm.error = false\r\n } else {\r\n overAlarm.error = true\r\n }\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, StartTime: (e.target.value) } } })\r\n }} />\r\n {\r\n var reg = /^\\d{2}\\:\\d{2}$/\r\n if (reg.test(e.target.value)) {\r\n overAlarm.error = false\r\n } else {\r\n overAlarm.error = true\r\n }\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, EndTime: (e.target.value) } } })\r\n }} />\r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n overAlarm.error = false\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, Time: Number(val) } } })\r\n } else {\r\n overAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, Time:val } } })\r\n }\r\n }} />\r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?1:e.target.value;\r\n if (reg.test(val)) {\r\n overAlarm.error = false\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, TimeInt: Number(val) } } })\r\n } else {\r\n overAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, TimeInt: val } } })\r\n }\r\n }} />\r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n overAlarm.error = false\r\n let count =Number(val);\r\n if(count>255){\r\n count=255\r\n }\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, TempCount: count} } })\r\n } else {\r\n overAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, TempCount: val } } })\r\n }\r\n }} />\r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n overAlarm.error = false\r\n let count =Number(val);\r\n if(count>255){\r\n count=255\r\n }\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, HumiCount: count } } })\r\n } else {\r\n overAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, HumiCount: val } } })\r\n }\r\n }} />\r\n \r\n
\r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n {/* IP地址 */}\r\n \r\n \r\n {\r\n setDevice({ ...device, Params: { ...device.Params, IPAddress: e.target.value } })\r\n }} />\r\n\r\n {\r\n setState>0&&state.main.type<103&&\r\n \r\n }\r\n \r\n \r\n \r\n {/* 回传间隔 */}\r\n \r\n \r\n {\r\n var reg = /^[\\d]{0,4}$/\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n setDevice({ ...device, Params: { ...device.Params, RealTimeInt: Number(val) } })\r\n } else {\r\n setDevice({ ...device, Params: { ...device.Params, RealTimeInt: val } })\r\n }\r\n }} />\r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n {/* 补偿 */}\r\n \r\n {\r\n setState>1?\r\n \r\n
补偿:
温度:
\r\n {\r\n let value = e;\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempCompensate: value } })\r\n }} />\r\n
湿度:
\r\n {\r\n\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiCompensate:e } })\r\n }} />\r\n {\r\n setState>0&&\r\n \r\n }\r\n
\r\n :
\r\n }\r\n \r\n \r\n {/* 设备时间 */}\r\n \r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n {/* 设备关机 */} \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n {/* \r\n \r\n
\r\n 读取历史数据:\r\n {\r\n // console.log(dateStrings)\r\n if (dateStrings[0] !== \"\") {\r\n setTimeReadDataStart({ validity: true, error: false, value:dateStrings[0] })\r\n setTimeReadDataEnd({ validity: true, error: false, value:dateStrings[1] })\r\n }\r\n }}\r\n />\r\n
\r\n\r\n \r\n
\r\n */}\r\n\r\n {/* 存储间隔 */}\r\n \r\n \r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n store.error = false\r\n setDevice({ ...device, Params: { ...device.Params, NorStoreInt: Number(val) } })\r\n } else {\r\n store.error = true\r\n setDevice({ ...device, Params: { ...device.Params, NorStoreInt: val } })\r\n }\r\n }} />\r\n {\r\n\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n store.error = false\r\n setDevice({ ...device, Params: { ...device.Params, AlmStoreInt: Number(val) } })\r\n } else {\r\n store.error = true\r\n setDevice({ ...device, Params: { ...device.Params, AlmStoreInt: val } })\r\n }\r\n }}/>\r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n {/* 探头停用 */}\r\n \r\n
探头停用:
\r\n {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, Enable: e.target.checked ? 1 : 0 } })\r\n }}>停用\r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n\r\n \r\n {/* \r\n \r\n
探头连接失败报警:
\r\n */}\r\n \r\n
空库设置:
\r\n 0} onChange={e=>{\r\n setDevice({...device,Sensor:{...device.Sensor,Hide:e.target.checked?2:0}});\r\n }}>空库\r\n {\r\n setDevice({...device,Sensor:{...device.Sensor,Hide:e.target.checked?2:3}});\r\n }}>存储\r\n {\r\n setState>0&&\r\n \r\n } \r\n \r\n {/* \r\n
离线报警:
\r\n {\r\n setOffLine({...offline,offtime:e.target.value*1})\r\n }}/>\r\n {\r\n let reg = intReg\r\n let val = e.target.value===''?1:e.target.value;\r\n if(reg.test(val)){\r\n setOffLine({...offline,interval:val*1})\r\n }else{\r\n setOffLine({...offline,interval:1})\r\n }\r\n \r\n }}/>\r\n {\r\n setOffLine({...offline,count:e.target.value*1})\r\n }}/>\r\n \r\n \r\n */}\r\n {/* \r\n \r\n */}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n {\r\n let s = 0\r\n if(state.main.account==='湖北亿昊药业有限公司'){\r\n if(affirmPwd.startsWith(\"湖北亿昊药业有限公司\")){\r\n let strs = affirmPwd.split('+');\r\n if(strs.length>1){\r\n if(md5(strs[1])===state.main.password){\r\n s=2;\r\n setShowAffirm(false);\r\n }else{\r\n s=0;\r\n message.warn('密码错误');\r\n }\r\n }else{\r\n s=0;\r\n message.warn('密码错误');\r\n }\r\n \r\n }else{\r\n if(md5(affirmPwd)===state.main.password){\r\n s=1;\r\n setShowAffirm(false);\r\n }else{\r\n s=0;\r\n message.warn('密码错误');\r\n }\r\n }\r\n }else{\r\n if(affirmPwd.startsWith(\"admin\")){\r\n if(md5(affirmPwd.slice(5))===state.main.password){\r\n s=2;\r\n setShowAffirm(false);\r\n }else{\r\n s=0;\r\n message.warn('密码错误');\r\n }\r\n }else{\r\n if(md5(affirmPwd)===state.main.password){\r\n s=1;\r\n setShowAffirm(false);\r\n }else{\r\n s=0;\r\n message.warn('密码错误');\r\n }\r\n }\r\n }\r\n setSetState(s);\r\n props.changeSetState(s);\r\n dispatch({type:'super',super:s})\r\n dispatch({type:'setState',setState:s===0?0:1})\r\n }} onCancel={()=>setShowAffirm(false)}>\r\n setAffirmPwd(e.target.value)} />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default DeviceSet","import React, { useState, useContext, useEffect } from 'react'\r\nimport { StateContext, TimeFormatSeconds } from '../../../state';\r\nimport http from '../../../../../utils/server'\r\nimport { Row, Col, Button, Spin, Modal, Input, Space, Checkbox, Divider, DatePicker } from 'antd'\r\nimport moment from 'moment';\r\n\r\nimport './device.less'\r\nimport { Mode } from '../../../../../App';\r\nconst { RangePicker } = DatePicker;\r\nfunction formatDateTimes(inputTime) {\r\n var date = new Date(inputTime);\r\n var y = date.getFullYear();\r\n var m = date.getMonth() + 1;\r\n m = m < 10 ? ('0' + m) : m;\r\n var d = date.getDate();\r\n d = d < 10 ? ('0' + d) : d;\r\n var h = date.getHours();\r\n h = h < 10 ? ('0' + h) : h;\r\n var minute = date.getMinutes();\r\n var second = date.getSeconds();\r\n minute = minute < 10 ? ('0' + minute) : minute;\r\n second = second < 10 ? ('0' + second) : second;\r\n return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;\r\n};\r\n\r\nfunction DeviceRoomSet(props) {\r\n const { state, dispatch } = useContext(StateContext)\r\n\r\n const [device, setDevice] = useState(props.item)\r\n const [runTime, setRunTime] = useState({ validity: false, error: false, type: 1, value: 10 })\r\n const [load, setLoad] = useState(false)\r\n const SetDeviceOpenDoor = (t) => {\r\n if (runTime.error) {\r\n Modal.error({\r\n title: '参数错误',\r\n centered: true,\r\n content: '请检查所设置的参数',\r\n });\r\n return\r\n }\r\n setLoad(true)\r\n http.post((props.cloud ? \"/v3\" : \"/v1\") + \"/setdeviceio\", { device: device.Sn, status: 1, channel: 1, mode: 0, time: runTime.value }).then(data => {\r\n setLoad(false)\r\n if (data.code === 0) {\r\n setDevice({ ...device, OffLineAlarm: t })\r\n }\r\n })\r\n }\r\n const SetDeviceCloseDoor = (t) => {\r\n if (runTime.error) {\r\n Modal.error({\r\n title: '参数错误',\r\n centered: true,\r\n content: '请检查所设置的参数',\r\n });\r\n return\r\n }\r\n setLoad(true)\r\n http.post((props.cloud ? \"/v3\" : \"/v1\") + \"/setdeviceio\", { device: device.Sn, status: 1, channel: 2, mode: 0, time: runTime.value }).then(data => {\r\n setLoad(false)\r\n if (data.code === 0) {\r\n setDevice({ ...device, LinkAlarm: t })\r\n }\r\n })\r\n }\r\n const SetDeviceParams = (t) => {\r\n if (t.validity) {\r\n if (t.error) {\r\n Modal.error({\r\n title: '参数错误',\r\n centered: true,\r\n content: '请检查所设置的参数',\r\n });\r\n } else {\r\n setLoad(true)\r\n http.post((props.cloud ? \"/v3\" : \"/v1\") + \"/setdevice\", { ...t, device: device }).then(data => {\r\n setLoad(false)\r\n })\r\n }\r\n } else {\r\n Modal.error({\r\n title: '操作错误',\r\n centered: true,\r\n content: '设置之前必须先读取参数',\r\n });\r\n }\r\n }\r\n return (\r\n\r\n \r\n
\r\n {device.Name} {' 主机编号:' + device.Sn} {' 测点ID: ' + device.Node} {Mode !== 'soc' ? null : ' 用户: ' + state.district.filter(item => item.id === device.District)[0].user_name}\r\n {' 区域: ' + state.district.filter(item => item.id === device.District)[0].name}\r\n
\r\n \r\n 基本设置\r\n
\r\n {\r\n var reg = /^[0-9]*[1-9][0-9]*$/\r\n if (reg.test(e.target.value)) {\r\n setRunTime({ ...runTime, error: false, value: Number(e.target.value) })\r\n } else {\r\n setRunTime({ ...runTime, error: true, value: e.target.value })\r\n }\r\n }} />\r\n \r\n \r\n
开启遮阳:\r\n
\r\n \r\n \r\n
关闭遮阳:\r\n
\r\n \r\n 设备状态\r\n {\r\n (() => {\r\n if (device.IOModel.Status[0] === 0 && device.IOModel.Status[1] === 0) {\r\n return \"设备待机中\"\r\n }else if (device.IOModel.Status[0] === 2 && device.IOModel.Status[1] === 0) {\r\n return \"正在开启遮阳\"\r\n } else if (device.IOModel.Status[1] === 2 && device.IOModel.Status[0] === 0) {\r\n return \"正在关闭遮阳\"\r\n } else if (device.IOModel.Status[0] === 1 && device.IOModel.Status[1] === 0) {\r\n return \"已经开启遮阳\"\r\n } else if (device.IOModel.Status[1] === 1 && device.IOModel.Status[0] === 0) {\r\n return \"已经关闭遮阳\"\r\n } else {\r\n return \"设备出现故障\"\r\n }\r\n })()\r\n }\r\n 开关状态\r\n {\r\n device.IOModel.Status.map((item, index) => (\r\n IO{index + 1}:{item}\r\n ))\r\n }\r\n\r\n \r\n \r\n )\r\n}\r\n\r\nexport default DeviceRoomSet","import React, { useState, useContext, useEffect } from 'react'\r\nimport { StateContext } from '../../../state';\r\nimport { StateDeviceContext } from '../../../state_device';\r\nimport http from '../../../../../utils/server'\r\nimport { Row, Col, Button, Spin, Modal, Input, Space, Checkbox, Divider, DatePicker, Tabs, message, InputNumber} from 'antd'\r\nimport moment from 'moment';\r\n\r\nimport './device.less'\r\nimport { Mode } from '../../../../../App';\r\nimport md5 from 'js-md5';\r\nconst { RangePicker } = DatePicker;\r\nconst { TabPane } = Tabs;\r\nconst intReg = /^(0|1?\\d{0,2}|2[0-4]\\d|25[0-5])$/;\r\nfunction formatTime(time){\r\n if(time){\r\n var strs= time.split(':');\r\n if(strs.length<2) return time; \r\n strs[0].length===1&&(strs[0]='0'+strs[0]);\r\n strs[1].length===1&&(strs[1]='0'+strs[1]);\r\n return strs[0]+':'+strs[1];\r\n }\r\n}\r\nfunction DeviceSet(props) {\r\n const { state, dispatch } = useContext(StateContext)\r\n const { state_device, dispatch_device } = useContext(StateDeviceContext)\r\n const [device, setDevice] = useState(props.item)\r\n const [devices, setDevices] = useState({type:5,data:[]});\r\n const [serverIP, setServerIP] = useState({ validity: false, error: false, type: 1 })\r\n const [deviceTime, setDeviceTime] = useState({ validity: false, error: false, type: 2 })\r\n const [uploadInterval, setUploadInterval] = useState({ validity: false, error: false, type: 3 })\r\n const [sensorStop, setSensorStop] = useState({ validity: false, error: false, type: 4 })\r\n const [sensorAlarm, setSensorAlarm] = useState({ validity: false, error: false, type: 5 })\r\n const [powerAlarm, setPowerAlarm] = useState({ validity: false, error: false, type: 6 })\r\n const [batteryAlarm, setBatteryAlarm] = useState({ validity: false, error: false, type: 7 })\r\n const [overAlarm, setOverAlarm] = useState({ validity: false, error: false, type: 8 })\r\n\r\n const [store, setStore] = useState({ validity: false, error: false, type: 9 })\r\n const [revise, setRevise] = useState({ validity: false, error: false, type: 10 })\r\n const [devClose, setDevClose] = useState({ validity: true, error: false, type: 11 })\r\n const [load, setLoad] = useState(false)\r\n\r\n const [timeReadDataStart,setTimeReadDataStart] = useState({ validity: false, error: false, value:\"\" })\r\n const [timeReadDataEnd,setTimeReadDataEnd] = useState({ validity: false, error: false, value:\"\" })\r\n const [offline,setOffLine] = useState({offtime:10,interval:5,count:2});\r\n const [showAffirm,setShowAffirm] = useState(false);//设置参数身份确认弹窗\r\n const [affirmPwd,setAffirmPwd] = useState(''); //设置参数确认密码\r\n const [setState, setSetState] = useState(0);//设置状态 0不能设置 1普通设置 2超级设置\r\n const [isSet,setIsSet] = useState(false);//是否有设置权限\r\n const [isMore,setIsMore] = useState(false);//是否多测点设置\r\n const [devList, setDevList] = useState([]);//选中的主机名\r\n const [selDevNodes,setSelDevNodes] = useState([]);\r\n const [isShowSet,setIsShowSet] = useState(true);\r\n useEffect(() => {\r\n setSetState(state.setState);\r\n let role =state.main.role;\r\n setIsSet(role.match('305')===null?false:true)\r\n let devs = \r\n state.main.type<102? state_device.devicestate.filter(x=>x.Node!==0&&x.District==props.item.District&&\r\n x.Type===205)\r\n : \r\n state_device.devicestate.filter(x=>x.Node!==0&&x.District==props.item.District&&x.ExprieStatus!==3&&\r\n x.Type===205);\r\n let devNodes = [];\r\n devs.map(m=>{\r\n let temp = devNodes.findIndex(x=>x.sn===m.Sn)\r\n if(temp===-1){\r\n devNodes.push({sn:m.Sn,name:m.MName,nodes:[{value:m.ID,label:m.Name,key:m.Node,checked:false}],all:false,indeterminate:false})\r\n }else{\r\n devNodes[temp].nodes.push({value:m.ID,label:m.Name,key:m.Node,checked:false})\r\n }\r\n })\r\n \r\n if(devNodes.length>0){\r\n devNodes[0].all = true\r\n devNodes[0].nodes.map(m=>{\r\n m.checked = true\r\n })\r\n }\r\n devNodes.sort((a,b)=>a.sn-b.sn);\r\n setDevList(devNodes)\r\n if(devs.length>0){\r\n let devsTemp = devs.filter(x=>x.Sn===devs[0].Sn);\r\n let devsData =[{Sn:devs[0].Sn,Params:devs[0].Params,Sensor:[],StoreInfo:devs[0].StoreInfo,Type:devs[0].Type}];\r\n devsTemp.map(m=>{\r\n m.Sensor.Name = m.Name\r\n devsData[0].Sensor.push(m.Sensor)\r\n })\r\n let devsInfo = devices;\r\n devsInfo.data = devsData;\r\n setDevices(devsInfo)\r\n }\r\n setSelDevNodes(devs.sort((a,b)=>a.Sn-b.Sn))\r\n }, [])\r\n\r\n const ReadDeviceParams = (t, call) => {\r\n setLoad(true)\r\n http.post((props.cloud ? \"/v3\" : \"/v1\") + \"/getdevice\", { ...t, device: device.Sn, node: device.Node }).then(data => {\r\n setLoad(false)\r\n if (data.code == 0) {\r\n if(data.data.Params.OverAlarm.StartTime!==\"\"){\r\n data.data.Params.OverAlarm.StartTime= formatTime(data.data.Params.OverAlarm.StartTime);\r\n data.data.Params.OverAlarm.EndTime= formatTime(data.data.Params.OverAlarm.EndTime);\r\n }\r\n data.data.Name = device.Name;\r\n data.data.MName = device.MName;\r\n setDevice(data.data);\r\n call({ ...t, validity: true });\r\n }\r\n })\r\n }\r\n const ReadDeviceData = () => {\r\n if(!timeReadDataStart.validity){\r\n Modal.error({\r\n title: '参数错误',\r\n centered: true,\r\n content: '请检查所设置的参数',\r\n });\r\n return\r\n }\r\n if(!timeReadDataEnd.validity){\r\n Modal.error({\r\n title: '参数错误',\r\n centered: true,\r\n content: '请检查所设置的参数',\r\n });\r\n return\r\n }\r\n setLoad(true)\r\n http.post((props.cloud ? \"/v3\" : \"/v1\") + \"/readdevicedata\", { \r\n device: device.Sn, \r\n node: device.Node,\r\n starttime:timeReadDataStart.value ,\r\n endtime:timeReadDataEnd.value\r\n }).then(data => {\r\n setLoad(false)\r\n if (data.code == 0) {\r\n\r\n }\r\n })\r\n }\r\n const SetDeviceOffLineAlarm = (t) => {\r\n setLoad(true)\r\n http.put((props.cloud ? \"/v3\" : \"/v1\") + \"/deviceoffline/\" + device.ID, { alarm: t.alarm ,offtime:t.offtime,interval:t.interval,count:t.count}).then(data => {\r\n setLoad(false)\r\n if (data.code == 0) {\r\n console.log(t);\r\n device.Sensor.OffLineAlarm=t.alarm;\r\n device.Sensor.OffLineTime=t.offtime;\r\n device.Sensor.OffLineAlarmInterval=t.interval;\r\n device.Sensor.OffLineAlarmCount=t.count;\r\n setDevice({ ...device})\r\n }\r\n })\r\n }\r\n const SetDeviceLinkAlarm = (t) => {\r\n setLoad(true)\r\n http.put((props.cloud ? \"/v3\" : \"/v1\") + \"/devicelink/\" + device.ID, { alarm: t }).then(data => {\r\n setLoad(false)\r\n if (data.code == 0) {\r\n device.Sensor.LinkAlarm=t;\r\n setDevice({ ...device})\r\n }\r\n })\r\n }\r\n const SetDeviceParams = (t) => {\r\n if (t.error) {\r\n Modal.error({\r\n title: '参数错误',\r\n centered: true,\r\n content: '请检查所设置的参数',\r\n });\r\n } else {\r\n setLoad(true)\r\n if(isMore){\r\n let devInfo = device;\r\n let checkedList = []\r\n devList.map(m=>{\r\n m.nodes.map(mm=>{\r\n if(mm.checked){\r\n checkedList.push({sn:m.sn,node:mm.key})\r\n }\r\n })\r\n })\r\n let countMax = checkedList.length;\r\n let index = 0;\r\n let timer= setInterval(()=>{\r\n console.log('starttimer',timer);\r\n if(index {\r\n setLoad(false)\r\n })\r\n }else{\r\n clearInterval(timer)\r\n }\r\n index++;\r\n },1000)\r\n }else{\r\n setTimeout(() => {\r\n http.post((props.cloud ? \"/v3\" : \"/v1\") + \"/setdevice\", { ...t, device: device }).then(data => {\r\n setLoad(false)\r\n })\r\n }, 1000);\r\n }\r\n }\r\n\r\n }\r\n const SetDevicesParams = ()=> {\r\n setLoad(true)\r\n setTimeout(() => {\r\n http.post((props.cloud ? \"/v3\" : \"/v1\") + \"/setdevices\", { devices: devices }).then(data => {\r\n setLoad(false)\r\n })\r\n }, 1000);\r\n }\r\n const SetDevicesWarning=()=>{\r\n let devs = [];\r\n devices.data.map(m=>{\r\n m.Sensor.map(n=>{\r\n devs.push({\r\n sn:m.Sn,\r\n node:n.Id,\r\n temp_warning_high:n.TempWarningHigh,\r\n temp_warning_low:n.TempWarningLow,\r\n humi_warning_high:n.HumiWarningHigh,\r\n humi_warning_low:n.HumiWarningLow,\r\n })\r\n })\r\n })\r\n http.put((props.cloud ? \"/v3\" : \"/v1\") + \"/deviceswarning\", {\r\n devices:devs\r\n }).then(data=>{\r\n console.log('批量预警',data);\r\n })\r\n }\r\n const SetDevicesFree=()=>{\r\n let devs = [];\r\n devices.data.map(m=>{\r\n m.Sensor.map(n=>{\r\n devs.push({\r\n sn:m.Sn,\r\n node:n.Id,\r\n hide:n.Hide\r\n })\r\n })\r\n })\r\n http.put((props.cloud ? \"/v3\" : \"/v1\") + \"/devicesfree\", {\r\n devices:devs\r\n }).then(data=>{\r\n console.log('批量空库',data);\r\n })\r\n }\r\n const sleepFun = ()=>{\r\n return new Promise((res)=>{\r\n setTimeout(() => {\r\n res('OK')\r\n }, 3000);\r\n })\r\n }\r\n return (\r\n
\r\n {\r\n setIsMore(e==='1'?false:true)\r\n }}tabBarExtraContent={}>\r\n \r\n
\r\n {device.Name}\r\n {' 主机名:' + device.MName}\r\n \r\n {' 主机编号:' + device.Sn} \r\n {' 测点ID: ' + device.Node} \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n {/* 温湿度预警 */}\r\n
\r\n
预警参数:
\r\n {/* */}\r\n \r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningHigh: parseFloat(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningHigh: 0 } })\r\n }\r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningLow: parseFloat(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningLow: 0 } })\r\n }\r\n }} />\r\n \r\n {\r\n var reg = /^[0]|[1-9]\\d{0,2}$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, WarningInterval: parseInt(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, WarningInterval: 2 } })\r\n }\r\n }} />\r\n \r\n\r\n {/* */}\r\n
\r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n {/* 温湿度报警 */}\r\n \r\n
报警参数:
\r\n {/* */}\r\n \r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n sensorAlarm.error = false\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempAlarmHigh: parseFloat(e.target.value) } })\r\n } else {\r\n sensorAlarm.error = true\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempAlarmHigh: (e.target.value) } })\r\n }\r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n sensorAlarm.error = false\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempAlarmLow: parseFloat(e.target.value) } })\r\n } else {\r\n sensorAlarm.error = true\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempAlarmLow: (e.target.value) } })\r\n }\r\n }} />\r\n \r\n \r\n\r\n {/* */}\r\n
\r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n\r\n \r\n
断电报警:
\r\n \r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n powerAlarm.error = false\r\n setDevice({ ...device, Params: { ...device.Params, PowerAlarmTimeCount: parseFloat(e.target.value) } })\r\n } else {\r\n powerAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, PowerAlarmTimeCount: (e.target.value) } })\r\n }\r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n powerAlarm.error = false\r\n setDevice({ ...device, Params: { ...device.Params, PowerAlarmMsgIntCount: parseFloat(e.target.value) } })\r\n } else {\r\n powerAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, PowerAlarmMsgIntCount: (e.target.value) } })\r\n }\r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n powerAlarm.error = false\r\n setDevice({ ...device, Params: { ...device.Params, PowerAlarmMsgCount: parseFloat(e.target.value) } })\r\n } else {\r\n powerAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, PowerAlarmMsgCount: (e.target.value) } })\r\n }\r\n }} />\r\n \r\n
\r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n
超标报警:
\r\n \r\n {\r\n var reg = /^\\d{2}\\:\\d{2}$/\r\n if (reg.test(e.target.value)) {\r\n overAlarm.error = false\r\n } else {\r\n overAlarm.error = true\r\n }\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, StartTime: (e.target.value) } } })\r\n }} />\r\n {\r\n var reg = /^\\d{2}\\:\\d{2}$/\r\n if (reg.test(e.target.value)) {\r\n overAlarm.error = false\r\n } else {\r\n overAlarm.error = true\r\n }\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, EndTime: (e.target.value) } } })\r\n }} />\r\n {\r\n var reg = /^[0-9]*[1-9][0-9]*$/\r\n if (reg.test(e.target.value)) {\r\n overAlarm.error = false\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, Time: Number(e.target.value) } } })\r\n } else {\r\n overAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, Time: (e.target.value) } } })\r\n }\r\n }} />\r\n {\r\n var reg = /^[0-9]*[1-9][0-9]*$/\r\n if (reg.test(e.target.value)) {\r\n overAlarm.error = false\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, TimeInt: Number(e.target.value) } } })\r\n } else {\r\n overAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, TimeInt: (e.target.value) } } })\r\n }\r\n }} />\r\n {\r\n var reg = /^[0-9]*[1-9][0-9]*$/\r\n if (reg.test(e.target.value)) {\r\n overAlarm.error = false\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, TempCount: Number(e.target.value) } } })\r\n } else {\r\n overAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, TempCount: (e.target.value) } } })\r\n }\r\n }} />\r\n \r\n \r\n
\r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n
电量报警:
\r\n \r\n {\r\n var reg = /^[0-9]*[1-9][0-9]*$/\r\n if (reg.test(e.target.value)) {\r\n batteryAlarm.error = false\r\n setDevice({ ...device, Params: { ...device.Params, BatPowerAlarm: Number(e.target.value) } })\r\n } else {\r\n batteryAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, BatPowerAlarm: (e.target.value) } })\r\n }\r\n }} />\r\n {\r\n var reg = /^[0-9]*[1-9][0-9]*$/\r\n if (reg.test(e.target.value)) {\r\n batteryAlarm.error = false\r\n setDevice({ ...device, Sensor: { ...device.Sensor, BatPowerAlarm: Number(e.target.value) } })\r\n } else {\r\n batteryAlarm.error = true\r\n setDevice({ ...device, Sensor: { ...device.Sensor, BatPowerAlarm: (e.target.value) } })\r\n }\r\n }} />\r\n \r\n
\r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {/* 基本设置 */}\r\n
\r\n \r\n {\r\n setDevice({ ...device, Params: { ...device.Params, IPAddress: e.target.value } })\r\n }} />\r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n {\r\n Mode==='soc'&&(state.main.type<102||setState>1)&&\r\n \r\n \r\n
补偿:
\r\n {\r\n let value = e;\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempCompensate: value } })\r\n }} />\r\n
{props.item.Type===205?\"Pa\":'MPa'}
\r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n
\r\n \r\n }\r\n \r\n \r\n {\r\n var reg = /^[\\d]{0,4}$/\r\n if (reg.test(e.target.value)) {\r\n uploadInterval.error = false\r\n setDevice({ ...device, Params: { ...device.Params, RealTimeInt: Number(e.target.value) } })\r\n } else {\r\n uploadInterval.error = true\r\n setDevice({ ...device, Params: { ...device.Params, RealTimeInt: (e.target.value) } })\r\n }\r\n }} />\r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n
\r\n 读取历史数据:\r\n {\r\n // console.log(dateStrings)\r\n if (dateStrings[0] !== \"\") {\r\n setTimeReadDataStart({ validity: true, error: false, value:dateStrings[0] })\r\n setTimeReadDataEnd({ validity: true, error: false, value:dateStrings[1] })\r\n }\r\n }}\r\n />\r\n
\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n {\r\n var reg = /^[0-9]*[1-9][0-9]*$/\r\n if (reg.test(e.target.value)) {\r\n store.error = false\r\n setDevice({ ...device, Params: { ...device.Params, NorStoreInt: Number(e.target.value) } })\r\n } else {\r\n store.error = true\r\n setDevice({ ...device, Params: { ...device.Params, NorStoreInt: (e.target.value) } })\r\n }\r\n }} />\r\n {\r\n\r\n var reg = /^[0-9]*[1-9][0-9]*$/\r\n if (reg.test(e.target.value)) {\r\n store.error = false\r\n setDevice({ ...device, Params: { ...device.Params, AlmStoreInt: Number(e.target.value) } })\r\n } else {\r\n store.error = true\r\n setDevice({ ...device, Params: { ...device.Params, AlmStoreInt: (e.target.value) } })\r\n }\r\n }}/>\r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n
探头停用:
\r\n {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, Enable: e.target.checked ? 1 : 0 } })\r\n }}>停用\r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n
探头连接失败报警:
\r\n \r\n \r\n
空库设置:
\r\n 0} onChange={e=>{\r\n setDevice({ ...device, Sensor: { ...device.Sensor, Hide: e.target.checked?2:0 } })\r\n\r\n }}>空库\r\n {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, Hide: e.target.checked?2:3 } })\r\n }}>存储\r\n {\r\n setState>0&&\r\n \r\n } \r\n \r\n \r\n
离线报警:
\r\n {\r\n setOffLine({...offline,offtime:e.target.value*1})\r\n }}/>\r\n {\r\n setOffLine({...offline,interval:e.target.value*1})\r\n }}/>\r\n {\r\n setOffLine({...offline,count:e.target.value*1})\r\n }}/>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n let devInfo= devices;\r\n if(e.target.checked){\r\n devList.map(m=>{\r\n m.all = true;\r\n m.nodes.map(mn=>{\r\n mn.checked = true\r\n })\r\n })\r\n let devsTemp = \r\n state.main.type<102? state_device.devicestate.filter(x=>x.Node!==0&&x.District===props.item.District&&\r\n (x.Type===205))\r\n : \r\n state_device.devicestate.filter(x=>x.Node!==0&&x.District===props.item.District&&x.ExprieStatus!==3&&\r\n (x.Type===205));\r\n let devsData=[]\r\n devsTemp.map(m=>{\r\n let temp =devsData.findIndex(x=>x.Sn===m.Sn);\r\n m.Sensor.Name = m.Name\r\n if(temp===-1){\r\n devsData.push({Sn:m.Sn,Params:m.Params,Sensor:[m.Sensor],StoreInfo:m.StoreInfo,Type:m.Type})\r\n }else{\r\n devsData[temp].Sensor.push(m.Sensor)\r\n }\r\n })\r\n devsData.sort((a,b)=>a.Sn-b.Sn)\r\n devInfo.data=devsData;\r\n }else{\r\n devList.map(m=>{\r\n m.all = false;\r\n m.nodes.map(mn=>{\r\n mn.checked = false\r\n })\r\n })\r\n devInfo.data =[]\r\n }\r\n let devs = devList.concat();\r\n setDevList(devs)\r\n setDevices(devInfo)\r\n }}>\r\n 全选\r\n \r\n
\r\n {\r\n devList.map(m=>{\r\n return(\r\n
\r\n
\r\n 主机名: \r\n {m.name}\r\n
\r\n
\r\n 主机编号: \r\n {m.sn}\r\n
\r\n \r\n
\r\n 测点\r\n {\r\n let devInfo= devices;\r\n let tempdevInfo = state.main.type<102? state_device.devicestate.filter(x=>x.Node!==0&&x.District===props.item.District&&\r\n (x.Type===205))\r\n : \r\n state_device.devicestate.filter(x=>x.Node!==0&&x.District===props.item.District&&x.ExprieStatus!==3&&\r\n (x.Type===205));\r\n m.indeterminate = false\r\n if(e.target.checked){\r\n m.nodes.map(n=>{\r\n n.checked = true;\r\n })\r\n m.all = true;\r\n tempdevInfo.filter(x=>x.Sn===m.sn).map(n=>{\r\n let temp = devInfo.data.findIndex(x=>x.Sn===m.sn);\r\n n.Sensor.Name = n.Name\r\n if(temp===-1){\r\n devInfo.data.push({Sn:n.Sn,Params:n.Params,Sensor:[n.Sensor],StoreInfo:n.StoreInfo,Type:n.Type})\r\n }else{\r\n devInfo.data[temp].Sensor.push(n.Sensor)\r\n }\r\n })\r\n devInfo.data.sort((a,b)=>a.Sn-b.Sn)\r\n }else{\r\n m.all = false;\r\n m.nodes.map(n=>{\r\n n.checked = false\r\n })\r\n devInfo.data = devInfo.data.filter(x=>x.Sn!==m.sn)\r\n }\r\n let templist = devList.concat()\r\n setDevList(templist)\r\n setDevices(devInfo)\r\n }} checked={m.all}>\r\n 全选\r\n \r\n
\r\n
\r\n {\r\n m.nodes.map(mm=>{\r\n return(\r\n {\r\n let devInfo= devices;\r\n let temp = state_device.devicestate.filter(x=>x.ID === mm.value);\r\n let n = temp[0];\r\n console.log('temp',temp,n);\r\n let index = devInfo.data.findIndex(x=>x.Sn===n.Sn)\r\n if(e.target.checked){\r\n mm.checked = true;\r\n n.Sensor.Name = n.Name\r\n if(index===-1){\r\n devInfo.data.push({Sn:n.Sn,Params:n.Params,Sensor:[n.Sensor],StoreInfo:n.StoreInfo,Type:n.Type})\r\n devInfo.data.sort((a,b)=>a.Sn-b.Sn)\r\n }else{\r\n devInfo.data[index].Sensor.push(n.Sensor);\r\n devInfo.data[index].Sensor.sort((a,b)=>a.Id-b.Id)\r\n }\r\n \r\n }else{\r\n mm.checked = false\r\n let sensonTemp =devInfo.data[index].Sensor;\r\n sensonTemp= sensonTemp.filter(x=>x.Id!==n.Node);\r\n if(sensonTemp.length>0){\r\n devInfo.data[index].Sensor = sensonTemp;\r\n }else{\r\n devInfo.data=devInfo.data.filter(x=>x.Sn!==n.Sn)\r\n }\r\n \r\n }\r\n setDevices(devInfo)\r\n let ttt=devList.filter(x=>x.sn===m.sn)[0].nodes\r\n // console.log(ttt);\r\n let checkNodelen= ttt.filter(x=>x.checked).length\r\n if(checkNodelen===0||checkNodelen===ttt.length){\r\n m.indeterminate = false\r\n }else{\r\n m.indeterminate = true\r\n }\r\n if(checkNodelen===ttt.length){\r\n m.all = true\r\n }else{\r\n m.all = false\r\n }\r\n let templist=devList.concat()\r\n\r\n setDevList(templist)\r\n }}\r\n >{mm.label}\r\n )\r\n })\r\n }\r\n
\r\n
)\r\n })\r\n }\r\n \r\n
\r\n 0 && isShowSet&&\r\n }\r\n onChange={key=>{\r\n setIsShowSet(true);\r\n if(key==='1'){//上下限\r\n devices.type = 5;\r\n }\r\n if(key==='2'){//超标\r\n devices.type = 8;\r\n }\r\n if(key==='3'){//预警\r\n devices.type = -1;\r\n }\r\n if(key==='4'){//空库\r\n devices.type = -2;\r\n }\r\n if(key==='5'){//断电\r\n devices.type = 6;\r\n }\r\n if(key==='6'){//补偿\r\n devices.type = 10;\r\n }\r\n if(key==='7'){//回传间隔\r\n devices.type = 3;\r\n }\r\n if(key==='8'){//存储间隔\r\n devices.type = 9;\r\n }\r\n if(key==='9'){//基本设置\r\n setIsShowSet(false)\r\n }\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }}\r\n >\r\n \r\n
\r\n \r\n \r\n {\r\n devices.data.map(m=>(\r\n m.Sensor.map(n=>{\r\n return(\r\n
\r\n
{n.Name}
\r\n
主机
\r\n
{m.Sn}
\r\n
测点
\r\n
{n.Id}
\r\n \r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n n.TempAlarmHigh = parseFloat(e.target.value)\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n } \r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n n.TempAlarmLow = parseFloat(e.target.value)\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n } \r\n }} />\r\n \r\n \r\n )\r\n })\r\n \r\n ))\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n devices.data.map(m=>{\r\n return(\r\n
\r\n {/*
{n.Name}
*/}\r\n
主机
\r\n
{m.Sn}
\r\n {/*
测点
*/}\r\n {/*
{n.Id}
*/}\r\n {/*
报警参数:
*/}\r\n {/* */}\r\n \r\n {\r\n let reg = /^\\d{2}\\:\\d{2}$/\r\n if (reg.test(e.target.value)) {\r\n m.Params.OverAlarm.StartTime = e.target.value;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }\r\n }} />\r\n {\r\n let reg = /^\\d{2}\\:\\d{2}$/\r\n if (reg.test(e.target.value)) {\r\n m.Params.OverAlarm.EndTime = e.target.value;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }\r\n }} />\r\n {\r\n let reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n m.Params.OverAlarm.Time = val*1;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }\r\n }} />\r\n {\r\n let reg = intReg\r\n let val = e.target.value===''?1:e.target.value;\r\n if (reg.test(val)) {\r\n m.Params.OverAlarm.TimeInt = val*1;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }\r\n }} />\r\n {\r\n let reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n let count =Number(val);\r\n if(count>255){\r\n count=255\r\n }\r\n m.Params.OverAlarm.TempCount =count;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }\r\n }} />\r\n \r\n \r\n \r\n )\r\n })\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n devices.data.map(m=>(\r\n m.Sensor.map(n=>{\r\n return(\r\n
\r\n
{n.Name}
\r\n
主机
\r\n
{m.Sn}
\r\n
测点
\r\n
{n.Id}
\r\n \r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n n.TempWarningHigh = parseFloat(e.target.value)\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }\r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n n.TempWarningLow = parseFloat(e.target.value)\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }\r\n }} />\r\n \r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?1:e.target.value;\r\n if (reg.test(val)) {\r\n n.TempWarningHigh =val*1;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }\r\n }} />\r\n \r\n \r\n )\r\n })\r\n \r\n ))\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n devices.data.map(m=>(\r\n m.Sensor.map(n=>{\r\n return(\r\n
\r\n
{n.Name}
\r\n
主机
\r\n
{m.Sn}
\r\n
测点
\r\n
{n.Id}
\r\n 1} onChange={e=>{\r\n if(e.target.checked){\r\n n.Hide=2\r\n }else{\r\n n.Hide=0\r\n }\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }}>空库\r\n {\r\n n.Hide = e.target.checked?2:3;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }}>存储数据\r\n \r\n )\r\n })\r\n \r\n ))\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n devices.data.map(m=>{\r\n return(\r\n
\r\n {/*
{n.Name}
*/}\r\n
主机
\r\n
{m.Sn}
\r\n {/*
测点
*/}\r\n {/*
{n.Id}
*/}\r\n \r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n m.Params.PowerAlarmTimeCount = val*1;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n } \r\n }} />\r\n {\r\n let reg = intReg\r\n let val = e.target.value===''?1:e.target.value;\r\n if (reg.test(val)) {\r\n m.Params.PowerAlarmMsgIntCount = val*1;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }\r\n }} />\r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n m.Params.PowerAlarmMsgCount = val*1;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }\r\n }} />\r\n \r\n \r\n ) \r\n })\r\n }\r\n \r\n \r\n \r\n \r\n \r\n {\r\n setState>1 &&\r\n \r\n
\r\n \r\n \r\n {\r\n devices.data.map(m=>(\r\n m.Sensor.map(n=>{\r\n return(\r\n
\r\n
{n.Name}
\r\n
主机
\r\n
{m.Sn}
\r\n
测点
\r\n
{n.Id}
\r\n \r\n
补偿:
压力:
\r\n {\r\n n.TempCompensate = e;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }} />\r\n \r\n
\r\n \r\n )\r\n })\r\n \r\n ))\r\n }\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n
\r\n \r\n \r\n {\r\n devices.data.map(m=>{\r\n return(\r\n
\r\n {/*
{n.Name}
*/}\r\n
主机
\r\n
{m.Sn}
\r\n {/*
测点
*/}\r\n {/*
{n.Id}
*/}\r\n {\r\n var reg = /^[\\d]{0,4}$/\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n m.Params.RealTimeInt = val*1;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n // setDevice({ ...device, Params: { ...device.Params, RealTimeInt: Number(val) } })\r\n } \r\n }} />\r\n \r\n ) \r\n })\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n devices.data.map(m=>{\r\n return(\r\n
\r\n {/*
{n.Name}
*/}\r\n
主机
\r\n
{m.Sn}
\r\n {/*
测点
*/}\r\n {/*
{n.Id}
*/}\r\n \r\n {\r\n let reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n m.Params.NorStoreInt = val*1;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n // setDevice({ ...device, Params: { ...device.Params, NorStoreInt: Number(val) } })\r\n }\r\n }} />\r\n {\r\n let reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n m.Params.AlmStoreInt = val*1;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n // setDevice({ ...device, Params: { ...device.Params, AlmStoreInt: Number(val) } })\r\n } \r\n }}/>\r\n \r\n \r\n ) \r\n })\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {/* 温湿度预警 */}\r\n
\r\n
预警:
\r\n \r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningHigh: parseFloat(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningHigh: 0 } })\r\n }\r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningLow: parseFloat(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningLow: 0 } })\r\n }\r\n }} />\r\n \r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?1:e.target.value;\r\n if (reg.test(val)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, WarningInterval: val*1 } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, WarningInterval: 2 } })\r\n }\r\n }} />\r\n \r\n \r\n \r\n\r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n {/* 温湿度报警 */}\r\n \r\n
报警:
\r\n \r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempAlarmHigh: parseFloat(e.target.value) } })\r\n } else {\r\n sensorAlarm.error = true\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempAlarmHigh: (e.target.value) } })\r\n }\r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n sensorAlarm.error = false\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempAlarmLow: parseFloat(e.target.value) } })\r\n } else {\r\n sensorAlarm.error = true\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempAlarmLow: (e.target.value) } })\r\n }\r\n }} />\r\n \r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n\r\n \r\n
断电:
\r\n \r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n powerAlarm.error = false\r\n setDevice({ ...device, Params: { ...device.Params, PowerAlarmTimeCount: Number(val) } })\r\n } else {\r\n powerAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, PowerAlarmTimeCount: val } })\r\n }\r\n }} />\r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?1:e.target.value;\r\n if (reg.test(val)) {\r\n powerAlarm.error = false\r\n setDevice({ ...device, Params: { ...device.Params, PowerAlarmMsgIntCount: Number(val) } })\r\n } else {\r\n powerAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, PowerAlarmMsgIntCount: (val) } })\r\n }\r\n }} />\r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n powerAlarm.error = false\r\n setDevice({ ...device, Params: { ...device.Params, PowerAlarmMsgCount: parseFloat(val) } })\r\n } else {\r\n powerAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, PowerAlarmMsgCount: (val) } })\r\n }\r\n }} />\r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n
电量:
\r\n \r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n batteryAlarm.error = false\r\n setDevice({ ...device, Params: { ...device.Params, BatPowerAlarm: Number(val) } })\r\n } else {\r\n batteryAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, BatPowerAlarm: val } })\r\n }\r\n }} />\r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n batteryAlarm.error = false\r\n setDevice({ ...device, Sensor: { ...device.Sensor, BatPowerAlarm: Number(val) } })\r\n } else {\r\n batteryAlarm.error = true\r\n setDevice({ ...device, Sensor: { ...device.Sensor, BatPowerAlarm: (val) } })\r\n }\r\n }} />\r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n {/* 超标报警 */}\r\n \r\n
超标报警:
\r\n \r\n {\r\n var reg = /^\\d{2}\\:\\d{2}$/\r\n if (reg.test(e.target.value)) {\r\n overAlarm.error = false\r\n } else {\r\n overAlarm.error = true\r\n }\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, StartTime: (e.target.value) } } })\r\n }} />\r\n {\r\n var reg = /^\\d{2}\\:\\d{2}$/\r\n if (reg.test(e.target.value)) {\r\n overAlarm.error = false\r\n } else {\r\n overAlarm.error = true\r\n }\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, EndTime: (e.target.value) } } })\r\n }} />\r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n overAlarm.error = false\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, Time: Number(val) } } })\r\n } else {\r\n overAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, Time:val } } })\r\n }\r\n }} />\r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?1:e.target.value;\r\n if (reg.test(val)) {\r\n overAlarm.error = false\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, TimeInt: Number(val) } } })\r\n } else {\r\n overAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, TimeInt: val } } })\r\n }\r\n }} />\r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n overAlarm.error = false\r\n let count =Number(val);\r\n if(count>255){\r\n count=255\r\n }\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, TempCount: count} } })\r\n } else {\r\n overAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, OverAlarm: { ...device.Params.OverAlarm, TempCount: val } } })\r\n }\r\n }} />\r\n \r\n \r\n
\r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n {\r\n setDevice({ ...device, Params: { ...device.Params, IPAddress: e.target.value } })\r\n }} />\r\n\r\n {\r\n setState>0&&state.main.type<103&&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n {\r\n var reg = /^[\\d]{0,4}$/\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n setDevice({ ...device, Params: { ...device.Params, RealTimeInt: Number(val) } })\r\n } else {\r\n setDevice({ ...device, Params: { ...device.Params, RealTimeInt: val } })\r\n }\r\n }} />\r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n {\r\n setState>1?\r\n \r\n
补偿:
压力:
\r\n {\r\n let value = e;\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempCompensate: value } })\r\n }} />\r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n
\r\n :
\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n store.error = false\r\n setDevice({ ...device, Params: { ...device.Params, NorStoreInt: Number(val) } })\r\n } else {\r\n store.error = true\r\n setDevice({ ...device, Params: { ...device.Params, NorStoreInt: val } })\r\n }\r\n }} />\r\n {\r\n\r\n var reg = intReg\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n store.error = false\r\n setDevice({ ...device, Params: { ...device.Params, AlmStoreInt: Number(val) } })\r\n } else {\r\n store.error = true\r\n setDevice({ ...device, Params: { ...device.Params, AlmStoreInt: val } })\r\n }\r\n }}/>\r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n\r\n \r\n
探头停用:
\r\n {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, Enable: e.target.checked ? 1 : 0 } })\r\n }}>停用\r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n\r\n \r\n\r\n \r\n
空库设置:
\r\n 0} onChange={e=>{\r\n setDevice({...device,Sensor:{...device.Sensor,Hide:e.target.checked?2:0}});\r\n }}>空库\r\n {\r\n setDevice({...device,Sensor:{...device.Sensor,Hide:e.target.checked?2:3}});\r\n }}>存储\r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n {/* \r\n \r\n
探头连接失败报警:
\r\n \r\n \r\n \r\n
离线报警:
\r\n {\r\n setOffLine({...offline,offtime:e.target.value*1})\r\n }}/>\r\n {\r\n let reg = intReg\r\n let val = e.target.value===''?1:e.target.value;\r\n if(reg.test(val)){\r\n setOffLine({...offline,interval:val*1})\r\n }else{\r\n setOffLine({...offline,interval:1})\r\n }\r\n \r\n }}/>\r\n {\r\n setOffLine({...offline,count:e.target.value*1})\r\n }}/>\r\n \r\n \r\n */}\r\n {/* \r\n \r\n */}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n let s = 0;\r\n if(affirmPwd.startsWith(\"admin\")){\r\n if(md5(affirmPwd.slice(5))===state.main.password){\r\n s=2\r\n setShowAffirm(false);\r\n }else{\r\n s=0\r\n message.warn('密码错误');\r\n }\r\n }else{\r\n if(md5(affirmPwd)===state.main.password){\r\n s=1\r\n setShowAffirm(false);\r\n }else{\r\n s=0\r\n message.warn('密码错误');\r\n }\r\n }\r\n setSetState(s);\r\n props.changeSetState(s);\r\n dispatch({type:'super',super:s})\r\n dispatch({type:'setState',setState:s===0?0:1})\r\n }} onCancel={()=>setShowAffirm(false)}>\r\n setAffirmPwd(e.target.value)} />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default DeviceSet","import React, { useState, useContext, useEffect } from 'react'\r\nimport { StateContext } from '../../../state';\r\nimport http from '../../../../../utils/server'\r\nimport { Row, Col, Button, Spin, Modal, Input, Space, Checkbox, DatePicker, Tabs, message, InputNumber, Switch} from 'antd'\r\nimport moment from 'moment';\r\nimport { ExclamationCircleOutlined} from '@ant-design/icons'\r\nimport './device.less'\r\nimport { Mode } from '../../../../../App';\r\nimport md5 from 'js-md5';\r\nconst { RangePicker } = DatePicker;\r\nconst { TabPane } = Tabs;\r\n\r\nfunction formatTime(time){\r\n if(time){\r\n var strs= time.split(':');\r\n if(strs.length<2) return time; \r\n strs[0].length===1&&(strs[0]='0'+strs[0]);\r\n strs[1].length===1&&(strs[1]='0'+strs[1]);\r\n return strs[0]+':'+strs[1];\r\n }\r\n}\r\nfunction DeviceSet(props) {\r\n const { state, dispatch } = useContext(StateContext)\r\n\r\n const [device, setDevice] = useState(props.item)\r\n const [serverIP, setServerIP] = useState({ validity: false, error: false, type: 1 })\r\n const [deviceTime, setDeviceTime] = useState({ validity: false, error: false, type: 2 })\r\n const [uploadInterval, setUploadInterval] = useState({ validity: false, error: false, type: 3 })\r\n const [sensorStop, setSensorStop] = useState({ validity: false, error: false, type: 4 })\r\n\r\n const [store, setStore] = useState({ validity: false, error: false, type: 9 })\r\n const [revise, setRevise] = useState({ validity: false, error: false, type: 10 })\r\n const [devClose, setDevClose] = useState({ validity: true, error: false, type: 11 })\r\n const [devStronInfo, setDevStronInfo] = useState({ validity: true, error: false, type: 12})\r\n const [load, setLoad] = useState(false)\r\n\r\n const [timeReadDataStart,setTimeReadDataStart] = useState({ validity: false, error: false, value:\"\" })\r\n const [timeReadDataEnd,setTimeReadDataEnd] = useState({ validity: false, error: false, value:\"\" })\r\n const [offline,setOffLine] = useState({offtime:10,interval:5,count:2});\r\n const [showAffirm,setShowAffirm] = useState(false);//设置参数身份确认弹窗\r\n const [affirmPwd,setAffirmPwd] = useState(''); //设置参数确认密码\r\n const [setState, setSetState] = useState(0);//设置状态 0不能设置 1普通设置 2超级设置\r\n const [isSet,setIsSet] = useState(false);//是否有设置权限\r\n const [isMore,setIsMore] = useState(false);//是否多测点设置\r\n const [devList, setDevList] = useState([]);//选中的主机名\r\n useEffect(() => {\r\n let today = new Date().setHours(0,0,0);\r\n let todayTime = new Date(today).getTime();\r\n setSetState(state.setState);\r\n let role = state.main.role;\r\n setIsSet(role.match('305')===null?false:true)\r\n let devs = \r\n state.main.type<102? state.device.filter(x=>x.node!==0&&x.district==props.item.District&&\r\n x.type===207)\r\n : \r\n state.device.filter(x=>x.node!==0&&x.district==props.item.District&&new Date(x.expire).getTime()>todayTime&&\r\n x.type===207);\r\n let devNodes = [];\r\n devs.map(m=>{\r\n let temp = devNodes.findIndex(x=>x.sn===m.sn)\r\n if(temp===-1){\r\n devNodes.push({sn:m.sn,name:m.m_name,nodes:[{value:m.id,label:m.name,key:m.node,checked:false}],all:false,indeterminate:false})\r\n }else{\r\n devNodes[temp].nodes.push({value:m.id,label:m.name,key:m.node,checked:false})\r\n }\r\n })\r\n if(devNodes.length>0){\r\n devNodes[0].all = true\r\n devNodes[0].nodes.map(m=>{\r\n m.checked = true\r\n })\r\n }\r\n setDevList(devNodes)\r\n }, [])\r\n\r\n\r\n const ReadDeviceParams = (t, call) => {\r\n setLoad(true)\r\n http.post((props.cloud ? \"/v3\" : \"/v1\") + \"/getdevice\", { ...t, device: device.Sn, node: device.Node }).then(data => {\r\n setLoad(false)\r\n if (data.code == 0) {\r\n if(data.data.Params.OverAlarm.StartTime!==\"\"){\r\n data.data.Params.OverAlarm.StartTime= formatTime(data.data.Params.OverAlarm.StartTime);\r\n data.data.Params.OverAlarm.EndTime= formatTime(data.data.Params.OverAlarm.EndTime);\r\n }\r\n data.data.Name = device.Name;\r\n data.data.MName = device.MName;\r\n setDevice(data.data);\r\n call({ ...t, validity: true });\r\n }\r\n })\r\n }\r\n const ReadDeviceData = () => {\r\n if(!timeReadDataStart.validity){\r\n Modal.error({\r\n title: '参数错误',\r\n centered: true,\r\n content: '请检查所设置的参数',\r\n });\r\n return\r\n }\r\n if(!timeReadDataEnd.validity){\r\n Modal.error({\r\n title: '参数错误',\r\n centered: true,\r\n content: '请检查所设置的参数',\r\n });\r\n return\r\n }\r\n setLoad(true)\r\n http.post((props.cloud ? \"/v3\" : \"/v1\") + \"/readdevicedata\", { \r\n device: device.Sn, \r\n node: device.Node,\r\n starttime:timeReadDataStart.value ,\r\n endtime:timeReadDataEnd.value\r\n }).then(data => {\r\n setLoad(false)\r\n if (data.code == 0) {\r\n\r\n }\r\n })\r\n }\r\n const SetDeviceOffLineAlarm = (t) => {\r\n setLoad(true)\r\n http.put((props.cloud ? \"/v3\" : \"/v1\") + \"/deviceoffline/\" + device.ID, { alarm: t.alarm ,offtime:t.offtime,interval:t.interval,count:t.count}).then(data => {\r\n setLoad(false)\r\n if (data.code == 0) {\r\n console.log(t);\r\n device.Sensor.OffLineAlarm=t.alarm;\r\n device.Sensor.OffLineTime=t.offtime;\r\n device.Sensor.OffLineAlarmInterval=t.interval;\r\n device.Sensor.OffLineAlarmCount=t.count;\r\n setDevice({ ...device})\r\n }\r\n })\r\n }\r\n const SetDeviceLinkAlarm = (t) => {\r\n setLoad(true)\r\n http.put((props.cloud ? \"/v3\" : \"/v1\") + \"/devicelink/\" + device.ID, { alarm: t }).then(data => {\r\n setLoad(false)\r\n if (data.code == 0) {\r\n device.Sensor.LinkAlarm=t;\r\n setDevice({ ...device})\r\n }\r\n })\r\n }\r\n const SetDeviceParams = (t) => {\r\n if (t.error) {\r\n Modal.error({\r\n title: '参数错误',\r\n centered: true,\r\n content: '请检查所设置的参数',\r\n });\r\n } else {\r\n setLoad(true)\r\n if(isMore){\r\n let devInfo = device;\r\n let checkedList = []\r\n devList.map(m=>{\r\n m.nodes.map(mm=>{\r\n if(mm.checked){\r\n checkedList.push({sn:m.sn,node:mm.key})\r\n }\r\n })\r\n })\r\n let countMax = checkedList.length;\r\n let index = 0;\r\n let timer= setInterval(()=>{\r\n console.log('starttimer',timer);\r\n if(index {\r\n setLoad(false)\r\n })\r\n }else{\r\n clearInterval(timer)\r\n }\r\n index++;\r\n },1000)\r\n }else{\r\n setTimeout(() => {\r\n http.post((props.cloud ? \"/v3\" : \"/v1\") + \"/setdevice\", { ...t, device: device }).then(data => {\r\n setLoad(false)\r\n })\r\n }, 1000);\r\n }\r\n }\r\n \r\n }\r\n const ReadDeviceWarnParams = t=>{\r\n if (t.validity) {\r\n if (t.error) {\r\n Modal.error({\r\n title: '参数错误',\r\n centered: true,\r\n content: '请检查所设置的参数',\r\n });\r\n } else {\r\n setLoad(true)\r\n http.post((props.cloud ? \"/v3\" : \"/v1\") + \"/setdevice\", { ...t, device: device }).then(data => {\r\n setLoad(false)\r\n })\r\n }\r\n } else {\r\n Modal.error({\r\n title: '操作错误',\r\n centered: true,\r\n content: '设置之前必须先读取参数',\r\n });\r\n }\r\n }\r\n return (\r\n
\r\n {\r\n setIsMore(e==='1'?false:true)\r\n }}tabBarExtraContent={}>\r\n \r\n
\r\n {device.Name}\r\n {' 主机名:' + device.MName}\r\n {' 主机编号:' + device.Sn} \r\n {' 测点ID: ' + device.Node} \r\n
\r\n
\r\n {/* \r\n
\r\n {\r\n devList.map(m=>{\r\n return(\r\n
\r\n
\r\n 主机名: \r\n {m.name}\r\n
\r\n
\r\n 主机编号: \r\n {m.sn}\r\n
\r\n \r\n
\r\n 测点\r\n {\r\n m.indeterminate = false\r\n if(e.target.checked){\r\n m.nodes.map(n=>{\r\n n.checked = true;\r\n })\r\n m.all = true;\r\n }else{\r\n m.all = false;\r\n m.nodes.map(n=>{\r\n n.checked = false\r\n })\r\n\r\n }\r\n let templist = devList.concat()\r\n setDevList(templist)\r\n }} checked={m.all}>\r\n 全选\r\n \r\n
\r\n
\r\n {\r\n m.nodes.map(mm=>{\r\n return(\r\n {\r\n if(e.target.checked){\r\n mm.checked = true;\r\n }else{\r\n mm.checked = false\r\n \r\n }\r\n let ttt=devList.filter(x=>x.sn===m.sn)[0].nodes\r\n let checkNodelen= ttt.filter(x=>x.checked).length\r\n if(checkNodelen===0||checkNodelen===ttt.length){\r\n m.indeterminate = false\r\n }else{\r\n m.indeterminate = true\r\n }\r\n if(checkNodelen===ttt.length){\r\n m.all = true\r\n }else{\r\n m.all = false\r\n }\r\n let templist=devList.concat()\r\n setDevList(templist)\r\n }}\r\n >{mm.label}\r\n )\r\n })\r\n }\r\n
\r\n
)\r\n })\r\n }\r\n \r\n
\r\n \r\n
*/}\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n \r\n {/* 温湿度预警 */}\r\n {\r\n device.Node!==0&&\r\n
\r\n
报警参数:
\r\n {/* */}\r\n \r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningHigh: parseFloat(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningHigh: 0 } })\r\n }\r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningLow: parseFloat(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningLow: 0 } })\r\n }\r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiWarningHigh: parseFloat(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiWarningHigh: 0 } })\r\n }\r\n }} disabled={device.Humi===0}/>\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiWarningLow: parseFloat(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiWarningLow: 0 } })\r\n }\r\n }} disabled={device.Humi===0}/>\r\n {\r\n var reg = /^[0]|[1-9]\\d{0,2}$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, WarningInterval: parseInt(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, WarningInterval: 2 } })\r\n }\r\n }} />\r\n \r\n
\r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n }\r\n {\r\n device.Node===0&&\r\n
\r\n
除湿参数:
\r\n \r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, DeHumiHigh: parseFloat(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, DeHumiHigh: (e.target.value) } })\r\n }\r\n }} disabled={device.Humi===0}/>\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, DeHumiLow: parseFloat(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, DeHumiLow: (e.target.value) } })\r\n }\r\n }} disabled={device.Humi===0}/>\r\n \r\n
\r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n }\r\n {\r\n device.Node===0&&\r\n \r\n
除湿方式:
\r\n 手动{\r\n http.put((props.cloud ? \"/v3\" : \"/v1\") + \"/devicedehumimode/\" + device.ID, { \r\n dehumimode:checked?0:1\r\n }).then(data=>{\r\n setLoad(false);\r\n if(data.code===0){\r\n setDevice({ ...device, Sensor: { ...device.Sensor, DeHumiMode:checked?0:1 } })\r\n }\r\n })\r\n }}/>自动\r\n \r\n \r\n }\r\n {\r\n device.Node===0&&\r\n \r\n
手动除湿:
\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {/* 基本设置 */}\r\n
\r\n \r\n {\r\n setDevice({ ...device, Params: { ...device.Params, IPAddress: e.target.value } })\r\n }} />\r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n {\r\n setState>1&&\r\n \r\n \r\n
补偿:
温度:
\r\n {\r\n let value = e;\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempCompensate: value } })\r\n }} />\r\n
湿度:
\r\n {\r\n\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiCompensate:e } })\r\n }} />\r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n
\r\n \r\n }\r\n \r\n \r\n {\r\n var reg = /^[\\d]{0,4}$/\r\n if (reg.test(e.target.value)) {\r\n uploadInterval.error = false\r\n setDevice({ ...device, Params: { ...device.Params, RealTimeInt: Number(e.target.value) } })\r\n } else {\r\n uploadInterval.error = true\r\n setDevice({ ...device, Params: { ...device.Params, RealTimeInt: (e.target.value) } })\r\n }\r\n }} />\r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n
\r\n 读取历史数据:\r\n {\r\n // console.log(dateStrings)\r\n if (dateStrings[0] !== \"\") {\r\n setTimeReadDataStart({ validity: true, error: false, value:dateStrings[0] })\r\n setTimeReadDataEnd({ validity: true, error: false, value:dateStrings[1] })\r\n }\r\n }}\r\n />\r\n
\r\n\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n {\r\n var reg = /^[0-9]*[1-9][0-9]*$/\r\n if (reg.test(e.target.value)) {\r\n store.error = false\r\n setDevice({ ...device, Params: { ...device.Params, NorStoreInt: Number(e.target.value) } })\r\n } else {\r\n store.error = true\r\n setDevice({ ...device, Params: { ...device.Params, NorStoreInt: (e.target.value) } })\r\n }\r\n }} />\r\n {\r\n\r\n var reg = /^[0-9]*[1-9][0-9]*$/\r\n if (reg.test(e.target.value)) {\r\n store.error = false\r\n setDevice({ ...device, Params: { ...device.Params, AlmStoreInt: Number(e.target.value) } })\r\n } else {\r\n store.error = true\r\n setDevice({ ...device, Params: { ...device.Params, AlmStoreInt: (e.target.value) } })\r\n }\r\n }}/>\r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n
探头停用:
\r\n {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, Enable: e.target.checked ? 1 : 0 } })\r\n }}>停用\r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n
探头连接失败报警:
\r\n \r\n \r\n
离线报警:
\r\n {\r\n setOffLine({...offline,offtime:e.target.value*1})\r\n }}/>\r\n {\r\n setOffLine({...offline,interval:e.target.value*1})\r\n }}/>\r\n {\r\n setOffLine({...offline,count:e.target.value*1})\r\n }}/>\r\n \r\n \r\n \r\n {\r\n setState>1&&\r\n \r\n
存储信息:
\r\n \r\n \r\n
当前存储数据的扇区:{device.StoreInfo.CurrSector}
\r\n
当前存储数据的扇区ADDRESS:{device.StoreInfo.CurrSectorAddr}
\r\n\r\n \r\n }\r\n {\r\n setState>1&&\r\n \r\n
读取存储数据的扇区:{device.StoreInfo.ReadSector}
\r\n
读取存储数据的扇区ADDRESS:{device.StoreInfo.ReadSectorAddr}
\r\n
大批量读取数据的起始扇区:{device.StoreInfo.LargeSector}
\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n let s = 0\r\n if(affirmPwd.startsWith(\"admin\")){\r\n if(md5(affirmPwd.slice(5))===state.main.password){\r\n s=2;\r\n setShowAffirm(false);\r\n }else{\r\n s=0;\r\n message.warn('密码错误');\r\n }\r\n }else{\r\n if(md5(affirmPwd)===state.main.password){\r\n s=1;\r\n setShowAffirm(false);\r\n }else{\r\n s=0;\r\n message.warn('密码错误');\r\n }\r\n }\r\n setSetState(s);\r\n props.changeSetState(s);\r\n dispatch({type:'super',super:s})\r\n dispatch({type:'setState',setState:s===0?0:1})\r\n }} onCancel={()=>setShowAffirm(false)}>\r\n setAffirmPwd(e.target.value)} />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default DeviceSet","import React , { useState,useContext, useEffect,useRef }from 'react'\r\nimport { StateContext } from '../../../state';\r\nimport http from '../../../../../utils/server'\r\nimport { Line } from '@ant-design/charts';\r\nimport html2canvas from 'html2canvas';\r\nimport { SearchOutlined} from '@ant-design/icons';\r\nimport * as echarts from 'echarts';\r\nimport { Select, Button, Table, Tabs, message, DatePicker, Spin, Checkbox } from 'antd'\r\nimport moment from 'moment';\r\nimport { Mode } from '../../../../../App';\r\nimport './device.less'\r\nlet todayTime=0;\r\nconst { Option } = Select;\r\nconst { RangePicker } = DatePicker;\r\nfunction formatDateTimes(inputTime) {\r\n var date = new Date(inputTime);\r\n var y = date.getFullYear();\r\n var m = date.getMonth() + 1;\r\n m = m < 10 ? ('0' + m) : m;\r\n var d = date.getDate();\r\n d = d < 10 ? ('0' + d) : d;\r\n var h = date.getHours();\r\n h = h < 10 ? ('0' + h) : h;\r\n var minute = date.getMinutes();\r\n var second = date.getSeconds();\r\n minute = minute < 10 ? ('0' + minute) : minute;\r\n second = second < 10 ? ('0' + second) : second;\r\n return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;\r\n};\r\nfunction dateStart() {\r\n var now_date = new Date(); now_date.setHours(0); now_date.setMinutes(0); now_date.setSeconds(0);\r\n return now_date;\r\n}\r\nfunction DeviceHistory(props) {\r\n const { state, dispatch } = useContext(StateContext)\r\n const [showSelDevNodes,setShowSelDevNodes] = useState([]);//要查询设备的所有测点\r\n const [selDevNodes,setSelDevNodes] = useState([]);//要查询设备的所有测点\r\n const [showSelDevNodesValue,setShowSelDevNodesValue] = useState([]);//要查询设备的所有测点名字\r\n const [indeterminate, setIndeterminate] = useState(false); //要查询设备的所有测点是否全选\r\n const [checkAll, setCheckAll] = useState(true);//要查询设备的所有测点设置全选\r\n const [checkedList,setCheckedList] = useState([]);//要查询的测点的id\r\n const [selNode, setSelNode] = useState([]);//要查询的测点的node\r\n const [selNodeColums, setSelNodeColums] = useState([]);//多测点查询表格列显示内容\r\n const [isHumi, setIsHumi] = useState(false);\r\n const [data, setData] = useState([])\r\n const [dataChart, setdataChart] = useState([])\r\n const [startTime, setStartTime] = useState('')//历史数据开始时间\r\n const [endTime, setEndTime] = useState('')\r\n const [isChangeTime,setIsChangeTime] = useState(false);\r\n const [dataF, setDataF] = useState({ tmin: 0, tmax: 0, tavg: 0, hmin: 0, hmax: 0, havg: 0 })\r\n const [seriesTempData,setSeriesTempData] = useState([]);\r\n const [tempChart,setTempChart] = useState(undefined);\r\n const [dataWainF, setDataWainF] = useState({ tl: 0, th: 0, hl: 0, hh: 0 })\r\n const [isWaiting, setIsWaiting] = useState(false);\r\n const [showUnitName,setShowUnitName] = useState('')\r\n const [localCompany,setLocalCompany] = useState('');//本地公司名称\r\n const [userName,setUserName] = useState('');\r\n const [minInterval,setMinInterval] = useState(0);\r\n const [showUnit,setShowUnit] = useState('℃');\r\n const [showBound,setShowBound] = useState(false);\r\n const [recordCount,setRecordCount] = useState('');//记录条数\r\n const [tabKey,setTabKey] = useState(\"1\")\r\n const [tableCurrent,setTableCurrent] = useState(1)\r\n const [tablePageSize,setTablePageSize] = useState(10)\r\n const [isExportHumi,setIsExportHumi] = useState(true);\r\n const plotRef = useRef()\r\n const configtemp = {\r\n autoFit:true,\r\n data: dataChart,\r\n padding: 'auto',\r\n // padding:[40,8,60,80],\r\n xField: 'data_time',\r\n //height: 500,\r\n // yField: props.item.Type===209?'val':'temp',\r\n yField: 'temp',\r\n seriesField:'name',\r\n slider: {\r\n start: 0,\r\n end: 1,\r\n backgroundStyle:{\r\n fill: 'white',\r\n fillOpacity: 0,\r\n columnStyle: {\r\n fill: 'white',\r\n fillOpacity: 0,\r\n }\r\n },\r\n foregroundStyle:{\r\n fill: 'white',\r\n fillOpacity: 0,\r\n },\r\n trendCfg:{\r\n lineStyle:{stroke:'white'}\r\n }\r\n },\r\n connectNulls:false,\r\n yAxis: {\r\n label: {\r\n formatter: function formatter(v) {\r\n return ''.concat(v).replace(/\\d{1,3}(?=(\\d{3})+$)/g, function (s) {\r\n return ''.concat(s, ',');\r\n })+(props.item.Type===205?'Pa':props.item.Type===210?'MPa':'℃');\r\n },\r\n },\r\n max:dataWainF.th>dataF.tmax?dataWainF.th+2:dataF.tmax+2,\r\n min:dataWainF.tl97||dataF.hmax>97)?100:dataWainF.hh>dataF.hmax?dataWainF.hh+2:dataF.hmax+2,\r\n min:(dataWainF.hl<3||dataF.hmin<3)?0:dataWainF.hlx.node!==0),\r\n padding: 'auto',\r\n xField: 'data_time',\r\n autoFit:true,\r\n yField: 'temp',\r\n seriesField: 'name',\r\n yAxis: {\r\n label: {\r\n formatter: function formatter(v) {\r\n var i = v.indexOf('.');\r\n return i===-1?v:v.slice(0,i+2);\r\n },\r\n },\r\n // tickCount:10\r\n max:dataWainF.th>dataF.tmax?dataWainF.th+2:dataF.tmax+2,\r\n min:dataWainF.tlx.node!==0),\r\n padding: 'auto',\r\n xField: 'data_time',\r\n autoFit:true,\r\n yField: 'humi',\r\n seriesField: 'name',\r\n yAxis: {\r\n label: {\r\n formatter: function formatter(v) {\r\n var i = v.indexOf('.');\r\n return i===-1?v:v.slice(0,i+2);\r\n },\r\n },\r\n // tickCount:10\r\n max:(dataWainF.hh>97||dataF.hmax>97)?100:dataWainF.hh>dataF.hmax?dataWainF.hh+2:dataF.hmax+2,\r\n min:(dataWainF.hl<3||dataF.hmin<3)?0:dataWainF.hlnew Date(a.data_time).getTime() -new Date(b.data_time).getTime() ,\r\n }\r\n ]\r\n \r\n },\r\n {\r\n title:props.item.Node===0?null:showUnitName+` (最大:${dataF.tmax.toFixed(1)} \r\n 最小:${dataF.tmin.toFixed(1)} \r\n 平均:${dataF.tavg.toFixed(2)})`,\r\n children:[\r\n {\r\n title:props.item.Node===0?null:`上下限(${showUnit})`,\r\n align: 'center',\r\n className:props.item.Node===0&&'notshow',\r\n render: (text, record) => (\r\n
\r\n {\r\n props.item.Node===0?null\r\n // :props.item.Type===209?
{`${record.sensorDatas.high}~${record.sensorDatas.low}`}
\r\n :
{`${record['temp_h']}~${record['temp_l']}`}
\r\n }\r\n
\r\n )\r\n },\r\n\r\n {\r\n title: props.item.Node===0?null:`记录值(${showUnit})`,\r\n align: 'center',\r\n render: (text, record) => (\r\n props.item.Node===0?null\r\n // :props.item.Type===209?{record.sensorDatas.enable!==1?'--':record.sensorDatas.value>102.1?'NL':record.sensorDatas.value}\r\n :{record.temp_switch===0?'--':record.temp>102.1?'NL':record.temp.toFixed(1)}\r\n ),\r\n className:props.item.Node===0&&'notshow'\r\n },\r\n \r\n {\r\n title: props.item.Node===0?null:'状态',\r\n align: 'center',\r\n render: (text, record) => (\r\n props.item.Node===0?null\r\n // :props.item.Type===209?\r\n //
{record.sensorDatas.enable===0?'停用':record.sensorDatas.alarm === 1 ? '报警' : '正常'}
\r\n :
{record.temp_switch===0?'停用':record.temp_alarm === 1 ? '报警' : '正常'}
\r\n ),\r\n className:props.item.Node===0&&'notshow'\r\n },\r\n ],\r\n className:props.item.Node===0&&'notshow'\r\n \r\n },\r\n {\r\n title:(props.item.Node!==0&&props.item.Humi===1)?'湿度'+` (最大:${dataF.hmax.toFixed(1)} \r\n 最小:${dataF.hmin.toFixed(1)} \r\n 平均:${dataF.havg.toFixed(2)})`:null,\r\n children:[\r\n {\r\n title: (props.item.Node!==0&&props.item.Humi===1)?'上下限(%RH)':null,\r\n align: 'center',\r\n render: (text, record) => \r\n (props.item.Node!==0&&props.item.Humi===1)?\r\n (\r\n
{record.humi_h+'~'+record.humi_l}
\r\n )\r\n :null,\r\n className:(props.item.Node===0||props.item.Humi!==1)&&'notshow'\r\n },\r\n {\r\n title: (props.item.Node!==0&&props.item.Humi===1)?'记录值(%RH)':null,\r\n align: 'center',\r\n render: (text, record) => \r\n (props.item.Node!==0&&props.item.Humi===1)?\r\n (\r\n
{record.humi_switch===0?'--':record.humi>102.1?'NL':record.humi.toFixed(1)}
\r\n )\r\n :null,\r\n className:(props.item.Node===0||props.item.Humi!==1)&&'notshow'\r\n },\r\n \r\n {\r\n title: props.item.Node===0?null:props.item.Humi===1?'状态':null,\r\n align: 'center',\r\n render: (text, record) => \r\n (props.item.Node!==0&&props.item.Humi===1)?\r\n (\r\n
{record.humi_switch===0?'停用':record.humi_alarm === 1 ? '报警' :record['humi_alarm'] === 0 ? '正常':null}
\r\n ):null,\r\n className:(props.item.Node===0||props.item.Humi!==1)&&'notshow'\r\n },\r\n ],\r\n className:(props.item.Node===0||props.item.Humi!==1)&&'notshow'\r\n\r\n },\r\n {\r\n title: (props.item.Node===0&&props.item.Sensor.DoorAlarm===1)?'开关门':null,\r\n dataIndex: 'door',\r\n align: 'center',\r\n render: (text, record) => \r\n (props.item.Node===0&&props.item.Sensor.DoorAlarm===1)?\r\n (\r\n
\r\n
{record.door===0?'关门':'开门'}
\r\n
\r\n )\r\n :null,\r\n className:(props.item.Node!==0||props.item.Sensor.DoorAlarm!==1)&&'notshow'\r\n },\r\n \r\n {\r\n title: '信号',\r\n dataIndex: 'csq',\r\n align: 'center',\r\n },\r\n {\r\n title: '电源',\r\n dataIndex: 'power',\r\n align: 'center',\r\n render:(text,record)=>(\r\n
{record.power === 0?\"正常\":\"电池\"}
\r\n )\r\n },\r\n {\r\n title: '电量',\r\n dataIndex: 'battery',\r\n align: 'center',\r\n },\r\n ]\r\n const columnsLeft = [\r\n {\r\n title:'记录条数:'+recordCount,\r\n children:[\r\n {\r\n title: '时间',\r\n dataIndex: 'data_time',\r\n key: 'id',\r\n align: 'center ',\r\n width: 160,\r\n fixed: true,\r\n sorter: (a, b) =>new Date(a.data_time).getTime() -new Date(b.data_time).getTime() ,\r\n }\r\n ]\r\n\r\n },\r\n ]\r\n const columnsRight = [\r\n\r\n {\r\n title: '信号',\r\n dataIndex: 'csq',\r\n key: 'id',\r\n align: 'center',\r\n width: 80,\r\n },\r\n {\r\n title: '电源',\r\n dataIndex: 'power',\r\n key: 'id',\r\n align: 'center',\r\n width: 80,\r\n render: (text, record) => (\r\n
{record.power === 0 ? \"正常\" : \"电池\"}
\r\n )\r\n },\r\n {\r\n title: '电量',\r\n dataIndex: 'battery',\r\n key: 'id',\r\n align: 'center',\r\n width: 80,\r\n },\r\n ]\r\n // 单测点查询历史数据\r\n const getHistory = (starttime, endtime,unitName) => {\r\n setIsWaiting(true)\r\n setRecordCount('');\r\n setShowBound(true)\r\n setDataF({tmin: 0, tmax: 0, tavg: 0, hmin: 0, hmax: 0, havg: 0 });\r\n setDataWainF({th:0,tl:0,hh:0,hl:0});\r\n setdataChart([]);\r\n setData([]);\r\n setTimeout(() => {\r\n\r\n http.get(\"/v1/history?device=\" + props.item.Sn + \"&node=\" + props.item.Node + \"&starttime=\" + starttime + \"&endtime=\" + endtime+\"&min=\"+minInterval, {})\r\n .then(data => {\r\n setIsWaiting(false)\r\n setIsHumi(false);\r\n let is_Humi = false;\r\n if (data.code === 0) {\r\n if (data.data===null||data.data.length === 0) return message.warning('暂无数据');\r\n var artemp= data.data.filter(item => item.temp !== 102.3 && item.temp !== 102.2 &&item.temp_switch!==0);\r\n let ar = JSON.parse(JSON.stringify(artemp));\r\n var arLen = ar.length;\r\n setData(data.data.reverse());\r\n setRecordCount(data.data.length+'');\r\n if(props.item.Node===0) return\r\n if (arLen === 0 ) return message.warning('暂无有效数据');\r\n let checkData = ar[0];\r\n if(checkData.node===0){\r\n checkData= ar[1];\r\n }\r\n if(checkData.humi_switch!==0&&checkData.humi_enable!==0){\r\n setIsHumi(true);\r\n is_Humi = true;\r\n }\r\n var tavg = 0\r\n var tmax = -100\r\n var tmin = 100\r\n var havg = 0\r\n var hmax = 0\r\n var hmin = 100\r\n ar.map(item => {\r\n if (item.temp > tmax) {\r\n tmax = item.temp\r\n }\r\n if (item.temp < tmin) {\r\n tmin = item.temp\r\n }\r\n tavg = tavg + item.temp\r\n if (item.humi > hmax) {\r\n hmax = item.humi\r\n }\r\n if (item.humi < hmin) {\r\n hmin = item.humi\r\n }\r\n havg = havg + item.humi\r\n })\r\n tavg = tavg / arLen\r\n havg = havg / arLen\r\n setDataF({ tmax, tmin, tavg, hmin, hmax, havg });\r\n let tH = props.item.Sensor.TempAlarmHigh;\r\n let tL = props.item.Sensor.TempAlarmLow;\r\n let hH = props.item.Sensor.HumiAlarmHigh;\r\n let hL = props.item.Sensor.HumiAlarmLow;\r\n if(props.item.Sensor.Hide===2||props.item.Sensor.Hide===3){\r\n setShowBound(false)\r\n setDataWainF({th:dataF.tmax,tl:dataF.tmin,hh:dataF.hmax,hl:dataF.hmin});\r\n }else{\r\n setDataWainF({th:tH,tl:tL,hh:hH,hl:hL});\r\n }\r\n let maxNum = ar.length;\r\n let normalData = [];\r\n let warnData=[];\r\n let start ;let end;\r\n let seriesData=[]\r\n let tempdata =[];\r\n let humidata =[];\r\n let name ='';\r\n ar.map(val=>{\r\n tempdata.push([val.data_time,val.temp]);\r\n humidata.push([val.data_time,val.humi]);\r\n if(name==='' ){\r\n name =val.name\r\n }\r\n })\r\n ar[0].data_time!==startTime&&tempdata.unshift(null);\r\n ar[ar.length-1].data_time!==endTime&&tempdata.push(null);\r\n seriesData.push({\r\n name:name+(unitName?unitName:showUnitName)+'曲线',\r\n type: 'line',\r\n smooth: true,\r\n symbol: 'none',\r\n data: tempdata,\r\n })\r\n is_Humi&&seriesData.push({\r\n name:name+'湿度曲线',\r\n type: 'line',\r\n smooth: true,\r\n symbol: 'none',\r\n data: humidata,\r\n })\r\n setSeriesTempData(seriesData);\r\n if(maxNum<20000){\r\n warnData=ar;\r\n }\r\n if(maxNum>20000&&maxNum<=50000){\r\n ar.map(m=>{\r\n if(m.temp_alarm===1||m.humi_alarm===1){\r\n warnData.push(m)\r\n }else{\r\n normalData.push(m)\r\n }\r\n })\r\n normalData.map((m,i)=>{\r\n i%2==0&&warnData.push(m);\r\n })\r\n warnData.sort((a,b)=>a.data_time>b.data_time);\r\n }\r\n if(maxNum>50000&&maxNum<=100000){\r\n ar.map(m=>{\r\n if(m.temp_alarm===1||m.humi_alarm===1){\r\n warnData.push(m)\r\n }else{\r\n normalData.push(m)\r\n }\r\n })\r\n normalData.map((m,i)=>{\r\n i%3==0&&warnData.push(m);\r\n })\r\n warnData.sort((a,b)=>a.data_time>b.data_time);\r\n \r\n }\r\n if(maxNum>100000&&maxNum<=200000){\r\n ar.map(m=>{\r\n if(m.temp_alarm===1||m.humi_alarm===1){\r\n warnData.push(m)\r\n }else{\r\n normalData.push(m)\r\n }\r\n })\r\n normalData.map((m,i)=>{\r\n i%6==0&&warnData.push(m);\r\n })\r\n warnData.sort((a,b)=>a.data_time>b.data_time);\r\n }\r\n if(maxNum>200000){\r\n ar.map(m=>{\r\n if(m.temp_alarm===1||m.humi_alarm===1){\r\n warnData.push(m)\r\n }else{\r\n normalData.push(m)\r\n }\r\n })\r\n normalData.map((m,i)=>{\r\n i%10==0&&warnData.push(m);\r\n })\r\n warnData.sort((a,b)=>a.data_time>b.data_time);\r\n }\r\n start = warnData[0];\r\n end = warnData[warnData.length-1];\r\n start.data_time!==starttime&&warnData.unshift({data_time:starttime,temp:null});\r\n end.data_time!==endtime&&warnData.push({data_time:endtime,temp:null});\r\n setdataChart(warnData);\r\n }\r\n // })\r\n })\r\n }, 500);\r\n\r\n };\r\n // 单测点查询历史数据json\r\n const getHistoryJson = (starttime, endtime,unitName) => {\r\n setShowBound(true)\r\n setDataF({tmin: 0, tmax: 0, tavg: 0, hmin: 0, hmax: 0, havg: 0 });\r\n setDataWainF({th:0,tl:0,hh:0,hl:0});\r\n setdataChart([]);\r\n setData([]);\r\n setTimeout(() => {\r\n http.get(\"/v1/history?device=\" + props.item.Sn + \"&node=\" + props.item.Node + \"&starttime=\" + starttime + \"&endtime=\" + endtime+\"&min=\"+minInterval, {})\r\n .then(data => {\r\n setIsWaiting(false)\r\n setIsHumi(false);\r\n if (data.code === 0) {\r\n if (data.data===null||data.data.length === 0) return message.warning('暂无数据'); \r\n let tempData =[];\r\n data.data.map(item=>{\r\n if(item.json_data.Valid){\r\n item.sensorDatas=JSON.parse(item.json_data.String)[0];\r\n item.val = item.sensorDatas.value;\r\n }else{\r\n item.sensorDatas=null;\r\n }\r\n tempData.push(item);\r\n })\r\n let filteData = tempData.filter(item => item.val !== 102.3 && item.val !== 102.2 &&item.sensorDatas.enable!==0);\r\n // setData(JSON.parse(JSON.stringify(tempData)).reverse())\r\n setData(tempData.reverse())\r\n var tavg = 0\r\n var tmax = -100\r\n var tmin = 100\r\n var havg = 0\r\n var hmax = 0\r\n var hmin = 100\r\n filteData.map(item => {\r\n let value = item.sensorDatas.value;\r\n if (value > tmax) {\r\n tmax = value\r\n }\r\n if (value < tmin) {\r\n tmin = value\r\n }\r\n tavg = tavg + value\r\n })\r\n tavg = tavg / filteData.length\r\n setDataF({ tmax, tmin, tavg, hmin, hmax, havg });\r\n let tH = filteData[0].sensorDatas.high;\r\n let tL = filteData[0].sensorDatas.low;\r\n setDataWainF({th:tH,tl:tL});\r\n let start ;let end;\r\n let seriesData=[]\r\n let timedata =[];\r\n let antvData =[];\r\n let name ='';\r\n //时间轴曲线\r\n filteData.map(val=>{\r\n timedata.push([val.data_time,val.sensorDatas.value]);\r\n antvData.push(val);\r\n if(name==='' ){\r\n name =val.name\r\n }\r\n })\r\n filteData[0].data_time!==startTime&&timedata.unshift(null);\r\n filteData[filteData.length-1].data_time!==endTime&&timedata.push(null);\r\n seriesData.push({\r\n name:name+(unitName?unitName:showUnitName)+'曲线',\r\n type: 'line',\r\n smooth: true,\r\n symbol: 'none',\r\n data: timedata,\r\n })\r\n setSeriesTempData(seriesData);\r\n //antv曲线\r\n start = antvData[0];\r\n end = antvData[antvData.length-1];\r\n start.data_time!==starttime&&antvData.unshift({data_time:starttime,val:null});\r\n end.data_time!==endtime&&antvData.push({data_time:endtime,val:null});\r\n setdataChart(antvData);\r\n }\r\n })\r\n }, 500);\r\n\r\n };\r\n // 多测点查询历史数据\r\n const getHistorys = (nodes,starttime, endtime,unitName,selDevNodes)=>{\r\n setDataF({tmin: 0, tmax: 0, tavg: 0, hmin: 0, hmax: 0, havg: 0 });\r\n setdataChart([]);\r\n setData([]);\r\n setRecordCount('');\r\n // setTimeout(() => {\r\n if (nodes.length===0) return message.warning('未选择设备');\r\n let url = \"/v1\"; \r\n url += \"/history?device=\" + props.item.Sn + \"&node=\" + nodes + \"&starttime=\" ;\r\n url+=starttime+\"&endtime=\" + endtime;\r\n url+=\"&min=\"+minInterval;\r\n setIsWaiting(true);\r\n setIsHumi(false);\r\n http.get(url,{}).then((data) => {\r\n setIsWaiting(false);\r\n setDataWainF({th:0,tl:0,hh:0,hl:0});\r\n if (data.code === 0) {\r\n if (data.data===null||data.data.length === 0) return message.warning('暂无数据');\r\n let is_Humi=false;\r\n let sss= data.data.find(x=>x.humi_switch!==0&&x.humi_enable!==0);//查找是否有湿度数据\r\n if(sss){\r\n setIsHumi(true);\r\n is_Humi= true;\r\n }\r\n let baseData=[];\r\n data.data.map(m=>{\r\n let index = baseData.findIndex(x=>x.data_time===m.data_time);\r\n if(index!==-1){\r\n baseData[index]['temp' + m.node] = m.temp\r\n baseData[index]['temp_h' + m.node] = m.temp_h\r\n baseData[index]['temp_l' + m.node] = m.temp_l\r\n baseData[index]['temp_alarm' + m.node] = m.temp_alarm\r\n baseData[index]['temp_switch' + m.node] = m.temp_switch\r\n baseData[index]['humi' + m.node] = m.humi\r\n baseData[index]['humi_h' + m.node] = m.humi_h\r\n baseData[index]['humi_l' + m.node] = m.humi_l\r\n baseData[index]['humi_alarm' + m.node] = m.humi_alarm\r\n baseData[index]['humi_switch' + m.node] = m.humi_switch\r\n baseData[index]['humi_enable' + m.node] = m.humi_enable\r\n baseData[index]['districtname' + m.node] = m.districtname\r\n baseData[index]['door' + m.node] = m.door\r\n baseData[index]['power' + m.node] = m.power\r\n }else{\r\n m['temp' + m.node] = m.temp\r\n m['temp_h' + m.node] = m.temp_h\r\n m['temp_l' + m.node] = m.temp_l\r\n m['temp_alarm' + m.node] = m.temp_alarm\r\n m['temp_switch' + m.node] = m.temp_switch\r\n m['humi' + m.node] = m.humi\r\n m['humi_h' + m.node] = m.humi_h\r\n m['humi_l' + m.node] = m.humi_l\r\n m['humi_alarm' + m.node] = m.humi_alarm\r\n m['humi_switch' + m.node] = m.humi_switch\r\n m['humi_enable' + m.node] = m.humi_enable\r\n m['districtname' + m.node] = m.districtname\r\n m['door' + m.node] = m.door\r\n m['power' + m.node] = m.power\r\n baseData.push(m)\r\n }\r\n })\r\n setData(baseData.reverse());\r\n setRecordCount(baseData.length+'');\r\n var ar = data.data.filter(item => item.temp !== 102.3 && item.temp !== 102.2 &&item.temp_switch!==0);\r\n if (ar.length === 0) return message.warning('暂无有效数据');\r\n ar.sort((a,b)=>a.node-b.node);\r\n let dev_val=[];\r\n if(nodes.length>0){\r\n var tavg = 0;\r\n var havg = 0;\r\n let isShowBound = true\r\n let tmax = Math.max.apply(Math, ar.map(o=>o.temp));\r\n let tmin = Math.min.apply(Math, ar.map(o=>o.temp));\r\n let hmax = Math.max.apply(Math, ar.map(o=>o.humi)); \r\n let hmin = Math.min.apply(Math, ar.map(o=>o.humi)); \r\n \r\n ar.map(item => {\r\n if(isShowBound){\r\n if(item.temp_h!==ar[0].temp_h||item.temp_l!==ar[0].temp_l||item.humi_h!==ar[0].humi_h||item.humi_l!==ar[0].humi_l){\r\n isShowBound = false\r\n }\r\n }\r\n if(dev_val.length===0){\r\n dev_val.push({node:item.node,temp_h:item.temp,temp_l:item.temp,humi_l:item.humi,humi_h:item.humi,temp_s:item.temp,humi_s:item.humi,count:1})\r\n }else{\r\n let b= dev_val.findIndex(x=>x.node===item.node);\r\n if(b===-1){\r\n dev_val.push({node:item.node,temp_h:item.temp,temp_l:item.temp,humi_l:item.humi,humi_h:item.humi,temp_s:item.temp,humi_s:item.humi,count:1})\r\n }else{\r\n dev_val[b].temp_s +=item.temp; \r\n dev_val[b].humi_s +=item.humi; \r\n dev_val[b].count +=1; \r\n if(item.temp>dev_val[b].temp_h){\r\n dev_val[b].temp_h = item.temp\r\n }\r\n if(item.tempdev_val[b].humi_h){\r\n dev_val[b].humi_h = item.humi\r\n }\r\n if(item.humi{\r\n item.temp_s = item.temp_s/item.count\r\n item.humi_s = item.humi_s/item.count\r\n })\r\n }\r\n if(selNode.length===1){\r\n if(props.item.Sensor.Hide===2||props.item.Sensor.Hide===3){\r\n setShowBound(false)\r\n setDataWainF({th:dataF.tmax,tl:dataF.tmin,hh:dataF.hmax,hl:dataF.hmin});\r\n }else{\r\n setDataWainF({th:ar[0].temp_h,tl:ar[0].temp_l,hh:ar[0].humi_h,hl:ar[0].humi_l});\r\n }\r\n }else{\r\n setDataWainF({th:dataF.tmax,tl:dataF.tmin,hh:dataF.hmax,hl:dataF.hmin});\r\n }\r\n let start = data.data[0];\r\n let end = data.data[data.data.length-1];\r\n start.data_time!==starttime&&ar.unshift({data_time:starttime,temp:null});\r\n end.data_time!==endtime&&ar.push({data_time:endtime,temp:null});\r\n setdataChart(ar);\r\n let seriesData=[]\r\n nodes.map(item=>{\r\n let tempdata =[];\r\n let humidata =[];\r\n let name ='';\r\n ar.filter(x=>x.node ==item).map(val=>{\r\n tempdata.push([val.data_time,val.temp]);\r\n humidata.push([val.data_time,val.humi]);\r\n if(name==='' ){\r\n name =val.name\r\n }\r\n })\r\n start.data_time!==starttime&&tempdata.unshift(null);\r\n start.data_time!==starttime&&humidata.unshift(null);\r\n end.data_time!==endtime&&tempdata.push(null);\r\n end.data_time!==endtime&&humidata.push(null);\r\n if(name!==''){\r\n seriesData.push({\r\n 'name':name+(unitName?unitName:showUnitName)+'曲线',\r\n type: 'line',\r\n smooth: true,\r\n symbol: 'none',\r\n data: tempdata,\r\n })\r\n is_Humi&&seriesData.push({\r\n 'name':name+'湿度曲线',\r\n type: 'line',\r\n smooth: true,\r\n symbol: 'none',\r\n data: humidata,\r\n })\r\n }\r\n })\r\n setSeriesTempData(seriesData);\r\n let sd = selDevNodes\r\n var nodeCol = new Array();\r\n if(sd.length>1){\r\n sd.sort((a,b)=>a.node-b.node);\r\n if(sd[0].node===0){\r\n let temp = sd.splice(0,1);\r\n sd.push(temp[0]);\r\n }\r\n }\r\n sd.map(({ node, name, district_name, m_name,id,door_alarm ,type,humi}) => {\r\n let devNode= dev_val.filter(x=>x.node===node);\r\n // nodes.push(node);\r\n var t = 'temp' + node;\r\n // 断电 开关门\r\n if(node===0){\r\n door_alarm===1&&\r\n nodeCol.push({\r\n title: `${name}-(区域:${district_name}-主机:${m_name}-测点ID:${node})`,\r\n align: 'center',\r\n children: [\r\n {\r\n title: '开关门',\r\n dataIndex: 'door' + node,\r\n width: 300,\r\n align: 'center',\r\n render: (text, record) => (\r\n
\r\n
{record['door' + node] === 0 ? \"关门\" : '开门'}
\r\n
\r\n )\r\n },\r\n \r\n ]\r\n })\r\n }else{//温湿度\r\n humi===1?\r\n // 温湿度\r\n nodeCol.push({\r\n title: `${name}-(区域:${district_name}-主机:${m_name}-测点ID:${node})`,\r\n align: 'center',\r\n children: [\r\n {\r\n title: `温度 (最大:${devNode.length>0&&devNode[0].temp_h.toFixed(1)} \r\n 最小:${devNode.length>0&&devNode[0].temp_l.toFixed(1)} \r\n 平均:${devNode.length>0&&devNode[0].temp_s.toFixed(2)})`,\r\n align: 'center',\r\n children:[\r\n {\r\n title: '上下限(℃)',\r\n // dataIndex: 'temp_h' + node,\r\n align: 'center',\r\n width:100,\r\n render: (text, record) => (\r\n
\r\n {record['temp_switch' + node] === 0 ? null :record['temp_h' + node]===undefined?'': `${record['temp_h' + node]}~${record['temp_l' + node]}`}\r\n
\r\n )\r\n },\r\n {\r\n title: '温度(℃)',\r\n dataIndex: 'temp' + node,\r\n align: 'center',\r\n width:100,\r\n render: (text, record) => (\r\n
\r\n
{ record['temp_switch' + node] === 0 ? \"--\" : record['temp' + node]?record['temp' + node] > 102.1 ? \" NL\" :record['temp' + node].toFixed(1):''}
\r\n
\r\n )\r\n },\r\n {\r\n title: '状态',\r\n dataIndex: 'temp_alarm' + node,\r\n align: 'center',\r\n width: 60,\r\n render: (text, record) => (\r\n
{record['temp_switch' + node] === 0 ? \"--\" :record['temp_alarm' + node] === 0 ? '正常' :record['temp_alarm' + node] === 1 ? '报警':null}
\r\n )\r\n },\r\n ]\r\n },\r\n {\r\n title: `湿度 (最大:${devNode.length>0&&devNode[0].humi_h.toFixed(1)} \r\n 最小:${devNode.length>0&&devNode[0].humi_l.toFixed(1)} \r\n 平均:${devNode.length>0&&devNode[0].humi_s.toFixed(2)})`,\r\n align: 'center',\r\n children:[\r\n {\r\n title: '上下限(%RH)',\r\n // dataIndex: 'humi_h' + node,\r\n align: 'center',\r\n width: 100,\r\n render: (text, record) => (\r\n
\r\n {record['humi_switch' + node] === 0 || record['humi_enable' + node]===0 ? null :record['humi_h' + node]?
{`${record['humi_h' + node]}~${record['humi_l' + node]}`}
:''}\r\n
\r\n )\r\n },\r\n {\r\n title: '湿度(%RH)',\r\n dataIndex: 'humi' + node,\r\n align: 'center',\r\n width: 100,\r\n render: (text, record) => (\r\n
\r\n
{ record['humi_switch' + node] === 0 ? \"--\" : record['humi_enable' + node]===0 ?\"--\":record['humi' + node]?record['humi' + node] > 102.1 ? \" NL\" : record['humi' + node].toFixed(1):''}
\r\n
\r\n )\r\n },\r\n {\r\n title: '状态',\r\n dataIndex: 'humi_alarm' + node,\r\n width: 60,\r\n align: 'center',\r\n render: (text, record) => (\r\n
{record['humi_switch' + node] === 0 ? \"--\" : record['humi_enable' + node]===0 ?\"--\" :record['humi_alarm' + node] === 0 ? '正常' : record['humi_alarm' + node] === 1 ? '报警':''}
\r\n )\r\n },\r\n ]\r\n },\r\n \r\n ]\r\n }):\r\n // 单温设备\r\n nodeCol.push({\r\n title: `${name}-(区域:${district_name}-主机:${m_name}-测点ID:${node})`,\r\n align: 'center',\r\n children:[\r\n {\r\n title:`${(type===205||type===210)?'压强':'温度'} (最大:${devNode.length>0&&devNode[0].temp_h.toFixed(1)} \r\n 最小:${devNode.length>0&&devNode[0].temp_l.toFixed(1)} \r\n 平均:${devNode.length>0&&devNode[0].temp_s.toFixed(2)})`,\r\n align:'center',\r\n children: [\r\n {\r\n title: type===205?'上下限(Pa)':type===210?'上下限(MPa)':'上下限(℃)',\r\n // dataIndex: 'temp_h' + node,\r\n align: 'center',\r\n width:100,\r\n render: (text, record) => (\r\n
\r\n {record['temp_switch' + node] === 0 ? null :record['temp_h' + node]===undefined?'':
{`${record['temp_h' + node]}~${record['temp_l' + node]}`}
}\r\n
\r\n )\r\n },\r\n {\r\n title: type===205?'压强(Pa)':type===205?'压强(MPa)':'温度(℃)',\r\n dataIndex: 'temp' + node,\r\n key: 'temp' + id,\r\n align: 'center',\r\n width:80,\r\n render: (text, record) => (\r\n
\r\n
{ record['temp_switch' + node] === 0 ? \"--\" : record['temp' + node]?record['temp' + node] > 102.1 ? \" NL\" :record['temp' + node].toFixed(1):''}
\r\n
\r\n )\r\n },\r\n {\r\n title: '状态',\r\n dataIndex: 'temp_alarm' + node,\r\n key: 'temp_alarm' + id,\r\n align: 'center',\r\n width: 60,\r\n render: (text, record) => (\r\n
{record['temp_switch' + node] === 0 ? \"--\" :record['temp_alarm' + node] === 0 ? '正常' :record['temp_alarm' + node] === 1? '报警':''}
\r\n )\r\n },\r\n ]\r\n }\r\n ]\r\n })\r\n }\r\n \r\n })\r\n setSelNodeColums(nodeCol);\r\n }\r\n })\r\n // }, 200);\r\n \r\n }\r\n const onChange_Tab = key => {\r\n setTabKey(key)\r\n if (key==='2'){\r\n setTimeout(() => {\r\n let chartDom = document.getElementById('tempEcharts');\r\n if(chartDom){\r\n let myChart = echarts.init(chartDom);\r\n option && myChart.setOption(option);\r\n myChart.resize();\r\n myChart&&setTempChart(myChart);\r\n myChart&&myChart.dispatchAction({\r\n type: 'legendScroll',\r\n scrollDataIndex: 5,\r\n // legendId: string\r\n })\r\n } \r\n }, 500);\r\n \r\n }else{\r\n tempChart&&tempChart.dispose();\r\n }\r\n };\r\n const onChange_Table = (page,pageSize) =>{\r\n setTableCurrent(page)\r\n setTablePageSize(pageSize)\r\n }\r\n // 要历史查询设备的所有测点设置全选\r\n const onCheckAllChange = e => {\r\n setCheckedList(e.target.checked ? showSelDevNodesValue: []);\r\n setIndeterminate(false);\r\n setCheckAll(e.target.checked);\r\n setSelDevNodes(e.target.checked ? showSelDevNodes: [])\r\n let nodes = [];\r\n showSelDevNodes.map(({ node}) => {\r\n nodes.push(node);\r\n })\r\n setSelNode(nodes);\r\n };\r\n const onCheckChange = list=>{\r\n setCheckedList(list);\r\n setIndeterminate(!!list.length && list.length < showSelDevNodes.length);\r\n setCheckAll(list.length === showSelDevNodes.length);\r\n let nodes = [];\r\n let sd = showSelDevNodes.filter(x=>list.indexOf(x.value)>-1);\r\n setSelDevNodes(sd)\r\n sd.map(({ node}) => {\r\n nodes.push(node);\r\n })\r\n setSelNode(nodes);\r\n }\r\n // 历史数据 保存为图片\r\n const saveImage = () => {\r\n setIsWaiting(true);\r\n var canvas2 = document.createElement(\"canvas\");\r\n let _canvas = document.getElementById('devicechart');\r\n var w = parseInt(window.getComputedStyle(_canvas).width);\r\n var h = parseInt(window.getComputedStyle(_canvas).height);\r\n canvas2.width = w ;\r\n canvas2.height = h ;\r\n // canvas2.style.width = (w +40) + \"px\";\r\n // canvas2.style.height = (h+40) + \"px\";\r\n var context = canvas2.getContext(\"2d\");\r\n context.scale(1, 1);\r\n html2canvas(document.getElementById('devicechart'), { canvas: canvas2 }).then((canvas) => {\r\n // canvas.style.width = (w + 40) + \"px\";\r\n // canvas.style.height = (h + 40) + \"px\";\r\n canvas.id = 'cutimg'\r\n var url = canvas.toDataURL('image/png');\r\n if(window.CefSharp!==undefined){\r\n window.CefSharp.BindObjectAsync(\"bound\");\r\n console.log(window.bound);\r\n window.bound.exportImg(url);\r\n \r\n }else{\r\n var downloadLink = document.createElement(\"a\");\r\n downloadLink.href = url;\r\n downloadLink.download = \"sd.png\";\r\n downloadLink.click();\r\n \r\n }\r\n setIsWaiting(false);\r\n\r\n });\r\n }\r\n\r\n const antdPointClick =(plot) => {\r\n plot.on('element:click', args => {\r\n const {x,y} = args\r\n let points = args.data.points;\r\n // let data = args.data.data;\r\n points = points.reverse()\r\n let ele = points.reduce((prec,cur)=>{\r\n let xLen = Math.abs(prec.x-x);\r\n let xLen1 = Math.abs(cur.x-x);\r\n let yLen = Math.abs(prec.y-y);\r\n let yLen1 = Math.abs(cur.y-y);\r\n if(Math.sqrt(xLen*xLen+yLen*yLen)val.x===ele.x&&val.y===ele.y)\r\n setTabKey('1');\r\n setTableCurrent(Math.ceil(index/tablePageSize))\r\n });\r\n }\r\n useEffect(() => {\r\n Mode==='soc' && setUserName(state.district.filter(item => item.id === props.item.District)[0].user_name);\r\n Mode==='local'&&\r\n http.get(\"/v1/getconfig\", {}).then(data => {\r\n if (data.code === 0) {\r\n setLocalCompany(data.data.Title)\r\n }\r\n })\r\n let unit = '℃';\r\n unit = props.item.Type===205?'Pa':props.item.Type===210?'MPa':'℃';\r\n let unitName = '温度';\r\n unitName=(props.item.Type===205||props.item.Type===210)?'压强':'温度';\r\n setShowUnit(unit);\r\n setShowUnitName(unitName);\r\n setStartTime(props.start);\r\n setEndTime(props.end)\r\n if(props.showMore){\r\n let checkOptions = \r\n state.main.type===101? state.device.filter(x=>x.node!==0&&x.sn==props.item.Sn&&x.district==props.item.District)\r\n : \r\n state.device.filter(x=>x.node!==0&&x.sn==props.item.Sn&&x.district==props.item.District&&new Date(x.expire).getTime()>todayTime);\r\n let values =[];\r\n var nodes = new Array();\r\n checkOptions.map(m=>{\r\n m.value=m.id;\r\n m.label=m.name;\r\n values.push(m.id)\r\n nodes.push(m.node);\r\n })\r\n setShowSelDevNodes(checkOptions);\r\n setSelDevNodes(checkOptions)\r\n setSelNode(nodes);\r\n setShowSelDevNodesValue(values);\r\n setCheckedList(values);\r\n setTimeout(() => {\r\n getHistorys(nodes,props.start,props.end,unitName,checkOptions)\r\n }, 100);\r\n }else{\r\n getHistory(props.start,props.end,unitName);\r\n }\r\n }, [])\r\n useEffect(()=>{\r\n tempChart&& option && tempChart.setOption(option);\r\n },[seriesTempData])\r\n return (\r\n
\r\n {/*统计信息 最大 最小 平均值展示 */}\r\n \r\n
\r\n {/* 用户 区域 时间选择 间隔 查询 */}\r\n
\r\n
\r\n {\r\n \r\n 用户:{Mode==='soc'?userName:localCompany}\r\n }\r\n 区域:{state.district.filter(item=>item.id===props.item.District)[0].name}\r\n
\r\n {/* 自定义时间间隔查询*/}\r\n
\r\n {\r\n if(dates===null){\r\n setIsChangeTime(false)\r\n setStartTime(props.start);\r\n setEndTime(props.end);\r\n }else{\r\n setIsChangeTime(true)\r\n setStartTime(dateStrings[0]+':00');\r\n dates[1]!==null&&setEndTime(dateStrings[1]+':00');\r\n } \r\n }}\r\n />\r\n \r\n option.children.toLowerCase().indexOf(input.toLowerCase()) >= 0\r\n }\r\n filterSort={(optionA, optionB) =>\r\n optionA.children.toLowerCase().localeCompare(optionB.children.toLowerCase())\r\n }\r\n onChange={value=>setMinInterval(value)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {/* 主机名 主机编号 测点名称 测点 导出 */}\r\n
\r\n
\r\n 主机名: {props.item.MName}\r\n 主机编号: {props.item.Sn}\r\n {\r\n props.showMore? \r\n
\r\n 测点\r\n \r\n 全选\r\n \r\n
:\r\n
\r\n { props.item.Name}\r\n 测点ID: \r\n {props.item.Node}\r\n
\r\n }\r\n
\r\n {/* 导出 */}\r\n {\r\n !props.showMore&&\r\n
\r\n \r\n {/* 保存为图片 */}\r\n \r\n {/* 下载EXCEL */}\r\n {\r\n state.super>1&&\r\n \r\n }\r\n {/* 下载PDF */}\r\n \r\n {\r\n props.item.Humi===1?{\r\n e.target.checked?setIsExportHumi(true):setIsExportHumi(false);\r\n }}>导出湿度:''\r\n }\r\n {/* */}\r\n {\r\n Mode==='local' &&\r\n
\r\n                         \r\n 只可导出不能导入\r\n
\r\n }\r\n
\r\n }\r\n
\r\n {\r\n props.showMore&&\r\n
\r\n \r\n
\r\n }\r\n {/* 数据展示 */}\r\n
\r\n {\r\n // 开关门 电源\r\n props.item.Node===0?null: props.item.Humi === 1 ? \r\n //温湿度\r\n
\r\n
\r\n
{`${showUnitName}(${showUnit}):`}
\r\n
上限值:{data.length > 0 ? data[0].temp_h : ''}
\r\n
下限值:{data.length > 0 ? data[0].temp_l : ''}
\r\n
最大值:{dataF.tmax.toFixed(2)}
\r\n
最小值:{dataF.tmin.toFixed(2)}
\r\n
平均值:{dataF.tavg.toFixed(2)}
\r\n
\r\n
\r\n
湿度(%RH):
\r\n
上限值:{data.length > 0 ? data[0].humi_h : ''}
\r\n
下限值:{data.length > 0 ? data[0].humi_l : ''}
\r\n
最大值:{dataF.hmax.toFixed(2)}
\r\n
最小值:{dataF.hmin.toFixed(2)}
\r\n
平均值:{dataF.havg.toFixed(2)}
\r\n
\r\n
\r\n : //没有湿度\r\n
\r\n
{`${showUnitName}(${showUnit}):`}
\r\n
上限值:{data.length > 0 ? data[0].temp_h : ''}
\r\n
下限值:{data.length > 0 ? data[0].temp_l : ''}
\r\n
最大值:{dataF.tmax.toFixed(2)}
\r\n
最小值:{dataF.tmin.toFixed(2)}
\r\n
平均值:{dataF.tavg.toFixed(2)}
\r\n
\r\n }\r\n {/* 图表展示 */}\r\n {\r\n props.showMore?//多测点\r\n \r\n \r\n {/* 保存为图片 */}\r\n \r\n {/* 下载EXCEL */}\r\n {\r\n state.super>1&&\r\n \r\n }\r\n \r\n {/* 下载PDF */}\r\n \r\n
\r\n } destroyInactiveTabPane={true} onChange={onChange_Tab} \r\n >\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n 开始时间:\r\n {startTime}\r\n
\r\n
\r\n 结束时间:\r\n {endTime}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {\r\n dataChart.length>0&&!showBound&&\r\n
\r\n 您选择的测点包含多个温(湿)度区间或者是空库,故不展示区间辅助线\r\n
\r\n }\r\n
\r\n {\r\n isHumi&&\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {\r\n dataChart.length>0&&!showBound&&\r\n
\r\n 您选择的测点包含多个温(湿)度区间或者是空库,故不展示区间辅助线\r\n
\r\n }\r\n
\r\n }\r\n \r\n ://单测点node0\r\n props.item.Node===0?\r\n \r\n \r\n
\r\n \r\n \r\n ://单测点\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n 开始时间:\r\n {startTime}\r\n
\r\n
\r\n 结束时间:\r\n {endTime}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n {\r\n isHumi&&\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default DeviceHistory","export default \"data:image/png;base64,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\"","import React, { useState,useContext, useEffect} from 'react'\r\nimport { Map, Polyline, Marker } from \"react-amap\";\r\nimport moment from 'moment';\r\nimport unLocation from '../../../../../../public/assets/unLocation.png'\r\nimport pLocation from '../../../../../../public/assets/gpsIcon.png'\r\nimport { CaretRightOutlined, PauseOutlined, UpCircleTwoTone} from '@ant-design/icons';\r\nimport { Button, Slider, message, DatePicker } from 'antd'\r\nimport { StateContext } from '../../../state';\r\nimport http from '../../../../../utils/server'\r\nimport gpsTrans from '../../../../../utils/coordtransform_utils'\r\nimport { Mode } from '../../../../../App';\r\nimport './device.less'\r\nconst { RangePicker } = DatePicker;\r\nlet interval = ''\r\nfunction formatDateTimes(inputTime) {\r\n var date = new Date(inputTime);\r\n var y = date.getFullYear();\r\n var m = date.getMonth() + 1;\r\n m = m < 10 ? ('0' + m) : m;\r\n var d = date.getDate();\r\n d = d < 10 ? ('0' + d) : d;\r\n var h = date.getHours();\r\n h = h < 10 ? ('0' + h) : h;\r\n var minute = date.getMinutes();\r\n var second = date.getSeconds();\r\n minute = minute < 10 ? ('0' + minute) : minute;\r\n second = second < 10 ? ('0' + second) : second;\r\n return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;\r\n};\r\n\r\nfunction DeviceMap(props) {\r\n const { state, dispatch } = useContext(StateContext)\r\n const [dataMap, setDataMap] = useState([]);//地图数据\r\n const [startMapTime, setStartMapTime] = useState('');//轨迹数据的开始时间\r\n const [endMapTime, setEndMapTime] = useState('');//轨迹数据的结束时间\r\n const [mapLine, setMapLine] = useState([]);//未回放的轨迹线\r\n const [mapLine1, setMapLine1] = useState([]);//已回访的轨迹线\r\n const [mapCenter, setMapCenter] = useState({ longitude: 116.397451, latitude: 39.909187 });//地图中心\r\n // const [mapCenter, setMapCenter] = useState({ longitude: 117.24556, latitude: 36.65993 });//地图中心\r\n const [mapZoom, setMapZoom] = useState(15);//地图缩放\r\n const [markP, setmarkP] = useState({ longitude: 116.397451, latitude: 39.909187 });//回放轨迹点位置\r\n const [markP1, setmarkP1] = useState({ longitude: 117.24556, latitude: 36.65993 });//回放轨迹点位置\r\n const [sliderStatus, setSilderStatus] = useState(0);//回放状态播放 暂停\r\n const [sliderRun, setSilderRun] = useState([]);//回放进度\r\n const [markerRota, setMarkerRota] = useState(0);//回放方向\r\n const [isLocation, setIsLocation] = useState(false);//是否定位\r\n function datadik(list, end) {\r\n setMapLine(list.slice(end+1));\r\n setMapLine1(list.slice(0,end+1));\r\n if(end===list.length-1)return;\r\n var ll = 0.1;\r\n mapZoom>15?ll=0.05:ll=0.1;\r\n if(Math.abs(list[end+1].longitude-mapCenter.longitude)>ll||Math.abs(list[end+1].latitude-mapCenter.latitude)>ll){\r\n setMapCenter({ longitude: list[end+1].longitude, latitude: list[end+1].latitude });\r\n };\r\n setmarkP({ longitude: list[end+1].longitude, latitude: list[end+1].latitude });\r\n setMarkerRota(list[end+1].ag);\r\n }\r\n useEffect(()=>{\r\n if(props.item.Location===1){\r\n let gps = props.item.Status.GPSLng!==0&&props.item.Status.GPSLng!==0&&gpsTrans.wgs84togcj02(props.item.Status.GPSLng,props.item.Status.GPSLat)\r\n gps&&setMapCenter({longitude:gps[0],latitude: gps[1]});\r\n gps&&setmarkP({longitude:gps[0],latitude: gps[1]});\r\n }else{\r\n props.item.Status.GPSLng!==0&&setMapCenter({longitude:props.item.Status.GPSLng,latitude: props.item.Status.GPSLat});\r\n props.item.Status.GPSLng!==0&&setmarkP({longitude:props.item.Status.GPSLng,latitude: props.item.Status.GPSLat});\r\n }\r\n setMapZoom(15);\r\n setIsLocation(props.item.Status.GPSStatus?true:props.item.Status.BaseLac===0?false:true);\r\n },[])\r\n useEffect(() => {\r\n interval = setInterval(() => {\r\n if (sliderStatus > 0) {\r\n let a = sliderRun\r\n if (a === dataMap.length - 1) {\r\n a = 0\r\n setSilderStatus(0);\r\n } else {\r\n a = a + 1\r\n }\r\n setSilderRun(a);\r\n datadik(dataMap, a);\r\n }\r\n }, 1000)\r\n return () => {\r\n clearInterval(interval)\r\n }\r\n }, [sliderStatus, sliderRun])\r\n return (\r\n
\r\n
\r\n
\r\n {props.item.Name}\r\n 主机名: {props.item.MName}\r\n 主机编号: {props.item.Sn}\r\n {\r\n Mode!=='soc'?null:\r\n 用户:{state.district.filter(item=>item.id===props.item.District)[0].user_name}\r\n }\r\n 区域:{state.district.filter(item=>item.id===props.item.District)[0].name}\r\n
\r\n {/* 日期选择 */}\r\n {\r\n if (dateStrings[0] !== \"\") {\r\n setStartMapTime(formatDateTimes(dateStrings[0]));\r\n setEndMapTime(formatDateTimes(dateStrings[1]))\r\n }\r\n }}\r\n />\r\n {/* 查询按钮 */}\r\n \r\n
\r\n
\r\n {dataMap.length > 0 ?\r\n
\r\n\r\n
\r\n
时间轴
\r\n
\r\n {/* { setSilderStatus(2); }} />\r\n { setSilderStatus(3); }} /> */}\r\n {sliderStatus > 0 ? { setSilderStatus(0) }} /> : { setSilderStatus(1) ;setMapZoom(10)}} />}\r\n\r\n
\r\n {\r\n setSilderRun(value)\r\n datadik(dataMap, value)\r\n }}\r\n tipFormatter={null}\r\n />\r\n
时间点:{dataMap[sliderRun]&&dataMap[sliderRun].data_time}
\r\n
: null}\r\n\r\n { console.log(ins) },\r\n // click: () => { console.log('You Clicked The Map') }\r\n }} zoom={isLocation?mapZoom:15}>\r\n \r\n {\r\n isLocation?\r\n \r\n :\r\n \r\n }\r\n \r\n {/* \r\n {\r\n \r\n \r\n }\r\n */}\r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default DeviceMap","import React, { useState, useContext, useEffect} from 'react'\r\nimport { StateContext } from '../../../state';\r\nimport { Row, Col, Button, Badge, Modal, Tooltip } from 'antd'\r\nimport './device.less'\r\nimport { Local, SignalTower, BoltOne, BatteryWorking ,BatteryFull,BatteryEmpty} from '@icon-park/react'\r\nimport tempOnline from '../../../../../../public/assets/tempOnline.png'\r\nimport tempUnline from '../../../../../../public/assets/tempUnline.png'\r\nimport humiOnline from '../../../../../../public/assets/humiOnline.png'\r\nimport humiUnline from '../../../../../../public/assets/humiUnline.png'\r\nimport paUnline from '../../../../../../public/assets/paUnline.png'\r\nimport paOnline from '../../../../../../public/assets/paOnline.png'\r\nimport signalOnline from '../../../../../../public/assets/signalOnline.png'\r\nimport signalUnline from '../../../../../../public/assets/signalUnline.png'\r\nimport signalTimeOut from '../../../../../../public/assets/timeout.png'\r\nimport signalTimeWarn from '../../../../../../public/assets/timeWarn.png'\r\nimport smoke from '../../../../../../public/assets/Smoke.png'\r\nimport smokeWarn from '../../../../../../public/assets/SmokeWarn.png'\r\nimport DeviceSet from './set'\r\nimport DeviceRoomSet from './roomset'\r\nimport DevicePaSet from './set205'\r\nimport DeviceSmokerSet from './set207'\r\nimport { Mode } from '../../../../../App';\r\nimport Draggable from 'react-draggable';\r\nimport DeviceHistory from './deviceHistory';\r\nimport DeviceMap from './deviceMap';\r\nfunction formatDateTimes(inputTime) {\r\n var date = new Date(inputTime);\r\n var y = date.getFullYear();\r\n var m = date.getMonth() + 1;\r\n m = m < 10 ? ('0' + m) : m;\r\n var d = date.getDate();\r\n d = d < 10 ? ('0' + d) : d;\r\n var h = date.getHours();\r\n h = h < 10 ? ('0' + h) : h;\r\n var minute = date.getMinutes();\r\n var second = date.getSeconds();\r\n minute = minute < 10 ? ('0' + minute) : minute;\r\n second = second < 10 ? ('0' + second) : second;\r\n return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;\r\n};\r\n\r\nfunction DeviceItem(props) {\r\n const { state, dispatch } = useContext(StateContext)\r\n const [showHis, setShowHis] = useState(false)\r\n const [showHisMore, setShowHisMore] = useState(false)\r\n const [showSet, setShowSet] = useState(false)\r\n const [showLocation, setShowLocation] = useState(false)\r\n //历史数据\r\n\r\n const [startTime, setStartTime] = useState('')//历史数据开始时间\r\n const [startDTime, setStartDTime] = useState('')//当天00:00:00\r\n const [endTime, setEndTime] = useState('')\r\n\r\n //轨迹回放\r\n\r\n const [startMapTime, setStartMapTime] = useState('');//轨迹数据的开始时间\r\n const [endMapTime, setEndMapTime] = useState('');//轨迹数据的结束时间\r\n\r\n const [modalBounds,setModalBounds] = useState({left: 0, top: 0, bottom: 0, right: 0 });//对话框移动坐标\r\n const [modalMoveDisabled, setModalMoveDisabled] = useState(true);//对话框拖动功能关闭\r\n const draggleRef = React.createRef();//移动对话框\r\n const [showUnit,setShowUnit] = useState('℃');\r\n const [showLastTime, setShowLastTime] = useState(false);\r\n let timerout =0;\r\n // 拖动方法\r\n const onStart = (event, uiData) => {\r\n const { clientWidth, clientHeight } = window.document.documentElement;\r\n const targetRect = draggleRef.current?.getBoundingClientRect();\r\n if (!targetRect) return;\r\n setModalBounds({\r\n left: -targetRect.left + uiData.x,\r\n right: clientWidth - (targetRect.right - uiData.x),\r\n top: -targetRect.top + uiData.y,\r\n bottom: clientHeight - (targetRect.bottom - uiData.y),\r\n });\r\n };\r\n\r\n const changeSetState = (num)=>{\r\n if(num>0 && state.main.type > 101 ){\r\n clearTimeout(timerout)\r\n timerout=setTimeout(() => {\r\n dispatch({ type: 'setState', setState: 0 });\r\n dispatch({ type: 'super', super: 0 });\r\n }, 1000*60*10);\r\n }\r\n }\r\n useEffect(()=>{\r\n let type = state.main.type;\r\n let showLastTime = false;\r\n if (window.CefSharp !== undefined) {\r\n window.CefSharp.BindObjectAsync(\"bound\");\r\n let myConf =window.bound.getConfig();\r\n console.log('myConf',myConf);\r\n if(type<102){\r\n if (myConf.showTimeAdmin){\r\n showLastTime = true\r\n }\r\n }\r\n if(type===103){\r\n if (myConf.showTimeManger){\r\n showLastTime = true\r\n }\r\n }\r\n if(type===104){\r\n if (myConf.showTimeUser){\r\n showLastTime = true\r\n }\r\n }\r\n }else{\r\n if(type<102){\r\n showLastTime = true\r\n }\r\n }\r\n setShowLastTime(showLastTime)\r\n },[])\r\n useEffect(() => {\r\n var now_date = new Date(); now_date.setHours(0); now_date.setMinutes(0); now_date.setSeconds(0);\r\n setStartDTime(now_date);\r\n setShowUnit(props.item.Type===205?'Pa':props.item.Type===210?'MPa':'℃');\r\n // props.item.Type===205?setShowUnit('Pa'):setShowUnit('℃')\r\n // changeSetState(1);\r\n \r\n }, [props])\r\n\r\n return (\r\n <>\r\n {/* 历史数据 */}\r\n {\r\n setModalMoveDisabled(false);\r\n }}\r\n onMouseOut={() => {\r\n setModalMoveDisabled(true);\r\n }}\r\n >\r\n 历史数据\r\n \r\n } width={'85vw'} \r\n centered visible={showHis} destroyOnClose={true} \r\n modalRender={modal => (\r\n \r\n
{modal}
\r\n \r\n )}\r\n footer={null}\r\n onCancel={() => {\r\n setShowHis(false)\r\n setShowHisMore(false);\r\n props.callback(false)\r\n setStartTime(formatDateTimes(startDTime.getTime()));\r\n setEndTime('');\r\n }}\r\n >\r\n \r\n \r\n
\r\n {\r\n setModalMoveDisabled(false);\r\n }}\r\n onMouseOut={() => {\r\n setModalMoveDisabled(true);\r\n }}\r\n >\r\n
\r\n 参数设置\r\n
\r\n
\r\n {Mode!=='soc'?null:' 用户: ' + state.district.filter(item => item.id === props.item.District)[0].user_name}\r\n
\r\n
\r\n {' 区域: ' + state.district.filter(item => item.id === props.item.District)[0].name}\r\n
\r\n \r\n }\r\n\r\n modalRender={modal => (\r\n \r\n
{modal}
\r\n \r\n )}\r\n width={'85vw'} centered visible={showSet} footer={null} destroyOnClose={true}\r\n onCancel={() => {\r\n setShowSet(false)\r\n props.callback(false)\r\n }}\r\n >\r\n {/* {props.item.Type <204 && } */}\r\n {props.item.Type === 204 ? :\r\n (props.item.Type === 205||props.item.Type === 210) ? :\r\n props.item.Type === 207 ? :\r\n \r\n }\r\n {/* {\r\n props.item.Online?\r\n :
设备离线
\r\n } */}\r\n
\r\n {\r\n setModalMoveDisabled(false);\r\n }}\r\n onMouseOut={() => {\r\n setModalMoveDisabled(true);\r\n }}\r\n >\r\n 轨迹回放\r\n \r\n } width={'100%'} centered visible={showLocation} destroyOnClose footer={null}\r\n modalRender={modal => (\r\n \r\n
{modal}
\r\n \r\n )}\r\n onCancel={() => {setShowLocation(false)}}>\r\n \r\n
\r\n {props.show === 1 ?\r\n //列表布局 \r\n
{\r\n setShowHisMore(true); \r\n startTime===''&& setStartTime(formatDateTimes(startDTime.getTime()));\r\n endTime===''&& setEndTime(formatDateTimes(new Date().getTime()));\r\n setShowHis(true);\r\n }}>\r\n \r\n {/* 测点名称 */}\r\n \r\n
\r\n {/* 设备到期状态 */}\r\n
\r\n {\r\n props.item.ExprieStatus === 0 ? ''\r\n :props.item.ExprieStatus === 3 ? \"\"\r\n :\"\"\r\n // \r\n }\r\n
\r\n {\r\n props.item.Node===0?\r\n
\r\n
{props.item.MName}
\r\n
{'设备状态'}
\r\n
:\r\n
\r\n
{props.item.Name}
\r\n
\r\n
\r\n {props.item.MName}\r\n
\r\n
{\" ID:\" + props.item.Sn+'-'+props.item.Node}
\r\n
\r\n
\r\n }\r\n \r\n \r\n {/* 设备状态 是否在线 */}\r\n \r\n \r\n \r\n {/* 设备温湿度值 开关门 电源状态 */}\r\n \r\n {\r\n // 开关门\r\n (props.item.Node===0&&props.item.Sensor.PowerAlarm===0&&props.item.Sensor.DoorAlarm===1)?\r\n
\r\n {\r\n props.item.Online ?\r\n props.item.Status.Door===1 ?\r\n 开 门 :\r\n 关 门 :\r\n '--------------'\r\n }\r\n
:\r\n //电源状态\r\n (props.item.Node===0&&props.item.Sensor.PowerAlarm===1&&props.item.Sensor.DoorAlarm===0)?\r\n
\r\n {\r\n props.item.Online ?\r\n props.item.Status.PowerStatus===1 ?\r\n 断 电 :\r\n 电 源 正 常 :\r\n '--------------'\r\n }\r\n
:\r\n // 开关门 电源状态同时\r\n (props.item.Node===0&&props.item.Sensor.PowerAlarm===1&&props.item.Sensor.DoorAlarm===1)?\r\n
\r\n
\r\n 电源状态\r\n 门状态\r\n
\r\n {\r\n props.item.Online ?\r\n
\r\n
\r\n {\r\n props.item.Status.PowerStatus===1 ?\r\n 断 电 :\r\n 正 常 \r\n }\r\n
\r\n
\r\n {\r\n props.item.Status.Door===1 ?\r\n 开 门 :\r\n 关 门 \r\n }\r\n
\r\n
:\r\n
\r\n
--------------
\r\n
--------------
\r\n
\r\n }\r\n
:\r\n // 正常温湿度数据\r\n
\r\n
\r\n
\r\n 上限:{props.item.Sensor.TempAlarmHigh}\r\n
\r\n
\r\n 下限:{props.item.Sensor.TempAlarmLow}\r\n
\r\n
\r\n
\r\n \r\n {/*
*/}\r\n
\r\n {\r\n props.item.Sensor.TempValue === 102.3 || props.item.Sensor.TempValue === 102.2||!props.item.Sensor.TempSwitch ? '--' :\r\n props.item.Sensor.TempValue + showUnit\r\n }\r\n
\r\n
\r\n {\r\n props.item.Humi === 1 ?\r\n
\r\n
\r\n \r\n {/*
*/}\r\n
\r\n {props.item.Sensor.HumiValue === 102.3 || props.item.Sensor.HumiValue === 102.2 ||!props.item.Sensor.HumiSwitch? '--' : props.item.Sensor.HumiValue + \"%RH\"}\r\n
\r\n
\r\n
\r\n
\r\n 上限:{props.item.Sensor.HumiAlarmHigh}\r\n
\r\n
\r\n 下限:{props.item.Sensor.HumiAlarmLow}\r\n
\r\n
\r\n
: null\r\n }\r\n
\r\n }\r\n \r\n {/* 信号电源电量 */}\r\n
\r\n
\r\n {/* 定位状态 */}\r\n {\r\n props.item.Type === 203 ? //车载GPS定位\r\n
{\r\n startMapTime===''&& setStartMapTime(formatDateTimes(startDTime.getTime()));\r\n endMapTime===''&& setEndMapTime(formatDateTimes(new Date().getTime()));\r\n setShowLocation(true);\r\n }}>\r\n \r\n GPS\r\n
: \r\n props.item.Type === 202 ?//保温箱LBS定位\r\n
{\r\n startMapTime===''&& setStartMapTime(formatDateTimes(startDTime.getTime()));\r\n endMapTime===''&& setEndMapTime(formatDateTimes(new Date().getTime()));\r\n setShowLocation(true);\r\n }}>\r\n \r\n LBS\r\n
:
\r\n }\r\n {/* 信号值 */}\r\n
\r\n 0 ? signalOnline : signalUnline} alt=\"\" />\r\n {props.item.Online && props.item.Status.Csq > 0 ? props.item.Status.Csq : ' '}\r\n
\r\n {/* 电量状态 值 */}\r\n
\r\n {\r\n props.item.Status.PowerStatus === 0 ?\r\n :\r\n \r\n }\r\n {props.item.Online ? props.item.Status.BatPower + '%' : ''}\r\n
\r\n
\r\n \r\n {/* 时间 */}\r\n {\r\n showLastTime&&\r\n \r\n
更新时间:
\r\n
{props.item.Status.LastMsgTime}
\r\n \r\n }\r\n {/* 轨迹回放按钮 */}\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n :\r\n props.show === 0 ?\r\n //图表布局\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {\r\n props.item.ExprieStatus === 0 ? \r\n :props.item.ExprieStatus === 3 ? \"\"\r\n :\"\"\r\n // \r\n }\r\n \r\n {props.item.Node===0?props.item.MName:props.item.Name}\r\n
\r\n
\r\n
\r\n {\r\n props.item.Node===0?'':!props.item.Online?'':!props.item.Sensor.TempSwitch ? '停用': props.item.Sensor.TempValue === 102.3 ? '未连接' : props.item.Sensor.TempValue === 102.2 ? '正在连接' :props.item.Sensor.Hide===2||props.item.Sensor.Hide===3?'空库' :''\r\n }\r\n
\r\n\r\n
\r\n {/* 状态 测点ID 信号状态 */}\r\n
\r\n
\r\n {props.item.Node===0?'设备状态':\"ID:\" +props.item.Sn+'-'+ props.item.Node}\r\n
\r\n
\r\n \r\n {\r\n //203 车载设备 202保温箱 201 监测主机\r\n (props.item.Type === 203 || props.item.Type === 201) && props.item.Location == 0 ?\r\n \r\n {\r\n startMapTime===''&& setStartMapTime(formatDateTimes(startDTime.getTime()));\r\n endMapTime===''&& setEndMapTime(formatDateTimes(new Date().getTime()));\r\n setShowLocation(true);\r\n }} />\r\n :\r\n props.item.Type === 202 ?\r\n \r\n {\r\n startMapTime===''&& setStartMapTime(formatDateTimes(startDTime.getTime()));\r\n endMapTime===''&& setEndMapTime(formatDateTimes(new Date().getTime()));\r\n setShowLocation(true);\r\n }} />\r\n : \r\n props.item.Type === 207 && props.item.Node!==0?\r\n \r\n {\r\n props.item.Sensor.Smoke ?\r\n \r\n \"\"\r\n :\r\n \"\"\r\n }\r\n \r\n : \r\n \r\n
\r\n }\r\n \r\n \"\"\r\n {/* */}\r\n \r\n {\r\n (props.item.Type === 208 && props.item.Node!==0 )?\r\n \r\n {\r\n props.item.Sensor.PowerStatus === 1 ?\r\n :\r\n (!props.item.Sensor.TempSwitch || props.item.Sensor.TempValue>100)?\r\n :\r\n props.item.Sensor.BatPower>80?\r\n :\r\n props.item.Sensor.BatPower>30?\r\n \r\n :props.item.Sensor.BatPower>20?\r\n \r\n :\r\n \r\n // \r\n }\r\n \r\n :props.item.Node===0?\r\n \r\n {\r\n props.item.Status.PowerStatus === 0 ?\r\n :\r\n // \r\n props.item.Status.BatPower>80?\r\n \r\n :props.item.Status.BatPower>30?\r\n \r\n :props.item.Status.BatPower>10?\r\n \r\n :\r\n \r\n }\r\n \r\n :\r\n \r\n {\r\n props.item.Status.PowerStatus === 0 ?\r\n :\r\n // \r\n (!props.item.Sensor.TempSwitch || props.item.Sensor.TempValue>100)?\r\n :\r\n props.item.Status.BatPower>80?\r\n \r\n :props.item.Status.BatPower>30?\r\n \r\n :props.item.Status.BatPower>10?\r\n \r\n :\r\n \r\n }\r\n \r\n }\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n {\r\n showLastTime?\r\n
\r\n {\"更新时间:\" + props.item.Status.LastMsgTime}\r\n
\r\n :\r\n
\r\n\r\n
\r\n }\r\n\r\n
\r\n {/* 不同类型设备的数据展示 */}\r\n {\r\n props.item.Node===0?\r\n props.item.Type===207?//烟感设备测点0\r\n
\r\n {\r\n props.item.Sensor.DeHumiMode===0?\r\n
\r\n {/*
上限{props.item.Sensor.DeHumiHigh}
*/}\r\n
\r\n
自动除湿
\r\n
{props.item.Sensor.DeHumiStatus===0?'关闭':'开启'}
\r\n
\r\n
\r\n
上限:{props.item.Sensor.DeHumiHigh}
\r\n
下限:{props.item.Sensor.DeHumiLow}
\r\n
\r\n {/*
下限{props.item.Sensor.DeHumiLow}
*/}\r\n
\r\n :\r\n
\r\n
\r\n
\r\n
手动除湿
\r\n
{props.item.Sensor.DeHumiStatus===0?'关闭':'开启'}
\r\n
\r\n
\r\n
\r\n } \r\n
:\r\n (props.item.Sensor.PowerAlarm===0&&props.item.Sensor.DoorAlarm===1)?//其他设备测点0 开关门\r\n
\r\n {\r\n props.item.Online ? \r\n props.item.Status.Door===1 ?\r\n 开 门 :\r\n 关 门 :\r\n --------------\r\n }\r\n
:\r\n (props.item.Sensor.PowerAlarm===1&&props.item.Sensor.DoorAlarm===0)?//其他设备测点0 电源状态\r\n
\r\n {\r\n props.item.Online ?\r\n props.item.Status.PowerStatus===1 ?\r\n 断 电 :\r\n 电 源 正 常 :\r\n --------------\r\n }\r\n
: //其他设备测点0 电源状态 开关门\r\n
\r\n
\r\n 电源状态\r\n 门状态\r\n
\r\n {\r\n props.item.Online ?\r\n
\r\n
\r\n {\r\n props.item.Status.PowerStatus===1 ?\r\n 断 电 :\r\n 正 常 \r\n }\r\n
\r\n
\r\n {\r\n props.item.Status.Door===1 ?\r\n 开 门 :\r\n 关 门 \r\n }\r\n
\r\n
:\r\n
\r\n
--------------
\r\n
--------------
\r\n
\r\n }\r\n
://非测点0的数据\r\n
\r\n {/* 温湿度图标 数据 单位 */}\r\n
\r\n {/* 温度图标 数据 单位 */}\r\n
\r\n \r\n
\r\n {props.item.Sensor.TempValue === 102.3 || props.item.Sensor.TempValue === 102.2 || !props.item.Sensor.TempSwitch||(props.item.ExprieStatus === 3&& state.main.type>101) ? '--' : props.item.Sensor.TempValue + showUnit}\r\n
\r\n
\r\n {/* 湿度图标 数据 单位 */}\r\n {\r\n props.item.Humi === 1 ?\r\n
\r\n \r\n
\r\n {props.item.Sensor.HumiValue === 102.3 || props.item.Sensor.HumiValue === 102.2 || !props.item.Sensor.HumiSwitch ||(props.item.ExprieStatus === 3&& state.main.type>101) ? '--' : props.item.Sensor.HumiValue + \"%RH\"}\r\n
\r\n
: null\r\n }\r\n
\r\n {\r\n state.main.type>101&&
\r\n }\r\n
\r\n
\r\n {\r\n props.item.Type===207?//烟感设备\r\n \r\n 上下限:{props.item.Sensor.TempWarningHigh}~{props.item.Sensor.TempWarningLow}\r\n \r\n :\r\n \r\n 上下限:{props.item.Sensor.TempAlarmHigh}~{props.item.Sensor.TempAlarmLow}\r\n \r\n }\r\n \r\n
\r\n {\r\n props.item.Humi === 1 &&\r\n
\r\n {\r\n props.item.Type===207?\r\n \r\n 上下限:{props.item.Sensor.HumiWarningHigh}~{props.item.Sensor.HumiWarningLow}\r\n \r\n :\r\n \r\n 上下限:{props.item.Sensor.HumiAlarmHigh}~{props.item.Sensor.HumiAlarmLow}\r\n \r\n }\r\n \r\n
\r\n }\r\n \r\n
\r\n
\r\n }\r\n
\r\n \r\n {/*
\r\n {props.item.MName}\r\n
*/}\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n :\r\n //精简布局\r\n
\r\n \r\n
{props.item.Node===0?props.item.MName:props.item.Name}
\r\n
{\r\n if(props.item.ExprieStatus === 3 && state.main.type>101) return\r\n setShowHisMore(true); \r\n startTime===''&& setStartTime(formatDateTimes(startDTime.getTime()));\r\n endTime===''&& setEndTime(formatDateTimes(new Date().getTime()));\r\n setShowHis(true);\r\n }}>{props.item.Sn} - {props.item.Sensor.Id}
\r\n
更新时间:{props.item.Status.LastMsgTime}
\r\n
温度上下限: {`${props.item.Sensor.TempAlarmHigh}~${props.item.Sensor.TempAlarmLow}`+showUnit}
\r\n
{props.item.Humi===1&&`湿度上下限: ${props.item.Sensor.HumiAlarmHigh}~${props.item.Sensor.HumiAlarmLow}%RH`}
\r\n
\r\n }>\r\n
2 ?'2px solid red': props.item.ExprieStatus>0? '2px solid orange':'', backgroundColor:props.item.Sensor.Hide>1 && '#ccc'}} className='chartLay1'\r\n onDoubleClick={()=>{\r\n (props.item.ExprieStatus !== 3||state.main.type<102) &&setShowSet(true);\r\n }}\r\n > \r\n
\r\n
\r\n
{\r\n if(props.item.ExprieStatus === 3 && state.main.type>101) return\r\n startTime===''&& setStartTime(formatDateTimes(startDTime.getTime()));\r\n endTime===''&& setEndTime(formatDateTimes(new Date().getTime()));\r\n setShowHis(true)\r\n }}\r\n >\r\n {props.item.Node===0?props.item.MName:props.item.Name}\r\n
\r\n
\r\n\r\n {/* 不同类型设备的数据展示 */}\r\n {\r\n props.item.Node===0?\r\n props.item.Type===207?//烟感设备测点0\r\n
\r\n 请再其他模式下观看 \r\n
:\r\n (props.item.Sensor.PowerAlarm===0&&props.item.Sensor.DoorAlarm===1)?//其他设备测点0 开关门\r\n
\r\n {\r\n props.item.Online ? \r\n props.item.Status.Door===1 ?\r\n 开 门 :\r\n 关 门 :\r\n --------------\r\n }\r\n
:\r\n (props.item.Sensor.PowerAlarm===1&&props.item.Sensor.DoorAlarm===0)?//其他设备测点0 电源状态\r\n
\r\n {\r\n props.item.Online ?\r\n props.item.Status.PowerStatus===1 ?\r\n 断 电 :\r\n 电 源 正 常 :\r\n --------------\r\n }\r\n
: //其他设备测点0 电源状态 开关门\r\n
\r\n
\r\n 电源状态\r\n 门状态\r\n
\r\n {\r\n props.item.Online ?\r\n
\r\n
\r\n {\r\n props.item.Status.PowerStatus===1 ?\r\n 断 电 :\r\n 正 常 \r\n }\r\n
\r\n
\r\n {\r\n props.item.Status.Door===1 ?\r\n 开 门 :\r\n 关 门 \r\n }\r\n
\r\n
:\r\n
\r\n
--------------
\r\n
--------------
\r\n
\r\n }\r\n
://非测点0的数据\r\n
\r\n {/* 温湿度图标 数据 单位 */}\r\n
\r\n {/* 温度图标 数据 单位 */}\r\n
\r\n \r\n
\r\n {props.item.Sensor.TempValue === 102.3 || props.item.Sensor.TempValue === 102.2 || !props.item.Sensor.TempSwitch ? '--' : props.item.Sensor.TempValue}\r\n \r\n {showUnit}\r\n
\r\n {\r\n props.item.Humi === 1 &&\r\n
\r\n {/* 湿度图标 数据 单位 */}\r\n
\r\n \r\n
\r\n {props.item.Sensor.HumiValue === 102.3 || props.item.Sensor.HumiValue === 102.2 || !props.item.Sensor.HumiSwitch ? '--' : props.item.Sensor.HumiValue }\r\n %RH\r\n
\r\n
\r\n
\r\n }\r\n
\r\n \r\n
\r\n \r\n
\r\n } \r\n
\r\n \r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nexport default DeviceItem","import React, { useState, useContext, useEffect } from 'react'\r\nimport { StateContext } from '../../../state';\r\nimport { StateDeviceContext } from '../../../state_device';\r\nimport http from '../../../../../utils/server'\r\nimport { Row, Col, Button, Spin, Modal, Input, Space, Divider, Tabs, message, InputNumber,Tag,Checkbox} from 'antd'\r\nimport './device.less'\r\nimport { Mode } from '../../../../../App';\r\nimport md5 from 'js-md5';\r\nconst { TabPane } = Tabs;\r\n\r\nfunction formatTime(time){\r\n if(time){\r\n var strs= time.split(':');\r\n if(strs.length<2) return time; \r\n strs[0].length===1&&(strs[0]='0'+strs[0]);\r\n strs[1].length===1&&(strs[1]='0'+strs[1]);\r\n return strs[0]+':'+strs[1];\r\n }\r\n}\r\nfunction DeviceSet(props) {\r\n const { state, dispatch } = useContext(StateContext)\r\n const { state_device, dispatch_device } = useContext(StateDeviceContext)\r\n const [device, setDevice] = useState(props.item)\r\n const [devices, setDevices] = useState({type:20,data:[]});\r\n const [serverIP, setServerIP] = useState({ validity: false, error: false, type: 26 })//设备ip端口\r\n const [deviceTime, setDeviceTime] = useState({ validity: false, error: false, type: 27 })//设备时间\r\n const [batteryAlarm, setBatteryAlarm] = useState({ validity: false, error: false, type: 7 })//电池报警\r\n\r\n const [store, setStore] = useState({ validity: false, error: false, type: 24 })//存储间隔\r\n const [revise, setRevise] = useState({ validity: false, error: false, type: 28 })//补偿\r\n const [devClose, setDevClose] = useState({ validity: true, error: false, type: 25 })//关机\r\n const [alarmInfo, setAlarmInfo] = useState({ validity: true, error: false, type: 20})//探头上下限\r\n const [devParam1, setDevParam1] = useState({ validity: true, error: false, type: 22})//获取设备字段1 发货方\r\n const [devParam2, setDevParam2] = useState({ validity: true, error: false, type: 23})//获取设备字段2 收货方\r\n\r\n const [load, setLoad] = useState(false)\r\n const [offline,setOffLine] = useState({offtime:10,interval:5,count:2});\r\n const [showAffirm,setShowAffirm] = useState(false);//设置参数身份确认弹窗\r\n const [affirmPwd,setAffirmPwd] = useState(''); //设置参数确认密码\r\n const [setState, setSetState] = useState(0);//设置状态 0不能设置 1普通设置 2超级设置\r\n const [isSet,setIsSet] = useState(false);//是否有设置权限\r\n const [isMore,setIsMore] = useState(false);//是否多测点设置\r\n const [devList, setDevList] = useState([]);//选中的主机名\r\n\r\n const [isShowSet,setIsShowSet] = useState(true);\r\n const [isCache,setIsCache] = useState({a2:false,a3:false,a4:false,a6:false,a7:false,a8:false,a9:false,aa:false,});//命令下发状态\r\n const [selDevNodes,setSelDevNodes] = useState([]);\r\n useEffect(() => {\r\n setSetState(state.setState);\r\n let role = state.main.role;\r\n setIsSet(role.match('305')===null?false:true)\r\n GetStatus()\r\n let devs = \r\n state.main.type<102? state_device.devicestate.filter(x=>x.Node!==0&&x.District===props.item.District&&\r\n x.Type===209)\r\n : \r\n state_device.devicestate.filter(x=>x.Node!==0&&x.District===props.item.District&&x.ExprieStatus!==3&&\r\n x.Type===209)\r\n let devNodes = [];\r\n devs.map(m=>{\r\n let temp = devNodes.findIndex(x=>x.sn===m.Sn)\r\n if(temp===-1){\r\n devNodes.push({sn:m.Sn,name:m.MName,nodes:[{value:m.ID,label:m.Name,key:m.Node,checked:false}],all:false,indeterminate:false})\r\n }else{\r\n devNodes[temp].nodes.push({value:m.ID,label:m.Name,key:m.Node,checked:false})\r\n }\r\n })\r\n if(devNodes.length>0){\r\n devNodes[0].all = true\r\n devNodes[0].nodes.map(m=>{\r\n m.checked = true\r\n })\r\n }\r\n devNodes.sort((a,b)=>a.sn-b.sn);\r\n setDevList(devNodes)\r\n if(devs.length>0){\r\n let devsTemp = devs.filter(x=>x.Sn===devs[0].Sn);\r\n let devsData =[{Sn:devs[0].Sn,Params:devs[0].Params,Sensor:[],StoreInfo:devs[0].StoreInfo,Type:devs[0].Type,ExSensor:[]}];\r\n devsTemp.map(m=>{\r\n m.Sensor.Name = m.Name\r\n devsData[0].Sensor.push(m.Sensor)\r\n devsData[0].ExSensor.push(m.ExSensor)\r\n })\r\n let devsInfo = devices;\r\n devsInfo.data = devsData;\r\n console.log('devsInfo',devsInfo);\r\n setDevices(devsInfo)\r\n }\r\n setSelDevNodes(devs.sort((a,b)=>a.Sn-b.Sn))\r\n }, [])\r\n\r\n const ReadDeviceParams = (t, call) => {\r\n setLoad(true)\r\n http.post((props.cloud ? \"/v3\" : \"/v1\") + \"/getdevice\", { ...t, device: device.Sn, node: device.Node }).then(data => {\r\n setLoad(false)\r\n if (data.code == 0) {\r\n data.data.Name = device.Name;\r\n data.data.MName = device.MName;\r\n setDevice(data.data);\r\n call({ ...t, validity: true });\r\n }\r\n })\r\n }\r\n const SetDeviceOffLineAlarm = (t) => {\r\n setLoad(true)\r\n http.put((props.cloud ? \"/v3\" : \"/v1\") + \"/deviceoffline/\" + device.ID, { alarm: t.alarm ,offtime:t.offtime,interval:t.interval,count:t.count}).then(data => {\r\n setLoad(false)\r\n if (data.code == 0) {\r\n device.Sensor.OffLineAlarm=t.alarm;\r\n device.Sensor.OffLineTime=t.offtime;\r\n device.Sensor.OffLineAlarmInterval=t.interval;\r\n device.Sensor.OffLineAlarmCount=t.count;\r\n setDevice({ ...device})\r\n }\r\n })\r\n }\r\n const SetDeviceLinkAlarm = (t) => {\r\n setLoad(true)\r\n http.put((props.cloud ? \"/v3\" : \"/v1\") + \"/devicelink/\" + device.ID, { alarm: t }).then(data => {\r\n setLoad(false)\r\n if (data.code == 0) {\r\n device.Sensor.LinkAlarm=t;\r\n setDevice({ ...device})\r\n }\r\n })\r\n }\r\n const SetDeviceParams = (t) => {\r\n if (t.error) {\r\n Modal.error({\r\n title: '参数错误',\r\n centered: true,\r\n content: '请检查所设置的参数',\r\n });\r\n } else {\r\n setLoad(true)\r\n if(isMore){\r\n let devInfo = device;\r\n let checkedList = []\r\n devList.map(m=>{\r\n m.nodes.map(mm=>{\r\n if(mm.checked){\r\n checkedList.push({sn:m.sn,node:mm.key})\r\n }\r\n })\r\n })\r\n let countMax = checkedList.length;\r\n let index = 0;\r\n let timer= setInterval(()=>{\r\n console.log('starttimer',timer);\r\n if(index {\r\n setLoad(false)\r\n })\r\n }else{\r\n clearInterval(timer)\r\n }\r\n index++;\r\n },1000)\r\n }else{\r\n setTimeout(() => {\r\n http.post((props.cloud ? \"/v3\" : \"/v1\") + \"/setdevice\", { ...t, device: device }).then(data => {\r\n setLoad(false)\r\n })\r\n }, 1000);\r\n }\r\n // setTimeout(() => {\r\n // http.post((props.cloud ? \"/v3\" : \"/v1\") + \"/setdevice\", { ...t, device: device }).then(data => {\r\n // setLoad(false)\r\n // })\r\n // }, 1000);\r\n }\r\n }\r\n const SetDevicesParams = ()=> {\r\n setLoad(true)\r\n setTimeout(() => {\r\n http.post((props.cloud ? \"/v3\" : \"/v1\") + \"/setdevices\", { devices: devices }).then(data => {\r\n setLoad(false)\r\n })\r\n }, 1000);\r\n }\r\n const GetStatus=()=> {\r\n let setCatch = {a2:false,a3:false,a4:false,a6:false,a7:false,a8:false,a9:false,aa:false}\r\n http.get((props.cloud ? \"/v3\" : \"/v1\") + \"/getdevicecmdbuffer/\"+device.Sn, {}).then(data => {\r\n if (data.code === 0 &&data.data.length>0) {\r\n data.data.map(m=>{\r\n let cmd = (m.Cmd%255).toString(16);\r\n if(cmd==='a4'){\r\n console.log('a4');\r\n setCatch={...setCatch,a4:true}\r\n }\r\n else if(cmd==='a2'){\r\n console.log('a2');\r\n setCatch={...setCatch,a2:true}\r\n }\r\n else if(cmd==='a3'){\r\n console.log('a3');\r\n setCatch={...setCatch,a3:true}\r\n }\r\n else if(cmd==='a6'){\r\n console.log('a6');\r\n setCatch={...setCatch,a6:true}\r\n }\r\n else if(cmd==='a7'){\r\n console.log('a7');\r\n setCatch={...setCatch,a7:true}\r\n }\r\n else if(cmd==='a8'){\r\n console.log('a8');\r\n setCatch={...setCatch,a8:true}\r\n }\r\n else if(cmd==='a9'){\r\n console.log('a9');\r\n setCatch={...setCatch,a9:true}\r\n }\r\n else if(cmd==='aa'){\r\n console.log('aa');\r\n setCatch={...setCatch,aa:true}\r\n }\r\n })\r\n setIsCache((pre)=>{console.log(pre,setCatch);return setCatch})\r\n }else{\r\n console.log(200);\r\n setIsCache(setCatch)\r\n }\r\n })\r\n }\r\n return (\r\n
\r\n {\r\n setIsMore(e==='1'?false:true)\r\n }} tabBarExtraContent={}>\r\n \r\n
\r\n {device.Name}\r\n {' 主机名:' + device.MName}\r\n {' 主机编号:' + device.Sn} \r\n {' 测点ID: ' + device.Node}\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n {/* 温湿度预警 */}\r\n
\r\n
预警参数:
\r\n {/* */}\r\n \r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningHigh: parseFloat(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningHigh: 0 } })\r\n }\r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningLow: parseFloat(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningLow: 0 } })\r\n }\r\n }} />\r\n\r\n {\r\n var reg = /^[0]|[1-9]\\d{0,2}$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, WarningInterval: parseInt(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, WarningInterval: 2 } })\r\n }\r\n }} />\r\n \r\n\r\n
\r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n {/* 温湿度报警 */}\r\n
\r\n
报警参数:
\r\n {/* */}\r\n \r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n alarmInfo.error = false\r\n setDevice({ ...device, ExSensor: { ...device.ExSensor, param: [{...device.ExSensor.param[0],high:parseFloat(e.target.value)}]}})\r\n } else {\r\n alarmInfo.error = true\r\n setDevice({ ...device, ExSensor: { ...device.ExSensor, param: [{...device.ExSensor.param[0],high:e.target.value}]}})\r\n }\r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n alarmInfo.error = false\r\n setDevice({ ...device, ExSensor: { ...device.ExSensor, param: [{...device.ExSensor.param[0],low:parseFloat(e.target.value)}]}})\r\n } else {\r\n alarmInfo.error = true\r\n setDevice({ ...device, ExSensor: { ...device.ExSensor,param: [{...device.ExSensor.param[0],low:e.target.value}]}})\r\n }\r\n }} />\r\n {\r\n var reg = /^[0-9]*[1-9][0-9]*$/\r\n if (reg.test(e.target.value)) {\r\n let count =Number(e.target.value);\r\n if(count>255){\r\n count=255\r\n }\r\n setDevice({ ...device, ExSensor: { ...device.ExSensor, alarm_count: count } })\r\n } else {\r\n setDevice({ ...device, ExSensor: { ...device.ExSensor, alarm_count: (e.target.value) } })\r\n }\r\n }} />\r\n
\r\n \r\n {\r\n isCache.a4&&
\r\n \r\n 已缓存\r\n
\r\n }\r\n
\r\n \r\n \r\n
\r\n\r\n {/*
*/}\r\n
\r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n
电量报警:
\r\n \r\n {\r\n var reg = /^[0-9]*[1-9][0-9]*$/\r\n if (reg.test(e.target.value)) {\r\n batteryAlarm.error = false\r\n setDevice({ ...device, Params: { ...device.Params, BatPowerAlarm: Number(e.target.value) } })\r\n } else {\r\n batteryAlarm.error = true\r\n setDevice({ ...device, Params: { ...device.Params, BatPowerAlarm: (e.target.value) } })\r\n }\r\n }} />\r\n {\r\n var reg = /^[0-9]*[1-9][0-9]*$/\r\n if (reg.test(e.target.value)) {\r\n batteryAlarm.error = false\r\n setDevice({ ...device, Sensor: { ...device.Sensor, BatPowerAlarm: Number(e.target.value) } })\r\n } else {\r\n batteryAlarm.error = true\r\n setDevice({ ...device, Sensor: { ...device.Sensor, BatPowerAlarm: (e.target.value) } })\r\n }\r\n }} />\r\n \r\n
\r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {/* IP端口 */}\r\n
\r\n \r\n {\r\n setDevice({ ...device, Params: { ...device.Params, IPAddress: e.target.value } })\r\n }} />\r\n {/* */}\r\n {\r\n setState>0&&\r\n \r\n }\r\n
\r\n \r\n {\r\n isCache.a9&&\r\n
\r\n \r\n 已缓存\r\n
\r\n }\r\n
\r\n
\r\n \r\n {/* 补偿 */}\r\n {\r\n setState>1&&\r\n \r\n \r\n
补偿:
温度:
\r\n {\r\n let value = e;\r\n setDevice({ ...device, ExSensor: { ...device.ExSensor, param: [{...device.ExSensor.param[0],compensate:parseFloat(value)}]}})\r\n }} />\r\n
湿度:
\r\n {\r\n\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiCompensate:e } })\r\n }} />\r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n
\r\n {\r\n isCache.aa&&\r\n
\r\n \r\n 已缓存\r\n
\r\n }\r\n
\r\n
\r\n \r\n }\r\n {/* 设备时间 */}\r\n \r\n \r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n
\r\n {\r\n isCache.a3&&\r\n
\r\n \r\n 已缓存\r\n
\r\n }\r\n
\r\n
\r\n \r\n \r\n {/* 关机 */}\r\n \r\n \r\n \r\n \r\n
\r\n {\r\n isCache.a8&&\r\n
\r\n \r\n 已缓存\r\n
\r\n }\r\n
\r\n {/* */}\r\n
\r\n \r\n {/* 发货方 */}\r\n \r\n \r\n {\r\n setDevice({ ...device, ExSensor: { ...device.ExSensor, msg:[e.target.value,device.ExSensor.msg[1]] } })\r\n }} />\r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n
\r\n {\r\n isCache.a6&&\r\n
\r\n \r\n 已缓存\r\n
\r\n }\r\n
\r\n
\r\n \r\n {/* 收货方 */}\r\n \r\n \r\n {\r\n setDevice({ ...device, ExSensor: { ...device.ExSensor, msg:[device.ExSensor.msg[0],e.target.value] } })\r\n }} />\r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n
\r\n {\r\n isCache.a7&&\r\n
\r\n \r\n 已缓存\r\n
\r\n }\r\n
\r\n
\r\n \r\n {/* 设置存储间隔 */}\r\n \r\n \r\n {\r\n var reg = /^[0-9]*[1-9][0-9]*$/\r\n if (reg.test(e.target.value)) {\r\n store.error = false\r\n setDevice({ ...device, Params: { ...device.Params, NorStoreInt: Number(e.target.value) } })\r\n } else {\r\n store.error = true\r\n setDevice({ ...device, Params: { ...device.Params, NorStoreInt: (e.target.value) } })\r\n }\r\n }} />\r\n {\r\n\r\n var reg = /^[0-9]*[1-9][0-9]*$/\r\n if (reg.test(e.target.value)) {\r\n store.error = false\r\n setDevice({ ...device, Params: { ...device.Params, AlmStoreInt: Number(e.target.value) } })\r\n } else {\r\n store.error = true\r\n setDevice({ ...device, Params: { ...device.Params, AlmStoreInt: (e.target.value) } })\r\n }\r\n }}/>\r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n
\r\n {\r\n isCache.a2&&\r\n
\r\n \r\n 已缓存\r\n
\r\n }\r\n
\r\n
\r\n \r\n {/*探头链接失败 */}\r\n \r\n \r\n
探头连接失败报警:
\r\n \r\n {/* 离线报警 */}\r\n \r\n
离线报警:
\r\n {\r\n setOffLine({...offline,offtime:e.target.value*1})\r\n }}/>\r\n {\r\n setOffLine({...offline,interval:e.target.value*1})\r\n }}/>\r\n {\r\n setOffLine({...offline,count:e.target.value*1})\r\n }}/>\r\n \r\n \r\n \r\n {/* \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n state.type===100&&\r\n \r\n
\r\n
\r\n {\r\n let devInfo= devices;\r\n if(e.target.checked){\r\n devList.map(m=>{\r\n m.all = true;\r\n m.nodes.map(mn=>{\r\n mn.checked = true\r\n })\r\n })\r\n let devsTemp = \r\n state.main.type<102? state_device.devicestate.filter(x=>x.Node!==0&&x.District===props.item.District&&\r\n (x.Type===209))\r\n : \r\n state_device.devicestate.filter(x=>x.Node!==0&&x.District===props.item.District&&x.ExprieStatus!==3&&\r\n (x.Type===209));\r\n let devsData=[]\r\n devsTemp.map(m=>{\r\n let temp =devsData.findIndex(x=>x.Sn===m.Sn);\r\n m.Sensor.Name = m.Name\r\n if(temp===-1){\r\n devsData.push({Sn:m.Sn,Params:m.Params,Sensor:[m.Sensor],StoreInfo:m.StoreInfo,Type:m.Type,ExSensor:[m.ExSensor]})\r\n }else{\r\n devsData[temp].Sensor.push(m.Sensor)\r\n devsData[temp].ExSensor.push(m.ExSensor)\r\n }\r\n })\r\n devsData.sort((a,b)=>a.Sn-b.Sn)\r\n devInfo.data=devsData;\r\n }else{\r\n devList.map(m=>{\r\n m.all = false;\r\n m.nodes.map(mn=>{\r\n mn.checked = false\r\n })\r\n })\r\n devInfo.data =[]\r\n }\r\n let devs = devList.concat();\r\n setDevList(devs)\r\n setDevices(devInfo)\r\n }}>\r\n 全选\r\n \r\n
\r\n {\r\n devList.map(m=>{\r\n return(\r\n
\r\n
\r\n 主机名: \r\n {m.name}\r\n
\r\n
\r\n 主机编号: \r\n {m.sn}\r\n
\r\n \r\n
\r\n 测点\r\n {\r\n let devInfo= devices;\r\n let tempdevInfo = state.main.type<102? state_device.devicestate.filter(x=>x.Node!==0&&x.District===props.item.District&&\r\n (x.Type===209))\r\n : \r\n state_device.devicestate.filter(x=>x.Node!==0&&x.District===props.item.District&&x.ExprieStatus!==3&&\r\n (x.Type===209));\r\n m.indeterminate = false\r\n let devsData=[]\r\n if(e.target.checked){\r\n m.nodes.map(n=>{\r\n n.checked = true;\r\n })\r\n m.all = true;\r\n tempdevInfo.filter(x=>x.Sn===m.sn).map(n=>{\r\n let temp = devInfo.data.findIndex(x=>x.Sn===m.sn);\r\n n.Sensor.Name = n.Name\r\n if(temp===-1){\r\n devsData.push({Sn:m.Sn,Params:m.Params,Sensor:[m.Sensor],StoreInfo:m.StoreInfo,Type:m.Type,ExSensor:[m.ExSensor]})\r\n }else{\r\n devsData[temp].Sensor.push(m.Sensor)\r\n devsData[temp].ExSensor.push(m.ExSensor)\r\n }\r\n })\r\n devInfo.data.sort((a,b)=>a.Sn-b.Sn)\r\n }else{\r\n m.all = false;\r\n m.nodes.map(n=>{\r\n n.checked = false\r\n })\r\n devInfo.data = devInfo.data.filter(x=>x.Sn!==m.sn)\r\n }\r\n let templist = devList.concat()\r\n setDevList(templist)\r\n setDevices(devInfo)\r\n }} checked={m.all}>\r\n 全选\r\n \r\n
\r\n
\r\n {\r\n m.nodes.map(mm=>{\r\n return(\r\n {\r\n let devInfo= devices;\r\n let temp = state_device.devicestate.filter(x=>x.ID === mm.value);\r\n let n = temp[0];\r\n let index = devInfo.data.findIndex(x=>x.Sn===n.Sn)\r\n if(e.target.checked){\r\n mm.checked = true;\r\n n.Sensor.Name = n.Name\r\n if(index===-1){\r\n devInfo.data.push({Sn:n.Sn,Params:n.Params,Sensor:[n.Sensor],StoreInfo:n.StoreInfo,Type:n.Type,ExSensor:[n.ExSensor]})\r\n devInfo.data.sort((a,b)=>a.Sn-b.Sn)\r\n }else{\r\n devInfo.data[index].Sensor.push(n.Sensor);\r\n devInfo.data[index].ExSensor.push(n.ExSensor);\r\n devInfo.data[index].Sensor.sort((a,b)=>a.Id-b.Id)\r\n }\r\n \r\n }else{\r\n mm.checked = false\r\n let sensonTemp =devInfo.data[index].Sensor;\r\n sensonTemp= sensonTemp.filter(x=>x.Id!==n.Node);\r\n if(sensonTemp.length>0){\r\n devInfo.data[index].Sensor = sensonTemp;\r\n }else{\r\n devInfo.data=devInfo.data.filter(x=>x.Sn!==n.Sn)\r\n }\r\n let exSensonTemp =devInfo.data[index].ExSensor;\r\n exSensonTemp= exSensonTemp.filter(x=>x.Id!==n.Node);\r\n if(exSensonTemp.length>0){\r\n devInfo.data[index].ExSensor = exSensonTemp;\r\n }else{\r\n devInfo.data=devInfo.data.filter(x=>x.Sn!==n.Sn)\r\n }\r\n }\r\n setDevices(devInfo)\r\n let ttt=devList.filter(x=>x.sn===m.sn)[0].nodes\r\n // console.log(ttt);\r\n let checkNodelen= ttt.filter(x=>x.checked).length\r\n if(checkNodelen===0||checkNodelen===ttt.length){\r\n m.indeterminate = false\r\n }else{\r\n m.indeterminate = true\r\n }\r\n if(checkNodelen===ttt.length){\r\n m.all = true\r\n }else{\r\n m.all = false\r\n }\r\n let templist=devList.concat()\r\n\r\n setDevList(templist)\r\n }}\r\n >{mm.label}\r\n )\r\n })\r\n }\r\n
\r\n
)\r\n })\r\n }\r\n \r\n
\r\n {\r\n SetDevicesParams()\r\n console.log('devices',devices);\r\n }}>设置}\r\n onChange={key=>{\r\n setIsShowSet(true);\r\n if(key==='1'){//上下限\r\n devices.type = 5;\r\n }\r\n if(key==='3'){//预警\r\n devices.type = 8;\r\n }\r\n if(key==='6'){//补偿\r\n devices.type = 10;\r\n }\r\n if(key==='7'){//回传间隔\r\n devices.type = 3;\r\n }\r\n if(key==='8'){//存储间隔\r\n devices.type = 9;\r\n }\r\n if(key==='9'){//基本设置\r\n setIsShowSet(false)\r\n }\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }}\r\n >\r\n \r\n
\r\n \r\n \r\n {\r\n devices.data.map(m=>(\r\n m.Sensor.map(n=>{\r\n return(\r\n
\r\n
{n.Name}
\r\n
主机
\r\n
{m.Sn}
\r\n
测点
\r\n
{n.Id}
\r\n \r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n n.ExSensor.param[0].high = parseFloat(e.target.value)\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n } \r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n n.ExSensor.param[0].low = parseFloat(e.target.value)\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }\r\n }} />\r\n {\r\n var reg = /^[0-9]*[1-9][0-9]*$/\r\n if (reg.test(e.target.value)) {\r\n let count =Number(e.target.value);\r\n if(count>255){\r\n count=255\r\n }\r\n n.ExSensor.alarm_count = count\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n } \r\n }} />\r\n
\r\n \r\n {\r\n isCache.a4&&
\r\n \r\n 已缓存\r\n
\r\n }\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n )\r\n })\r\n \r\n ))\r\n }\r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* \r\n
\r\n \r\n \r\n {\r\n devices.data.map(m=>(\r\n m.Sensor.map(n=>{\r\n return(\r\n
\r\n
{n.Name}
\r\n
主机
\r\n
{m.Sn}
\r\n
测点
\r\n
{n.Id}
\r\n \r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n n.TempWarningHigh = parseFloat(e.target.value)\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }\r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n n.TempWarningLow = parseFloat(e.target.value)\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }\r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n n.HumiWarningHigh = parseFloat(e.target.value)\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }\r\n }} disabled={n.HumiEnable!==0||!n.HumiSwitch}/>\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n n.HumiWarningLow = parseFloat(e.target.value)\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n } \r\n }} disabled={n.HumiEnable!==0||!n.HumiSwitch}/>\r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?1:e.target.value;\r\n if (reg.test(val)) {\r\n n.TempWarningHigh =val*1;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }\r\n }} />\r\n \r\n \r\n )\r\n })\r\n \r\n ))\r\n }\r\n \r\n \r\n \r\n \r\n */}\r\n\r\n\r\n {\r\n setState>1 &&\r\n \r\n
\r\n \r\n \r\n {\r\n devices.data.map(m=>(\r\n m.Sensor.map(n=>{\r\n return(\r\n
\r\n
{n.Name}
\r\n
主机
\r\n
{m.Sn}
\r\n
测点
\r\n
{n.Id}
\r\n \r\n
补偿:
温度:
\r\n {\r\n n.TempCompensate = e;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }} />\r\n
湿度:
\r\n {\r\n n.HumiCompensate = e;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n }} />\r\n
\r\n \r\n )\r\n })\r\n \r\n ))\r\n }\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n
\r\n \r\n \r\n {\r\n devices.data.map(m=>{\r\n return(\r\n
\r\n {/*
{n.Name}
*/}\r\n
主机
\r\n
{m.Sn}
\r\n {/*
测点
*/}\r\n {/*
{n.Id}
*/}\r\n {\r\n var reg = /^[\\d]{0,4}$/\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n m.Params.RealTimeInt = val*1;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n // setDevice({ ...device, Params: { ...device.Params, RealTimeInt: Number(val) } })\r\n } \r\n }} />\r\n \r\n ) \r\n })\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n devices.data.map(m=>{\r\n return(\r\n
\r\n {/*
{n.Name}
*/}\r\n
主机
\r\n
{m.Sn}
\r\n {/*
测点
*/}\r\n {/*
{n.Id}
*/}\r\n \r\n {\r\n let reg = /^[0-9]*[1-9][0-9]*$/;\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n m.Params.NorStoreInt = val*1;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n // setDevice({ ...device, Params: { ...device.Params, NorStoreInt: Number(val) } })\r\n }\r\n }} />\r\n {\r\n let reg = /^[0-9]*[1-9][0-9]*$/;\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n m.Params.AlmStoreInt = val*1;\r\n let devsTemp = JSON.parse(JSON.stringify(devices));\r\n setDevices(devsTemp)\r\n // setDevice({ ...device, Params: { ...device.Params, AlmStoreInt: Number(val) } })\r\n } \r\n }}/>\r\n \r\n \r\n ) \r\n })\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {/* 温湿度预警 */}\r\n {/*
\r\n
预警:
\r\n \r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningHigh: parseFloat(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningHigh: 0 } })\r\n }\r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningLow: parseFloat(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempWarningLow: 0 } })\r\n }\r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiWarningHigh: parseFloat(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiWarningHigh: 0 } })\r\n }\r\n }} disabled={device.Humi===0}/>\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiWarningLow: parseFloat(e.target.value) } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiWarningLow: 0 } })\r\n }\r\n }} disabled={device.Humi===0}/>\r\n {\r\n var reg = intReg\r\n let val = e.target.value===''?1:e.target.value;\r\n if (reg.test(val)) {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, WarningInterval: val*1 } })\r\n } else {\r\n setDevice({ ...device, Sensor: { ...device.Sensor, WarningInterval: 2 } })\r\n }\r\n }} />\r\n \r\n \r\n \r\n\r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n */}\r\n \r\n {/* 温湿度报警 */}\r\n \r\n
报警:
\r\n \r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n alarmInfo.error = false\r\n setDevice({ ...device, ExSensor: { ...device.ExSensor, param: [{...device.ExSensor.param[0],high:parseFloat(e.target.value)}]}})\r\n } else {\r\n alarmInfo.error = true\r\n setDevice({ ...device, ExSensor: { ...device.ExSensor, param: [{...device.ExSensor.param[0],high:e.target.value}]}})\r\n }\r\n }} />\r\n {\r\n var reg = /^(-?\\d+)(\\.\\d+)?$/\r\n if (reg.test(e.target.value)) {\r\n alarmInfo.error = false\r\n setDevice({ ...device, ExSensor: { ...device.ExSensor, param: [{...device.ExSensor.param[0],low:parseFloat(e.target.value)}]}})\r\n } else {\r\n alarmInfo.error = true\r\n setDevice({ ...device, ExSensor: { ...device.ExSensor,param: [{...device.ExSensor.param[0],low:e.target.value}]}})\r\n }\r\n }} />\r\n {\r\n var reg = /^[0-9]*[1-9][0-9]*$/\r\n if (reg.test(e.target.value)) {\r\n let count =Number(e.target.value);\r\n if(count>255){\r\n count=255\r\n }\r\n setDevice({ ...device, ExSensor: { ...device.ExSensor, alarm_count: count } })\r\n } else {\r\n setDevice({ ...device, ExSensor: { ...device.ExSensor, alarm_count: (e.target.value) } })\r\n }\r\n }} />\r\n
\r\n \r\n {\r\n isCache.a4&&
\r\n \r\n 已缓存\r\n
\r\n }\r\n
\r\n \r\n \r\n
\r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n {\r\n setDevice({ ...device, Params: { ...device.Params, IPAddress: e.target.value } })\r\n }} />\r\n\r\n {\r\n setState>0&&state.main.type<103&&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n {\r\n var reg = /^[\\d]{0,4}$/\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n setDevice({ ...device, Params: { ...device.Params, RealTimeInt: Number(val) } })\r\n } else {\r\n setDevice({ ...device, Params: { ...device.Params, RealTimeInt: val } })\r\n }\r\n }} />\r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n {\r\n setState>1?\r\n \r\n
补偿:
温度:
\r\n {\r\n let value = e;\r\n setDevice({ ...device, Sensor: { ...device.Sensor, TempCompensate: value } })\r\n }} />\r\n
湿度:
\r\n {\r\n\r\n setDevice({ ...device, Sensor: { ...device.Sensor, HumiCompensate:e } })\r\n }} />\r\n {\r\n setState>0&&\r\n \r\n }\r\n
\r\n :
\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n {\r\n var reg = /^[0-9]*[1-9][0-9]*$/\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n store.error = false\r\n setDevice({ ...device, Params: { ...device.Params, NorStoreInt: Number(val) } })\r\n } else {\r\n store.error = true\r\n setDevice({ ...device, Params: { ...device.Params, NorStoreInt: val } })\r\n }\r\n }} />\r\n {\r\n\r\n var reg = /^[0-9]*[1-9][0-9]*$/\r\n let val = e.target.value===''?0:e.target.value;\r\n if (reg.test(val)) {\r\n store.error = false\r\n setDevice({ ...device, Params: { ...device.Params, AlmStoreInt: Number(val) } })\r\n } else {\r\n store.error = true\r\n setDevice({ ...device, Params: { ...device.Params, AlmStoreInt: val } })\r\n }\r\n }}/>\r\n {\r\n setState>0&&\r\n \r\n }\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n {\r\n let s = 0\r\n if(affirmPwd.startsWith(\"admin\")){\r\n \r\n if(md5(affirmPwd.slice(5))===state.main.password){\r\n // setSetState(2);\r\n s=2;\r\n setShowAffirm(false);\r\n }else{\r\n s=0;\r\n // setSetState(0);\r\n message.warn('密码错误');\r\n }\r\n }else{\r\n if(md5(affirmPwd)===state.main.password){\r\n s=1;\r\n // setSetState(1);\r\n setShowAffirm(false);\r\n }else{\r\n s=0;\r\n // setSetState(0);\r\n message.warn('密码错误');\r\n }\r\n }\r\n setSetState(s);\r\n props.changeSetState(s);\r\n dispatch({type:'super',super:s})\r\n dispatch({type:'setState',setState:s===0?0:1})\r\n }} onCancel={()=>setShowAffirm(false)}>\r\n setAffirmPwd(e.target.value)} />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default DeviceSet","import React, { useState, useContext, useEffect} from 'react'\r\nimport { StateContext } from '../../../state';\r\nimport { Row, Col, Button, Badge, Modal, Tooltip } from 'antd'\r\nimport './device.less'\r\nimport { SignalTower, BoltOne, BatteryWorking ,BatteryFull,BatteryEmpty} from '@icon-park/react'\r\nimport tempOnline from '../../../../../../public/assets/tempOnline.png'\r\nimport tempUnline from '../../../../../../public/assets/tempUnline.png'\r\nimport humiOnline from '../../../../../../public/assets/humiOnline.png'\r\nimport humiUnline from '../../../../../../public/assets/humiUnline.png'\r\nimport signalOnline from '../../../../../../public/assets/signalOnline.png'\r\nimport signalUnline from '../../../../../../public/assets/signalUnline.png'\r\nimport signalTimeOut from '../../../../../../public/assets/timeout.png'\r\nimport signalTimeWarn from '../../../../../../public/assets/timeWarn.png'\r\nimport DeviceSet from './set209-902'\r\nimport { Mode } from '../../../../../App';\r\nimport Draggable from 'react-draggable';\r\nimport DeviceHistory from './deviceHistory'\r\nimport DeviceMap from './deviceMap'\r\n\r\nfunction formatDateTimes(inputTime) {\r\n var date = new Date(inputTime);\r\n var y = date.getFullYear();\r\n var m = date.getMonth() + 1;\r\n m = m < 10 ? ('0' + m) : m;\r\n var d = date.getDate();\r\n d = d < 10 ? ('0' + d) : d;\r\n var h = date.getHours();\r\n h = h < 10 ? ('0' + h) : h;\r\n var minute = date.getMinutes();\r\n var second = date.getSeconds();\r\n minute = minute < 10 ? ('0' + minute) : minute;\r\n second = second < 10 ? ('0' + second) : second;\r\n return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;\r\n};\r\nfunction Device902Item(props) {\r\n const { state, dispatch } = useContext(StateContext)\r\n const [showHis, setShowHis] = useState(false)\r\n const [showSet, setShowSet] = useState(false)\r\n const [showLocation, setShowLocation] = useState(false)\r\n //历史数据\r\n const [startTime, setStartTime] = useState('')//历史数据开始时间\r\n const [startDTime, setStartDTime] = useState('')//当天00:00:00\r\n const [endTime, setEndTime] = useState('')\r\n //轨迹回放\r\n const [startMapTime, setStartMapTime] = useState('');//轨迹数据的开始时间\r\n const [endMapTime, setEndMapTime] = useState('');//轨迹数据的结束时间\r\n\r\n const [modalBounds,setModalBounds] = useState({left: 0, top: 0, bottom: 0, right: 0 });//对话框移动坐标\r\n const [modalMoveDisabled, setModalMoveDisabled] = useState(true);//对话框拖动功能关闭\r\n const draggleRef = React.createRef();//移动对话框\r\n const [showLastTime, setShowLastTime] = useState(false);\r\n let timerout =0;\r\n // 拖动方法\r\n const onStart = (event, uiData) => {\r\n const { clientWidth, clientHeight } = window.document.documentElement;\r\n const targetRect = draggleRef.current?.getBoundingClientRect();\r\n if (!targetRect) return;\r\n setModalBounds({\r\n left: -targetRect.left + uiData.x,\r\n right: clientWidth - (targetRect.right - uiData.x),\r\n top: -targetRect.top + uiData.y,\r\n bottom: clientHeight - (targetRect.bottom - uiData.y),\r\n });\r\n };\r\n function dateStart() {\r\n var now_date = new Date(); now_date.setHours(0); now_date.setMinutes(0); now_date.setSeconds(0);\r\n return now_date;\r\n }\r\n const changeSetState = (num)=>{\r\n if(num>0 && state.main.type > 101){\r\n clearTimeout(timerout)\r\n timerout=setTimeout(() => {\r\n dispatch({ type: 'setState', setState: 0 });\r\n dispatch({ type: 'super', super: 0 });\r\n }, 1000*60*10);\r\n }\r\n }\r\n useEffect(()=>{\r\n let now_date = dateStart();\r\n setStartDTime(now_date);\r\n let type = state.main.type;\r\n let showLastTime = false;\r\n if (window.CefSharp !== undefined) {\r\n window.CefSharp.BindObjectAsync(\"bound\");\r\n let myConf =window.bound.getConfig();\r\n console.log('myConf',myConf);\r\n if(type<102){\r\n if (myConf.showTimeAdmin){\r\n showLastTime = true\r\n }\r\n }\r\n if(type===103){\r\n if (myConf.showTimeManger){\r\n showLastTime = true\r\n }\r\n }\r\n if(type===104){\r\n if (myConf.showTimeUser){\r\n showLastTime = true\r\n }\r\n }\r\n }else{\r\n if(type<102){\r\n showLastTime = true\r\n }\r\n }\r\n setShowLastTime(showLastTime)\r\n },[])\r\n\r\n return (\r\n <>\r\n {/* 历史数据 */}\r\n {\r\n setModalMoveDisabled(false);\r\n }}\r\n onMouseOut={() => {\r\n setModalMoveDisabled(true);\r\n }}\r\n >\r\n 历史数据\r\n \r\n } width={'85vw'} \r\n centered visible={showHis} destroyOnClose={true} \r\n modalRender={modal => (\r\n \r\n
{modal}
\r\n \r\n )}\r\n footer={null}\r\n onCancel={() => {\r\n setStartTime('');\r\n setEndTime('');\r\n setShowHis(false)\r\n props.callback(false)\r\n }}\r\n >\r\n \r\n \r\n
\r\n {\r\n setModalMoveDisabled(false);\r\n }}\r\n onMouseOut={() => {\r\n setModalMoveDisabled(true);\r\n }}\r\n >\r\n
\r\n 参数设置\r\n
\r\n
\r\n {Mode!=='soc'?null:' 用户: ' + state.district.filter(item => item.id === props.item.District)[0].user_name}\r\n
\r\n
\r\n {' 区域: ' + state.district.filter(item => item.id === props.item.District)[0].name}\r\n
\r\n \r\n }\r\n modalRender={modal => (\r\n \r\n
{modal}
\r\n \r\n )}\r\n width={1000} centered visible={showSet} footer={null} destroyOnClose={true}\r\n onCancel={() => {\r\n setShowSet(false)\r\n props.callback(false)\r\n }}\r\n >\r\n \r\n \r\n \r\n
\r\n {\r\n setModalMoveDisabled(false);\r\n }}\r\n onMouseOut={() => {\r\n setModalMoveDisabled(true);\r\n }}\r\n >\r\n 轨迹回放\r\n \r\n } width={'100%'} centered visible={showLocation} destroyOnClose footer={null}\r\n modalRender={modal => (\r\n \r\n
{modal}
\r\n \r\n )}\r\n onCancel={() => {\r\n setShowLocation(false);\r\n props.callback(false);\r\n setStartMapTime('');\r\n setEndMapTime('');\r\n }}\r\n >\r\n \r\n
\r\n {\r\n !props.item.ExSensor?'':\r\n !props.item.ExSensor.param?'':\r\n props.show === 1 ?\r\n //列表布局 \r\n
{\r\n startTime===''&& setStartTime(formatDateTimes(startDTime.getTime()));\r\n endTime===''&& setEndTime(formatDateTimes(new Date().getTime()));\r\n setShowHis(true);\r\n }}>\r\n \r\n {/* 测点名称 */}\r\n \r\n
\r\n {/* 设备到期状态 */}\r\n
\r\n {\r\n props.item.ExprieStatus === 0 ? ''\r\n :props.item.ExprieStatus === 3 ? \"\"\r\n :\"\"\r\n }\r\n
\r\n {\r\n props.item.Node===0?\r\n
\r\n
{props.item.MName}
\r\n
{'设备状态'}
\r\n
:\r\n
\r\n
{props.item.Name}
\r\n
\r\n
\r\n {props.item.MName}\r\n
\r\n
{\" ID:\" + props.item.Sn+'-'+props.item.Node}
\r\n
\r\n
\r\n }\r\n \r\n \r\n {/* 设备状态 是否在线 */}\r\n \r\n \r\n \r\n {/* 设备温湿度值 开关门 电源状态 */}\r\n \r\n {\r\n // 开关门\r\n (props.item.Node===0&&props.item.Sensor.PowerAlarm===0&&props.item.Sensor.DoorAlarm===1)?\r\n
\r\n {\r\n props.item.Online ?\r\n props.item.Status.Door===1 ?\r\n 开 门 :\r\n 关 门 :\r\n '--------------'\r\n }\r\n
:\r\n //电源状态\r\n (props.item.Node===0&&props.item.Sensor.PowerAlarm===1&&props.item.Sensor.DoorAlarm===0)?\r\n
\r\n {\r\n props.item.Online ?\r\n props.item.Status.PowerStatus===1 ?\r\n 断 电 :\r\n 电 源 正 常 :\r\n '--------------'\r\n }\r\n
:\r\n // 开关门 电源状态同时\r\n (props.item.Node===0&&props.item.Sensor.PowerAlarm===1&&props.item.Sensor.DoorAlarm===1)?\r\n
\r\n
\r\n 电源状态\r\n 门状态\r\n
\r\n {\r\n props.item.Online ?\r\n
\r\n
\r\n {\r\n props.item.Status.PowerStatus===1 ?\r\n 断 电 :\r\n 正 常 \r\n }\r\n
\r\n
\r\n {\r\n props.item.Status.Door===1 ?\r\n 开 门 :\r\n 关 门 \r\n }\r\n
\r\n
:\r\n
\r\n
--------------
\r\n
--------------
\r\n
\r\n }\r\n
:\r\n // 正常温湿度数据\r\n
\r\n
\r\n
\r\n 上限:{props.item.Online&&props.item.ExSensor.param[0].high}\r\n
\r\n
\r\n 下限:{props.item.Online&&props.item.ExSensor.param[0].low}\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n {\r\n props.item.Online?props.item.ExSensor.param[0].value === 102.3 || props.item.ExSensor.param[0].value === 102.2||props.item.ExSensor.param[0].enable!==1 ? '--' :\r\n props.item.ExSensor.param[0].value + props.item.ExSensor.param[0].unit:'--'\r\n }\r\n
\r\n
\r\n {\r\n props.item.Humi === 1 ?\r\n
\r\n
\r\n \r\n {/*
*/}\r\n
\r\n {props.item.Sensor.HumiValue === 102.3 || props.item.Sensor.HumiValue === 102.2 ||!props.item.Sensor.HumiSwitch? '--' : props.item.Sensor.HumiValue + \"%RH\"}\r\n
\r\n
\r\n
\r\n
\r\n 上限:{props.item.Sensor.HumiAlarmHigh}\r\n
\r\n
\r\n 下限:{props.item.Sensor.HumiAlarmLow}\r\n
\r\n
\r\n
: null\r\n }\r\n
\r\n }\r\n \r\n {/* 信号电源电量 */}\r\n
\r\n
\r\n {/* 定位状态 */}\r\n
{\r\n startMapTime===''&& setStartMapTime(formatDateTimes(startDTime.getTime()));\r\n endMapTime===''&& setEndMapTime(formatDateTimes(new Date().getTime()));\r\n setShowLocation(true);\r\n }}>\r\n \r\n LBS\r\n
\r\n {/* 信号值 */}\r\n
\r\n 0 ? signalOnline : signalUnline} alt=\"\" />\r\n {props.item.Online && props.item.Status.Csq > 0 ? props.item.Status.Csq : ' '}\r\n
\r\n {/* 电量状态 值 */}\r\n
\r\n {\r\n props.item.Status.PowerStatus === 0 ?\r\n :\r\n \r\n }\r\n {props.item.Online ? props.item.Status.BatPower + '%' : ''}\r\n
\r\n
\r\n \r\n {/* 时间 */}\r\n {\r\n // state.main.type<102&&\r\n // \r\n //
更新时间:
\r\n //
{props.item.Status.LastMsgTime}
\r\n // \r\n }\r\n {/* 轨迹回放按钮 */}\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n :props.show === 0 ?\r\n //图表布局\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {\r\n props.item.ExprieStatus === 0 ? \r\n :props.item.ExprieStatus === 3 ? \"\"\r\n :\"\"\r\n // \r\n }\r\n \r\n {props.item.Node===0?props.item.MName:props.item.Name}\r\n {props.item.Sensor.Hide===2&&' 空库'}\r\n
\r\n
\r\n
\r\n {\r\n props.item.Node===0?'':!props.item.Online?'':props.item.ExSensor?props.item.ExSensor.param[0].enable!==1 ? '停用': props.item.ExSensor.param[0].value == 102.3 ? '未连接' : props.item.ExSensor.param[0].value == 102.2 ? '正在连接' : '':''\r\n }\r\n
\r\n\r\n
\r\n {/* 状态 测点ID 信号状态 */}\r\n
\r\n
\r\n {props.item.Node===0?'设备状态':\"ID:\" +props.item.Sn+'-'+ props.item.Node}\r\n
\r\n
\r\n \r\n {\r\n startMapTime===''&& setStartMapTime(formatDateTimes(startDTime.getTime()));\r\n endMapTime===''&& setEndMapTime(formatDateTimes(new Date().getTime()));\r\n setShowLocation(true);\r\n }} />\r\n \r\n \r\n \"\"\r\n \r\n {\r\n \r\n props.item.Node===0?\r\n \r\n {\r\n props.item.Status.PowerStatus === 0 ?\r\n :\r\n props.item.Status.BatPower>80?\r\n \r\n :props.item.Status.BatPower>30?\r\n \r\n :props.item.Status.BatPower>10?\r\n \r\n :\r\n \r\n }\r\n \r\n :\r\n \r\n {\r\n props.item.Status.PowerStatus === 0 ?\r\n :\r\n // \r\n props.item.Online &&props.item.ExSensor.param[0].enable===1?\r\n props.item.Status.BatPower>80?\r\n \r\n :props.item.Status.BatPower>30?\r\n \r\n :props.item.Status.BatPower>10?\r\n \r\n :\r\n :\r\n \r\n }\r\n \r\n }\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n {\r\n showLastTime?\r\n
\r\n {\"更新时间:\" + props.item.Status.LastMsgTime}\r\n
\r\n :\r\n
\r\n \r\n
\r\n } \r\n \r\n\r\n
\r\n {\r\n props.item.Node===0?\r\n (props.item.Sensor.PowerAlarm===0&&props.item.Sensor.DoorAlarm===1)?\r\n
\r\n {\r\n props.item.Online ? \r\n props.item.Status.Door===1 ?\r\n 开 门 :\r\n 关 门 :\r\n --------------\r\n }\r\n
:\r\n (props.item.Sensor.PowerAlarm===1&&props.item.Sensor.DoorAlarm===0)?\r\n
\r\n {\r\n props.item.Online ?\r\n props.item.Status.PowerStatus===1 ?\r\n 断 电 :\r\n 电 源 正 常 :\r\n --------------\r\n }\r\n
:\r\n
\r\n
\r\n 电源状态\r\n 门状态\r\n
\r\n {\r\n props.item.Online ?\r\n
\r\n
\r\n {\r\n props.item.Status.PowerStatus===1 ?\r\n 断 电 :\r\n 正 常 \r\n }\r\n
\r\n
\r\n {\r\n props.item.Status.Door===1 ?\r\n 开 门 :\r\n 关 门 \r\n }\r\n
\r\n
:\r\n
\r\n
--------------
\r\n
--------------
\r\n
\r\n }\r\n
:\r\n
\r\n
\r\n
\r\n \r\n
\r\n {\r\n props.item.Online?\r\n props.item.ExSensor.param[0].value === 102.3 || props.item.ExSensor.param[0].value === 102.2 || props.item.ExSensor.param[0].enable!==1 ? '--' \r\n : props.item.ExSensor.param[0].value + props.item.ExSensor.param[0].unit\r\n :'--'\r\n }\r\n
\r\n
\r\n {\r\n props.item.Humi === 1 ?\r\n
\r\n \r\n
\r\n {props.item.Sensor.HumiValue === 102.3 || props.item.Sensor.HumiValue === 102.2 || !props.item.Sensor.HumiSwitch ? '--' : props.item.Sensor.HumiValue + \"%RH\"}\r\n
\r\n
: null\r\n }\r\n
\r\n {\r\n state.main.type>101&&
\r\n }\r\n
\r\n
\r\n \r\n 上下限:\r\n {\r\n props.item.Online?`${props.item.ExSensor.param[0].high}~${props.item.ExSensor.param[0].low}`\r\n :''\r\n }\r\n \r\n
\r\n {\r\n props.item.Humi === 1 &&\r\n
\r\n {\r\n \r\n \r\n 上下限:{props.item.Sensor.HumiAlarmHigh}~{props.item.Sensor.HumiAlarmLow}\r\n \r\n }\r\n \r\n
\r\n }\r\n \r\n
\r\n
\r\n }\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n ://精简布局\r\n
2 ?'2px solid red': props.item.ExprieStatus>0? '2px solid orange':'', backgroundColor:props.item.Sensor.Hide>1 && '#ccc' }} className='chartLay1'\r\n onDoubleClick={()=>{\r\n (props.item.ExprieStatus !== 3||state.main.type<102) &&setShowSet(true);\r\n }}>\r\n \r\n
{props.item.Node===0?props.item.MName:props.item.Name}
\r\n
{props.item.Sn + ' - ' + props.item.Sensor.Id}
\r\n
更新时间:{props.item.Status.LastMsgTime}
\r\n
温度上下限: {props.item.ExSensor.param&&(props.item.ExSensor.param[0].high+'~'+props.item.ExSensor.param[0].low+props.item.ExSensor.param[0].unit)}
\r\n
\r\n }>\r\n
\r\n
{ \r\n startTime===''&& setStartTime(formatDateTimes(startDTime.getTime()));\r\n endTime===''&& setEndTime(formatDateTimes(new Date().getTime()));\r\n setShowHis(true);\r\n }}\r\n disabled={props.item.ExprieStatus === 3&& state.main.type>101 }\r\n >\r\n
\r\n {props.item.Node===0?props.item.MName:props.item.Name}\r\n
\r\n
\r\n
\r\n {\r\n props.item.Node===0?\r\n (props.item.Sensor.PowerAlarm===0&&props.item.Sensor.DoorAlarm===1)?\r\n
\r\n {\r\n props.item.Online ? \r\n props.item.Status.Door===1 ?\r\n 开 门 :\r\n 关 门 :\r\n --------------\r\n }\r\n
:\r\n (props.item.Sensor.PowerAlarm===1&&props.item.Sensor.DoorAlarm===0)?\r\n
\r\n {\r\n props.item.Online ?\r\n props.item.Status.PowerStatus===1 ?\r\n 断 电 :\r\n 电 源 正 常 :\r\n --------------\r\n }\r\n
:\r\n
\r\n
\r\n 电源状态\r\n 门状态\r\n
\r\n {\r\n props.item.Online ?\r\n
\r\n
\r\n {\r\n props.item.Status.PowerStatus===1 ?\r\n 断 电 :\r\n 正 常 \r\n }\r\n
\r\n
\r\n {\r\n props.item.Status.Door===1 ?\r\n 开 门 :\r\n 关 门 \r\n }\r\n
\r\n
:\r\n
\r\n
--------------
\r\n
--------------
\r\n
\r\n }\r\n
:\r\n
\r\n
\r\n
\r\n \r\n
\r\n {!props.item.ExSensor.param?'--':props.item.ExSensor.param[0].value === 102.3 || props.item.ExSensor.param[0].value === 102.2 || props.item.ExSensor.param[0].enable!==1 ? '--' : props.item.ExSensor.param[0].value }\r\n {props.item.ExSensor.param&&props.item.ExSensor.param[0].unit}\r\n
\r\n
\r\n {\r\n props.item.Humi === 1 ?\r\n
\r\n
\r\n {props.item.Sensor.HumiValue === 102.3 || props.item.Sensor.HumiValue === 102.2 || !props.item.Sensor.HumiSwitch ? '--' : props.item.Sensor.HumiValue + \"%RH\"}\r\n
\r\n
: null\r\n }\r\n
\r\n
\r\n }\r\n \r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nexport default Device902Item","import React, { createContext, useContext, useEffect, useState, useReducer} from 'react'\r\nimport { Table, Button, Input, Modal, Space, Form, } from 'antd'\r\nimport { StateContext } from '../../../state';\r\nimport http from '../../../../../utils/server'\r\nimport { SearchOutlined } from '@ant-design/icons';\r\nimport './upDev.less'\r\n\r\nconst DeviceContext = createContext();\r\n\r\nfunction DeviceFix() {\r\n const { actDevice, dispatchDevice, form, onfinish } = useContext(DeviceContext)\r\n const { state } = useContext(StateContext)\r\n const formRef = React.createRef();\r\n const formItemLayout = {\r\n labelCol: {\r\n xs: { span: 24 },\r\n sm: { span: 4 },\r\n },\r\n wrapperCol: {\r\n xs: { span: 24 },\r\n sm: { span: 20 },\r\n },\r\n };\r\n useEffect(() => {\r\n let devTypetemp = state.devicetype.filter(x=>x.code===actDevice.type);\r\n let devType = devTypetemp.length>0&&devTypetemp[0].value;\r\n form.setFieldsValue({\r\n ...actDevice,\r\n type:devType\r\n })\r\n }, [])\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n )\r\n}\r\nfunction UpDevManage() {\r\n const [form] = Form.useForm()\r\n const { state, dispatch } = useContext(StateContext)\r\n const [actDevice, dispatchDevice] = useReducer((state, action) => {\r\n if (action.type === 'update') {\r\n return action.device\r\n }\r\n return state\r\n }, []);\r\n const [showFixModel, setShowFixModel] = useState(false)\r\n const [tableData, setTableData] = useState([]);//显示表格的数据源\r\n const [disFilter,setDisFilter] = useState([]);\r\n const [devTypeFilter,setDevTypeFilter] = useState([]);\r\n const nodeSerch = React.createRef();\r\n const devSerch = React.createRef();\r\n useEffect(() => {\r\n http.get(\"/v1/device\", {}).then(data => {\r\n if (data.code === 0) {\r\n let temp = data.data.filter(x=>x.node!==0).sort((a,b)=>a.sn-b.sn)\r\n setTableData(temp);\r\n dispatch({ type: 'device', device: temp });\r\n }\r\n })\r\n http.get(\"/v1/devicetype\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'devicetype', devicetype: data.data });\r\n let arrs=[];\r\n data.data&&data.data.length>0&&\r\n data.data.filter(x=>x.code<204).map(m=>{\r\n arrs.push({text:m.value,value:m.code})\r\n })\r\n setDevTypeFilter(arrs);\r\n }\r\n })\r\n\r\n http.get(\"/v1/district\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'district', district: data.data });\r\n let arrs=[];\r\n data.data.map(m=>{\r\n arrs.push({text:m.name,value:m.name})\r\n })\r\n setDisFilter(arrs);\r\n }\r\n })\r\n }, [])\r\n\r\n const columns = [\r\n {\r\n title: '所属区域',\r\n dataIndex: 'district_name',\r\n align: 'center',\r\n filters:disFilter,\r\n onFilter: (value, record) => record.district_name.indexOf(value) ===0,\r\n },\r\n {\r\n title: '测点名称',\r\n dataIndex: 'name',\r\n align: 'center',\r\n render: (value, record) => (\r\n
\r\n
\r\n {\r\n record.name\r\n }\r\n
\r\n
\r\n {\r\n 'ID:' + ((record.node * 1 < 10) ? '0' + record.node : record.node)\r\n }\r\n
\r\n
\r\n ),\r\n filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) =>\r\n (\r\n
\r\n setSelectedKeys(e.target.value ? [e.target.value] : [])}\r\n onPressEnter={() => confirm()}\r\n style={{ marginBottom: 8, display: 'block' }}\r\n />\r\n \r\n \r\n confirm()}\r\n icon={}\r\n size=\"small\"\r\n style={{ width: 90 }}\r\n >\r\n 查找\r\n \r\n\r\n \r\n
\r\n ),\r\n onFilterDropdownVisibleChange: visible => {\r\n if (visible) {\r\n setTimeout(() => nodeSerch.current.focus({cursor: 'all'}), 100);\r\n }\r\n },\r\n filterIcon: filtered => ,\r\n\r\n onFilter: (value, record) =>\r\n record['node']? \r\n (record['node'].toString().toLowerCase().includes(value.toLowerCase()) ||\r\n record['name'].toString().toLowerCase().includes(value.toLowerCase()))\r\n : '',\r\n },\r\n {\r\n title: '主机名称',\r\n dataIndex: 'm_name',\r\n align: 'center',\r\n render: (value, record) => (\r\n
\r\n
\r\n {\r\n record.m_name\r\n }\r\n
\r\n
\r\n {\r\n record.sn\r\n }\r\n
\r\n
\r\n ),\r\n filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) =>\r\n (\r\n
\r\n setSelectedKeys(e.target.value ? [e.target.value] : [])}\r\n onPressEnter={() => confirm()}\r\n style={{ marginBottom: 8, display: 'block' }}\r\n />\r\n \r\n \r\n confirm()}\r\n icon={}\r\n size=\"small\"\r\n style={{ width: 90 }}\r\n >\r\n 查找\r\n \r\n\r\n \r\n
\r\n ),\r\n onFilterDropdownVisibleChange: visible => {\r\n if (visible) {\r\n setTimeout(() => devSerch.current.focus({cursor: 'all'}), 100);\r\n }\r\n },\r\n filterIcon: filtered => ,\r\n\r\n onFilter: (value, record) =>\r\n record['m_name']||record['sn']\r\n ? record['m_name'].toString().toLowerCase().includes(value.toLowerCase())||record['sn'].toString().toLowerCase().includes(value.toLowerCase())\r\n : '',\r\n },\r\n {\r\n title:'追溯平台编号',\r\n dataIndex:'upSn',\r\n align:'center',\r\n },\r\n {\r\n title: '设备类型',\r\n dataIndex: 'type',\r\n align: 'center',\r\n sorter: {\r\n compare:(a, b) => a.type - b.type,\r\n multiple: 5,\r\n },\r\n render: (text, record) => (\r\n
\r\n {\r\n state.devicetype.filter(x => { return x.code === record.type }).length > 0 ? state.devicetype.filter(x => { return x.code === record.type })[0].value : '无'\r\n }\r\n
\r\n ),\r\n filters:devTypeFilter,\r\n onFilter: (value, record) => record.type ===value,\r\n },\r\n {\r\n title: '操作',\r\n width: 80,\r\n dataIndex: 'operation',\r\n key: 'id',\r\n align: 'center',\r\n render: (text, record) => (\r\n
\r\n \r\n
\r\n ),\r\n },\r\n ]\r\n\r\n const onfinish = (values) => {\r\n http.put(\"/v1/device/\" + actDevice.id, {\r\n ...actDevice,\r\n upSn:values.upSn\r\n }).then((data) => {\r\n http.get(\"/v1/device\", {}).then(data => {\r\n if (data.code === 0) {\r\n let temp = data.data.filter(x=>x.node!==0).sort((a,b)=>a.sn-b.sn)\r\n setTableData(temp);\r\n dispatch({ type: 'device', device: temp });\r\n }\r\n })\r\n })\r\n }\r\n return (\r\n
\r\n
record.id} columns={columns} size='small' dataSource={tableData} \r\n rowClassName={record=>{if(state.super>1){\r\n return record.status===1?'socDevice':record.hide===1?'hideDevice':''\r\n }}} \r\n />\r\n 修改上传设备\r\n } visible={showFixModel}\r\n destroyOnClose style={{cursor: 'move'}}\r\n cancelText='取消'\r\n width={600}\r\n okText='确定'\r\n onOk={() => {\r\n form.submit();\r\n setShowFixModel(false)\r\n }}\r\n onCancel={() => {\r\n setShowFixModel(false)\r\n }}>\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default UpDevManage","import { Button, Input, InputNumber, message, Modal, Select, Tabs, Tooltip, Upload } from \"antd\"\r\nimport React,{useEffect,useState,useContext, useRef} from \"react\"\r\nimport { StateContext } from '../../../state';\r\nimport { useHistory, } from 'react-router-dom'\r\nimport { UploadOutlined,EnvironmentOutlined} from '@ant-design/icons';\r\nimport http from \"../../../../../utils/server\";\r\nimport { StateDeviceContext } from '../../../state_device';\r\nimport { Mode } from \"../../../../../App\";\r\nimport smoke from '../../../../../../public/assets/Smoke.png'\r\nimport smokeWarn from '../../../../../../public/assets/SmokeWarn.png'\r\nimport './plane.less'\r\n\r\nfunction Plane(props) {\r\n const { state_device, dispatch_device } = useContext(StateDeviceContext)\r\n const { state, dispatch } = useContext(StateContext)\r\n const[disID, setDisID] = useState(0);//区域ID\r\n const[devices, setDevices] = useState(0);//区域内设备\r\n const[editVisb, setEditVisb] = useState(false);//编辑窗口状态\r\n const[backImgURL, setBackImgURL] = useState('');//平面图片地址\r\n const[xRelative, setXRelative] = useState(0);//添加测点的X坐标\r\n const[yRelative, setYRelative] = useState(0);//添加测点的Y坐标\r\n const[newVisb, setNewVisb] = useState(false);//添加测点弹窗\r\n const[deviceInfo, setDeviceInfo] = useState({fontColor:'blue',fontSize:18});//当前测点的信息\r\n const[devicesInfo, setDevicesInfo] = useState([]);//平面图内所有测点的信息\r\n const[addMapEle, setAddMapEle] = useState({});\r\n const[planeName, setPlaneName] = useState('');\r\n const[planeIndex, setPlaneIndex] = useState(-1);\r\n const[planesInfo, setPlanesInfo] = useState([]);//获取的所有平面图信息\r\n const[showWidth, setShowWidth] = useState(0);\r\n const[showHeight, setShowHeight] = useState(0);\r\n const[isFullScreen,setIsFullScreen] = useState(false)\r\n const[isReflash,setIsReflash] = useState(false)\r\n const history = useHistory();\r\n const showPlane = React.createRef();\r\n const { TabPane } = Tabs;\r\n let interval = '';\r\n\r\n useEffect(()=>{\r\n if (!isFullScreen){\r\n if (document.documentElement.requestFullscreen){\r\n document.documentElement.requestFullscreen()\r\n }else if(document.documentElement.mozRequestFullscreen){\r\n document.documentElement.mozRequestFullscreen()\r\n }else if(document.documentElement.webkitRequestFullscreen){\r\n document.documentElement.webkitRequestFullscreen()\r\n }else{\r\n document.body.msRequestFullscreen()\r\n }\r\n }\r\n setIsFullScreen(true)\r\n let disID = props.match.params.id*1;\r\n setDisID(disID);\r\n http.get(\"/v1/device\", {}).then(data => {\r\n if (data.code === 0) {\r\n var temp=data.data.filter(x=>x.district===disID);\r\n setDevices(temp);\r\n } \r\n })\r\n http.get(\"/v1/layoutdis?district=\"+disID, {}).then(data => {\r\n if (data.code === 0) {\r\n setPlanesInfo(data.data);\r\n if(data.data&&data.data.length>0){\r\n let img = Mode==='soc'? data.data[0].image: 'http://127.0.0.1:8086/'+data.data[0].image;\r\n let imgObj = new Image();\r\n imgObj.src = img;\r\n setShowWidth(imgObj.width)\r\n setShowHeight(imgObj.height)\r\n }\r\n } \r\n })\r\n http.get(\"/v1/devicestatus\", {}).then(data => {\r\n if (data.code === 0 && data.data != null) {\r\n dispatch_device({ type: 'devicestate', devicestate: data.data });\r\n }\r\n })\r\n setTimeout(() => {\r\n setIsReflash(true)\r\n }, 2000);\r\n clearInterval(interval);\r\n interval = setInterval(() => {\r\n http.get(\"/v1/devicestatus\", {}).then(data => {\r\n if (data.code === 0 && data.data != null) {\r\n dispatch_device({ type: 'devicestate', devicestate: data.data });\r\n }\r\n })\r\n }, 10000)\r\n return () => clearInterval(interval)\r\n },[isReflash])\r\n\r\n function handleChange(info) {\r\n if (info.file.status === 'uploading') {\r\n return;\r\n }\r\n if (info.file.status === 'done') {\r\n setBackImgURL(info.file.response.data.path);\r\n // dispatchUser({ type: 'update', user: { ...actUser, logo: info.file.response.data.path } })\r\n }\r\n };\r\n return(\r\n
\r\n \r\n {/*
\r\n
\r\n
平面图
\r\n \r\n
*/}\r\n {\r\n history.push('/monitor/data')\r\n if(isFullScreen){\r\n if(document.exitFullscreen){\r\n document.exitFullscreen()\r\n }else if(document.msExitFullscreen){\r\n document.msExitFullscreen()\r\n }else if(document.webkitCancelFullscreen){\r\n document.webkitCancelFullscreen()\r\n }else if(document.mozCancelFullscreen){\r\n document.mozCancelFullscreen()\r\n }\r\n }\r\n setIsFullScreen(false)\r\n }}>返回}\r\n onChange={e=>{\r\n let img = Mode==='soc'?planesInfo[e].image:'http://127.0.0.1:8086/'+planesInfo[e].image;\r\n let imgObj = new Image();\r\n imgObj.src = img;\r\n if(imgObj.width!==0){\r\n setShowWidth(imgObj.width)\r\n setShowHeight(imgObj.height)\r\n }\r\n }}\r\n >\r\n {\r\n planesInfo.map((item,index)=>{\r\n return(\r\n \r\n
\r\n
\r\n \"\"\r\n {\r\n item.layout!==''&&\r\n JSON.parse(item.layout).map((layItem,layIndex)=>{\r\n \r\n if(state_device.devicestate.length>0){\r\n let tempDev =state_device.devicestate.filter(x=>x.ID===layItem.devID)[0]\r\n if (!tempDev) return \r\n return(\r\n \r\n {\r\n layItem.devSensorType===1?\r\n
\r\n {/* \"\" */}\r\n {\r\n tempDev.Sensor.Smoke ?\r\n \"\"\r\n :\r\n \"\"\r\n }\r\n
\r\n {/*
*/}\r\n {tempDev.Sensor.Smoke?'报警':'正常'}\r\n
\r\n
\r\n :\r\n
\r\n {/*
{tempDev.Name}
*/}\r\n
\r\n
\r\n \r\n
\r\n }\r\n \r\n \r\n )\r\n }\r\n \r\n })\r\n }\r\n
\r\n
\r\n \r\n )\r\n })\r\n }\r\n \r\n setEditVisb(false)}\r\n onOk={()=>{\r\n if(planeName==='') return message.error('平面图名称为空');\r\n http.post('/v1/layout',{ name:planeName, layout:JSON.stringify(devicesInfo),index:planeIndex,district:disID ,image:backImgURL})\r\n .then(data=>{\r\n if(data.code===0){\r\n http.get(\"/v1/layoutdis?district=\"+disID, {}).then(data => {\r\n if (data.code === 0) {\r\n setPlanesInfo(data.data);\r\n } \r\n })\r\n }\r\n })\r\n setEditVisb(false);\r\n }}\r\n >\r\n
\r\n {/* 上传平面图 */}\r\n
\r\n 平面图名称: setPlaneName(val.target.value)}/>\r\n 显示顺序: val!=null&&setPlaneIndex(val)}/>\r\n \r\n \r\n {\r\n \r\n \r\n }\r\n \r\n
\r\n
{\r\n e.preventDefault();\r\n let tempEle= document.getElementById('view');\r\n setAddMapEle(tempEle);\r\n let menuListEle= document.getElementById('menuList');\r\n let tempEleX = Number.parseInt(tempEle.getBoundingClientRect().x);\r\n let tempEleY = Number.parseInt(tempEle.getBoundingClientRect().y);\r\n let xRelative = e.clientX-tempEleX;\r\n let yRelative = e.clientY-tempEleY;\r\n setXRelative(xRelative);\r\n setYRelative(yRelative);\r\n let xPercent = xRelative/tempEle.getBoundingClientRect().width;\r\n let yPercent = yRelative/tempEle.getBoundingClientRect().height;\r\n setDeviceInfo({...deviceInfo,xPercent:xPercent,yPercent:yPercent});\r\n menuListEle.style.display='block';\r\n }}\r\n >\r\n {\r\n devicesInfo&&devicesInfo.map((item,index)=>{\r\n return(\r\n
\r\n 25℃ 60%HF\r\n
\r\n \r\n )\r\n })\r\n }\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n setNewVisb(false)}\r\n onOk={()=>{\r\n if(deviceInfo.devID===undefined) return message.error('没有选择测点');\r\n setNewVisb(false);\r\n let tempArr=devicesInfo;\r\n tempArr.push(deviceInfo)\r\n setDevicesInfo(tempArr); \r\n }}\r\n >\r\n
\r\n
\r\n 显示颜色\r\n \r\n
\r\n
\r\n 字体大小\r\n \r\n
\r\n 选择测点\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default Plane","import React, { useState, useContext, useEffect } from 'react'\r\nimport { StateContext } from '../../../state';\r\nimport { StateDeviceContext } from '../../../state_device';\r\nimport http from '../../../../../utils/server'\r\nimport { Select, Tree, Button, Switch, Input, message, Spin, List, Checkbox, Tooltip,Modal,DatePicker,Tabs, Radio} from 'antd'\r\nimport { AppstoreOutlined, MenuOutlined, SyncOutlined, DoubleLeftOutlined, DoubleRightOutlined, DownOutlined,UpOutlined, LayoutOutlined } from '@ant-design/icons';\r\nimport '../../../../../../node_modules/react-simple-tree-menu/dist/main.css';\r\nimport DeviceItem from './device';\r\nimport Device902Item from './device902';\r\nimport UpDevManage from './upDev';\r\nimport Plane from './plane';\r\nimport { Link,} from 'react-router-dom';\r\nimport { Mode } from '../../../../../App';\r\nimport audioSrc from '../../../../../../public/assets/warning.mp3'\r\nimport moment from 'moment';\r\nimport './index.less'\r\nconst { TabPane } = Tabs;\r\nconst { RangePicker } = DatePicker;\r\nlet interval = '';\r\nlet timer='';\r\nlet showDiv;\r\nlet showDivH;\r\nlet audioEle;\r\nlet beforeScroll=0;\r\nlet dateTimer ='';\r\nfunction formatDateTimes(inputTime) {\r\n var date = new Date(inputTime);\r\n var y = date.getFullYear();\r\n var m = date.getMonth() + 1;\r\n m = m < 10 ? ('0' + m) : m;\r\n var d = date.getDate();\r\n d = d < 10 ? ('0' + d) : d;\r\n var h = date.getHours();\r\n h = h < 10 ? ('0' + h) : h;\r\n var minute = date.getMinutes();\r\n var second = date.getSeconds();\r\n minute = minute < 10 ? ('0' + minute) : minute;\r\n second = second < 10 ? ('0' + second) : second;\r\n return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;\r\n};\r\nfunction Data() {\r\n const { state, dispatch } = useContext(StateContext)\r\n const { state_device, dispatch_device } = useContext(StateDeviceContext)\r\n const [showArea, setShowArea] = useState([])//展示的区域列表\r\n const [showDef, setShowDef] = useState([])//所有区域列表\r\n const [show, setShow] = useState(2);//区域\r\n const [showtree, setShowTree] = useState(true)\r\n // const [showOnline, setShowOnline] = useState(false);\r\n const [showOff, setShowOff] = useState(false);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [expendKey, setExpendKey] = useState([]);\r\n const [autoExpandParent, setAutoExpandParent] = useState([]);\r\n const [selKey, setSelKey] = useState([]);\r\n const [planeVis,setPlaneVis] = useState(false);\r\n\r\n const [closeInterval, setCloseInterval] = useState(false)\r\n const [showData, setShowData] = useState([])//条件查找设备存储数组\r\n const [showDataF, setShowDataF] = useState([])//设备存储数组\r\n const [showDis, setShowDis] = useState([])//筛选不在线设备的区域存储数组\r\n const [defExpend,setDefExpend]=useState([]);//树形结构默认展开节点\r\n const [showTreeDis,setShowTreeDis] = useState([]);//树形结构选择用户下区域\r\n const [showUpData,setShowUpData] = useState(false);//本地是否显示上传追溯系统按钮\r\n const [showUpDataModal ,setShowUpDataModal] = useState(false);//本地上传追溯系统弹窗界面\r\n const [startTime, setStartTime] = useState('');//本地上传追溯系统开始时间\r\n const [endTime, setEndTime] = useState('')//本地上传追溯系统结束时间\r\n const [storeDevOptions,setStoreDevOptions] = useState([]);//本地上传追溯系统仓库设备\r\n const [incDevOptions,setIncDevOptions] = useState([]);//本地上传追溯系统保温箱设备\r\n const [vehDevOptions,setVehDevOptions] = useState([]);//本地上传追溯系统车载设备\r\n const [devTypeOptions,setDevTypeOptions] = useState([]);//本地上传设备类型选择\r\n const [selDevType,setSelDevType] = useState(0);//选中的本地上传设备类型\r\n const [storeIndeterminate, setStoreIndeterminate] = useState(false); //本地上传追溯系统仓库设备全选\r\n const [incIndeterminate, setIncIndeterminate] = useState(false); //本地上传追溯系统保温箱设备全选\r\n const [vehIndeterminate, setVehIndeterminate] = useState(false); //本地上传追溯系统车载设备全选\r\n const [storeCheckAll, setStoreCheckAll] = useState(true);//本地上传追溯系统仓库设备设置全选\r\n const [incCheckAll, setIncCheckAll] = useState(true);//本地上传追溯系统保温箱设备设置全选\r\n const [vehCheckAll, setVehCheckAll] = useState(true);//本地上传追溯系统车载设备设置全选\r\n const [storeChecked,setStoreChecked] = useState([]);//本地上传追溯系统仓库设备已选择\r\n const [incChecked,setIncChecked] = useState([]);//本地上传追溯系统保温箱设备已选择\r\n const [vehChecked,setVehChecked] = useState([]);//本地上传追溯系统车载设备已选择\r\n const [storeDevValues,setStoreDevValues] = useState([]);//本地上传追溯系统仓库设备value值\r\n const [incDevValues,setIncDevValues] = useState([]);//本地上传追溯系统保温箱设备value值\r\n const [vehDevValues,setVehDevValues] = useState([]);//本地上传追溯系统车载设备value值\r\n const [dates, setDates] = useState([]);//本地上传追溯系统日期选择待选时间值\r\n const [upQYID,setUpQYID] = useState('');//本地上传追溯系统企业ID\r\n const [upKEY,setUpKEY] = useState('');//本地上传追溯系统秘钥\r\n const [upAuto,setUpAuto] = useState(false);//本地自动上传开关\r\n const { Search } = Input;\r\n \r\n function sortBy(data) {\r\n let filterData = data.filter(x=>x.Sensor.Hide!==1);\r\n\r\n if(filterData.length===0)return;\r\n let deviceslist = [filterData[0]];\r\n filterData.map(item=>{\r\n deviceslist.filter(x=>x.Sn===item.Sn).length===0&&deviceslist.push(item);\r\n })\r\n deviceslist.sort((a,b)=>a.Sn-b.Sn);\r\n deviceslist.sort((a,b)=>b.Online-a.Online);\r\n let nodeLists = [];\r\n deviceslist.map(item=>{\r\n let temp=filterData.filter(x=>x.Sn===item.Sn);\r\n temp.sort((a,b)=>a.Node-b.Node);\r\n if(temp[0].Node===0){\r\n let d = temp.splice(0,1);\r\n temp= temp.concat(d);\r\n }\r\n nodeLists=nodeLists.concat(temp);\r\n });\r\n return nodeLists;\r\n }\r\n\r\n function getAlarmData(){\r\n let url = \"/v1/alarmdaycount?day=\" + formatDateTimes(new Date());\r\n // let url = \"/v1/alarmday?day=\" + formatDateTimes(new Date());\r\n http.get(url,{}).then((data) => {\r\n if (data.code === 0) {\r\n if(data.data>0){\r\n !state.alarmSound&&audioEle.play();\r\n }\r\n }\r\n })\r\n }\r\n function getUpDevs(temp){\r\n let storeDevs = temp.filter(x=>x.type===201);//仓库设备\r\n let vehDevs = temp.filter(x=>x.type===203);//车载\r\n let incDevs = temp.filter(x=>x.type===202||x.type===209);//保温箱\r\n let storeDevOptions =[];\r\n let vehDevOptions =[];\r\n let incDevOptions =[];\r\n let storeValues =[];\r\n let incValues =[];\r\n let vehValues =[];\r\n storeDevs.map(m=>{\r\n storeDevOptions.push({label:m.m_name+'——'+m.name,value:m.id});\r\n storeValues.push(m.id);\r\n })\r\n incDevs.map(m=>{\r\n incDevOptions.push({label:m.m_name+'——'+m.name,value:m.id});\r\n incValues.push(m.id);\r\n })\r\n vehDevs.map(m=>{\r\n vehDevOptions.push({label:m.m_name+'——'+m.name,value:m.id});\r\n vehValues.push(m.id);\r\n })\r\n setIncDevOptions(incDevOptions);\r\n setVehDevOptions(vehDevOptions);\r\n setStoreDevOptions(storeDevOptions);\r\n setStoreDevValues(storeValues);\r\n setIncDevValues(incValues);\r\n setVehDevValues(vehValues);\r\n setStoreChecked(storeValues);\r\n setIncChecked(incValues);\r\n setVehChecked(vehValues);\r\n let typeRadioOptions = [];\r\n storeDevs.length>0&& typeRadioOptions.push({label:'库房设备',value:1}); \r\n incDevs.length>0&& typeRadioOptions.push({label:'保温箱设备',value:2}); \r\n vehDevs.length>0&& typeRadioOptions.push({label:'车载设备',value:3}); \r\n setDevTypeOptions(typeRadioOptions);\r\n setSelDevType(typeRadioOptions.length>0&&typeRadioOptions[0].value);\r\n }\r\n useEffect(async () => {\r\n audioEle = document.getElementById('audio');\r\n setIsLoading(true);\r\n let showMode = localStorage.getItem('show') * 1\r\n if(showMode==2){\r\n setShowOff(()=>true);\r\n }\r\n setShow(showMode);\r\n let loginUser;\r\n let userData;\r\n let dOn;\r\n http.get(\"/v1/device\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'device', device: data.data })\r\n if(data.data!==null&&data.data.length>0){\r\n let temp = data.data.filter(x=>x.node!==0&&x.upSn!=='');\r\n getUpDevs(temp);\r\n }\r\n }\r\n })\r\n await http.get(\"/v1/users\", {}).then(data => {\r\n if (data.code === 0) {\r\n if (data.data.length > 0) loginUser = data.data[0];\r\n let oData = data.data.sort((a,b)=>a.name.localeCompare(b.name,\"zh\"))\r\n dispatch({ type: 'systemuser', systemuser: oData })\r\n userData = oData;\r\n var list = [];\r\n userData.filter(x=>x.parent===loginUser.id).map(m=>list.push(m.id+\"\"));\r\n setDefExpend(list);\r\n }\r\n })\r\n http.get(\"/v1/userdistricts\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'user_district', user_district: data.data });\r\n }\r\n })\r\n await http.get(\"/v1/district\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'district', district: data.data });\r\n var dsl = new Array();\r\n let temshowDis = [];\r\n if(Mode==='soc'){\r\n if (loginUser.type === 104) {\r\n data.data.map(item => {\r\n temshowDis.push({id:item.id,showUnLine:showMode==2?true:false});\r\n dsl.push({ id: item.id, name: item.name, user: '', parentUser: loginUser.title });\r\n })\r\n } else {\r\n let userTree = new Array();\r\n \r\n if (loginUser.type === 101) {\r\n findParentuser(0, userData, userTree);\r\n } else{\r\n userTree.push({key:loginUser.id,name:loginUser.name,type:loginUser.type,id:loginUser.id,children:[]});\r\n findParentuser(loginUser.id,userData,userTree);\r\n }\r\n let userlist = new Array();\r\n treeToList(userTree,userlist);\r\n \r\n userlist.map(m=>{\r\n data.data.filter(x=>x.user===m.id).map(item => {\r\n temshowDis.push({id:item.id,showUnLine:showMode==2?true:false});\r\n if (item.user === loginUser.id) {\r\n dsl.push({ id: item.id, name: item.name, user: m.title });\r\n } else {\r\n let parentName = new Array();\r\n getparent(userData, item.user, parentName);\r\n let str = '';\r\n for (let i = parentName.length - 2; i > 0; i--) {\r\n str += parentName[i] + '>'\r\n }\r\n str += parentName[0]\r\n dsl.push({ id: item.id, name: item.name, user: m.title, parentUser: str });\r\n }\r\n })\r\n })\r\n }\r\n }else{\r\n dsl = data.data;\r\n data.data.map(item=>temshowDis.push({id:item.id,showUnLine:showMode==2?true:false}));\r\n }\r\n setShowArea(dsl.slice(0,15));\r\n setShowDef(dsl);\r\n if(temshowDis.length>0){\r\n setShowDis(temshowDis);\r\n }\r\n setIsLoading(false);\r\n }\r\n })\r\n http.get(\"/v1/devicestatus\", {}).then(data => {\r\n if (data.code === 0) {\r\n if (data.data === null) { setCloseInterval(true) }\r\n else {\r\n let d = sortBy(data.data);\r\n setCloseInterval(false);\r\n dispatch_device({ type: 'devicestate', devicestate: d });\r\n if(showMode==2){\r\n setShowDataF(d);\r\n }else{\r\n dOn = d.filter(x=>x.Online);\r\n // dOn.sort((a,b)=>a.MName.localeCompare(b.MName,\"zh\"))\r\n setShowDataF(dOn);\r\n }\r\n }\r\n }\r\n })\r\n http.get(\"/v1/layout\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'hmi', hmi: data.data })\r\n }\r\n })\r\n getAlarmData()\r\n if (window.CefSharp !== undefined) {\r\n window.CefSharp.BindObjectAsync(\"bound\");\r\n let myConf =window.bound.getConfig();\r\n setShowUpData(myConf.isUpDataHeB);\r\n setUpQYID(myConf.upQYID);\r\n setUpKEY(myConf.upKEY);\r\n setUpAuto(myConf.upAuto);\r\n }\r\n if(Mode==='soc'){\r\n if(state.main.type<102){\r\n dispatch({ type: 'setState', setState: 2 });\r\n dispatch({type:'super',super:2})\r\n }else{\r\n dispatch({ type: 'setState', setState: 0 });\r\n dispatch({type:'super',super:0})\r\n }\r\n }\r\n }, [])\r\n\r\n function findParentuser(nop, list, child) {\r\n if (list) {\r\n const nops = list.filter(x => { return x.parent === nop })\r\n if (nops.length === 0) {\r\n return\r\n } else {\r\n for (var j = 0; j < nops.length; j++) {\r\n var u = new Object\r\n u.key = nops[j].id\r\n u.name = nops[j].name\r\n u.type = nops[j].type\r\n u.parent = nops[j].parent\r\n u.id = nops[j].id\r\n u.children = new Array()\r\n child.push(u);\r\n findParentuser(nops[j].id, list, u.children)\r\n }\r\n }\r\n }\r\n }\r\n\r\n function treeToList(tree,list) {\r\n tree.map(t=>{\r\n list.push(t);\r\n t.children!==undefined&&treeToList(t.children,list);\r\n })\r\n }\r\n function getparent(arr, pid, name) {\r\n let p = arr.filter(ar => ar.id === pid);\r\n if(p.length>0){\r\n name.push(p[0].title);\r\n p[0].type !== 101 && getparent(arr, p[0].parent, name);\r\n }\r\n }\r\n // 定时语音报警\r\n useEffect(()=>{\r\n clearInterval(timer);\r\n timer=setInterval(() => {\r\n getAlarmData();\r\n }, 5*60*1000);\r\n return ()=>clearInterval(timer);\r\n },[])\r\n // 定时刷新数据\r\n useEffect(() => {\r\n interval = setInterval(() => {\r\n if (!closeInterval) {\r\n let timeBase = new Date().getTime();\r\n http.get(\"/v1/devicestatus\", {}).then(data => {\r\n if (data.code === 0 && data.data != null) {\r\n // let dataCon = data.data.filter(x=>!x.Online || new Date(x.Status.LastMsgTime).getTime>timeBase || timeBase-new Date(x.Status.LastMsgTime).getTime()<1000*60*4)\r\n let dataCon = data.data;\r\n let smokeDevStoList = JSON.parse(localStorage.getItem('smokeDev'));\r\n if(!smokeDevStoList){\r\n smokeDevStoList=[];\r\n }\r\n let smokeAlarmList = dataCon.filter(x=>x.Type===207&&x.Sensor.Smoke);\r\n if(smokeAlarmList&&smokeAlarmList.length>0){\r\n smokeAlarmList.map(item=>{\r\n if(smokeDevStoList&&!smokeDevStoList.includes(item.Sn)){\r\n smokeDevStoList.push(item.Sn)\r\n if(window.CefSharp!==undefined){\r\n window.CefSharp.BindObjectAsync(\"bound\");\r\n window.bound.socketSendAlarm(''+item.Sn,0);\r\n }\r\n }\r\n })\r\n }\r\n localStorage.setItem(\"smokeDev\", JSON.stringify(smokeDevStoList));\r\n let d = sortBy(dataCon);\r\n // let dOn = d.filter(x=>x.Online);\r\n let showD = [];\r\n dispatch_device({ type: 'devicestate', devicestate: d });\r\n //条件查询设备数据更新\r\n if(showData.length>0){\r\n \r\n showData.map(m=>showD=showD.concat(d.filter(x=>x.ID===m.ID)));\r\n setShowData(showD);\r\n }else{\r\n if(showDis.length>0){\r\n showDis.map(item=>item.showUnLine?showD=showD.concat(d.filter(x=>x.District===item.id)):showD=showD.concat(d.filter(x=>x.District===item.id&&x.Online)))\r\n // showD.sort((a,b)=>a.MName.localeCompare(b.MName,\"zh\"))\r\n setShowDataF(showD);\r\n }else{\r\n setShowDataF([])\r\n }\r\n }\r\n }\r\n })\r\n } else {\r\n clearInterval(interval)\r\n }\r\n }, 10000)\r\n return () => clearInterval(interval)\r\n }, [closeInterval,showDis,showData,showOff])\r\n\r\n function autoRefresh(checked) {\r\n if (checked) {\r\n setCloseInterval(false)\r\n } else {\r\n setCloseInterval(true)\r\n }\r\n }\r\n\r\n function getDevicestate() {\r\n http.get(\"/v1/devicestatus\", {}).then(data => {\r\n if (data.code === 0) {\r\n if(data.data !== null){\r\n let d = sortBy(data.data);\r\n let showD = [];\r\n dispatch_device({ type: 'devicestate', devicestate: d});\r\n if(showDis.length>0){\r\n showDis.map(item=>item.showUnLine?showD=showD.concat(d.filter(x=>x.District===item.id)):showD=showD.concat(d.filter(x=>x.District===item.id&&x.Online)));\r\n setShowDataF(showD);\r\n }\r\n } \r\n }\r\n })\r\n }\r\n\r\n function treeOnChange(e) {\r\n const { value } = e.target;\r\n let temp= state.systemuser.list.filter(item=>item.name.indexOf(value)>-1);\r\n if(temp.length>0){\r\n let eKey =[];\r\n temp.map(item=>eKey.push(item.id))\r\n setExpendKey(eKey);\r\n setAutoExpandParent(true)\r\n }\r\n const keys = document.querySelectorAll('.draggable-tree span[title]');\r\n for (var i = 0; i < keys.length; i++) {\r\n if (value !== '') {\r\n if (keys[i].title.indexOf(value) > -1) {\r\n keys[i].style.color = '#f50';\r\n } else {\r\n keys[i].style.color = '#262626';\r\n }\r\n } else { keys[i].style.color = '#262626'; }\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n }\r\n {/* 左侧树导航结束 */}\r\n\r\n {/* 右侧显示内容开始 */}\r\n
\r\n {/* 右侧显示内容头部 */}\r\n
\r\n
\r\n\r\n {state.main.type === 104 ? null : \r\n\r\n {/* */}\r\n \r\n {\r\n setIsLoading(true);\r\n // setShowDataValue(value);\r\n if (value == \"\") {\r\n return (\r\n setShowArea(showArea),\r\n setShowData([]),\r\n setIsLoading(false)\r\n )\r\n }\r\n let arr = state_device.devicestate.filter(item => { return (item.Sn + '').indexOf(value) > -1 | item.Name.indexOf(value) > -1 | (item.Node + '').indexOf(value) > -1 });\r\n if (arr.length == 0) {\r\n message.error('没有该条件设备信息!!');\r\n setShowArea(showArea);\r\n setShowData([]);\r\n setIsLoading(false);\r\n } else {\r\n setShowData(arr);\r\n var dsl = new Array();\r\n state.district.map(m => {\r\n arr.filter((ar, index, self) =>\r\n index === self.findIndex(it => it.District === ar.District)).map(ar => {\r\n if (ar.District === m.id) {\r\n let parentName = new Array();\r\n getparent(state.systemuser.list, m.user, parentName);\r\n let str = '';\r\n for (let i = parentName.length - 1; i > 0; i--) {\r\n str += parentName[i] + '>'\r\n }\r\n str += parentName[0]\r\n dsl.push({ id: m.id, name: m.name, user: m.user_name, parentUser: str });\r\n }\r\n })\r\n })\r\n setShowArea(dsl);\r\n setIsLoading(false);\r\n }\r\n\r\n }} style={{ width: 200, marginLeft: 20 }} />\r\n \r\n \r\n
\r\n {\r\n showUpData&&\r\n \r\n }\r\n {/* */}\r\n
\r\n \r\n
\r\n
\r\n {/* 整体隐藏离线设备开关 */}\r\n {\r\n if(e.target.checked){\r\n setShowOff(true);\r\n setShowDis(\r\n showDis.map(item=>({\r\n ...item,\r\n showUnLine:true\r\n })) \r\n )\r\n setShowDataF(state_device.devicestate)\r\n }else{\r\n setShowOff(false);\r\n setShowDis(\r\n showDis.map(item=>({\r\n ...item,\r\n showUnLine:false\r\n }))\r\n )\r\n setShowDataF(state_device.devicestate.filter(x=>x.Online))\r\n }\r\n }} disabled={show==2}>\r\n 显示全部设备\r\n \r\n
\r\n
\r\n 自动刷新:\r\n
\r\n\r\n
\r\n {/* 右侧显示内容主体 */}\r\n {state_device.devicestate.length > 0 && \r\n
{\r\n // 没有查询内容\r\n if(showData.length===0){\r\n showDiv = document.getElementById('showD');\r\n showDivH =showDiv.offsetHeight;\r\n \r\n let showDivHB = showDiv.scrollHeight-showDivH-showDiv.scrollTop;\r\n let dire= showDiv.scrollTop-beforeScroll;//方向 向上滚动还是向下滚动\r\n //滚动加载\r\n if(selKey.length===0&&showDivHB<60&&dire>0){\r\n if(showArea.length<=showDef.length-10){\r\n setShowArea(showDef.slice(0,showArea.length+10)); \r\n }if(showArea.length>showDef.length-10&&showArea.length0){\r\n if(showArea.length<=showTreeDis.length-10){\r\n setShowArea(showTreeDis.slice(0,showArea.length+10)); \r\n }if(showArea.length>showTreeDis.length-10&&showArea.length\r\n \r\n { \r\n showArea.map(m => {\r\n return
\r\n
\r\n
\r\n {Mode==='soc'&& m.user !== '' &&{m.parentUser}      }\r\n 区域 :   {m.name}       \r\n 测点数量 :   {state_device.devicestate.filter(x => { return x.District === m.id &&x.Node!==0}).length}       \r\n 在线 :   {state_device.devicestate.filter(x => { return x.District === m.id&&x.Online&&x.Node!==0 }).length}\r\n
\r\n
\r\n {/* */}\r\n {\r\n state.hmi.findIndex(x=>x.district===m.id)!==-1&&\r\n \r\n \r\n \r\n }\r\n {/* */}\r\n
{\r\n let temp = showDis;\r\n if(showDis.filter(x=>x.id === m.id).length===0){\r\n temp.push({id:m.id,showUnLine:showOff?true:false});\r\n setShowDataF(showDataF.concat(state_device.devicestate.filter(x=>x.District===m.id&&x.Online)));\r\n }else{\r\n temp.splice(temp.findIndex(x=>x.id===m.id),1);\r\n setShowDataF(showDataF.filter(x=>x.District!==m.id));\r\n }\r\n setShowDis(temp);\r\n\r\n }}>\r\n {showDis.filter(x=>x.id === m.id).length===0?:}\r\n
\r\n x.id===m.id).length===0}\r\n checked={showDis.filter(x=>x.id===m.id).length>0&&showDis.filter(x=>x.id===m.id)[0].showUnLine} \r\n onChange={e=>{\r\n let temp=[]\r\n if(e.target.checked){\r\n showDis.map(item=>{\r\n item.id===m.id?\r\n temp.push({id:item.id,showUnLine:true})\r\n :\r\n temp.push({id:item.id,showUnLine:item.showUnLine})\r\n })\r\n setShowDataF(showDataF.concat(state_device.devicestate.filter(x=>x.District===m.id&&!x.Online)));\r\n }\r\n else{\r\n showDis.map(item=>{\r\n item.id===m.id?\r\n temp.push({id:item.id,showUnLine:false})\r\n :\r\n temp.push({id:item.id,showUnLine:item.showUnLine})\r\n })\r\n setShowDataF(showDataF.filter(x=>(x.District===m.id&&x.Online)||x.District!==m.id));\r\n }\r\n setShowDis(temp)\r\n }}>\r\n 显示全部\r\n \r\n
\r\n
\r\n
\r\n {\r\n showData.length > 0 ? \r\n showData.filter(x => { return x.District === m.id }).map((item,index)=>{\r\n if(item.Type===209&&item.ExSensor&&item.ExSensor.param&&item.ExSensor.param.length>0){\r\n return ( {\r\n setCloseInterval(v)\r\n }} />)\r\n }else{\r\n return ( {\r\n setCloseInterval(v)\r\n }} />)\r\n }\r\n \r\n })\r\n :\r\n showDataF.filter(x => { return x.District === m.id }).sort((a,b)=>{return a.MName.localeCompare(b.MName,\"zh\")}).map((item,index) =>{\r\n if(item.Type===209&&item.ExSensor&&item.ExSensor.param&&item.ExSensor.param.length>0){\r\n return ( {\r\n setCloseInterval(v)\r\n }} />)\r\n }else{\r\n return ( {\r\n setCloseInterval(v)\r\n }} />)\r\n }\r\n })\r\n }\r\n
\r\n
\r\n })\r\n }\r\n\r\n
\r\n
}\r\n
\r\n setPlaneVis(false)}\r\n onCancel={() => setPlaneVis(false)}\r\n width={document.getElementById('DataView')?document.getElementById('DataView').width:1200}\r\n footer={null}\r\n // mask={false}\r\n >\r\n \r\n \r\n {\r\n setShowUpDataModal(false);\r\n setStartTime('');\r\n setEndTime('');\r\n }}\r\n width={900}\r\n destroyOnClose\r\n footer={null}\r\n >\r\n \r\n {\r\n if (window.CefSharp !== undefined) {\r\n window.CefSharp.BindObjectAsync(\"bound\");\r\n window.bound.setUpAuto(e.target.checked);\r\n setUpAuto(e.target.checked);\r\n }\r\n }}>自动上传\r\n
\r\n }\r\n onChange={activeKey=>{\r\n if(\"1\"===activeKey){\r\n getUpDevs(state.device.filter(x=>x.node!==0&&x.upSn!==''));\r\n }\r\n }}>\r\n \r\n
\r\n
\r\n
\r\n {\r\n setSelDevType(e.target.value);\r\n }} value={selDevType} options={devTypeOptions} >\r\n
\r\n
\r\n {\r\n if(dates){\r\n if(dates[0] === null){\r\n return current && current > moment().endOf('day')||(dates[1] && dates[1].diff(current, 'days') > 1);\r\n }else{\r\n const tooLate = dates[0] && current.diff(dates[0], 'days') > 2;\r\n const tooEarly = dates[1] && dates[1].diff(current, 'days') > 1;\r\n return current && current > moment().endOf('day') || tooLate||tooEarly;\r\n }\r\n \r\n }else {\r\n return current && current > moment().endOf('day')\r\n }\r\n }}\r\n onCalendarChange = {val=>{\r\n setDates(val);\r\n }}\r\n onChange={(dates, dateStrings) => {\r\n if(dates===null){\r\n setStartTime('');\r\n setEndTime('');\r\n }else{\r\n setStartTime(dateStrings[0]+':00');\r\n setEndTime(dateStrings[1]+':00');\r\n } \r\n }}\r\n onOpenChange={open=>{\r\n if(open){\r\n setDates([]);\r\n clearInterval(dateTimer);\r\n dateTimer=setInterval(() => {\r\n let elem= document.querySelector('.ant-picker-input input');\r\n let elems= document.querySelectorAll('.ant-picker-input input:last-child');\r\n let elem1=elems.length>1 &&elems[1];\r\n let arrs=[];\r\n arrs.push((elem&&elem.value!=='')?moment(elem.value,'YYYY-MM-DD HH:mm'):null);\r\n arrs.push( (elem1&&elem1.value!=='')?moment (elem1.value,'YYYY-MM-DD HH:mm'):null);\r\n setDates(arrs);\r\n }, 1000);\r\n }else{\r\n clearInterval(dateTimer)\r\n setDates([]);\r\n }\r\n }}\r\n />\r\n
\r\n \r\n
\r\n
\r\n
\r\n {\r\n selDevType==1?//监控主机\r\n
\r\n
\r\n \r\n
\r\n {\r\n setStoreChecked(e.target.checked ? storeDevValues:[])\r\n setStoreIndeterminate(false);\r\n setStoreCheckAll(e.target.checked);\r\n }}>\r\n 全选\r\n \r\n {\r\n setStoreChecked(list)\r\n setStoreIndeterminate(!!list.length && list.length < storeDevOptions.length);\r\n setStoreCheckAll(list.length === storeDevOptions.length);\r\n }}/>\r\n
\r\n : selDevType==2?//保温箱\r\n
\r\n
\r\n \r\n
\r\n {\r\n setIncChecked(e.target.checked ? incDevValues:[])\r\n setIncIndeterminate(false);\r\n setIncCheckAll(e.target.checked);\r\n }}>\r\n 全选\r\n \r\n {\r\n setIncChecked(list)\r\n setIncIndeterminate(!!list.length && list.length < incDevOptions.length);\r\n setIncCheckAll(list.length === incDevOptions.length);\r\n }}/>\r\n
\r\n ://车载\r\n
\r\n
\r\n \r\n
\r\n {\r\n setVehChecked(e.target.checked ? vehDevValues:[])\r\n setVehIndeterminate(false);\r\n setVehCheckAll(e.target.checked);\r\n }}>\r\n 全选\r\n \r\n {\r\n setVehChecked(list)\r\n setVehIndeterminate(!!list.length && list.length < vehDevOptions.length);\r\n setVehCheckAll(list.length === vehDevOptions.length);\r\n }}/>\r\n
\r\n }\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Data","import React, { useState, useContext, useEffect } from 'react'\r\nimport { Avatar, DatePicker, Select, Divider, Button } from 'antd'\r\nimport { StateContext, TimeFormatSeconds } from '../../../state';\r\nimport http from '../../../../../utils/server'\r\nimport { DownloadOutlined } from '@ant-design/icons';\r\nimport \"./index.less\"\r\n\r\nconst { Option } = Select;\r\n\r\nfunction BackUP() {\r\n const { state, dispatch } = useContext(StateContext)\r\n const [backupfile, setBackUPFile] = useState([]);\r\n const [showlist, setShowlist] = useState([]);\r\n\r\n useEffect(() => {\r\n // http.get(\"/v1/district\", {}).then(data => {\r\n // if (data.code === 0) {\r\n // dispatch({ type: 'district', district: data.data })\r\n // }\r\n // })\r\n http.get(\"/v1/users\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'systemuser', systemuser: data.data.sort((a,b)=>a.name.localeCompare(b.name,'zh')) })\r\n }\r\n })\r\n http.get(\"/v1/getbackupfile\", {}).then(data => {\r\n if (data.code === 0) {\r\n var list = new Array();\r\n data.data && data.data.map(item => {\r\n if (list.filter(x => { return x.date === item.date }).length === 0) {\r\n var s = new Array();\r\n s.push(item.district);\r\n var a = new Object();\r\n a['date'] = item.date;\r\n a['districts'] = s;\r\n list.push(a);\r\n } else {\r\n let s = list.filter(x => { return x.date === item.date })[0];\r\n s.districts.push(item.district);\r\n }\r\n })\r\n setShowlist(list);\r\n setBackUPFile(data.data);\r\n }\r\n })\r\n }, []);\r\n\r\n return (\r\n <>\r\n
\r\n {\r\n showlist.map((item,index) => (\r\n
\r\n \r\n 日期:{item.date}\r\n \r\n
\r\n {item.districts.map(d => (\r\n
\r\n
\r\n
\r\n
\r\n 用户:\r\n {\r\n state.systemuser.list.filter(x => { return x.id === d }).length > 0 && state.systemuser.list.filter(x => { return x.id === d })[0].name\r\n }\r\n
\r\n {/*
备份日期:{item.date}
*/}\r\n
\r\n \r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n ))\r\n }\r\n\r\n
\r\n \r\n\r\n )\r\n}\r\n\r\nexport default BackUP","let sha1 = {\r\n sha1: '',\r\n}\r\n// function encodeUTF8(s){\r\n// let i, r = [], c, x;\r\n// for (i = 0; i < s.length; i++){\r\n// c = s.charCodeAt(i);\r\n// if(c < 0x80) r.push(c);\r\n// else if(c < 0x800) r.push(0xC0 + (c >> 6 & 0x1F), 0x80 + (c & 0x3F));\r\n// else{\r\n// x= c ^ 0xD800;\r\n// if(x >> 10 == 0){\r\n// c = (x << 10) + (s.charCodeAt(++i) ^ 0xDC00) + 0x10000;\r\n// r.push(0xF0 + (c >> 18 & 0x7), 0x80 + ( c >> 12 & 0x3F));\r\n// }else{\r\n// r.push(0xE0 + (c >> 12 & 0xF));\r\n// }\r\n// r.push(0x80 + (c >> 6 & 0x3F), 0x80 + (c & 0x3F));\r\n// }\r\n// }\r\n// return r;\r\n// }\r\n// sha1.sha1 = function sha1(s) {\r\n// var data = new Uint8Array(encodeUTF8(s))\r\n// var i, j, t;\r\n// var l = ((data.length + 8) >>> 6 << 4) + 16;\r\n// s = new Uint8Array(l << 2);\r\n// s.set(new Uint8Array(data.buffer)), s = new Uint32Array(s.buffer);\r\n// for (t = new DataView(s.buffer), i = 0; i < l; i++)s[i] = t.getUint32(i << 2);\r\n// s[data.length >> 2] |= 0x80 << (24 - (data.length & 3) * 8);\r\n// s[l - 1] = data.length << 3;\r\n// var w = [], f = [\r\n// function () { return m[1] & m[2] | ~m[1] & m[3]; },\r\n// function () { return m[1] ^ m[2] ^ m[3]; },\r\n// function () { return m[1] & m[2] | m[1] & m[3] | m[2] & m[3]; },\r\n// function () { return m[1] ^ m[2] ^ m[3]; }\r\n// ], rol = function (n, c) { return n << c | n >>> (32 - c); },\r\n// k = [1518500249, 1859775393, -1894007588, -899497514],\r\n// m = [1732584193, -271733879, null, null, -1009589776];\r\n// m[2] = ~m[0], m[3] = ~m[1];\r\n// for (i = 0; i < s.length; i += 16) {\r\n// var o = m.slice(0);\r\n// for (j = 0; j < 80; j++)\r\n// w[j] = j < 16 ? s[i + j] : rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1),\r\n// t = rol(m[0], 5) + f[j / 20 | 0]() + m[4] + w[j] + k[j / 20 | 0] | 0,\r\n// m[1] = rol(m[1], 30), m.pop(), m.unshift(t);\r\n// for (j = 0; j < 5; j++)m[j] = m[j] + o[j] | 0;\r\n// };\r\n// t = new DataView(new Uint32Array(m).buffer);\r\n// for (var i = 0; i < 5; i++)m[i] = t.getUint32(i << 2);\r\n \r\n// var hex = Array.prototype.map.call(new Uint8Array(new Uint32Array(m).buffer), function (e) {\r\n// return (e < 16 ? \"0\" : \"\") + e.toString(16);\r\n// }).join(\"\");\r\n// return hex; \r\n// }\r\n\r\nvar hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */\r\n// var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */\r\n/*\r\n *\r\n * The main function to calculate message digest\r\n *\r\n */\r\nsha1.sha1 = function hex_sha1(s) {\r\n\r\n return binb2hex(core_sha1(AlignSHA1(s)));\r\n\r\n}\r\n\r\n\r\n/*\r\n *\r\n * Calculate the SHA-1 of an array of big-endian words, and a bit length\r\n *\r\n */\r\nfunction core_sha1(blockArray) {\r\n\r\n var x = blockArray; // append padding\r\n var w = Array(80);\r\n\r\n var a = 1732584193;\r\n\r\n var b = -271733879;\r\n\r\n var c = -1732584194;\r\n\r\n var d = 271733878;\r\n\r\n var e = -1009589776;\r\n\r\n for (var i = 0; i < x.length; i += 16) // 每次处理512位 16*32\r\n {\r\n\r\n var olda = a;\r\n\r\n var oldb = b;\r\n\r\n var oldc = c;\r\n\r\n var oldd = d;\r\n\r\n var olde = e;\r\n\r\n for (var j = 0; j < 80; j++) // 对每个512位进行80步操作\r\n {\r\n\r\n if (j < 16)\r\n w[j] = x[i + j];\r\n\r\n else\r\n w[j] = rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1);\r\n\r\n var t = safe_add(safe_add(rol(a, 5), sha1_ft(j, b, c, d)), safe_add(safe_add(e, w[j]), sha1_kt(j)));\r\n\r\n e = d;\r\n\r\n d = c;\r\n\r\n c = rol(b, 30);\r\n\r\n b = a;\r\n\r\n a = t;\r\n\r\n }\r\n\r\n a = safe_add(a, olda);\r\n\r\n b = safe_add(b, oldb);\r\n\r\n c = safe_add(c, oldc);\r\n\r\n d = safe_add(d, oldd);\r\n\r\n e = safe_add(e, olde);\r\n\r\n }\r\n\r\n return new Array(a, b, c, d, e);\r\n\r\n}\r\n\r\n/*\r\n *\r\n * Perform the appropriate triplet combination function for the current\r\n * iteration\r\n *\r\n * 返回对应F函数的值\r\n *\r\n */\r\nfunction sha1_ft(t, b, c, d) {\r\n\r\n if (t < 20)\r\n return (b & c) | ((~b) & d);\r\n\r\n if (t < 40)\r\n return b ^ c ^ d;\r\n\r\n if (t < 60)\r\n return (b & c) | (b & d) | (c & d);\r\n\r\n return b ^ c ^ d; // t<80\r\n}\r\n\r\n/*\r\n *\r\n * Determine the appropriate additive constant for the current iteration\r\n *\r\n * 返回对应的Kt值\r\n *\r\n */\r\nfunction sha1_kt(t) {\r\n\r\n return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 : (t < 60) ? -1894007588 : -899497514;\r\n\r\n}\r\n\r\n/*\r\n *\r\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\r\n *\r\n * to work around bugs in some JS interpreters.\r\n *\r\n * 将32位数拆成高16位和低16位分别进行相加,从而实现 MOD 2^32 的加法\r\n *\r\n */\r\nfunction safe_add(x, y) {\r\n\r\n var lsw = (x & 0xFFFF) + (y & 0xFFFF);\r\n\r\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\r\n\r\n return (msw << 16) | (lsw & 0xFFFF);\r\n\r\n}\r\n\r\n/*\r\n *\r\n * Bitwise rotate a 32-bit number to the left.\r\n *\r\n * 32位二进制数循环左移\r\n *\r\n */\r\nfunction rol(num, cnt) {\r\n\r\n return (num << cnt) | (num >>> (32 - cnt));\r\n\r\n}\r\n\r\n/*\r\n *\r\n * The standard SHA1 needs the input string to fit into a block\r\n *\r\n * This function align the input string to meet the requirement\r\n *\r\n */\r\nfunction AlignSHA1(str) {\r\n\r\n var nblk = ((str.length + 8) >> 6) + 1,\r\n blks = new Array(nblk * 16);\r\n\r\n for (var i = 0; i < nblk * 16; i++)\r\n blks[i] = 0;\r\n\r\n for (i = 0; i < str.length; i++)\r\n\r\n blks[i >> 2] |= str.charCodeAt(i) << (24 - (i & 3) * 8);\r\n\r\n blks[i >> 2] |= 0x80 << (24 - (i & 3) * 8);\r\n\r\n blks[nblk * 16 - 1] = str.length * 8;\r\n\r\n return blks;\r\n\r\n}\r\n\r\n/*\r\n *\r\n * Convert an array of big-endian words to a hex string.\r\n *\r\n */\r\nfunction binb2hex(binarray) {\r\n\r\n var hex_tab = hexcase ? \"0123456789ABCDEF\" : \"0123456789abcdef\";\r\n\r\n var str = \"\";\r\n\r\n for (var i = 0; i < binarray.length * 4; i++) {\r\n\r\n str += hex_tab.charAt((binarray[i >> 2] >> ((3 - i % 4) * 8 + 4)) & 0xF) +\r\n\r\n hex_tab.charAt((binarray[i >> 2] >> ((3 - i % 4) * 8)) & 0xF);\r\n\r\n }\r\n\r\n return str;\r\n\r\n}\r\nexport default sha1","import React, { createContext, useContext, useEffect, useState, useReducer } from 'react'\r\nimport { Table, Button, Input, Select, Modal, InputNumber , Form, Checkbox, DatePicker, Badge, Space,} from 'antd'\r\nimport { StateContext } from '../../../state';\r\nimport http from '../../../../../utils/server'\r\nimport { SearchOutlined,ExclamationCircleOutlined } from '@ant-design/icons';\r\nimport { Mode } from '../../../../../App';\r\nimport moment from 'moment';\r\nimport Draggable from 'react-draggable';\r\nimport './index.less'\r\nimport sha1 from '../../../../../utils/sha1';\r\nvar changeDev = false;\r\nconst AreaContext = createContext();\r\nconst DeviceContext = createContext();\r\n\r\nfunction getSimByIccid(iccid,simToken) {\r\n let r ={};\r\n fetch( `http://hebeijiuchen.com/sim/card/all/query.do?queryString=${iccid}`, { //物联网卡查询 接口请求地址\r\n method: 'get',\r\n headers: new Headers({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `${simToken}`\r\n })\r\n })\r\n .then((resp) => {\r\n resp.json().then(res=>{\r\n if(res.list.length==0){//河北卡查询不到\r\n let method = 'fc.function.card.info';\r\n let appKey = 'RL7i4T0Q9024bI7Z';\r\n let t = Math.floor(new Date().getTime()/1000)\r\n let sign = callSign(appKey,method,iccid,t);\r\n fetch(`https://api.quectel.com/openapi/router`,{\r\n method:'post',\r\n body:`appKey=${appKey}&iccid=${iccid}&method=${method}&sign=${sign}&t=${t}`,\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded',\r\n }\r\n }).then(resp=>{\r\n resp.json().then(res=>{\r\n r.iccid_expire =res.expiryDate!==''?res.expiryDate:'';\r\n r.sim = res.msisdn;\r\n })\r\n })\r\n \r\n }else{\r\n r.iccid_expire =res.list[0].expireTime!==''?res.list[0].expireTime:'';\r\n r.sim =''+ res.list[0].mobile;\r\n }\r\n })\r\n })\r\n return r\r\n}\r\n\r\nfunction callSign (appKey,method,s,t){\r\n let Secret = 'RA9026m2';\r\n let concat =`${Secret}appKey${appKey}`;\r\n if(s.length===13){\r\n let msisdn = s;\r\n concat +=`method${method}msisdn${msisdn}t${t}${Secret}`;\r\n }else{\r\n let iccid = s;\r\n concat +=`iccid${iccid}method${method}t${t}${Secret}`\r\n }\r\n let r = sha1.sha1(concat);\r\n return r\r\n}\r\n\r\nfunction formatDateTimes(inputTime) {\r\n var date = new Date(inputTime);\r\n var y = date.getFullYear();\r\n var m = date.getMonth() + 1;\r\n m = m < 10 ? ('0' + m) : m;\r\n var d = date.getDate();\r\n d = d < 10 ? ('0' + d) : d;\r\n var h = date.getHours();\r\n h = h < 10 ? ('0' + h) : h;\r\n var minute = date.getMinutes();\r\n var second = date.getSeconds();\r\n minute = minute < 10 ? ('0' + minute) : minute;\r\n second = second < 10 ? ('0' + second) : second;\r\n return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;\r\n };\r\nfunction DeviceNew() {\r\n const { actDevice, form, onfinish } = useContext(DeviceContext)\r\n const { state, dispatch } = useContext(StateContext)\r\n const [lockMName, setLockMName] = useState(false)\r\n const [master, setMaster] = useState(0)\r\n const [nodeNum, setNodeNum] = useState(1)\r\n const [nodeStatus1, setNodeStatus1] = useState(false)\r\n const [nodeStatus2, setNodeStatus2] = useState(false)\r\n const formRef = React.createRef();\r\n const [simToken,setSimToken] = useState('')\r\n const formItemLayout = {\r\n labelCol: {\r\n xs: { span: 24 },\r\n sm: { span: 4 },\r\n },\r\n wrapperCol: {\r\n xs: { span: 24 },\r\n sm: { span: 20 },\r\n },\r\n };\r\n useEffect(() => {\r\n http.get(\"/v1/devicetype\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'devicetype', devicetype: data.data });\r\n }\r\n })\r\n form.setFieldsValue({ ...actDevice, num: 1, humi: true, status: false, expire: moment(actDevice.expire, 'YYYY-MM-DD 00:00:00'), time: moment(actDevice.time, 'YYYY-MM-DD 00:00:00'),\r\n iccid_expire:moment(actDevice.iccid_expire, 'YYYY-MM-DD'),\r\n temp_alarm_high:50,temp_alarm_low:-50,humi_alarm_high:100,humi_alarm_low:0,power_alarm:true\r\n })\r\n fetch(' http://www.hebeijiuchen.com/sim/user/login.do?username=17734552912&password=123456', { //物联网卡登录 接口请求地址\r\n method: 'get',\r\n })\r\n .then((resp) => {\r\n resp.json().then(res=>{\r\n setSimToken(res.token)\r\n })\r\n }).catch((error) => {\r\n console.log(error);\r\n });\r\n }, [])\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n {\r\n const s = state.device.filter(x => { return x.sn === Number(e.target.value)&&x.node!==0 })\r\n if (s.length > 0) {\r\n setMaster(s.length);\r\n setLockMName(true);\r\n formRef.current.setFieldsValue({\r\n m_name: s[0].m_name,\r\n sim: s[0].sim,\r\n name:\"测点\"+(s.length+1),\r\n node:s.length+1\r\n })\r\n } else {\r\n setLockMName(false);\r\n }\r\n }}\r\n rules={[{ required: true, message: '输入主机编号' }]}>\r\n \r\n \r\n
\r\n\r\n {\r\n Mode === \"local\" ?\r\n
\r\n \r\n \r\n \r\n \r\n 选择\r\n \r\n
:\r\n \r\n \r\n \r\n }\r\n
\r\n \r\n 1} />\r\n \r\n \r\n {\r\n // if(e.target.checked){\r\n // form.setFieldsValue({node:0,num:1});\r\n // setNodeNum(1);\r\n // setNodeStatus1(true);\r\n // }else{\r\n // setNodeStatus1(false);\r\n // !nodeStatus2&&form.setFieldsValue({node:master+1,name:'测点'+(master+1)});\r\n // }\r\n // }}\r\n >\r\n 开启\r\n \r\n \r\n \r\n {\r\n // if(e.target.checked){\r\n // form.setFieldsValue({node:0,num:1});\r\n // setNodeNum(1);\r\n // setNodeStatus2(true);\r\n // }else{\r\n // setNodeStatus2(false);\r\n // !nodeStatus1&&form.setFieldsValue({node:master+1,name:'测点'+(master+1)});\r\n // }\r\n // }}\r\n >\r\n 开启\r\n \r\n \r\n
\r\n
\r\n \r\n 1 || nodeStatus1 || nodeStatus2} onChange={e=>\r\n e.target.value!==''&&e.target.value*1===0&&form.setFieldsValue({power_alarm:true})\r\n }/>\r\n \r\n \r\n {\r\n setNodeNum(value)\r\n }} />\r\n \r\n \r\n {\r\n master\r\n }\r\n \r\n
\r\n
\r\n \r\n \r\n {\r\n [{ id: 0, name: 'GPS定位' }, { id: 1, name: 'LBS定位' }, { id: 2, name: '无定位' }].map(item => (\r\n {item.name}\r\n ))\r\n }\r\n \r\n \r\n \r\n \r\n \r\n {state.main.type<102&&}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n state.main.type<103&&\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n }\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n 隐藏\r\n \r\n {\r\n state.main.type< 103 &&\r\n \r\n current&¤t > moment().endOf('day')}/>\r\n \r\n }\r\n
\r\n
\r\n \r\n 开启\r\n \r\n\r\n {\r\n state.main.type < 103 &&Mode==='soc'&&\r\n \r\n 100}/>\r\n \r\n }\r\n
\r\n\r\n \r\n )\r\n}\r\n\r\nfunction DeviceFix() {\r\n const { actDevice, form, onfinish } = useContext(DeviceContext)\r\n const { state } = useContext(StateContext)\r\n const formRef = React.createRef();\r\n const [simToken,setSimToken] = useState('')\r\n const [simStatus,setSimStatus] = useState('')\r\n const formItemLayout = {\r\n labelCol: {\r\n xs: { span: 24 },\r\n sm: { span: 4 },\r\n },\r\n wrapperCol: {\r\n xs: { span: 24 },\r\n sm: { span: 20 },\r\n },\r\n };\r\n useEffect(() => {\r\n form.setFieldsValue({\r\n ...actDevice,\r\n humi: actDevice.humi === 0 ? false : true,\r\n door_alarm: actDevice.door_alarm === 0 ? false : true,\r\n power_alarm: actDevice.power_alarm === 0 ? false : true,\r\n hide: actDevice.hide === 0 ? false : true,\r\n expire: moment(actDevice.expire, 'YYYY-MM-DD 00:00:00'), time: moment(actDevice.time, 'YYYY-MM-DD 00:00:00'), \r\n iccid_expire:moment(actDevice.iccid_expire, 'YYYY-MM-DD')\r\n })\r\n fetch(' http://www.hebeijiuchen.com/sim/user/login.do?username=17734552912&password=123456', { //物联网卡登录 接口请求地址\r\n method: 'get',\r\n })\r\n .then((resp) => {\r\n resp.json().then(res=>{\r\n setSimToken(res.token)\r\n })\r\n }).catch((error) => {\r\n console.log(error);\r\n });\r\n }, [])\r\n\r\n return (\r\n \r\n\r\n
\r\n \r\n \r\n {\r\n state.devicetype.map(item => (\r\n {item.value}\r\n ))\r\n }\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n 开启\r\n \r\n \r\n \r\n \r\n 开启\r\n \r\n \r\n {simStatus}\r\n
\r\n
\r\n \r\n \r\n {\r\n [{ id: 0, name: 'GPS定位' }, { id: 1, name: 'LBS定位' }, { id: 2, name: '无定位' }].map(item => (\r\n {item.name}\r\n ))\r\n }\r\n \r\n \r\n \r\n \r\n \r\n {Mode==='soc'&& state.main.type===100&&\r\n }\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {\r\n Mode === \"soc\"&&state.main.type<102&&\r\n
\r\n \r\n 100}/>\r\n \r\n
\r\n \r\n }\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n 隐藏\r\n \r\n {\r\n state.main.type < 103 &&\r\n \r\n 101}/>\r\n \r\n }\r\n
\r\n
\r\n \r\n 开启\r\n \r\n {\r\n state.main.type < 103 &&\r\n \r\n 100}/>\r\n \r\n }\r\n
\r\n \r\n )\r\n}\r\n\r\nfunction DeviceManage() {\r\n const { actArea} = useContext(AreaContext)\r\n const [form] = Form.useForm()\r\n const { state, dispatch } = useContext(StateContext)\r\n const [actDevice, dispatchDevice] = useReducer((state, action) => {\r\n if (action.type === 'update') {\r\n return action.device\r\n } else if (action.type === 'clear') {\r\n let now = new Date();\r\n now.setFullYear(now.getFullYear() + 1);\r\n return {\r\n name: '测点',//测点名称\r\n type: 201,//主机类型\r\n sn: '',\r\n sim: '',\r\n m_name: '',\r\n node: 1,\r\n district: '',\r\n humi: 0,\r\n hide: 0,\r\n door_alarm: 0,\r\n power_alarm: 0,\r\n location: 2,\r\n status: 0,\r\n expire: now,\r\n time: new Date(),\r\n iccid_expire:new Date('2000-01-01'),\r\n iccid:''\r\n }\r\n }\r\n return state\r\n }, []);\r\n const [showNewModel, setShowNewModel] = useState(false)\r\n const [showFixModel, setShowFixModel] = useState(false)\r\n const [tableData, setTableData] = useState([])\r\n const [modalBounds,setModalBounds] = useState({left: 0, top: 0, bottom: 0, right: 0 });//对话框移动坐标\r\n const [modalMoveDisabled, setModalMoveDisabled] = useState(true);//对话框拖动功能关闭\r\n const draggleRef = React.createRef();//对话框移动\r\n const nodeSerch = React.createRef();\r\n const devSerch = React.createRef();\r\n const simSerch = React.createRef();\r\n useEffect(() => {\r\n http.get(\"/v1/device\", {}).then(data => {\r\n if (data.code === 0) {\r\n setTableData(data.data.filter(x=>x.district===actArea.id).sort((a,b)=>a.sn-b.sn));\r\n dispatch({ type: 'device', device: data.data.sort((a,b)=>a.sn-b.sn) });\r\n }\r\n })\r\n http.get(\"/v1/devicetype\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'devicetype', devicetype: data.data });\r\n }\r\n })\r\n }, [])\r\n\r\n // 对话框移动方法\r\n const onStart = (event, uiData) => {\r\n const { clientWidth, clientHeight } = window.document.documentElement;\r\n const targetRect = draggleRef.current?.getBoundingClientRect();\r\n if (!targetRect) return;\r\n setModalBounds({\r\n left: -targetRect.left + uiData.x,\r\n right: clientWidth - (targetRect.right - uiData.x),\r\n top: -targetRect.top + uiData.y,\r\n bottom: clientHeight - (targetRect.bottom - uiData.y),\r\n });\r\n };\r\n const columns = [\r\n {\r\n title: '测点名称',\r\n dataIndex: 'name',\r\n // key: 'id',\r\n align: 'center',\r\n render: (value, record) => (\r\n
\r\n
\r\n {\r\n record.name\r\n }\r\n
\r\n
\r\n {\r\n 'ID:' + ((record.node * 1 < 10) ? '0' + record.node : record.node)\r\n }\r\n
\r\n
\r\n ),\r\n filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) =>\r\n (\r\n
\r\n setSelectedKeys(e.target.value ? [e.target.value] : [])}\r\n onPressEnter={() => confirm()}\r\n style={{ marginBottom: 8, display: 'block' }}\r\n />\r\n \r\n \r\n confirm()}\r\n icon={}\r\n size=\"small\"\r\n style={{ width: 90 }}\r\n >\r\n 查找\r\n \r\n\r\n \r\n
\r\n ),\r\n filterIcon: filtered => ,\r\n onFilterDropdownVisibleChange: vis=>vis&&setTimeout(() => nodeSerch.current.focus({cursor: 'all'}), 100),\r\n onFilter: (value, record) =>\r\n record['node']\r\n ? (record['node'].toString().toLowerCase().includes(value.toLowerCase()) ||\r\n record['name'].toString().toLowerCase().includes(value.toLowerCase())\r\n )\r\n : '',\r\n },\r\n {\r\n title: '主机名称',\r\n dataIndex: 'm_name',\r\n // key: 'id',\r\n align: 'center',\r\n render: (value, record) => (\r\n
\r\n
\r\n {\r\n record.m_name\r\n }\r\n
\r\n
\r\n {\r\n record.sn\r\n }\r\n
\r\n
\r\n ),\r\n filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) =>\r\n (\r\n
\r\n setSelectedKeys(e.target.value ? [e.target.value] : [])}\r\n onPressEnter={() => confirm()}\r\n style={{ marginBottom: 8, display: 'block' }}\r\n />\r\n \r\n \r\n confirm()}\r\n icon={}\r\n size=\"small\"\r\n style={{ width: 90 }}\r\n >\r\n 查找\r\n \r\n\r\n \r\n
\r\n ),\r\n onFilterDropdownVisibleChange: vis=>vis&&setTimeout(() => devSerch.current.focus({cursor: 'all'}), 100),\r\n filterIcon: filtered => ,\r\n\r\n onFilter: (value, record) =>\r\n record['m_name']||record['sn']\r\n ? record['m_name'].toString().toLowerCase().includes(value.toLowerCase())||record['sn'].toString().toLowerCase().includes(value.toLowerCase())\r\n : '',\r\n },\r\n {\r\n title: '设备类型',\r\n dataIndex: 'type',\r\n align: 'center',\r\n sorter: {\r\n compare:(a, b) => a.type - b.type,\r\n multiple: 5,\r\n },\r\n render: (text, record) => (\r\n
\r\n {\r\n state.devicetype.filter(x => { return x.code === record.type }).length > 0 ? state.devicetype.filter(x => { return x.code === record.type })[0].value : '无'\r\n }\r\n
\r\n )\r\n },\r\n {\r\n title: 'SIM卡号',\r\n dataIndex: 'sim',\r\n // key: 'id',\r\n align: 'center',\r\n sorter: {\r\n compare: (a, b) => a.sim - b.sim,\r\n multiple: 1,\r\n },\r\n filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) =>\r\n (\r\n
\r\n setSelectedKeys(e.target.value ? [e.target.value] : [])}\r\n onPressEnter={() => confirm()}\r\n style={{ marginBottom: 8, display: 'block' }}\r\n />\r\n \r\n \r\n confirm()}\r\n icon={}\r\n size=\"small\"\r\n style={{ width: 90 }}\r\n >\r\n 查找\r\n \r\n\r\n \r\n
\r\n ),\r\n onFilterDropdownVisibleChange: visible => {\r\n if (visible) {\r\n setTimeout(() => simSerch.current.focus({cursor: 'all'}), 100);\r\n }\r\n },\r\n filterIcon: filtered => ,\r\n\r\n onFilter: (value, record) =>\r\n record['sim']\r\n ? record['sim'].includes(value)\r\n : '',\r\n },\r\n {\r\n title: '添加时间',\r\n dataIndex: 'time',\r\n // key: 'id',\r\n align: 'center',\r\n sorter:{\r\n compare: (a, b) => Date.parse(a.time.replace(/T|Z/g, ' ').trim()) - Date.parse(b.time.replace(/T|Z/g, ' ').trim()),\r\n multiple: 2,\r\n },\r\n render:(text, record)=>text= text.slice(0,10),\r\n },\r\n {\r\n title: '设备到期时间',\r\n dataIndex: 'expire',\r\n // key: 'id',\r\n align: 'center',\r\n sorter: {\r\n compare:(a, b) => Date.parse(a.expire.replace(/T|Z/g, ' ').trim()) - Date.parse(b.expire.replace(/T|Z/g, ' ').trim()),\r\n multiple: 3,\r\n },\r\n render:(text, record)=>text= text.slice(0,10),\r\n className:(Mode==='local'||state.main.type>102)&&'notshow'\r\n },\r\n {\r\n title: '卡到期时间',\r\n dataIndex: 'iccid_expire',\r\n // key: 'id',\r\n align: 'center',\r\n sorter: {\r\n compare:(a, b) => Date.parse(a.iccid_expire.replace(/T|Z/g, ' ').trim()) - Date.parse(b.iccid_expire.replace(/T|Z/g, ' ').trim()),\r\n multiple: 3,\r\n },\r\n render:(text, record)=>text= text.slice(0,10),\r\n className:(Mode==='local'||state.main.type>102)&&'notshow'\r\n },\r\n {\r\n title: '状态',\r\n dataIndex: 'expirestatus',\r\n // key: 'id',\r\n align: 'center',\r\n sorter: {\r\n compare:(a, b) => Date.parse(a.expire.replace(/T|Z/g, ' ').trim()) - Date.parse(b.expire.replace(/T|Z/g, ' ').trim()),\r\n multiple: 4,\r\n },\r\n render: (text, record) => (\r\n
\r\n {\r\n parseInt((new Date(record.expire).getTime() - new Date().getTime()) / 1000 / 60 / 60 / 24) < 0 ? '已到期' : parseInt((new Date(record.expire).getTime() - new Date().getTime()) / 1000 / 60 / 60 / 24) < 30 ? '即将到期' : '正常'\r\n }\r\n
\r\n ),\r\n filters: [\r\n {\r\n text: '正常',\r\n value: 2\r\n },\r\n {\r\n text: '即将到期',\r\n value: 1\r\n },\r\n {\r\n text: '已到期',\r\n value: 0\r\n },\r\n ],\r\n onFilter: (value, record) => {\r\n if (value === 2) return parseInt((new Date(record.expire).getTime() - new Date().getTime()) / 1000 / 60 / 60 / 24) > 30;\r\n if (value === 1) return parseInt((new Date(record.expire).getTime() - new Date().getTime()) / 1000 / 60 / 60 / 24) > 0 && parseInt((new Date(record.expire).getTime() - new Date().getTime()) / 1000 / 60 / 60 / 24) <= 30;\r\n if (value === 0) return parseInt((new Date(record.expire).getTime() - new Date().getTime()) / 1000 / 60 / 60 / 24) < 0;\r\n }\r\n },\r\n\r\n {\r\n title: '操作',\r\n width: 150,\r\n dataIndex: 'operation',\r\n key: 'id',\r\n align: 'center',\r\n render: (text, record) => (\r\n
\r\n {/* 修改按钮 */}\r\n \r\n {/* 删除按钮 */}\r\n \r\n
\r\n ),\r\n },\r\n ]\r\n\r\n const onfinish = (values) => {\r\n if (changeDev) {\r\n http.put(\"/v1/device/\" + actDevice.id, {\r\n ...values,\r\n parent:Mode==='soc'?actArea.user_name:'',\r\n district:actArea.id,\r\n status: actDevice.status, node: Number(values.node),\r\n sn: Number(values.sn),\r\n humi: values.humi ? 1 : 0,\r\n door_alarm: values.door_alarm ? 1 : 0,\r\n hide: values.hide ? 1 : 0,\r\n power_alarm: values.power_alarm ? 1 : 0,\r\n expire: values.expire?values.expire.format(\"YYYY-MM-DD 00:00:00\"):formatDateTimes(actDevice.expire),\r\n time:values.time ? values.time.format(\"YYYY-MM-DD 00:00:00\"):formatDateTimes(actDevice.time),\r\n iccid_expire:values.iccid_expire ? values.iccid_expire.format(\"YYYY-MM-DD 00:00:00\"):actDevice.iccid_expire,\r\n imei:actDevice.iccid_expire,\r\n }).then((data) => {\r\n http.get(\"/v1/device\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'device', device: data.data.sort((a,b)=>a.sn-b.sn) })\r\n setTableData(data.data.filter(x=>x.district===actArea.id).sort((a,b)=>a.sn-b.sn))\r\n }\r\n })\r\n })\r\n } else {\r\n http.post(\"/v1/device\", {\r\n ...values,\r\n parent:Mode==='soc'?actArea.user_name:'',\r\n district:actArea.id,\r\n node: Number(values.node),\r\n sn: Number(values.sn),\r\n humi: values.humi ? 1 : 0,\r\n door_alarm: values.door_alarm ? 1 : 0,\r\n power_alarm: values.power_alarm ? 1 : 0,\r\n hide: values.hide ? 1 : 0,\r\n status: values.status ? 1 : 0,\r\n expire: values.expire?values.expire.format(\"YYYY-MM-DD 00:00:00\"):formatDateTimes(actDevice.expire),\r\n time:values.time ? values.time.format(\"YYYY-MM-DD 00:00:00\"):formatDateTimes(actDevice.time),\r\n iccid_expire:values.iccid_expire ? values.iccid_expire.format(\"YYYY-MM-DD 00:00:00\"):actDevice.iccid_expire+' 00:00:00',\r\n // expire: values.expire.format(\"YYYY-MM-DD 00:00:00\"),\r\n // time: values.time.format(\"YYYY-MM-DD 00:00:00\")\r\n }).then((data) => {\r\n http.get(\"/v1/device\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'device', device: data.data.sort((a,b)=>a.sn-b.sn) });\r\n setTableData(data.data.filter(x=>x.district===actArea.id).sort((a,b)=>a.sn-b.sn))\r\n }\r\n })\r\n })\r\n }\r\n\r\n }\r\n return (\r\n
\r\n
\r\n {Mode==='soc'&&
用户名称: {actArea.user_name}
}\r\n
区域名称: {actArea.name}
\r\n
\r\n
\r\n {\r\n state.main.type<103&&\r\n \r\n }\r\n
\r\n
record.id} columns={columns} size='small' dataSource={tableData} \r\n rowClassName={record=>record.status===1&&'socDevice'}\r\n />\r\n\r\n {\r\n setModalMoveDisabled(false);\r\n }}\r\n onMouseOut={() => {\r\n setModalMoveDisabled(true);\r\n }}\r\n >\r\n 新增设备\r\n \r\n } visible={showNewModel}\r\n destroyOnClose style={{cursor:'move'}}\r\n modalRender={modal => (\r\n \r\n
{modal}
\r\n \r\n )}\r\n cancelText='取消'\r\n width={600}\r\n okText='确定'\r\n onOk={() => {\r\n form.submit();\r\n \r\n }}\r\n onCancel={() => {\r\n setShowNewModel(false)\r\n dispatchDevice({ type: 'clear' })\r\n }}>\r\n \r\n \r\n \r\n
\r\n {\r\n setModalMoveDisabled(false);\r\n }}\r\n onMouseOut={() => {\r\n setModalMoveDisabled(true);\r\n }}\r\n >\r\n 修改设备\r\n \r\n } visible={showFixModel}\r\n destroyOnClose style={{cursor:'move'}}\r\n modalRender={modal => (\r\n \r\n
{modal}
\r\n \r\n )}\r\n cancelText='取消'\r\n width={600}\r\n okText='确定'\r\n onOk={() => {\r\n form.submit()\r\n }}\r\n onCancel={() => {\r\n setShowFixModel(false)\r\n changeDev = false;\r\n dispatchDevice({ type: 'clear' })\r\n }}>\r\n \r\n \r\n \r\n
\r\n \r\n )\r\n}\r\n\r\n\r\nfunction AreaNew() {\r\n const { actArea, dispatchArea } = useContext(AreaContext)\r\n const { state } = useContext(StateContext)\r\n return (\r\n
\r\n { dispatchArea({ type: 'update', area: { ...actArea, name: e.target.value } }) }} \r\n onKeyDown={e=>{\r\n if(e.key==='Enter'){\r\n\r\n }\r\n }}\r\n />\r\n
\r\n )\r\n}\r\n\r\nfunction AreaManage(props) {\r\n const [form] = Form.useForm();\r\n const { state, dispatch } = useContext(StateContext);\r\n const [actArea, dispatchArea] = useReducer((state, action) => {\r\n if (action.type === 'update') {\r\n return action.area\r\n } else if (action.type === 'clear') {\r\n return {\r\n name: '',\r\n }\r\n }\r\n return state\r\n }, []);\r\n const [actDevice, dispatchDevice] = useReducer((state, action) => {\r\n if (action.type === 'clear') {\r\n let now = new Date();\r\n now.setFullYear(now.getFullYear() + 1);\r\n return {\r\n name: '测点',//测点名称\r\n type: 201,//主机类型\r\n sn: '',\r\n sim: '',\r\n m_name: '',\r\n node: 1,\r\n humi: 0,\r\n hide: 0,\r\n door_alarm: 0,\r\n power_alarm: 0,\r\n location: 2,\r\n status: 0,\r\n expire: now,\r\n time: new Date(),\r\n user:Mode==='soc'?action.user:'',\r\n district:action.district\r\n }\r\n }\r\n return state\r\n }, []);\r\n const [showNewModel, setShowNewModel] = useState(false);\r\n const [showFixModel, setShowFixModel] = useState(false);\r\n const [showNewDevModel, setShowNewDevModel] = useState(false);//添加设备对话框\r\n const [devMangerModel, setDevMangerModel] = useState(false);//设备管理对话框\r\n\r\n useEffect(() => {\r\n http.get(\"/v1/district\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'district', district: data.data })\r\n }\r\n })\r\n http.get(\"/v1/device\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'device', device: data.data })\r\n }\r\n })\r\n Mode==='soc'&&http.get(\"/v1/users\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'systemuser', systemuser: data.data.sort((a,b)=>a.name.localeCompare(b.name,'zh')) })\r\n }\r\n })\r\n }, [])\r\n\r\n const columns = [\r\n {\r\n title: '区域名称',\r\n dataIndex: 'name',\r\n // key: 'id',\r\n align: 'left',\r\n with: '300',\r\n },\r\n {\r\n title: '设备数量',\r\n align:'center',\r\n width:'100',\r\n render:(text,record)=>(\r\n
{\r\n setDevMangerModel(true);\r\n dispatchArea({type: 'update', area: record})\r\n }} >\r\n x.district===record.id&&x.node!==0).length} style={{backgroundColor:'palegreen',color:'#333'}}/>\r\n
\r\n )\r\n },\r\n {\r\n title: '操作',\r\n dataIndex: 'operation',\r\n // key: 'id',\r\n align: 'right',\r\n width: '260px',\r\n render: (text, record) => (\r\n
\r\n \r\n \r\n {\r\n state.main.type <103&&Mode==='soc'&&\r\n \r\n }\r\n
\r\n ),\r\n },\r\n ]\r\n const onfinish = (values) => {\r\n http.post(\"/v1/device\", {\r\n ...values,\r\n parent:actDevice.user,\r\n district:actDevice.district,\r\n node: Number(values.node),\r\n sn: Number(values.sn),\r\n humi: values.humi ? 1 : 0,\r\n door_alarm: values.door_alarm ? 1 : 0,\r\n power_alarm: values.power_alarm ? 1 : 0,\r\n hide: values.hide ? 1 : 0,\r\n status: values.status ? 1 : 0,\r\n expire: values.expire.format(\"YYYY-MM-DD 00:00:00\"),\r\n time: values.time.format(\"YYYY-MM-DD 00:00:00\")\r\n })\r\n\r\n }\r\n return (\r\n
\r\n
\r\n
{Mode==='soc'&&props.userInfo.name}
\r\n \r\n
\r\n
record.id} columns={columns} size='small' dataSource={state.district.filter(x => { return ((props.userInfo && x.user === props.userInfo.id) || (!props.userInfo))&&x.id > 0 })} />\r\n {\r\n if(actArea.name==='') return\r\n http.post(\"/v1/district\", { ...actArea, user: Mode==='soc'?props.userInfo.id : 1 }).then((data) => {\r\n if (data.code === 0) {\r\n http.get(\"/v1/district\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'district', district: data.data })\r\n }\r\n })\r\n\r\n setShowNewModel(false)\r\n dispatchArea({ type: 'clear', project_id: state.main.project_id })\r\n } else {\r\n Modal.error({\r\n title: data.code,\r\n content: data.msg,\r\n });\r\n }\r\n })\r\n \r\n }}\r\n onCancel={() => {\r\n setShowNewModel(false)\r\n dispatchArea({ type: 'clear', project_id: state.main.project_id })\r\n }}>\r\n \r\n \r\n \r\n \r\n {\r\n\r\n http.put(\"/v1/district/\" + actArea.id, { ...actArea, user:Mode==='soc'? props.userInfo.id :1 }).then((data) => {\r\n if (data.code === 0) {\r\n http.get(\"/v1/district\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'district', district: data.data })\r\n }\r\n })\r\n }\r\n })\r\n\r\n setShowFixModel(false)\r\n dispatchArea({ type: 'clear', project_id: state.main.project_id })\r\n }}\r\n onCancel={() => {\r\n setShowFixModel(false)\r\n dispatchArea({ type: 'clear', project_id: state.main.project_id })\r\n }}>\r\n \r\n \r\n \r\n \r\n {\r\n form.submit();\r\n setShowNewDevModel(false)\r\n }}\r\n onCancel={() => {\r\n setShowNewDevModel(false)\r\n dispatchDevice({ type: 'clear'})\r\n }}>\r\n \r\n \r\n \r\n \r\n \r\n
设 备 管 理
\r\n {/*
用户名称: {actArea.user_name}
*/}\r\n {/*
区域名称: {actArea.name}
*/}\r\n } \r\n style={{ top: 20 }}\r\n visible={devMangerModel}\r\n destroyOnClose\r\n footer={null}\r\n width={2000}\r\n onCancel={() => {\r\n setDevMangerModel(false)\r\n }}>\r\n \r\n \r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default AreaManage","import React, { createContext, useContext, useEffect, useState, useReducer} from 'react'\r\nimport { Table, Button, Input, Select, Modal, Space, DatePicker, TreeSelect, Form, InputNumber, Checkbox ,Tag} from 'antd'\r\nimport { StateContext } from '../../../state';\r\nimport http from '../../../../../utils/server'\r\nimport { SearchOutlined, ExclamationCircleOutlined } from '@ant-design/icons';\r\nimport './index.less'\r\nimport moment from 'moment';\r\nimport Draggable from 'react-draggable';\r\nimport sha1 from '../../../../../utils/sha1';\r\nimport { Mode } from '../../../../../App';\r\n\r\nvar changeDev = false;\r\nconst DeviceContext = createContext();\r\n\r\nfunction exportCsv(obj) {\r\n var title = obj.title;\r\n var titleForKey = Object.keys(obj.data[0]);\r\n var data = obj.data;\r\n var str = [];\r\n str.push(obj.title.join(\",\") + \"\\n\");\r\n for (var i = 0; i < data.length; i++) {\r\n var temp = [];\r\n for (var j = 0; j < titleForKey.length; j++) {\r\n temp.push(data[i][titleForKey[j]]);\r\n }\r\n str.push(temp.join(\",\") + \"\\n\");\r\n }\r\n var blob = new Blob(['\\uFEFF' + str.join('')], {\r\n type: 'text/plain;charset=utf-8',\r\n });\r\n var downloadLink = document.createElement(\"a\");\r\n downloadLink.href = URL.createObjectURL(blob);\r\n downloadLink.download = \"export.csv\";\r\n downloadLink.click();\r\n}\r\n\r\nfunction findUserDis(nop, list, districts,userDis) {\r\n if (list&&districts) {\r\n const nops = list.filter(x => { return x.parent === nop })\r\n if (nops.length === 0) {\r\n return\r\n } else {\r\n for (var j = 0; j < nops.length; j++) {\r\n let tempDis=districts.filter(x=>x.user===nops[j].id);\r\n tempDis.length>0&&userDis.push(...tempDis);\r\n findUserDis(nops[j].id, list,districts,userDis);\r\n }\r\n }\r\n }\r\n}\r\nfunction getSimByIccid(iccid,simToken) {\r\n let r ={};\r\n fetch( `http://hebeijiuchen.com/sim/card/all/query.do?queryString=${iccid}`, { //物联网卡查询 接口请求地址\r\n method: 'get',\r\n headers: new Headers({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `${simToken}`\r\n })\r\n })\r\n .then((resp) => {\r\n resp.json().then(res=>{\r\n if (!res.list) return\r\n if(res.list.length==0){//河北卡查询不到\r\n let method = 'fc.function.card.info';\r\n let appKey = 'RL7i4T0Q9024bI7Z';\r\n let t = Math.floor(new Date().getTime()/1000)\r\n let sign = callSign(appKey,method,iccid,t);\r\n fetch(`https://api.quectel.com/openapi/router`,{\r\n method:'post',\r\n body:`appKey=${appKey}&iccid=${iccid}&method=${method}&sign=${sign}&t=${t}`,\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded',\r\n }\r\n }).then(resp=>{\r\n resp.json().then(res=>{\r\n if(res.resultCode===0){\r\n r.iccid_expire =res.expiryDate!==''?res.expiryDate:'2000-01-01';\r\n r.sim = res.msisdn;\r\n // r.status = res.active;\r\n r.status = '';\r\n r.islock = res.islock===1?true:false;\r\n }else{\r\n r.iccid_expire='2000-01-01';\r\n r.sim='';\r\n r.status = '未找到';\r\n r.islock = false\r\n }\r\n })\r\n })\r\n \r\n }else{\r\n r.iccid_expire =res.list[0].expireTime!==''?res.list[0].expireTime:'2000-01-01';\r\n r.sim =''+ res.list[0].mobile;\r\n r.status = '';\r\n r.islock = false\r\n let date1 = new Date(res.list[0].expireTime).getTime();\r\n // let date1 = new Date('2023-8-16').getTime();\r\n let date2 = new Date().getTime();\r\n if( date2 {\r\n resp.json().then(res=>{\r\n r.iccid_expire =res.expireTime!==''?res.expireTime:'2000-01-01';\r\n r.iccid = res.iccid\r\n r.status = '';\r\n r.islock = false\r\n let date1 = new Date(res.expireTime).getTime();\r\n \r\n let date2 = new Date().getTime();\r\n if( date2 {\r\n let method = 'fc.function.card.info';\r\n let appKey = 'RL7i4T0Q9024bI7Z';\r\n let msisdn = sim;\r\n let t = Math.floor(new Date().getTime()/1000)\r\n let sign = callSign(appKey,method,msisdn,t);\r\n fetch(`https://api.quectel.com/openapi/router`,{\r\n method:'post',\r\n body:`appKey=${appKey}&method=${method}&msisdn=${msisdn}&sign=${sign}&t=${t}`,\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded',\r\n }\r\n }).then(resp=>{\r\n resp.json().then(res=>{\r\n if(res.resultCode===0){\r\n r.iccid_expire =res.expiryDate!==''?res.expiryDate:'2000-01-01';\r\n r.sim = res.msisdn;\r\n // r.status = res.active;\r\n r.status = \"\";\r\n r.iccid = res.iccid;\r\n r.islock = res.islock===1?true:false\r\n if(res.expiryDate!=\"\"){\r\n let date1 = new Date(res.expiryDate).getTime();\r\n let date2 = new Date().getTime();\r\n if( date2 {\r\n var p = state.systemuser.tree[0];\r\n let arrDis = new Array();\r\n Mode === 'soc' && state.district.filter(x => { return x.user === state.systemuser.tree[0].value }).map(item => arrDis.push(item));\r\n setDisOptions(Mode !== 'soc' ? state.district : arrDis);\r\n const d_d = state.district.filter(x => { return x.id === actDevice.district })\r\n if (d_d.length > 0) {\r\n setMaster(actDevice.sn)\r\n const d_u = state.systemuser.list.filter(x => { return x.id === d_d[0].user })\r\n if (d_u.length > 0) {\r\n p = d_u[0].id\r\n }\r\n }\r\n if(Mode==='soc'){\r\n form.setFieldsValue({ ...actDevice, num: 1, humi: true, status: false, expire: moment(actDevice.expire, 'YYYY-MM-DD 00:00:00'), time: moment(actDevice.time, 'YYYY-MM-DD 00:00:00'), parent: p,\r\n iccid_expire: moment(actDevice.iccid_expire, 'YYYY-MM-DD'),\r\n temp_alarm_high:50,temp_alarm_low:-50,humi_alarm_high:100,humi_alarm_low:0,power_alarm:true,simdate:moment(actDevice.simdate, 'YYYY-MM-DD'),\r\n })\r\n }else{\r\n form.setFieldsValue({ ...actDevice, num: 1, humi: true, status: false, expire: moment(actDevice.expire, 'YYYY-MM-DD 00:00:00'), time: moment(actDevice.time, 'YYYY-MM-DD 00:00:00'), parent: p,\r\n temp_alarm_high:50,temp_alarm_low:-50,humi_alarm_high:100,humi_alarm_low:0,power_alarm:true\r\n })\r\n }\r\n var list = [];\r\n state.systemuser.list.filter(x=>x.parent===state.main.id).map(m=>list.push(m.id+\"\"));\r\n setDefExpend(list);\r\n\r\n fetch(' http://www.hebeijiuchen.com/sim/user/login.do?username=17734552912&password=123456', { //物联网卡登录 接口请求地址\r\n method: 'get',\r\n })\r\n .then((resp) => {\r\n resp.json().then(res=>{\r\n setSimToken(res.token)\r\n })\r\n }).catch((error) => {\r\n console.log(error);\r\n });\r\n\r\n\r\n}, [])\r\n\r\n return (\r\n \r\n\r\n {\r\n Mode === 'soc' && ( ({\r\n validator(_, value) {\r\n const u = state.systemuser.list.filter(x => { return x.id === value || x.id == value.id })\r\n if (u.length > 0 && u[0].type < 104) {\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(new Error('普通用户不可选'));\r\n },\r\n }),\r\n ]}>\r\n {\r\n const u = state.systemuser.list.filter(x => { return x.id === value*1 })\r\n if (u.length > 0 && u[0].type < 104) {\r\n // setSelectUser(u[0]);\r\n let arrDis = new Array();\r\n state.district.filter(x => { return x.user === value }).map(item => arrDis.push(item));\r\n setDisOptions(arrDis);\r\n }\r\n }}\r\n />\r\n )\r\n }\r\n \r\n \r\n {\r\n disOptions.map(item => (\r\n {item.name}\r\n ))\r\n }\r\n \r\n \r\n
\r\n \r\n \r\n \r\n {\r\n const s = state.device.filter(x => { return x.sn === Number(e.target.value)&&x.node!==0 })\r\n if (s.length > 0) {\r\n setMaster(s.length);\r\n setLockMName(true);\r\n formRef.current.setFieldsValue({\r\n m_name: s[0].m_name,\r\n sim: s[0].sim,\r\n node:s.length+1,\r\n name:\"测点\"+(s.length+1),\r\n expire: moment(s[0].expire, 'YYYY-MM-DD 00:00:00'),\r\n })\r\n } else {\r\n setLockMName(false)\r\n }\r\n }}\r\n rules={[{ required: true, message: '输入主机编号' }]}>\r\n \r\n \r\n
\r\n\r\n {\r\n Mode === \"local\" ?\r\n
\r\n \r\n \r\n \r\n \r\n 选择\r\n \r\n
:\r\n \r\n \r\n \r\n }\r\n
\r\n \r\n 1} />\r\n \r\n \r\n {\r\n // if(e.target.checked){\r\n // form.setFieldsValue({node:0,num:1});\r\n // setNodeNum(1);\r\n // setNodeStatus1(true);\r\n // }else{\r\n // setNodeStatus1(false);\r\n // !nodeStatus2&&form.setFieldsValue({node:1});\r\n // }\r\n // }}\r\n >\r\n 开启\r\n \r\n \r\n \r\n \r\n 开启\r\n \r\n \r\n
\r\n
\r\n \r\n 1 } onChange={e=>\r\n e.target.value!==''&&e.target.value*1===0&&form.setFieldsValue({power_alarm:true})\r\n }/>\r\n \r\n \r\n {\r\n setNodeNum(value)\r\n }} />\r\n \r\n \r\n {\r\n master\r\n }\r\n \r\n
\r\n
\r\n \r\n \r\n {\r\n [{ id: 0, name: 'GPS定位' }, { id: 1, name: 'LBS定位' }, { id: 2, name: '无定位' }].map(item => (\r\n {item.name}\r\n ))\r\n }\r\n \r\n \r\n {\r\n Mode === \"soc\"&&state.main.type<103&&\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n }\r\n
\r\n {/* sim卡号和编辑时间 */}\r\n
\r\n \r\n \r\n {\r\n form.setFieldsValue({\r\n iccid_expire_real:moment('2000-01-01', 'YYYY-MM-DD'),\r\n simdate:moment(new Date(), 'YYYY-MM-DD'),\r\n iccid:''\r\n })\r\n let val = e.target.value;\r\n if(val.length===13){\r\n let r =getSimBySim(val,simToken);\r\n setTimeout(() => {\r\n setSimStatus(r.status);\r\n form.setFieldsValue({\r\n iccid_expire_real:moment(r.iccid_expire, 'YYYY-MM-DD'),\r\n iccid:r.iccid,\r\n simdate:moment(new Date(), 'YYYY-MM-DD'),\r\n })\r\n }, 1000);\r\n \r\n }else{\r\n // setSimStatus('卡号错误');\r\n \r\n }\r\n }\r\n }/>\r\n \r\n {\r\n Mode==='soc'&&\r\n \r\n \r\n \r\n }\r\n {\r\n Mode === \"soc\"&&state.main.type<101&&\r\n
\r\n {\r\n simStatus\r\n }\r\n
\r\n }\r\n
\r\n {/* 卡iccid和到期时间 */}\r\n
\r\n
\r\n \r\n \r\n {\r\n form.setFieldsValue({\r\n sim:'',\r\n iccid_expire_real:moment('2000-01-01', 'YYYY-MM-DD'),\r\n simdate:moment(new Date(), 'YYYY-MM-DD'),\r\n })\r\n let val = e.target.value;\r\n if(val.length===20){\r\n let r =getSimByIccid(val,simToken);\r\n setTimeout(() => {\r\n setSimStatus(r.status);\r\n form.setFieldsValue({\r\n iccid_expire_real:moment(r.iccid_expire, 'YYYY-MM-DD'),\r\n sim:r.sim,\r\n simdate:moment(new Date(), 'YYYY-MM-DD'),\r\n })\r\n }, 1000);\r\n \r\n }else{\r\n // setSimStatus('iccid错误');\r\n }\r\n }\r\n }/>\r\n \r\n
\r\n {\r\n Mode === \"soc\"&&state.main.type<101&&\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n }\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n 隐藏\r\n \r\n {\r\n state.main.type < 103 &&\r\n \r\n current&¤t > moment().endOf('day')}/>\r\n \r\n }\r\n
\r\n
\r\n \r\n 开启\r\n \r\n\r\n {\r\n state.main.type <103 &&Mode==='soc'&&\r\n \r\n 101||lockMName}/>\r\n \r\n }\r\n
\r\n\r\n \r\n )\r\n}\r\nfunction DeviceFix() {\r\n const { actDevice, dispatchDevice, form, onfinish } = useContext(DeviceContext)\r\n const { state } = useContext(StateContext)\r\n const [selectUser, setSelectUser] = useState([])\r\n const [simToken,setSimToken] = useState('')\r\n const [simStatus,setSimStatus] = useState('')\r\n const [simStatus1,setSimStatus1] = useState('')\r\n const [simChange,setSimChange] = useState(false)\r\n const formRef = React.createRef();\r\n const formItemLayout = {\r\n labelCol: {\r\n xs: { span: 24 },\r\n sm: { span: 4 },\r\n },\r\n wrapperCol: {\r\n xs: { span: 24 },\r\n sm: { span: 20 },\r\n },\r\n };\r\n useEffect(() => {\r\n let simToken='';\r\n var p = 1\r\n const d_d = state.district.filter(x => { return x.id === actDevice.district })\r\n if (d_d.length > 0) {\r\n const d_u = state.systemuser.list.filter(x => { return x.id === d_d[0].user })\r\n if (d_u.length > 0) {\r\n p = d_u[0].id\r\n setSelectUser(d_u[0])\r\n }\r\n }\r\n if(Mode==='soc'){\r\n form.setFieldsValue({\r\n ...actDevice,\r\n humi: actDevice.humi === 0 ? false : true,\r\n door_alarm: actDevice.door_alarm === 0 ? false : true,\r\n power_alarm: actDevice.power_alarm === 0 ? false : true,\r\n hide: actDevice.hide === 0 ? false : true,\r\n expire: moment(actDevice.expire, 'YYYY-MM-DD 00:00:00'), time: moment(actDevice.time, 'YYYY-MM-DD 00:00:00'), parent: p,\r\n iccid_expire: moment(actDevice.iccid_expire, 'YYYY-MM-DD'),cardedittime:moment(actDevice.cardedittime, 'YYYY-MM-DD'),\r\n cardedittimeauto:moment(actDevice.cardedittimeauto, 'YYYY-MM-DD')\r\n })\r\n }else{\r\n form.setFieldsValue({\r\n ...actDevice,\r\n humi: actDevice.humi === 0 ? false : true,\r\n door_alarm: actDevice.door_alarm === 0 ? false : true,\r\n power_alarm: actDevice.power_alarm === 0 ? false : true,\r\n hide: actDevice.hide === 0 ? false : true,\r\n expire: moment(actDevice.expire, 'YYYY-MM-DD 00:00:00'), time: moment(actDevice.time, 'YYYY-MM-DD 00:00:00'), parent: p,\r\n })\r\n }\r\n \r\n fetch(' http://www.hebeijiuchen.com/sim/user/login.do?username=17734552912&password=123456', { //物联网卡登录 接口请求地址\r\n method: 'get',\r\n })\r\n .then((resp) => {\r\n resp.json().then(res=>{\r\n simToken = res.token\r\n setSimToken(res.token)\r\n let result\r\n if(actDevice.iccid.length===20){\r\n result = getSimByIccid(actDevice.iccid,simToken);\r\n }else{\r\n result = getSimBySim(actDevice.sim,simToken)\r\n }\r\n \r\n setTimeout(() => {\r\n \r\n if(result.status===\"未找到\"){\r\n setSimStatus(result.status);\r\n }\r\n else if(actDevice.sim!==result.sim){\r\n setSimStatus(\"卡号和ICCID不符\")\r\n }else if(result.state===1){\r\n setSimStatus(\"停机\")\r\n }else if(result.state===2){\r\n setSimStatus(\"销号\")\r\n }\r\n form.setFieldsValue({\r\n iccid_expire_real:moment(result.iccid_expire, 'YYYY-MM-DD'),\r\n })\r\n if(actDevice.iccid.length<20){\r\n\r\n form.setFieldsValue({\r\n iccid:result.iccid\r\n })\r\n }\r\n }, 1000);\r\n })\r\n }).catch((error) => {\r\n console.log(error);\r\n });\r\n // http.post(\"/v1/getdevice\", { error:false,type:13,validity:false, device: actDevice.sn, node: actDevice.node })\r\n // .then(data1 => {\r\n // // if(data1.code===200){\r\n // // setSimStatus1('不在线')\r\n // // }else{\r\n \r\n // // }\r\n // let tempEles = state.device.filter(x=>x.id===actDevice.id)\r\n // if(tempEles.length>0 && tempEles[0].iccid.length===20 ){\r\n // let r = getSimByIccid(tempEles[0].iccid,simToken);\r\n // setTimeout(() => {\r\n // setSimStatus1(data1.code===200?'不在线'+r.status:r.status);\r\n // form.setFieldsValue({\r\n // iccid_expire_real1:moment(r.iccid_expire, 'YYYY-MM-DD'),\r\n // sim1:r.sim,\r\n // // simdate1:moment(new Date(), 'YYYY-MM-DD'),\r\n // })\r\n // }, 1000);\r\n\r\n // }else{\r\n // setSimStatus1('iccid读取失败')\r\n // } \r\n // })\r\n }, [])\r\n\r\n return (\r\n {\r\n if(simChange){\r\n http.put('/v1/devicesim',{\r\n Sn:Number(val.sn),\r\n Sim:val.sim,\r\n ICCID:val.iccid,\r\n ICCID_Ex:val.iccid_expire.format(\"YYYY-MM-DD 00:00:00\")\r\n }).then(res=>console.log(res))\r\n setSimChange(false)\r\n }\r\n onfinish(val)\r\n }}>\r\n\r\n\r\n {\r\n Mode === 'soc' && ({\r\n validator(_, value) {\r\n const u = state.systemuser.list.filter(x => { return x.id === value })\r\n if (u.length > 0 && u[0].type < 104) {\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(new Error('普通用户不可选'));\r\n },\r\n }),\r\n ]}>\r\n {\r\n const u = state.systemuser.list.filter(x => { return x.id === value })\r\n if (u.length > 0 && u[0].type < 104) {\r\n setSelectUser(u[0])\r\n }\r\n }}\r\n \r\n />\r\n \r\n }\r\n \r\n \r\n {\r\n Mode !== 'soc' ? state.district.map(item => (\r\n {item.name}\r\n )) :\r\n state.district.filter(x => { return x.user === selectUser.id }).map(item => (\r\n {item.name}\r\n ))\r\n }\r\n \r\n \r\n
\r\n \r\n {\r\n switch (value) {\r\n case 201: formRef.current.setFieldsValue({\r\n location: 2, humi: true\r\n }); return;\r\n case 202: formRef.current.setFieldsValue({\r\n location: 1, humi: false\r\n }); return;\r\n case 203: formRef.current.setFieldsValue({\r\n location: 0, humi: false\r\n }); return;\r\n case 204: formRef.current.setFieldsValue({\r\n location: 2, humi: true\r\n }); return;\r\n case 205: formRef.current.setFieldsValue({\r\n location: 2, humi: false\r\n }); return;\r\n }\r\n }}\r\n >\r\n {\r\n state.devicetype.map(item => (\r\n // item.code!==204&&\r\n {item.value}\r\n ))\r\n }\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {\r\n Mode === \"local\" ?\r\n
\r\n \r\n \r\n \r\n \r\n 选择\r\n \r\n
:\r\n \r\n \r\n \r\n }\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n 开启\r\n \r\n \r\n \r\n \r\n 开启\r\n \r\n \r\n {\r\n Mode === \"soc\"&&state.main.type<101&&\r\n
\r\n 自动读卡:\r\n {\r\n simStatus1\r\n }\r\n
\r\n 填写卡\r\n {simStatus}\r\n
\r\n
\r\n }\r\n
\r\n
\r\n \r\n \r\n {\r\n [{ id: 0, name: 'GPS定位' }, { id: 1, name: 'LBS定位' }, { id: 2, name: '无定位' }].map(item => (\r\n {item.name}\r\n ))\r\n }\r\n \r\n \r\n {\r\n Mode === \"soc\"&&state.main.type<103&&\r\n
\r\n \r\n \r\n \r\n
\r\n }\r\n
\r\n {/* sim卡号和编辑时间 */}\r\n
\r\n \r\n \r\n {\r\n form.setFieldsValue({\r\n iccid_expire_real:moment('2000-01-01', 'YYYY-MM-DD'),\r\n simdate:moment(new Date(), 'YYYY-MM-DD'),\r\n iccid:''\r\n })\r\n let val = e.target.value;\r\n if(val.length===13){\r\n let r =getSimBySim(val,simToken);\r\n setTimeout(() => {\r\n setSimStatus(r.status);\r\n form.setFieldsValue({\r\n iccid_expire_real:moment(r.iccid_expire, 'YYYY-MM-DD'),\r\n iccid:r.iccid,\r\n simdate:moment(new Date(), 'YYYY-MM-DD'),\r\n })\r\n }, 1000);\r\n \r\n }else{\r\n // setSimStatus('卡号错误');\r\n \r\n }\r\n setSimChange(true)\r\n }\r\n }/>\r\n \r\n {\r\n Mode==='soc'&&\r\n \r\n \r\n \r\n }\r\n \r\n
\r\n {/* 卡iccid和到期时间 */}\r\n
\r\n
\r\n \r\n \r\n {\r\n form.setFieldsValue({\r\n sim:'',\r\n iccid_expire_real:moment('2000-01-01', 'YYYY-MM-DD'),\r\n simdate:moment(new Date(), 'YYYY-MM-DD'),\r\n })\r\n let val = e.target.value;\r\n if(val.length===20){\r\n let r =getSimByIccid(val,simToken);\r\n setTimeout(() => {\r\n setSimStatus(r.status);\r\n if(r.state===1){\r\n setSimStatus(\"停机\")\r\n }else if(r.state===2){\r\n setSimStatus(\"销号\")\r\n }\r\n form.setFieldsValue({\r\n iccid_expire_real:moment(r.iccid_expire, 'YYYY-MM-DD'),\r\n sim:r.sim,\r\n simdate:moment(new Date(), 'YYYY-MM-DD'),\r\n })\r\n }, 1000);\r\n \r\n }else{\r\n // setSimStatus('iccid错误');\r\n }\r\n setSimChange(true)\r\n }\r\n }/>\r\n \r\n
\r\n {\r\n Mode === \"soc\"&&state.main.type<101&&\r\n
\r\n \r\n \r\n \r\n
\r\n }\r\n {\r\n Mode === \"soc\"&& state.main.type >100 &&\r\n
\r\n {\r\n simStatus\r\n }\r\n
\r\n }\r\n
\r\n \r\n {/* 自动读取sim卡号和编辑时间 */}\r\n
\r\n {\r\n Mode === \"soc\"&&state.main.type<101&&\r\n \r\n \r\n \r\n }\r\n {\r\n Mode === \"soc\"&&state.main.type<101&&\r\n \r\n \r\n \r\n }\r\n
\r\n {/* 自动读取卡iccid和到期时间 */}\r\n
\r\n {\r\n Mode === \"soc\"&&state.main.type<101&&\r\n
\r\n \r\n \r\n \r\n
\r\n }\r\n \r\n {\r\n Mode === \"soc\"&&state.main.type<101&&\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n }\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n 隐藏\r\n \r\n {\r\n (state.main.type < 103) &&\r\n \r\n 101}/>\r\n \r\n }\r\n
\r\n
\r\n \r\n 开启\r\n \r\n {\r\n (state.main.type < 103) && Mode==='soc'&&\r\n \r\n 101}/>\r\n \r\n }\r\n
\r\n \r\n )\r\n}\r\nfunction DeviceManage(props) {\r\n const [form] = Form.useForm()\r\n const { state, dispatch } = useContext(StateContext)\r\n const [actDevice, dispatchDevice] = useReducer((state, action) => {\r\n if (action.type === 'update') {\r\n return action.device\r\n } else if (action.type === 'clear') {\r\n let now = new Date();\r\n Mode==='soc'?now.setFullYear(now.getFullYear() + 1):now.setFullYear(now.getFullYear() + 100);\r\n if(Mode==='soc'){\r\n return {\r\n name: '测点',//测点名称\r\n type: 201,//主机类型\r\n sn: '',\r\n sim: '',\r\n m_name: '',\r\n node: 1,\r\n district: '',\r\n humi: 0,\r\n hide: 0,\r\n door_alarm: 0,\r\n power_alarm: 0,\r\n location: 2,\r\n status: 0,\r\n expire: now,\r\n time: new Date(),\r\n iccid_expire:new Date('2000-01-01'),\r\n iccid:'',\r\n simdate:new Date(),\r\n }\r\n }else{\r\n return {\r\n name: '测点',//测点名称\r\n type: 201,//主机类型\r\n sn: '',\r\n sim: '',\r\n m_name: '',\r\n node: 1,\r\n district: '',\r\n humi: 0,\r\n hide: 0,\r\n door_alarm: 0,\r\n power_alarm: 0,\r\n location: 2,\r\n status: 0,\r\n expire: now,\r\n time: new Date()\r\n }\r\n }\r\n \r\n }\r\n return state\r\n }, []);\r\n const [showNewModel, setShowNewModel] = useState(false)\r\n const [showFixModel, setShowFixModel] = useState(false)\r\n const [tableData, setTableData] = useState([]);//显示表格的数据源\r\n const [exportData, setExportData] = useState([]);//导出表格的数据源\r\n const [selDis, setSelDis] = useState([]);//选择的区域\r\n const [selUser, setSelUser] = useState(0);//树选择的用户\r\n const [selUserDis, setSelUserDis] = useState([]);//用户关联的区域 用户为空选择全部区域\r\n const [defExpend,setDefExpend]=useState([]);//树默认展示列表\r\n const [modalBounds,setModalBounds] = useState({left: 0, top: 0, bottom: 0, right: 0 });//对话框移动坐标\r\n const [modalMoveDisabled, setModalMoveDisabled] = useState(true);//对话框拖动功能关闭\r\n const draggleRef = React.createRef();\r\n const nodeSerch = React.createRef();\r\n const devSerch = React.createRef();\r\n const simSerch = React.createRef();\r\n const [filterCol,setFilterCol] = useState('');\r\n const [tableLoad,setTableLoad] = useState(true);\r\n const [simToken,setSimToken] = useState('')\r\n const [showDevC,setShowDevC] = useState(false);\r\n const [devCustom ,setDevCustom] = useState('');\r\n const [selDevCID,setSelDevCID] = useState(0);\r\n // const [defFilter,setDefFilter] = useState('')\r\n useEffect(() => {\r\n // setDefFilter(props.location.state?props.location.state.exp===2?1:props.location.state.exp===1?0:2:null)\r\n setTableLoad(true)\r\n http.get(\"/v1/device\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'device', device: data.data.sort((a,b)=>a.sn-b.sn) });\r\n let dev =[]\r\n if(props.location.state){\r\n if(state.selUser_dev&&state.selUser_dev!==''){\r\n dev = data.data.filter(x=>x.user_name===state.selUser_dev);\r\n }else{\r\n dev = data.data.filter(x=>x.user_name===props.location.state.user_name)\r\n }\r\n }else{\r\n dev = data.data\r\n }\r\n setTableData(dev);\r\n setTableLoad(false)\r\n // let exportDevList=[];\r\n \r\n // dev.map(item=>{\r\n // exportDevList.push({id:item.id,sn:item.sn,node:item.node,name:item.name,time:item.time,\r\n // type:state.devicetype.filter(x => { return x.code === item.type }).length > 0 ?state.devicetype.filter(x => { return x.code === item.type })[0].value:'不存在',\r\n // sim:item.sim,expire:item.expire,m_name:item.m_name,iccid:item.iccid,iccid_expire:item.iccid_expire,district_name:item.district_name,user_name:item.user_name,\r\n // })\r\n // })\r\n // setExportData(exportDevList);\r\n }\r\n })\r\n http.get(\"/v1/devicetype\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'devicetype', devicetype: data.data });\r\n }\r\n })\r\n\r\n http.get(\"/v1/district\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'district', district: data.data });\r\n setSelUserDis(data.data)\r\n }\r\n })\r\n http.get(\"/v1/users\", {}).then(data => {\r\n if (data.code === 0) {\r\n let temp = data.data.sort((a,b)=>a.name.localeCompare(b.name,'zh'));\r\n dispatch({ type: 'systemuser', systemuser: temp }) ; \r\n if(data.data.length>0){\r\n var list = [];\r\n temp.filter(x=>x.parent===state.main.id).map(m=>list.push(m.id+\"\"));\r\n setDefExpend(list); \r\n } \r\n }\r\n })\r\n }, [state.selUser_dev])\r\n\r\n const getDeviceStatus =()=>{\r\n let simToken;\r\n fetch(' http://www.hebeijiuchen.com/sim/user/login.do?username=17734552912&password=123456', { //物联网卡登录 接口请求地址\r\n method: 'get',\r\n })\r\n .then((resp) => {\r\n resp.json().then(res=>{\r\n simToken = res.token\r\n setSimToken(res.token)\r\n })\r\n }).catch((error) => {\r\n console.log(error);\r\n });\r\n http.get(\"/v1/devicestatus\", {}).then(data => {\r\n if (data.code === 0) {\r\n data.data.filter(x=>x.Node===1).map(m=>{\r\n if(m.Online){\r\n let tempEles = state.device.filter(x=>x.sn===m.Sn);\r\n if(tempEles.length>0 && tempEles[0].iccid.length===20 ){\r\n let r = getSimByIccid(tempEles[0].iccid,simToken);\r\n setTimeout(()=>{\r\n if(r.iccid_expire&&r.iccid_expire!==''){\r\n let now = new Date(r.iccid_expire).getTime()-new Date().getTime();\r\n if(now>365*24*60*60*1000){\r\n // form.setFieldsValue({iccid_expire:moment(r.iccid_expire, 'YYYY-MM-DD').subtract(1,'years')});\r\n }else{\r\n // form.setFieldsValue({iccid_expire:moment(r.iccid_expire, 'YYYY-MM-DD') })\r\n } \r\n }\r\n r.sim&&r.sim!==''&&(tempEles[0].sim = r.sim);\r\n },1000)\r\n // form.setFieldsValue({iccid: tempEles[0].iccid })\r\n }\r\n }\r\n })\r\n }\r\n })\r\n }\r\n const columns = [\r\n {\r\n title: '所属用户',\r\n align: 'center',\r\n width:300,\r\n render: (text, record) => (\r\n
\r\n {\r\n state.district.filter(x => x.id === record.district).length > 0 ?\r\n state.systemuser.list.filter(x => x.id === state.district.filter(x => x.id === record.district)[0].user).length > 0 ?\r\n state.systemuser.list.filter(x => x.id === state.district.filter(x => x.id === record.district)[0].user)[0].title : '无' : '无'\r\n }\r\n
\r\n ),\r\n className:Mode==='local'&&'notshow'\r\n },\r\n {\r\n title: '所属区域',\r\n width:260,\r\n dataIndex: 'district_name',\r\n // key: 'id',\r\n align: 'center',\r\n },\r\n //测点名称\r\n {\r\n title: '测点名称',\r\n dataIndex: 'name',\r\n width:260,\r\n // key: 'id',\r\n align: 'center',\r\n render: (value, record) => (\r\n
\r\n
\r\n {\r\n record.name\r\n }\r\n
\r\n
\r\n {\r\n 'ID:' + ((record.node * 1 < 10) ? '0' + record.node : record.node)\r\n }\r\n
\r\n
\r\n ),\r\n filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) =>\r\n (\r\n
\r\n {\r\n let val = e.target.value;\r\n setSelectedKeys(val ? [val] : [])\r\n }}\r\n onPressEnter={() => confirm()}\r\n style={{ marginBottom: 8, display: 'block' }}\r\n />\r\n \r\n \r\n confirm()}\r\n icon={}\r\n size=\"small\"\r\n style={{ width: 90 }}\r\n >\r\n 查找\r\n \r\n\r\n \r\n
\r\n ),\r\n onFilterDropdownVisibleChange: visible => {\r\n if (visible) {\r\n setTimeout(() => nodeSerch.current.focus({cursor: 'all'}), 100);//全选\r\n }\r\n },\r\n filterIcon: filtered => ,\r\n\r\n onFilter: (value, record) =>{\r\n return record['node']||record['name']? \r\n (record['node'].toString().toLowerCase().includes(value.toLowerCase()) ||\r\n record['name'].toLowerCase().includes(value.toLowerCase()))\r\n : ''\r\n }\r\n ,\r\n },\r\n //主机名称\r\n {\r\n title: '主机名称',\r\n dataIndex: 'm_name',\r\n width:160,\r\n // key: 'id',\r\n align: 'center',\r\n render: (value, record) => (\r\n
\r\n
\r\n {\r\n record.m_name\r\n }\r\n
\r\n
\r\n {\r\n record.sn\r\n }\r\n
\r\n
\r\n ),\r\n filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) =>\r\n (\r\n
\r\n {\r\n setSelectedKeys(e.target.value ? [e.target.value] : [])\r\n }}\r\n onPressEnter={() => confirm()}\r\n style={{ marginBottom: 8, display: 'block' }}\r\n />\r\n \r\n \r\n confirm()}\r\n icon={}\r\n size=\"small\"\r\n style={{ width: 90 }}\r\n >\r\n 查找\r\n \r\n\r\n \r\n
\r\n ),\r\n onFilterDropdownVisibleChange: visible => {\r\n if (visible) {\r\n setTimeout(() => devSerch.current.focus({cursor: 'all'}), 100);\r\n }\r\n },\r\n filterIcon: filtered => ,\r\n\r\n onFilter: (value, record) =>\r\n record['m_name']||record['sn']\r\n ? record['m_name'].toString().toLowerCase().includes(value.toLowerCase())||record['sn'].toString().toLowerCase().includes(value.toLowerCase())\r\n : '',\r\n },\r\n //设备类型\r\n {\r\n title: '设备类型',\r\n dataIndex: 'type',\r\n width:80,\r\n // key: 'id',\r\n align: 'center',\r\n sorter: {\r\n compare:(a, b) => a.type - b.type,\r\n multiple: 5,\r\n },\r\n render: (text, record) => (\r\n
\r\n {\r\n state.devicetype.filter(x => { return x.code === record.type }).length > 0 ? state.devicetype.filter(x => { return x.code === record.type })[0].value : '无'\r\n }\r\n
\r\n )\r\n },\r\n //SIM卡号\r\n {\r\n title: 'SIM卡号',\r\n width:120,\r\n dataIndex: 'sim',\r\n // key: 'id',\r\n align: 'center',\r\n sorter: {\r\n compare: (a, b) => a.sim - b.sim,\r\n multiple: 1,\r\n },\r\n filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) =>\r\n (\r\n
\r\n {\r\n setSelectedKeys(e.target.value ? [e.target.value] : [])\r\n }}\r\n onPressEnter={() => confirm()}\r\n style={{ marginBottom: 8, display: 'block' }}\r\n />\r\n \r\n \r\n confirm()}\r\n icon={}\r\n size=\"small\"\r\n style={{ width: 90 }}\r\n >\r\n 查找\r\n \r\n\r\n \r\n
\r\n ),\r\n onFilterDropdownVisibleChange: visible => {\r\n if (visible) {\r\n setTimeout(() => simSerch.current.focus({cursor: 'all'}), 100);\r\n }\r\n },\r\n filterIcon: filtered => ,\r\n\r\n onFilter: (value, record) =>\r\n record['sim']\r\n ? record['sim'].includes(value)\r\n : '',\r\n },\r\n //添加时间\r\n // {\r\n // title: '添加时间',\r\n // dataIndex: 'time',\r\n // width:100,\r\n // // key: 'id',\r\n // align: 'center',\r\n // sorter:{\r\n // compare: (a, b) => Date.parse(a.time.replace(/T|Z/g, ' ').trim()) - Date.parse(b.time.replace(/T|Z/g, ' ').trim()),\r\n // multiple: 2,\r\n // },\r\n // render:(text, record)=>text= text.slice(0,10)\r\n \r\n // },\r\n //设备到期时间\r\n {\r\n title: '设备到期时间',\r\n dataIndex: 'expire',\r\n width:100,\r\n align: 'center',\r\n sorter: {\r\n compare:(a, b) => Date.parse(a.expire.replace(/T|Z/g, ' ').trim()) - Date.parse(b.expire.replace(/T|Z/g, ' ').trim()),\r\n multiple: 3,\r\n },\r\n render:(text, record)=>text= text.slice(0,10),\r\n className:Mode==='local'&&'notshow'\r\n },\r\n //卡到期时间\r\n {\r\n title: '卡到期时间',\r\n dataIndex: 'iccid_expire',\r\n width:100,\r\n align: 'center',\r\n sorter: {\r\n compare:(a, b) => Date.parse(a.iccid_expire.replace(/T|Z/g, ' ').trim()) - Date.parse(b.iccid_expire.replace(/T|Z/g, ' ').trim()),\r\n multiple: 3,\r\n },\r\n render:(text, record)=>text= text?text.slice(0,10):'',\r\n className:(Mode==='local'||state.main.type>101)&&'notshow'\r\n },\r\n //状态\r\n {\r\n title: '状态',\r\n dataIndex: 'expirestatus',\r\n width:80,\r\n align: 'center',\r\n sorter: {\r\n compare:(a, b) => Date.parse(a.expire.replace(/T|Z/g, ' ').trim()) - Date.parse(b.expire.replace(/T|Z/g, ' ').trim()),\r\n multiple: 4,\r\n },\r\n render: (text, record) => {\r\n let days = parseInt((new Date(record.expire).getTime() - new Date().getTime()) / 1000 / 60 / 60 / 24);\r\n return (\r\n
\r\n {\r\n days < 0 ? '已到期' : days < 30 ? '即将到期' : '正常'\r\n }\r\n
\r\n )},\r\n filters: [\r\n {\r\n text: '正常',\r\n value: 2\r\n },\r\n {\r\n text: '即将到期',\r\n value: 1\r\n },\r\n {\r\n text: '已到期',\r\n value: 0\r\n },\r\n ],\r\n // filteredValue: defFilter ,\r\n onFilter: (value, record) => {\r\n if (value === 2) return parseInt((new Date(record.expire).getTime() - new Date().getTime()) / 1000 / 60 / 60 / 24) >= 30;\r\n if (value === 1) return (parseInt((new Date(record.expire).getTime() - new Date().getTime()) / 1000 / 60 / 60 / 24) >= 0 && parseInt((new Date(record.expire).getTime() - new Date().getTime()) / 1000 / 60 / 60 / 24) < 30);\r\n if (value === 0) return parseInt((new Date(record.expire).getTime() - new Date().getTime()) / 1000 / 60 / 60 / 24) < 0;\r\n },\r\n className:Mode==='local'&&'notshow'\r\n },\r\n {\r\n title: 'IMEI',\r\n dataIndex: 'imei',\r\n align: 'center',\r\n width:100,\r\n className:(Mode==='local'||state.main.type>101)&&'notshow',\r\n },\r\n {\r\n title: '备注',\r\n dataIndex: 'custom',\r\n align: 'center',\r\n width:100,\r\n className:(Mode==='local'||state.main.type>101)&&'notshow',\r\n },\r\n {\r\n title: '操作',\r\n dataIndex: 'operation',\r\n align: 'center',\r\n render: (text, record) => (\r\n
\r\n \r\n \r\n {\r\n Mode==='soc'&& state.main.type<102 &&\r\n \r\n }\r\n \r\n
\r\n ),\r\n },\r\n ]\r\n const onStart = (event, uiData) => {\r\n const { clientWidth, clientHeight } = window.document.documentElement;\r\n const targetRect = draggleRef.current?.getBoundingClientRect();\r\n if (!targetRect) return;\r\n setModalBounds({\r\n left: -targetRect.left + uiData.x,\r\n right: clientWidth - (targetRect.right - uiData.x),\r\n top: -targetRect.top + uiData.y,\r\n bottom: clientHeight - (targetRect.bottom - uiData.y),\r\n });\r\n };\r\n const onfinish = (values) => {\r\n const {cardedittime,simauto,cardedittimeauto,...newvalues} = values\r\n if (changeDev) {\r\n if(Mode==='soc'){\r\n http.put(\"/v1/device/\" + actDevice.id, {\r\n ...newvalues,\r\n status: actDevice.status, node: Number(values.node), \r\n sn: Number(values.sn),\r\n humi: values.humi ? 1 : 0,\r\n door_alarm: values.door_alarm ? 1 : 0,\r\n hide: values.hide ? 1 : 0,\r\n power_alarm: values.power_alarm ? 1 : 0,\r\n status: values.status ? 1 : 0,\r\n expire:values.expire? values.expire.format(\"YYYY-MM-DD 00:00:00\"):formatDateTimes(actDevice.expire),\r\n time: values.time?values.time.format(\"YYYY-MM-DD 00:00:00\"):formatDateTimes(actDevice.time),\r\n iccid_expire:values.iccid_expire?values.iccid_expire.format(\"YYYY-MM-DD 00:00:00\"):actDevice.iccid_expire,\r\n imei:actDevice.imei,\r\n custom:actDevice.custom\r\n }).then((data) => {\r\n http.get(\"/v1/device\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'device', device: data.data.sort((a,b)=>a.sn-b.sn) })\r\n let temp=[];\r\n if(selDis.length===0&&selUser===0){\r\n temp=data.data;\r\n }else if(selDis.length===0&&selUser>0){\r\n let userDis = state.district.filter(x=>x.user===selUser);\r\n findUserDis(selUser,state.systemuser.list,state.district,userDis);\r\n userDis.map(item=>{\r\n temp= temp.concat(data.data.filter(x=>x.district === item.id));\r\n })\r\n }else if(selDis.length>0){\r\n selDis.map(item=>{\r\n temp= temp.concat(data.data.filter(x=>x.district === item));\r\n })\r\n }\r\n setTableData(temp);\r\n }\r\n })\r\n })\r\n }else{\r\n http.put(\"/v1/device/\" + actDevice.id, {\r\n ...newvalues,\r\n status: values.status?1:0, node: Number(values.node),\r\n sn: Number(values.sn),\r\n humi: values.humi ? 1 : 0,\r\n door_alarm: values.door_alarm ? 1 : 0,\r\n hide: values.hide ? 1 : 0,\r\n power_alarm: values.power_alarm ? 1 : 0,\r\n expire:values.expire? values.expire.format(\"YYYY-MM-DD 00:00:00\"):formatDateTimes(actDevice.expire),\r\n time: values.time?values.time.format(\"YYYY-MM-DD 00:00:00\"):formatDateTimes(actDevice.time),\r\n }).then((data) => {\r\n http.get(\"/v1/device\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'device', device: data.data.sort((a,b)=>a.sn-b.sn) })\r\n let temp=[];\r\n if(selDis.length===0&&selUser===0){\r\n temp=data.data;\r\n }else if(selDis.length===0&&selUser>0){\r\n let userDis = state.district.filter(x=>x.user===selUser);\r\n findUserDis(selUser,state.systemuser.list,state.district,userDis);\r\n userDis.map(item=>{\r\n temp= temp.concat(data.data.filter(x=>x.district === item.id));\r\n })\r\n }else if(selDis.length>0){\r\n selDis.map(item=>{\r\n temp= temp.concat(data.data.filter(x=>x.district === item));\r\n })\r\n }\r\n setTableData(temp);\r\n }\r\n })\r\n })\r\n }\r\n \r\n } else {\r\n if(Mode==='soc'){\r\n http.post(\"/v1/device\", {\r\n ...values,\r\n node: Number(values.node),\r\n sn: Number(values.sn),\r\n humi: values.humi ? 1 : 0,\r\n door_alarm: values.door_alarm ? 1 : 0,\r\n power_alarm: values.power_alarm ? 1 : 0,\r\n hide: values.hide ? 1 : 0,\r\n status: values.status ? 1 : 0,\r\n expire: values.expire?values.expire.format(\"YYYY-MM-DD 00:00:00\"):formatDateTimes(actDevice.expire),\r\n time: values.time?values.time.format(\"YYYY-MM-DD 00:00:00\"):formatDateTimes(actDevice.time),\r\n iccid_expire:values.iccid_expire?values.iccid_expire.format(\"YYYY-MM-DD 00:00:00\"):actDevice.iccid_expire+' 00:00:00'\r\n }).then((data) => {\r\n http.get(\"/v1/device\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'device', device: data.data.sort((a,b)=>a.sn-b.sn) });\r\n let temp=[];\r\n if(selDis.length===0&&selUser===0){\r\n temp=data.data;\r\n }else if(selDis.length===0&&selUser>0){\r\n let userDis = state.district.filter(x=>x.user===selUser);\r\n findUserDis(selUser,state.systemuser.list,state.district,userDis);\r\n userDis.map(item=>{\r\n temp= temp.concat(data.data.filter(x=>x.district === item.id));\r\n })\r\n }else if(selDis.length>0){\r\n selDis.map(item=>{\r\n temp= temp.concat(data.data.filter(x=>x.district === item));\r\n })\r\n }\r\n setTableData(temp);\r\n }\r\n })\r\n })\r\n }else{\r\n http.post(\"/v1/device\", {\r\n ...values,\r\n node: Number(values.node),\r\n sn: Number(values.sn),\r\n humi: values.humi ? 1 : 0,\r\n door_alarm: values.door_alarm ? 1 : 0,\r\n power_alarm: values.power_alarm ? 1 : 0,\r\n hide: values.hide ? 1 : 0,\r\n status: values.status ? 1 : 0,\r\n expire: values.expire?values.expire.format(\"YYYY-MM-DD 00:00:00\"):formatDateTimes(actDevice.expire),\r\n time: values.time?values.time.format(\"YYYY-MM-DD 00:00:00\"):formatDateTimes(actDevice.time),\r\n }).then((data) => {\r\n http.get(\"/v1/device\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'device', device: data.data.sort((a,b)=>a.sn-b.sn) });\r\n let temp=[];\r\n if(selDis.length===0&&selUser===0){\r\n temp=data.data;\r\n }else if(selDis.length===0&&selUser>0){\r\n let userDis = state.district.filter(x=>x.user===selUser);\r\n findUserDis(selUser,state.systemuser.list,state.district,userDis);\r\n userDis.map(item=>{\r\n temp= temp.concat(data.data.filter(x=>x.district === item.id));\r\n })\r\n }else if(selDis.length>0){\r\n selDis.map(item=>{\r\n temp= temp.concat(data.data.filter(x=>x.district === item));\r\n })\r\n }\r\n setTableData(temp);\r\n }\r\n })\r\n })\r\n }\r\n \r\n }\r\n\r\n }\r\n return (\r\n
\r\n
\r\n {\r\n Mode==='soc'&& {\r\n setSelDis([]);//清空关联区域\r\n if(value===undefined||value===0){//清空用户选择\r\n setTableData(state.device);//默认全部\r\n setSelUserDis(state.district);//清空已选择用户的区域\r\n setSelUser(0);//清空选择用户给区域选择提供判定条件\r\n }else{\r\n setSelUser(value);\r\n let userDis = state.district.filter(x=>x.user===value);\r\n findUserDis(value,state.systemuser.list,state.district,userDis);\r\n let temp=[];\r\n setSelUserDis(userDis);\r\n userDis.map(item=>{\r\n temp= temp.concat(state.device.filter(x=>x.district === item.id));\r\n })\r\n setTableData(temp);\r\n } \r\n \r\n }}\r\n // treeData={[{title:'全部',value:'全部'}].concat(state.systemuser.tree)}\r\n treeData={state.systemuser.treeM}\r\n filterOption={(input, option) =>\r\n option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0\r\n }\r\n />\r\n }\r\n \r\n {`主机数量:${tableData.filter(x=>x.node ===1).length}`}\r\n {`状态位数量:${tableData.filter(x=>x.node===0).length}`}\r\n {`测点数量:${tableData.filter(x=>x.node!==0).length}`}\r\n {`显示条数:${tableData.length}`}\r\n
\r\n
\r\n {\r\n state.main.type<102&&\r\n \r\n }\r\n {\r\n state.main.type<103&&\r\n \r\n }\r\n \r\n
\r\n
record.id} columns={columns} size='small' dataSource={tableData} loading={tableLoad}\r\n rowClassName={record=>{\r\n // let days = parseInt((new Date(record.expire).getTime() - new Date().getTime()) / 1000 / 60 / 60 / 24);\r\n // if (days<-20){\r\n // // console.log(record);\r\n // return 'expireLong'\r\n // }\r\n if(state.super>1){//超级管理权限\r\n return record.status===1?'socDevice':record.hide===1?'hideDevice':''\r\n }}} \r\n onChange={(page,fil)=>{\r\n setFilterCol(fil)\r\n }}\r\n scroll={{y:650}}\r\n />\r\n {\r\n setModalMoveDisabled(false);\r\n }}\r\n onMouseOut={() => {\r\n setModalMoveDisabled(true);\r\n }}\r\n >\r\n 新增设备\r\n \r\n } visible={showNewModel}\r\n destroyOnClose \r\n modalRender={modal => (\r\n \r\n
{modal}
\r\n \r\n )}\r\n cancelText='取消'\r\n width={600}\r\n okText='确定'\r\n onOk={() => {\r\n console.log('点击增加设备');\r\n form.submit();\r\n }}\r\n onCancel={() => {\r\n setShowNewModel(false)\r\n dispatchDevice({ type: 'clear' })\r\n }}>\r\n \r\n \r\n \r\n
\r\n {\r\n setModalMoveDisabled(false);\r\n }}\r\n onMouseOut={() => {\r\n setModalMoveDisabled(true);\r\n }}\r\n >\r\n 修改设备\r\n \r\n } visible={showFixModel}\r\n destroyOnClose style={{cursor: 'move'}}\r\n modalRender={modal => (\r\n \r\n
{modal}
\r\n \r\n )}\r\n cancelText='取消'\r\n // footer={false}\r\n width={600}\r\n okText='确定'\r\n onOk={() => {\r\n form.submit()\r\n }}\r\n onCancel={() => {\r\n setShowFixModel(false)\r\n changeDev = false;\r\n dispatchDevice({ type: 'clear' })\r\n }}>\r\n \r\n \r\n \r\n
\r\n {\r\n setModalMoveDisabled(false);\r\n }}\r\n onMouseOut={() => {\r\n setModalMoveDisabled(true);\r\n }}\r\n >\r\n 设备备注\r\n \r\n } visible={showDevC}\r\n destroyOnClose style={{cursor: 'move'}}\r\n modalRender={modal => (\r\n \r\n
{modal}
\r\n \r\n )}\r\n cancelText='取消'\r\n // footer={false}\r\n width={600}\r\n okText='确定'\r\n onOk={() => {\r\n http.post(\"/v1/devicecustom/\"+selDevCID, {\r\n custom:devCustom\r\n }).then(res=>{\r\n http.get(\"/v1/device\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'device', device: data.data.sort((a,b)=>a.sn-b.sn) })\r\n let temp=[];\r\n if(selDis.length===0&&selUser===0){\r\n temp=data.data;\r\n }else if(selDis.length===0&&selUser!==0){\r\n let userDis = state.district.filter(x=>x.user===selUser);\r\n findUserDis(selUser,state.systemuser.list,state.district,userDis);\r\n userDis.map(item=>{\r\n temp= temp.concat(data.data.filter(x=>x.district === item.id));\r\n })\r\n }else if(selDis.length>0){\r\n selDis.map(item=>{\r\n temp= temp.concat(data.data.filter(x=>x.district === item));\r\n })\r\n }\r\n setTableData(temp);\r\n }\r\n })\r\n setShowDevC(false)\r\n })\r\n }}\r\n onCancel={() => {\r\n setShowDevC(false)\r\n }}>\r\n
\r\n {\r\n setDevCustom(e.target.value)\r\n }}/>\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default DeviceManage","import React, { createContext, useContext, useEffect, useState, useReducer } from 'react'\r\nimport { Table, Button, Input, Select, Modal, Upload, InputNumber, message, Tooltip } from 'antd'\r\nimport { StateContext } from '../../../state';\r\nimport http from '../../../../../utils/server'\r\nimport { ExclamationCircleOutlined,UploadOutlined, EnvironmentOutlined } from '@ant-design/icons';\r\nimport { Mode } from '../../../../../App';\r\nimport smoke from '../../../../../../public/assets/Smoke.png'\r\n\r\nfunction SelectInput(props) {\r\n return (\r\n
\r\n
{props.addonBefore}
\r\n \r\n
\r\n )\r\n}\r\n\r\nconst HMIContext = createContext();\r\n\r\nfunction HmiNew() {\r\n const { actHmi, dispatchHmi } = useContext(HMIContext)\r\n const { state } = useContext(StateContext)\r\n return (\r\n
\r\n { dispatchHmi({ type: 'update', hmi: { ...actHmi, name: e.target.value } }) }} />\r\n { dispatchHmi({ type: 'update', hmi: { ...actHmi, district: value } }) }} />\r\n { dispatchHmi({ type: 'update', hmi: { ...actHmi, index: Number(e.target.value) } }) }} />\r\n
\r\n )\r\n}\r\n\r\nfunction HMIManage() {\r\n const { state, dispatch } = useContext(StateContext)\r\n const [actHmi, dispatchHmi] = useReducer((state, action) => {\r\n if (action.type === 'update') {\r\n return action.hmi\r\n } else if (action.type === 'clear') {\r\n return {\r\n name: \"\",\r\n layout: '',\r\n index: \"\",\r\n district: \"\",\r\n image:\"\",\r\n }\r\n }\r\n }, []);\r\n const [showNewModel, setShowNewModel] = useState(false)\r\n const [showFixModel, setShowFixModel] = useState(false)\r\n const[devices, setDevices] = useState(0);//区域内设备\r\n const[editVisb, setEditVisb] = useState(false);//编辑窗口状态\r\n const[xRelative, setXRelative] = useState(0);//添加测点的X坐标\r\n const[yRelative, setYRelative] = useState(0);//添加测点的Y坐标\r\n const[newVisb, setNewVisb] = useState(false);//添加测点弹窗\r\n const[editPointVisb, setEditPointVisb] = useState(false);//修改测点弹窗\r\n const[deviceInfo, setDeviceInfo] = useState({fontColor:'blue',fontSize:18});//当前测点的信息\r\n const[devicesInfo, setDevicesInfo] = useState([]);//平面图内所有测点的信息\r\n const[addMapEle, setAddMapEle] = useState('');//平面图背景区域元素\r\n const[isMouseDown, setIsMouseDown]= useState(false);//是否触发事件\r\n const[isMoving,setIsMoving] = useState(false);//是否开始移动\r\n const[moveEle,setMoveEle] = useState({});//移动的元素\r\n const[moveDevInfo,setMoveDevInfo] = useState({});//移动的元素\r\n function handleChange(info) {\r\n if (info.file.status === 'uploading') {\r\n return;\r\n }\r\n if (info.file.status === 'done') {\r\n // Get this url from response in real world.\r\n dispatchHmi({ type: 'update', hmi: {...actHmi,image:info.file.response.data.path} });\r\n console.log(actHmi.image);\r\n // dispatchUser({ type: 'update', user: { ...actUser, logo: info.file.response.data.path } })\r\n }\r\n };\r\n useEffect(() => {\r\n http.get(\"/v1/layout\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'hmi', hmi: data.data })\r\n }\r\n })\r\n http.get(\"/v1/district\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'district', district: data.data })\r\n }\r\n })\r\n http.get(\"/v1/users\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'systemuser', systemuser: data.data.sort((a,b)=>a.name.localeCompare(b.name,'zh')) })\r\n }\r\n })\r\n http.get(\"/v1/device\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'device', device: data.data })\r\n } \r\n })\r\n\r\n }, [])\r\n const columns = [\r\n {\r\n title: '平面图名称',\r\n dataIndex: 'name',\r\n key: 'name',\r\n align: 'center',\r\n },\r\n {\r\n title: '所属区域',\r\n dataIndex: 'district',\r\n key: 'district',\r\n align: 'center',\r\n render: (text, record) => (\r\n
\r\n {\r\n state.district.filter(x => { return x.id === record.district }).length > 0 ? state.district.filter(x => { return x.id === record.district })[0].name : '无'\r\n }\r\n
\r\n )\r\n },\r\n {\r\n title: '操作',\r\n dataIndex: 'operation',\r\n key: 'operation',\r\n align: 'right',\r\n width: '200px',\r\n render: (text, record) => (\r\n
\r\n \r\n \r\n \r\n
\r\n ),\r\n },\r\n ]\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
record.id} columns={columns} size='small' dataSource={state.hmi} \r\n scroll={{y:650}}\r\n />\r\n {\r\n setShowNewModel(false)\r\n dispatchHmi({ type: 'clear', project_id: state.main.project_id })\r\n http.post(\"/v1/layout\", actHmi).then((data) => {\r\n http.get(\"/v1/layout\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'hmi', hmi: data.data })\r\n }\r\n })\r\n })\r\n }}\r\n onCancel={() => {\r\n setShowNewModel(false)\r\n dispatchHmi({ type: 'clear', project_id: state.main.project_id })\r\n }}>\r\n \r\n \r\n \r\n \r\n {\r\n setShowFixModel(false)\r\n dispatchHmi({ type: 'clear', project_id: state.main.project_id })\r\n http.put(\"/v1/layout/\" + actHmi.id, actHmi).then((data) => {\r\n http.get(\"/v1/layout\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'hmi', hmi: data.data })\r\n }\r\n })\r\n })\r\n }}\r\n onCancel={() => {\r\n setShowFixModel(false)\r\n dispatchHmi({ type: 'clear', project_id: state.main.project_id })\r\n }}>\r\n \r\n \r\n \r\n \r\n {\r\n if(actHmi.name==='') return message.error('平面图名称为空');\r\n http.put('/v1/layout/' + actHmi.id,{ ...actHmi, layout:JSON.stringify(devicesInfo)})\r\n .then(data=>{\r\n if(data.code===0&&data.msg==='OK'){\r\n http.get(\"/v1/layout\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'hmi', hmi: data.data })\r\n } \r\n })\r\n }\r\n })\r\n setAddMapEle('');setDeviceInfo({});setDevicesInfo([]);\r\n setEditVisb(false);\r\n }}\r\n onCancel={() => {\r\n setAddMapEle('');setDeviceInfo({});setDevicesInfo([]);\r\n setEditVisb(false);\r\n }}>\r\n
\r\n
\r\n 平面图名称:\r\n { dispatchHmi({ type: 'update', hmi: { ...actHmi, name: e.target.value } }) }} />\r\n \r\n 显示顺序: \r\n { dispatchHmi({ type: 'update', hmi: { ...actHmi, index: e} }) }} />\r\n \r\n {/* 上传平面图 */}\r\n \r\n {\r\n \r\n \r\n }\r\n \r\n \r\n
\r\n
{\r\n e.preventDefault();\r\n if(addMapEle==\"\")return message.error('请先点击显示测点');\r\n let tempEle= document.getElementById('view');\r\n // setAddMapEle(tempEle);\r\n let menuListEle= document.getElementById('menuList');\r\n let tempEleX = tempEle.getBoundingClientRect().x;\r\n let tempEleY = tempEle.getBoundingClientRect().y;\r\n let xRelative = e.clientX-tempEleX+tempEle.scrollLeft-10;\r\n let yRelative = e.clientY-tempEleY+tempEle.scrollTop-20;\r\n setXRelative(xRelative);\r\n setYRelative(yRelative);\r\n let xPercent = xRelative/tempEle.scrollWidth;\r\n let yPercent = yRelative/tempEle.scrollHeight;\r\n console.log(xRelative,xPercent);\r\n console.log(yRelative,yPercent);\r\n setDeviceInfo({...deviceInfo,xPercent:xPercent,yPercent:yPercent});\r\n menuListEle.style.display='block';\r\n }}\r\n onMouseMove={e=>{\r\n let tempEle=document.getElementById('view');\r\n let tClient = tempEle.getBoundingClientRect();\r\n if(isMoving&&Object.keys(moveEle).length!==0&&addMapEle){\r\n moveEle.style.top=e.clientY-tClient.top+tempEle.scrollTop-20+'px';\r\n moveEle.style.left=e.clientX-tClient.left+tempEle.scrollLeft+'px';\r\n moveDevInfo.xPercent=(e.clientX-tClient.left+tempEle.scrollLeft)/addMapEle.width;\r\n moveDevInfo.yPercent=(e.clientY-tClient.top+tempEle.scrollTop-20)/addMapEle.height;\r\n }\r\n if(!isMoving){\r\n if(devicesInfo.length!==0){\r\n let temp = devicesInfo.findIndex(x=>x.xPercent*addMapEle.width+tClient.xe.clientX-60+tempEle.scrollLeft\r\n &&x.yPercent*addMapEle.height+tClient.ye.clientY+tempEle.scrollTop-60\r\n );\r\n setIsMouseDown(temp!==-1?true:false);\r\n }\r\n }\r\n }}\r\n // onMouseOver={e=>{\r\n // let tempEle=document.getElementById('view');\r\n // console.log(tempEle);\r\n // console.log(e.clientY+tempEle.scrollTop+30);\r\n // if(devicesInfo.length!==0){\r\n \r\n // let temp = devicesInfo.findIndex(x=>x.xPercent*addMapEle.width+tempEle.xe.clientX-30+tempEle.scrollLeft\r\n // &&x.yPercent*addMapEle.height+tempEle.ye.clientY+tempEle.scrollTop-30);\r\n // setIsMouseDown(temp!==-1?true:false);\r\n \r\n // }\r\n // }}\r\n onMouseDown={e=>{\r\n if(isMouseDown){\r\n setIsMoving(true);\r\n let tempEle=document.getElementById('view');\r\n let tClient = tempEle.getBoundingClientRect();\r\n let temp = devicesInfo.findIndex(x=>x.xPercent*addMapEle.width+tClient.xe.clientX-60+tempEle.scrollLeft\r\n &&x.yPercent*addMapEle.height+tClient.ye.clientY+tempEle.scrollTop-60\r\n );\r\n setMoveEle(temp!==-1?document.getElementById(`point${temp}`):{});\r\n setMoveDevInfo(temp!==-1?devicesInfo[temp]:{});\r\n }\r\n }}\r\n onMouseUp={e=>{\r\n if(devicesInfo.length!==0){\r\n let tempEle=document.getElementById('view');\r\n let tClient = tempEle.getBoundingClientRect();\r\n if(tClient.lefte.clientX&&tClient.tope.clientY){\r\n setIsMoving(false);\r\n }\r\n }\r\n }}\r\n onClick={()=>{\r\n let menuListEle= document.getElementById('menuList');\r\n menuListEle.style.display='none';\r\n }}\r\n >\r\n
\r\n \"\"\r\n {\r\n devicesInfo.length!==0&&\r\n devicesInfo.map((item,index)=>{\r\n // console.log(item);\r\n let temp =state.device.filter(x=>x.id===item.devID).length>0?state.device.filter(x=>x.id===item.devID)[0]\r\n :'';\r\n return(\r\n \r\n {\r\n item.devSensorType===1?\r\n
\r\n \"\"\r\n {/*
\r\n
正常
\r\n
*/}\r\n
\r\n :\r\n
\r\n
\r\n }\r\n \r\n
\r\n )\r\n })\r\n }\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n setNewVisb(false)}\r\n onOk={()=>{\r\n if(deviceInfo.devID===undefined) return message.error('没有选择测点');\r\n setNewVisb(false);\r\n let tempArr=devicesInfo;\r\n tempArr.push(deviceInfo)\r\n setDevicesInfo(tempArr); \r\n }}\r\n >\r\n
\r\n
\r\n 显示颜色\r\n \r\n
\r\n
\r\n 字体大小\r\n \r\n
\r\n
\r\n 选择测点\r\n \r\n
\r\n
\r\n 测点类型\r\n \r\n
\r\n
\r\n
\r\n setEditPointVisb(false)}\r\n onOk={()=>{\r\n if(deviceInfo.devID===undefined) return message.error('没有选择测点');\r\n setEditPointVisb(false);\r\n let tempArr=devicesInfo.concat();\r\n tempArr.splice(deviceInfo.editId,1);\r\n tempArr.push(deviceInfo)\r\n setDevicesInfo(tempArr); \r\n }}\r\n >\r\n
\r\n
\r\n 显示颜色\r\n \r\n
\r\n
\r\n 字体大小\r\n \r\n
\r\n 选择测点\r\n \r\n
\r\n 测点类型\r\n \r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default HMIManage","import React, { createContext, useContext, useEffect, useState, useReducer } from 'react'\r\nimport { Table, Button, Input, Select, Modal, Checkbox, Row, Col, Upload, Form, TreeSelect ,DatePicker, Space,message, Menu, Dropdown} from 'antd'\r\nimport { StateContext } from '../../../state';\r\nimport http from '../../../../../utils/server'\r\nimport md5 from 'js-md5';\r\nimport AreaManage from '../Area/index'\r\nimport { LoadingOutlined, PlusOutlined, ExclamationCircleOutlined , SearchOutlined, DownOutlined} from '@ant-design/icons';\r\nimport \"./index.less\"\r\nimport moment from 'moment';\r\nimport Draggable from 'react-draggable';\r\n\r\nconst AreaContext = createContext();\r\n\r\nfunction findParentuser(nop, list, child) {\r\n if (list) {\r\n const nops = list.filter(x => { return x.parent === nop })\r\n if (nops.length === 0) {\r\n return\r\n } else {\r\n for (var j = 0; j < nops.length; j++) {\r\n var u = new Object\r\n u.key = nops[j].id\r\n u.name = nops[j].name\r\n u.type = nops[j].type\r\n u.parent = nops[j].parent\r\n u.id = nops[j].id\r\n u.title = nops[j].name\r\n u.titles = nops[j].title\r\n u.text = nops[j].name\r\n u.label = nops[j].name\r\n u.value = nops[j].id\r\n u.account = nops[j].account\r\n u.smscount = nops[j].smscount\r\n u.smssendcount = nops[j].smssendcount\r\n u.wechatcount = nops[j].wechatcount\r\n u.company = nops[j].company\r\n u.children = new Array()\r\n child.push(u);\r\n findParentuser(nops[j].id, list, u.children)\r\n }\r\n }\r\n }\r\n}\r\nfunction clearchildrenisZero(list) {\r\n for (var i = 0; i < list.length; i++) {\r\n if (list[i].children) {\r\n if (list[i].children.length === 0) {\r\n list[i].children = null\r\n } else {\r\n clearchildrenisZero(list[i].children)\r\n }\r\n }\r\n }\r\n}\r\nfunction UserNew() {\r\n const { actUser, dispatchUser, form, onfinishNew } = useContext(AreaContext)\r\n const { state } = useContext(StateContext)\r\n const [selectUserType, setSelectUserType] = useState(101)\r\n const [selectUserRole, setSelectUserRole] = useState([])\r\n const [isCompany, setIsCompany] = useState(false);\r\n const formRef = React.createRef();\r\n const [defExpend,setDefExpend]=useState([]);\r\n\r\n useEffect(() => {\r\n form.setFieldsValue(actUser);\r\n var userLogin = state.systemuser.list[0];\r\n var list = [];\r\n state.systemuser.list.filter(x=>x.parent===userLogin.id).map(m=>list.push(m.id+\"\"));\r\n setDefExpend(list);\r\n setIsCompany((state.main.type<103)?true:false);\r\n if(state.main.type>102){\r\n form.setFieldsValue({title:state.main.title,parent:state.main.id});\r\n setSelectUserType(state.main.type)//上级用户的类型\r\n setSelectUserRole(state.main.role.split(\",\").map(Number))//上级用户拥有的权限\r\n }\r\n form.setFieldsValue({\r\n company:(state.main.type<103)?1:0,\r\n title:(state.main.type<103)&&''\r\n });\r\n \r\n }, [])\r\n\r\n\r\n return (\r\n
\r\n \r\n \r\n {\r\n\r\n const u = state.systemuser.list.filter(x => { return x.id === value })\r\n if (u.length > 0 ) {\r\n setSelectUserType(u[0].type)//上级用户的类型\r\n setSelectUserRole(u[0].role.split(\",\").map(Number))//上级用户拥有的权限\r\n // formRef.current.setFieldsValue({\r\n // type: '',\r\n // company:0\r\n // })\r\n // setIsCompany(true);\r\n }\r\n }}\r\n />\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {\r\n var tempP = form.getFieldValue('parent');\r\n if(tempP==='') return message.warning('请先选择上级用户');\r\n setIsCompany(!isCompany);\r\n form.setFieldsValue({company:e.target.checked?1:0});\r\n if(!e.target.checked){\r\n let companyUser={};\r\n function findParent(nop,list){\r\n let temp = list.filter(x=>x.id===nop)\r\n if(temp.length===0){\r\n companyUser = {};\r\n return\r\n }else{\r\n if(temp[0].id===0) {\r\n companyUser = {};\r\n return\r\n }else if(temp[0].company===1){\r\n companyUser = temp[0]\r\n return\r\n }else{\r\n findParent(temp[0].parent,list);\r\n }\r\n }\r\n \r\n }\r\n findParent(tempP*1,state.systemuser.list);\r\n if(JSON.stringify(companyUser)==='{}')return message.warning('请先创建公司账号!!!!!!!!');\r\n formRef.current.setFieldsValue({\r\n title:companyUser.title\r\n })\r\n }\r\n else{\r\n formRef.current.setFieldsValue({\r\n title:''\r\n })\r\n }\r\n }}>\r\n \r\n
\r\n
\r\n {\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n ({\r\n validator(_, value) {\r\n if (!value || getFieldValue('password') === value) {\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(new Error('两次输入的密码不相同'));\r\n },\r\n }),\r\n ]}\r\n >\r\n \r\n \r\n\r\n \r\n {\r\n let elem = document.getElementById('form_company')\r\n value===104?elem.style.setProperty('display','none'):elem.style.setProperty('display','block')\r\n var userRole=[];\r\n let tempRole = state.main.type<102?selectUserRole:selectUserRole.filter(x=>x!==303);//不是admin没有历史数据管理分配权限\r\n tempRole.map(item=>{\r\n if(value===102&&item<315&&item!==303){\r\n userRole.push(item);\r\n }if(value===103&&item<310&&item!==303){\r\n userRole.push(item);\r\n }if(value===104&&item===301){\r\n userRole.push(item); \r\n }\r\n })\r\n formRef.current.setFieldsValue({\r\n roles:userRole\r\n })\r\n \r\n // value===102?setUserType(102):value===103?setUserType(103):setUserType(104);\r\n }}\r\n >\r\n {\r\n (selectUserType <= 102 && isCompany) ? \r\n \r\n 高级用户\r\n {/* 管理员 */}\r\n : null\r\n }\r\n {\r\n selectUserType <= 103 ? \r\n \r\n 管理用户\r\n {/* 技术员 */}\r\n : null\r\n }\r\n {\r\n !isCompany?\r\n \r\n 普通用户\r\n {/* 操作员 */}\r\n :null\r\n }\r\n \r\n \r\n \r\n \r\n {\r\n state.permissiontype.filter(x => selectUserRole.indexOf(x.code) > -1).map(item => (\r\n {item.value}\r\n ))\r\n }\r\n \r\n \r\n \r\n\r\n
\r\n )\r\n}\r\nfunction UserFix() {\r\n const { actUser, dispatchUser, form, onfinish, userParentRoles } = useContext(AreaContext)\r\n const { state } = useContext(StateContext)\r\n const [selectUserType, setSelectUserType] = useState(101)\r\n const [selectUserRole, setSelectUserRole] = useState([])\r\n const formRef = React.createRef();\r\n useEffect(() => {\r\n // console.log(state.main.type ,state.main.type > 103);\r\n form.setFieldsValue(actUser)\r\n setSelectUserRole(actUser.role.split(','));\r\n setSelectUserType(actUser.type);\r\n }, [])\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n (state.main.type < 103) ? \r\n \r\n 高级用户\r\n {/* 管理员 */}\r\n : null\r\n }\r\n {\r\n (state.main.type <= 103 &&selectUserType>=103)? \r\n \r\n 管理用户\r\n {/* 技术员 */}\r\n : null\r\n }\r\n \r\n 普通用户\r\n {/* 操作员 */}\r\n \r\n \r\n \r\n \r\n \r\n\r\n {\r\n state.permissiontype.map(item => (\r\n {item.value}\r\n ))\r\n }\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {\r\n state.main.type <102&&\r\n \r\n \r\n \r\n }\r\n {\r\n state.main.type <102&&\r\n \r\n 103} \r\n onChange ={e=>{\r\n if(e.target.checked){\r\n form.setFieldsValue({company:1});\r\n }else{\r\n var tempP = form.getFieldValue('parent');\r\n let companyUser={};\r\n function findParent(nop,list){\r\n let temp = list.filter(x=>x.id===nop)\r\n if(temp.length===0){\r\n companyUser = {};\r\n return\r\n }else{\r\n if(temp[0].id===0) {\r\n companyUser = {};\r\n return\r\n }else if(temp[0].company===1){\r\n companyUser = temp[0]\r\n return\r\n }else{\r\n findParent(temp[0].parent,list);\r\n }\r\n }\r\n \r\n }\r\n findParent(tempP*1,state.systemuser.list);\r\n formRef.current.setFieldsValue({\r\n title:companyUser.title,\r\n company:0\r\n })\r\n }\r\n \r\n }}\r\n />\r\n \r\n }\r\n
\r\n \r\n \r\n )\r\n}\r\nfunction UserManage() {\r\n const [form] = Form.useForm()\r\n const { state, dispatch } = useContext(StateContext)\r\n const [actUser, dispatchUser] = useReducer((state, action) => {\r\n if (action.type === 'update') {\r\n return action.user\r\n } else if (action.type === 'clear') {\r\n return {\r\n role: '',\r\n roles: [],\r\n password: \"\",\r\n phone: '',\r\n name: '',\r\n account: '',\r\n npw1: '',\r\n npw2: '',\r\n parent:'',\r\n type:''\r\n }\r\n }\r\n return state\r\n },[]);\r\n const [showNewModel, setShowNewModel] = useState(false)\r\n const [showFixModel, setShowFixModel] = useState(false)\r\n\r\n const [showLogo, setShowLogo] = useState(false)\r\n const [logoloading, setLogoLoading] = useState(false)\r\n const [showArea, setShowArea] = useState(false)\r\n const [showSelectArea, setShowSelectArea] = useState(false)\r\n const [userSelectArea, setUserSelectArea] = useState({ user: 0, district: [] })\r\n const [selArea, setSelArea] = useState({});//选中的区域信息\r\n const [reSetPassWord, setReSetPassWord] = useState('')\r\n const [isreSetPassWord, setIsReSetPassWord] = useState(false);\r\n const [userParentRoles, setUserParentRoles] = useState('');\r\n const [showNotify, setShowNotify] = useState(false);\r\n const [showSms, setShowSms] = useState(false);//短信分配弹窗\r\n const [showPhone, setShowPhone] = useState(false);//短信分配弹窗\r\n const [showWx, setShowWx] = useState(false);//微信报警数量修改弹窗\r\n const [userRecord, setUserRecord] = useState({});//当前用户\r\n const [smsNum, setSmsNum] = useState(0);//分配短信数量\r\n const [phoneNum, setPhoneNum] = useState(0);//分配语音数量\r\n const [wxCount, setWxCount] = useState(0);//每日微信报警数量\r\n const [todo_time, setTodo_time] = useState(moment().add(1,'years').format('yyyy-MM-DD'));\r\n const [modalBounds,setModalBounds] = useState({left: 0, top: 0, bottom: 0, right: 0 });//对话框移动坐标\r\n const [modalMoveDisabled, setModalMoveDisabled] = useState(true);//对话框拖动功能关闭\r\n const draggleRef = React.createRef();//对话框移动\r\n const [userdistricts,setUserdistricts]=useState([]);//普通用户下分配的区域\r\n const [defExpend,setDefExpend]=useState([]);//默认展开treeselect\r\n const [serchUser, setSerchUser]=useState([]);\r\n const [custom,setCustom] = useState('');\r\n const [showCustom,setShowCustom] = useState(false)\r\n useEffect(() => {\r\n http.get(\"/v1/permissiontype\", {}).then(data => {\r\n if (data.code === 0) {\r\n let temp=state.main.type<102?data.data:data.data.filter(x=>x.id!==11);//admin有所有权限 其他用户没有历史数据管理的分配权限\r\n dispatch({ type: 'permissiontype', permissiontype: temp })\r\n }\r\n })\r\n http.get(\"/v1/district\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'district', district: data.data })\r\n }\r\n })\r\n http.get(\"/v1/device\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'device', device: data.data })\r\n }\r\n })\r\n http.get(\"/v1/users\", {}).then(data => {\r\n if (data.code === 0) {\r\n let temp = data.data.sort((a,b)=>a.name.localeCompare(b.name,'zh'));\r\n dispatch({ type: 'systemuser', systemuser: temp })\r\n var list = [];\r\n temp.filter(x=>x.parent===state.main.id).map(m=>list.push(m.id+\"\"));\r\n setDefExpend(list);\r\n \r\n }\r\n })\r\n http.get(\"/v1/userdistricts\", {}).then(data => {\r\n if (data.code === 0) {\r\n // dispatch({ type: 'systemuser', systemuser: data.data })\r\n setUserdistricts(data.data);\r\n }\r\n })\r\n }, [])\r\n\r\n function handleChange(info) {\r\n if (info.file.status === 'uploading') {\r\n setLogoLoading(true)\r\n return;\r\n }\r\n if (info.file.status === 'done') {\r\n // Get this url from response in real world.\r\n dispatchUser({ type: 'update', user: { ...actUser, logo: info.file.response.data.path } })\r\n setLogoLoading(false)\r\n }\r\n };\r\n // 对话框移动方法\r\n const onStart = (event, uiData) => {\r\n const { clientWidth, clientHeight } = window.document.documentElement;\r\n const targetRect = draggleRef.current?.getBoundingClientRect();\r\n if (!targetRect) return;\r\n setModalBounds({\r\n left: -targetRect.left + uiData.x,\r\n right: clientWidth - (targetRect.right - uiData.x),\r\n top: -targetRect.top + uiData.y,\r\n bottom: clientHeight - (targetRect.bottom - uiData.y),\r\n });\r\n };\r\n const onfinish = (values) => {\r\n\r\n http.put(\"/v1/users/\" + actUser.id, { ...actUser, ...values, role: values.roles.join(','),forbiden: values.forbiden? 1 : 0, }).then((data) => {\r\n http.get(\"/v1/users\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'systemuser', systemuser: data.data.sort((a,b)=>a.name.localeCompare(b.name,'zh')) })\r\n }\r\n })\r\n })\r\n setShowFixModel(false)\r\n dispatchUser({ type: 'clear', project_id: state.main.project_id })\r\n }\r\n const onfinishNew = (values) => {\r\n if(values.company===0){\r\n let companyUser={};\r\n function findParent(nop,list){\r\n let temp = list.filter(x=>x.id===nop)\r\n if(temp.length===0){\r\n companyUser = {};\r\n return\r\n }else{\r\n if(temp[0].id===0) {\r\n companyUser = {};\r\n return\r\n }else if(temp[0].company===1){\r\n companyUser = temp[0]\r\n return\r\n }else{\r\n findParent(temp[0].parent,list);\r\n }\r\n }\r\n \r\n }\r\n findParent(values.parent,state.systemuser.list);\r\n if(JSON.stringify(companyUser)==='{}')return message.warning('请先创建公司账号!!!!!!!!');\r\n values.belong = companyUser.id;\r\n // values.title = companyUser.title;\r\n }else{\r\n values.belong = 0;\r\n }\r\n\r\n http.post(\"/v1/users\", { ...values,password:md5(values.password), role: values.roles.join(',') }).then((data) => {\r\n http.get(\"/v1/users\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'systemuser', systemuser: data.data.sort((a,b)=>a.name.localeCompare(b.name,'zh')) })\r\n }\r\n })\r\n })\r\n // setShowNewModel(false)\r\n }\r\n const columns = [\r\n\r\n {\r\n title: '用户名称',\r\n dataIndex: 'name',\r\n width:300,\r\n align: 'left',\r\n filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) =>\r\n (\r\n
\r\n setSelectedKeys(e.target.value ? [e.target.value] : [])}\r\n onPressEnter={() => confirm()}\r\n style={{ marginBottom: 8, display: 'block' }}\r\n />\r\n \r\n \r\n confirm()}\r\n icon={}\r\n size=\"small\"\r\n style={{ width: 90 }}\r\n >\r\n 查找\r\n \r\n\r\n \r\n
\r\n ),\r\n filterIcon: filtered => ,\r\n\r\n onFilter: (value, record) =>\r\n record['name']\r\n ? (record['name'].toString().toLowerCase().includes(value.toLowerCase()))\r\n : '',\r\n },\r\n {\r\n title: '账号',\r\n dataIndex: 'account',\r\n width:180,\r\n key: 'account',\r\n align: 'center',\r\n filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) =>\r\n (\r\n
\r\n setSelectedKeys(e.target.value ? [e.target.value] : [])}\r\n onPressEnter={() => confirm()}\r\n style={{ marginBottom: 8, display: 'block' }}\r\n />\r\n \r\n \r\n confirm()}\r\n icon={}\r\n size=\"small\"\r\n style={{ width: 90 }}\r\n >\r\n 查找\r\n \r\n\r\n \r\n
\r\n ),\r\n filterIcon: filtered => ,\r\n\r\n onFilter: (value, record) =>\r\n record['account']\r\n ? (record['account'].toString().toLowerCase().includes(value.toLowerCase()))\r\n : '',\r\n },\r\n {\r\n title: '用户类型',\r\n dataIndex: 'type',\r\n width:80,\r\n align: 'center',\r\n render: (text, record) => {\r\n let typeTemp = record.type === 101 ? '系统管理员' : record.type === 102 ? '高级用户' : record.type === 103 ? '管理用户' :'普通用户'\r\n // let typeTemp = record.type === 101 ? '系统管理员' : record.type === 102 ? '管理员' : record.type === 103 ? '技术员' :'操作员'\r\n return
{typeTemp}
\r\n },\r\n },\r\n {\r\n title: '公司名称',\r\n dataIndex: 'title',\r\n width:300,\r\n align: 'center',\r\n render: (text, record) => {\r\n if(record.company===0){\r\n let companyUser={};\r\n function findParent(nop,list){\r\n let temp = list.filter(x=>x.id===nop)\r\n if(temp.length===0){\r\n companyUser = {};\r\n return\r\n }else{\r\n if(temp[0].id===0) {\r\n companyUser = {};\r\n return\r\n }else if(temp[0].company===1){\r\n companyUser = temp[0]\r\n return\r\n }else{\r\n findParent(temp[0].parent,list);\r\n }\r\n }\r\n \r\n }\r\n findParent(record.parent,state.systemuser.list);\r\n return(\r\n
{companyUser.title}
\r\n )\r\n }else{\r\n return(\r\n
{record.titles}
\r\n )\r\n }},\r\n filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) =>\r\n (\r\n
\r\n setSelectedKeys(e.target.value ? [e.target.value] : [])}\r\n onPressEnter={() => confirm()}\r\n style={{ marginBottom: 8, display: 'block' }}\r\n />\r\n \r\n \r\n confirm()}\r\n icon={}\r\n size=\"small\"\r\n style={{ width: 90 }}\r\n >\r\n 查找\r\n \r\n\r\n \r\n
\r\n ),\r\n filterIcon: filtered => ,\r\n\r\n onFilter: (value, record) =>\r\n record['titles']\r\n ? (record['titles'].toString().toLowerCase().includes(value.toLowerCase()))\r\n : '',\r\n },\r\n {\r\n title: '区域管理',\r\n dataIndex: 'area',\r\n width:100,\r\n align: 'center',\r\n render: (text, record) => {\r\n // record.type === 104 &&http.get(\"/v1/userdistricts/\" + record.id, {}).then(data => {\r\n // if (data.code === 0) {\r\n // setUserDisNub(data.data.length);\r\n // }\r\n // })\r\n return (\r\n record.type < 104 ?\r\n :\r\n record.type === 104 ?\r\n : null\r\n )}\r\n },\r\n {\r\n title: '短信',\r\n dataIndex: 'smscount',\r\n width:240,\r\n align: 'center',\r\n render: (text, record) => (\r\n
\r\n 剩余:{record.smscount-record.smssendcount}/总量:{record.smscount}\r\n {\r\n record.account!==state.main.account&&\r\n \r\n }\r\n
\r\n \r\n \r\n )\r\n },\r\n {\r\n title: '当日微信',\r\n dataIndex: 'wechatcount',\r\n width:180,\r\n align: 'center',\r\n render: (text, record) => {\r\n return (\r\n
\r\n 数量:{record.wechatcount}\r\n {\r\n state.main.type<102&&\r\n
\r\n \r\n \r\n
\r\n \r\n }\r\n
\r\n \r\n \r\n )\r\n }\r\n \r\n },\r\n {\r\n title: '语音',\r\n dataIndex: 'phonecount',\r\n width:220,\r\n align: 'center',\r\n render: (text, record) => {\r\n return (\r\n
\r\n 剩余:{record.phonecount-record.phonesendcount}/总量:{record.phonecount}\r\n {\r\n record.account!==state.main.account&&\r\n \r\n }\r\n
\r\n \r\n \r\n )\r\n }\r\n },\r\n {\r\n title: '操作',\r\n dataIndex: 'operation',\r\n width:60,\r\n align: 'center',\r\n width: '80px',\r\n render: (text, record) => (\r\n
\r\n \r\n {/* 修改 */}\r\n \r\n \r\n \r\n {/* 删除 */}\r\n {\r\n record.account!==state.main.account&&\r\n \r\n \r\n \r\n }\r\n {/* 重置密码 */}\r\n \r\n \r\n \r\n {/* LOGO */}\r\n {\r\n (record.type === 102 || record.type === 103) &&\r\n \r\n \r\n \r\n }\r\n \r\n {/* 添加提醒 */}\r\n {\r\n (record.type === 102 || record.type === 103) &&\r\n \r\n \r\n \r\n }\r\n {\r\n state.main.type<102 &&\r\n \r\n \r\n }\r\n }>\r\n 操作\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: '备注',\r\n dataIndex: 'custom',\r\n align: 'center',\r\n className:state.main.type>101?'tableHiddle':'tableShow'\r\n // colSpan:(state.main.type>101?0:1),\r\n \r\n // render:()=>{\r\n // if(state.main.type<102){\r\n // return(
{userType}
)\r\n // }\r\n // },\r\n }\r\n ]\r\n\r\n return (\r\n
\r\n
\r\n {\r\n console.log('systemusertree',state.systemuser.tree);\r\n let tempArrs=[];\r\n let temp=state.systemuser.list.filter(x=>x.id===value*1);\r\n if(temp.length>0){\r\n var u = new Object\r\n u.key = temp[0].id\r\n u.title = temp[0].name\r\n u.titles = temp[0].title\r\n u.text = temp[0].name\r\n u.label = temp[0].name\r\n u.value = temp[0].id\r\n u.account = temp[0].account\r\n u.name = temp[0].name\r\n u.type = temp[0].type\r\n u.parent = temp[0].parent\r\n u.id = temp[0].id\r\n u.smscount = temp[0].smscount\r\n u.smssendcount = temp[0].smssendcount\r\n u.wechatcount = temp[0].wechatcount\r\n u.phonesendcount = temp[0].phonesendcount\r\n u.phonecount = temp[0].phonecount\r\n u.company = temp[0].company\r\n u.children = new Array()\r\n findParentuser(value,state.systemuser.list,u.children);\r\n tempArrs.push(u)\r\n }\r\n clearchildrenisZero(tempArrs);\r\n setSerchUser(tempArrs);\r\n }}\r\n treeData={state.systemuser.tree}\r\n filterOption={(input, option) =>\r\n // console.log(option)\r\n option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 \r\n || option.account.toLowerCase().indexOf(input.toLowerCase()) >= 0\r\n || option.name.toLowerCase().indexOf(input.toLowerCase()) >= 0\r\n }\r\n />\r\n
\r\n
\r\n \r\n
\r\n
record.id+''} columns={columns} size='small' \r\n dataSource={serchUser.length>0?serchUser:state.systemuser.tree.length > 0 ?state.systemuser.tree:null} \r\n scroll={{y:650}}\r\n />\r\n {/* 区域管理 */}\r\n {\r\n setModalMoveDisabled(false);\r\n }}\r\n onMouseOut={() => {\r\n setModalMoveDisabled(true);\r\n }}\r\n >\r\n 区域管理\r\n \r\n }\r\n centered \r\n modalRender={modal => (\r\n \r\n
{modal}
\r\n \r\n )}\r\n footer={null}\r\n destroyOnClose\r\n visible={showArea}\r\n onOk={() => setShowArea(false)}\r\n onCancel={() => setShowArea(false)}\r\n width={800}\r\n >\r\n \r\n
\r\n {\r\n setShowLogo(false)\r\n http.post(\"/v1/userslogo\", { account: actUser.account, logo: actUser.logo }).then((data) => {\r\n http.get(\"/v1/users\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'systemuser', systemuser: data.data.sort((a,b)=>a.name.localeCompare(b.name,'zh')) })\r\n }\r\n })\r\n })\r\n }}\r\n onCancel={() => setShowLogo(false)}\r\n width={320}\r\n >\r\n
\r\n \r\n {\r\n actUser.logo !== \"\" ? \"avatar\" :\r\n
\r\n {logoloading ? : }\r\n
上传LOGO图片
\r\n
\r\n }\r\n \r\n
\r\n
\r\n {/* 区域分配 */}\r\n {\r\n setModalMoveDisabled(false);\r\n }}\r\n onMouseOut={() => {\r\n setModalMoveDisabled(true);\r\n }}\r\n >\r\n 区域分配\r\n \r\n }\r\n centered\r\n // footer={null}\r\n modalRender={modal => (\r\n \r\n
{modal}
\r\n \r\n )}\r\n destroyOnClose\r\n visible={showSelectArea}\r\n onOk={() => {\r\n http.post(\"/v1/userdistricts\", userSelectArea).then((data) => {\r\n if(data.code===0){\r\n http.get(\"/v1/userdistricts\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'systemuser', systemuser: data.data })\r\n setUserdistricts(data.data);\r\n }\r\n })\r\n }\r\n })\r\n setShowSelectArea(false)\r\n }}\r\n onCancel={() => setShowSelectArea(false)}\r\n width={800}\r\n >\r\n { setUserSelectArea({ ...userSelectArea, district: checkedValues }) }}>\r\n \r\n {\r\n state.district.filter(x => { return x.user === selArea.parent }).map(item => (\r\n
\r\n -1} key={item.id} value={item.id}>{item.name}({state.device.filter(x => { return x.district === item.id }).length})\r\n \r\n ))\r\n }\r\n \r\n \r\n \r\n {/* 新建用户*/}\r\n {\r\n setModalMoveDisabled(false);\r\n }}\r\n onMouseOut={() => {\r\n setModalMoveDisabled(true);\r\n }}\r\n >\r\n 新建用户\r\n \r\n }\r\n visible={showNewModel}\r\n modalRender={modal => (\r\n \r\n
{modal}
\r\n \r\n )}\r\n destroyOnClose\r\n cancelText='取消'\r\n okText='确定'\r\n onOk={() => {\r\n form.submit()\r\n }}\r\n onCancel={() => {\r\n setShowNewModel(false)\r\n dispatchUser({ type: 'clear'})\r\n }}>\r\n \r\n \r\n \r\n
\r\n {\r\n form.submit()\r\n }}\r\n onCancel={() => {\r\n setShowFixModel(false)\r\n dispatchUser({ type: 'clear', project_id: state.main.project_id })\r\n }}>\r\n \r\n \r\n \r\n \r\n {\r\n form.submit();\r\n setIsReSetPassWord(false);\r\n \r\n }}\r\n onCancel={() => {\r\n setReSetPassWord('')\r\n setIsReSetPassWord(false);\r\n }}>\r\n {\r\n http.post(\"/v1/userspassword\", { who: state.main.account, password: md5(values.password), account: reSetPassWord, newpassword: md5(values.newpassword) }).then(data => {\r\n if (data.code === 0) {\r\n\r\n } else {\r\n Modal.warning({\r\n title: data.code,\r\n content: data.msg,\r\n });\r\n }\r\n })\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n ({\r\n validator(_, value) {\r\n if (!value || getFieldValue('newpassword') === value) {\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(new Error('两次输入的密码不相同'));\r\n },\r\n }),\r\n ]}\r\n >\r\n \r\n \r\n \r\n \r\n {\r\n http.post(\"/v1/userstodo\", { account: actUser.account, todo: '到期年检',todo_time:todo_time}).then(res=>res.code!==0&&Modal.warning({\r\n title: res.code,\r\n content: res.msg,\r\n }));\r\n setShowNotify(false);\r\n }}\r\n onCancel={() => {\r\n setShowNotify(false);\r\n dispatchUser({ type: 'clear', project_id: state.main.project_id })\r\n }}\r\n >\r\n
\r\n \r\n
\r\n 提醒日期\r\n setTodo_time(datestring)} defaultValue={moment().add(1,'years')}/>\r\n
\r\n
\r\n
\r\n {\r\n http.post(\"/v1/userssmscount\", { user:userRecord.parent ,account: userRecord.account,smscount:smsNum*1}).then(res=>{\r\n if(res.code===0)http.get(\"/v1/users\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'systemuser', systemuser: data.data.sort((a,b)=>a.name.localeCompare(b.name,'zh')) })\r\n }\r\n })\r\n });\r\n setShowSms(false);\r\n }}\r\n onCancel={() => {\r\n setShowSms(false);\r\n dispatchUser({ type: 'clear', project_id: state.main.project_id })\r\n }}\r\n >\r\n
\r\n
\r\n 当前剩余数量:\r\n {userRecord.smscount-userRecord.smssendcount}\r\n 可分配数量\r\n \r\n {\r\n (()=>{\r\n let temp = state.systemuser.list.filter(x=>x.id===userRecord.parent);\r\n return temp.length>0&&(temp[0].smscount-temp[0].smssendcount)\r\n })()\r\n }\r\n \r\n
\r\n {\r\n // let temp = state.systemuser.list.filter(x=>x.id===userRecord.parent);\r\n // var num=temp[0].smscount-temp[0].smssendcount;\r\n // if(num>200){\r\n // setSmsNum(e.target.value>200?200:e.target.value)\r\n // }else{\r\n // setSmsNum(e.target.value>num?num:e.target.value)\r\n // }\r\n setSmsNum(e.target.value)\r\n }} />\r\n
\r\n
\r\n {\r\n http.post(\"/v1/usersphonecount\", { user:userRecord.parent ,account: userRecord.account,phonecount:phoneNum*1}).then(res=>{\r\n if(res.code===0)http.get(\"/v1/users\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'systemuser', systemuser: data.data.sort((a,b)=>a.name.localeCompare(b.name,'zh')) })\r\n }\r\n })\r\n });\r\n setShowPhone(false);\r\n }}\r\n onCancel={() => {\r\n setShowPhone(false);\r\n dispatchUser({ type: 'clear', project_id: state.main.project_id })\r\n }}\r\n >\r\n
\r\n
\r\n 当前剩余数量:\r\n {userRecord.phonecount-userRecord.phonesendcount}\r\n 可分配数量\r\n \r\n {\r\n (()=>{\r\n let temp = state.systemuser.list.filter(x=>x.id===userRecord.parent);\r\n return temp.length>0&&(temp[0].phonecount-temp[0].phonesendcount)\r\n })()\r\n }\r\n \r\n
\r\n {\r\n setPhoneNum(e.target.value)\r\n }} />\r\n
\r\n
\r\n {\r\n http.post(\"/v1/userswechatcount/\"+userRecord.id, { wechatcount:wxCount*1}).then(res=>{\r\n if(res.code===0){\r\n http.get(\"/v1/users\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'systemuser', systemuser: data.data.sort((a,b)=>a.name.localeCompare(b.name,'zh')) })\r\n }\r\n })\r\n }\r\n });\r\n setShowWx(false);\r\n }}\r\n onCancel={() => {\r\n setShowWx(false);\r\n dispatchUser({ type: 'clear', project_id: state.main.project_id })\r\n }}\r\n >\r\n
\r\n
\r\n 当前数量:{userRecord.wechatcount}\r\n
\r\n {\r\n setWxCount(e.target.value)\r\n }} />\r\n
\r\n
\r\n {\r\n http.post(\"/v1/userscustom\", { account: actUser.account, custom: custom}).then(res=>{\r\n if(res.code!==0){\r\n Modal.warning({\r\n title: res.code,\r\n content: res.msg,\r\n })\r\n }else{\r\n http.get(\"/v1/users\", {}).then(data => {\r\n if (data.code === 0) {\r\n let temp = data.data.sort((a,b)=>a.name.localeCompare(b.name,'zh'));\r\n dispatch({ type: 'systemuser', systemuser: temp })\r\n var list = [];\r\n temp.filter(x=>x.parent===state.main.id).map(m=>list.push(m.id+\"\"));\r\n setDefExpend(list);\r\n }\r\n })\r\n }\r\n \r\n });\r\n \r\n setShowCustom(false);\r\n }}\r\n onCancel={() => {\r\n setShowCustom(false);\r\n dispatchUser({ type: 'clear', project_id: state.main.project_id })\r\n }}\r\n >\r\n
\r\n {\r\n console.log(e.target.value)\r\n setCustom(e.target.value)\r\n }} />\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default UserManage","import React, { createContext, useContext, useEffect, useState, useReducer } from 'react'\r\nimport { Table, Button, Input, Select, Modal, Form, DatePicker, Space,Card} from 'antd'\r\nimport { StateContext } from '../../../state';\r\nimport http from '../../../../../utils/server'\r\nimport md5 from 'js-md5';\r\nimport {ExclamationCircleOutlined , SearchOutlined} from '@ant-design/icons';\r\nimport \"./index.less\"\r\nimport moment from 'moment';\r\nconst AreaContext = createContext();\r\n\r\nfunction LocalUserNew() {\r\n const { actUser, dispatchUser, form, onfinishNew } = useContext(AreaContext)\r\n const { state } = useContext(StateContext)\r\n const [selectUserType, setSelectUserType] = useState(101)\r\n const [userRole, setUserRole] = useState([])\r\n const formRef = React.createRef();\r\n const [defExpend,setDefExpend]=useState([]);\r\n\r\n\r\n useEffect(() => {\r\n form.setFieldsValue(actUser);\r\n var userLogin = state.systemuser.list[0];\r\n var list = [];\r\n state.systemuser.list.filter(x=>x.parent===userLogin.id).map(m=>list.push(m.id+\"\"));\r\n setDefExpend(list);\r\n }, [])\r\n\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({\r\n validator(_, value) {\r\n if (!value || getFieldValue('password') === value) {\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(new Error('两次输入的密码不相同'));\r\n },\r\n }),\r\n ]}\r\n >\r\n \r\n \r\n\r\n \r\n {\r\n // value===104?dispatchUser({ type:'update',user:{role:'301,304'}}):dispatchUser({type:'update',user: {role:'301,302,304,305,307,308,309,310'}});\r\n setSelectUserType(value);\r\n setUserRole(value===104?[{code:301,value:'基本权限'},{code:304,value:'数据导出'}]:\r\n [\r\n {code:301,value:'基本权限'},\r\n {code:302,value:'报警管理'},\r\n {code:304,value:'数据导出'},\r\n {code:305,value:'参数设置'},\r\n {code:307,value:'设备管理'},\r\n {code:308,value:'区域管理'},\r\n {code:309,value:'用户管理'},\r\n {code:310,value:'平面图管理'}\r\n ])\r\n formRef.current.setFieldsValue({\r\n roles:value===104?[301]:[301,302,304,305,307,308,310]\r\n })\r\n dispatchUser({ type:'update',user:{role:value===104?'301':'301,302,304,305,307,308,310'}})\r\n }}\r\n >\r\n 技术员 \r\n 操作员\r\n \r\n \r\n \r\n {\r\n // dispatchUser({ type:'update',user:{role:value.toString()}})\r\n // }}\r\n >\r\n {\r\n userRole.map(item => (\r\n {item.value}\r\n ))\r\n }\r\n \r\n \r\n \r\n
\r\n {\r\n // selectUserType>103?\r\n // \r\n //

\r\n // 数据查询\r\n // 参数查询\r\n // 报警处理\r\n //

\r\n \r\n //

\r\n // 导出数据\r\n // {/* 日志查询 */}\r\n // {/* 修改标题 */}\r\n \r\n //

\r\n //
\r\n // :\r\n // \r\n //

\r\n // 用户管理\r\n // 区域管理\r\n // 设备管理\r\n //

\r\n //

\r\n // 平面管理\r\n // 数据查询\r\n // 参数设置\r\n //

\r\n //

\r\n // 导出数据\r\n // 报警处理\r\n // 日志查询\r\n //

\r\n //

修改标题

\r\n //
\r\n }\r\n \r\n
\r\n \r\n\r\n
\r\n )\r\n}\r\nfunction LocalUserFix() {\r\n const { actUser, dispatchUser, form, onfinish } = useContext(AreaContext)\r\n const { state } = useContext(StateContext)\r\n const [userRole, setUserRole] = useState([])\r\n\r\n useEffect(() => {\r\n form.setFieldsValue(actUser)\r\n setUserRole(actUser.type===104?[{code:301,value:'基本权限'},{code:304,value:'数据导出'}]:\r\n [\r\n {code:301,value:'基本权限'},\r\n {code:302,value:'报警管理'},\r\n {code:304,value:'数据导出'},\r\n {code:305,value:'参数设置'},\r\n {code:307,value:'设备管理'},\r\n {code:308,value:'区域管理'},\r\n {code:309,value:'用户管理'},\r\n {code:310,value:'平面图管理'}\r\n ])\r\n }, [])\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n // dispatchUser({ type:'update',user:{role:value.toString()}})\r\n // }}\r\n >\r\n {\r\n userRole.map(item => (\r\n {item.value}\r\n ))\r\n }\r\n \r\n \r\n \r\n \r\n )\r\n}\r\nfunction LocalUserManage() {\r\n const [form] = Form.useForm()\r\n const { state, dispatch } = useContext(StateContext)\r\n const [actUser, dispatchUser] = useReducer((state, action) => {\r\n if (action.type === 'update') {\r\n return action.user\r\n } else if (action.type === 'clear') {\r\n return {\r\n role: '',\r\n roles:[],\r\n password: \"\",\r\n phone: '',\r\n name: '',\r\n account: '',\r\n npw1: '',\r\n npw2: '',\r\n parent:'',\r\n type:''\r\n }\r\n }\r\n return state\r\n },[]);\r\n const [showNewModel, setShowNewModel] = useState(false)\r\n const [showFixModel, setShowFixModel] = useState(false)\r\n const [reSetPassWord, setReSetPassWord] = useState('')\r\n const [isreSetPassWord, setIsReSetPassWord] = useState(false);\r\n const [userParentRoles, setUserParentRoles] = useState('');\r\n const [showNotify, setShowNotify] = useState(false);\r\n const [todo_time, setTodo_time] = useState(moment().add(1,'years').format('yyyy-MM-DD'));\r\n useEffect(() => {\r\n http.get(\"/v1/users\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'systemuser', systemuser: data.data })\r\n // setLocalUser(data.data);\r\n }\r\n })\r\n }, [])\r\n\r\n\r\n const onfinish = (values) => {\r\n\r\n http.put(\"/v1/users/\" + actUser.id, { ...actUser, ...values,role: values.roles.join(','),forbiden: values.forbiden? 1 : 0, }).then((data) => {\r\n http.get(\"/v1/users\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'systemuser', systemuser: data.data })\r\n }\r\n })\r\n })\r\n\r\n setShowFixModel(false)\r\n dispatchUser({ type: 'clear', project_id: state.main.project_id })\r\n }\r\n const onfinishNew = (values) => {\r\n http.post(\"/v1/users\", { ...values,password:md5(values.password), role: values.roles.join(','),parent:1 }).then((data) => {\r\n http.get(\"/v1/users\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'systemuser', systemuser: data.data })\r\n }\r\n })\r\n })\r\n setShowNewModel(false)\r\n }\r\n const columns = [\r\n\r\n {\r\n title: '用户名称',\r\n dataIndex: 'name',\r\n key: 'id',\r\n width: 300,\r\n align: 'left',\r\n filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) =>\r\n (\r\n
\r\n setSelectedKeys(e.target.value ? [e.target.value] : [])}\r\n onPressEnter={() => confirm()}\r\n style={{ marginBottom: 8, display: 'block' }}\r\n />\r\n \r\n \r\n confirm()}\r\n icon={}\r\n size=\"small\"\r\n style={{ width: 90 }}\r\n >\r\n 查找\r\n \r\n\r\n \r\n
\r\n ),\r\n filterIcon: filtered => ,\r\n\r\n onFilter: (value, record) =>\r\n record['name']\r\n ? (record['name'].toString().toLowerCase().includes(value.toLowerCase()))\r\n : '',\r\n },\r\n {\r\n title: '账号',\r\n dataIndex: 'account',\r\n key: 'account',\r\n align: 'center',\r\n filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) =>\r\n (\r\n
\r\n setSelectedKeys(e.target.value ? [e.target.value] : [])}\r\n onPressEnter={() => confirm()}\r\n style={{ marginBottom: 8, display: 'block' }}\r\n />\r\n \r\n \r\n confirm()}\r\n icon={}\r\n size=\"small\"\r\n style={{ width: 90 }}\r\n >\r\n 查找\r\n \r\n\r\n \r\n
\r\n ),\r\n filterIcon: filtered => ,\r\n\r\n onFilter: (value, record) =>\r\n record['account']\r\n ? (record['account'].toString().toLowerCase().includes(value.toLowerCase()))\r\n : '',\r\n },\r\n {\r\n title: '用户类型',\r\n dataIndex: 'type',\r\n key: 'id',\r\n align: 'center',\r\n render: (text, record) => (\r\n
\r\n {\r\n record.type === 101 ? '管理员': record.type === 103 ? '技术员' : '操作员'\r\n }\r\n
\r\n ),\r\n },\r\n {\r\n title: '操作',\r\n dataIndex: 'operation',\r\n align: 'right',\r\n width: '400px',\r\n render: (text, record) => (\r\n
\r\n {\r\n (record.type === 102 || record.type === 103) &&\r\n \r\n }\r\n\r\n \r\n \r\n \r\n
\r\n ),\r\n },\r\n ]\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
record.id} columns={columns} size='small' \r\n dataSource={state.systemuser.list} />\r\n {\r\n form.submit()\r\n }}\r\n onCancel={() => {\r\n setShowNewModel(false)\r\n dispatchUser({ type: 'clear'})\r\n }}>\r\n \r\n \r\n \r\n \r\n {\r\n form.submit()\r\n }}\r\n onCancel={() => {\r\n setShowFixModel(false)\r\n dispatchUser({ type: 'clear', project_id: state.main.project_id })\r\n }}>\r\n \r\n \r\n \r\n \r\n {\r\n form.submit();\r\n setIsReSetPassWord(false);\r\n \r\n }}\r\n onCancel={() => {\r\n setReSetPassWord('')\r\n setIsReSetPassWord(false);\r\n }}>\r\n {\r\n http.post(\"/v1/userspassword\", { who: state.main.account, password: md5(values.password), account: reSetPassWord, newpassword: md5(values.newpassword) }).then(data => {\r\n if (data.code === 0) {\r\n\r\n } else {\r\n Modal.warning({\r\n title: data.code,\r\n content: data.msg,\r\n });\r\n }\r\n })\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n ({\r\n validator(_, value) {\r\n if (!value || getFieldValue('newpassword') === value) {\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(new Error('两次输入的密码不相同'));\r\n },\r\n }),\r\n ]}\r\n >\r\n \r\n \r\n \r\n \r\n {\r\n http.post(\"/v1/userstodo\", { account: actUser.account, todo: '到期年检',todo_time:todo_time}).then(res=>res.code!==0&&Modal.warning({\r\n title: res.code,\r\n content: res.msg,\r\n }));\r\n setShowNotify(false);\r\n }}\r\n onCancel={() => {\r\n setShowNotify(false);\r\n dispatchUser({ type: 'clear', project_id: state.main.project_id })\r\n }}\r\n >\r\n
\r\n \r\n
\r\n 提醒日期\r\n setTodo_time(datestring)} defaultValue={moment().add(1,'years')}/>\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default LocalUserManage","import React, { createContext, useContext, useEffect, useState, useReducer } from 'react'\r\nimport { Table, Button, Input, Select, Modal } from 'antd'\r\nimport { StateContext } from '../../../state';\r\nimport http from '../../../../../utils/server'\r\nimport { LoadingOutlined, PlusOutlined, ExclamationCircleOutlined } from '@ant-design/icons';\r\n\r\nfunction SelectInput(props) {\r\n return (\r\n
\r\n
{props.addonBefore}
\r\n \r\n
\r\n )\r\n}\r\n\r\nconst VideoContext = createContext();\r\n\r\nfunction VideoNew() {\r\n const { actVideo, dispatchVideo } = useContext(VideoContext)\r\n const { state } = useContext(StateContext)\r\n return (\r\n
\r\n { dispatchVideo({ type: 'update', video: { ...actVideo, name: e.target.value } }) }} />\r\n { console.log(value); dispatchVideo({ type: 'update', video: { ...actVideo, district: value } }) }} />\r\n { dispatchVideo({ type: 'update', video: { ...actVideo, liveurl: e.target.value } }) }} />\r\n
\r\n )\r\n}\r\n\r\nfunction VideoManage() {\r\n const { state, dispatch } = useContext(StateContext)\r\n const [actVideo, dispatchVideo] = useReducer((state, action) => {\r\n if (action.type === 'update') {\r\n return action.video\r\n } else if (action.type === 'clear') {\r\n return {\r\n district: '',\r\n name: \"\",\r\n liveurl: '',\r\n }\r\n }\r\n return state\r\n }, []);\r\n const [showNewModel, setShowNewModel] = useState(false)\r\n const [showFixModel, setShowFixModel] = useState(false)\r\n useEffect(() => {\r\n http.get(\"/v1/video\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'video', video: data.data })\r\n }\r\n })\r\n http.get(\"/v1/district\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'district', district: data.data })\r\n }\r\n })\r\n http.get(\"/v1/users\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'systemuser', systemuser: data.data })\r\n }\r\n })\r\n }, [])\r\n const columns = [\r\n {\r\n title: '视频名称',\r\n dataIndex: 'name',\r\n key: 'name',\r\n align: 'center',\r\n },\r\n {\r\n title: '视频地址',\r\n dataIndex: 'liveurl',\r\n key: 'liveurl',\r\n align: 'center',\r\n },\r\n {\r\n title: '所属区域',\r\n dataIndex: 'district',\r\n key: 'district',\r\n align: 'center',\r\n render: (text, record) => (\r\n
\r\n {\r\n state.district.filter(x => { return x.id === record.district }).length > 0 ? state.district.filter(x => { return x.id === record.district })[0].name : '无'\r\n }\r\n
\r\n )\r\n },\r\n {\r\n title: '操作',\r\n width: 200,\r\n dataIndex: 'operation',\r\n key: 'operation',\r\n align: 'right',\r\n width: '180px',\r\n render: (text, record) => (\r\n
\r\n \r\n \r\n
\r\n ),\r\n },\r\n ]\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
record.id} columns={state.main.id==1?columns:columns.filter(x=>{return x.dataIndex!='project_id'})} size='small' dataSource={state.video} />\r\n {\r\n setShowNewModel(false)\r\n dispatchVideo({ type: 'clear', project_id: state.main.project_id })\r\n http.post(\"/v1/video\", actVideo).then((data) => {\r\n http.get(\"/v1/video\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'video', video: data.data })\r\n }\r\n })\r\n })\r\n\r\n }}\r\n onCancel={() => {\r\n setShowNewModel(false)\r\n dispatchVideo({ type: 'clear', project_id: state.main.project_id })\r\n }}>\r\n \r\n \r\n \r\n \r\n {\r\n setShowFixModel(false)\r\n dispatchVideo({ type: 'clear', project_id: state.main.project_id })\r\n http.put(\"/v1/video/\" + actVideo.id, actVideo).then((data) => {\r\n http.get(\"/v1/video\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'video', video: data.data })\r\n }\r\n })\r\n })\r\n }}\r\n onCancel={() => {\r\n setShowFixModel(false)\r\n dispatchVideo({ type: 'clear', project_id: state.main.project_id })\r\n }}>\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default VideoManage","import React, { createContext, useContext, useEffect, useState, useReducer } from 'react'\r\nimport { Button, Input, Select, Modal, TreeSelect, Card, Steps, Tooltip, message, DatePicker, Slider, Row, Col, Tabs, Table} from 'antd'\r\nimport { StateContext } from '../../../state';\r\nimport http from '../../../../../utils/server'\r\nimport { ContainerTwoTone, CarTwoTone, CheckCircleTwoTone, ExclamationCircleOutlined,\r\n CloseCircleTwoTone, ProfileTwoTone, EditTwoTone, DeleteTwoTone, CaretRightOutlined,\r\n PauseOutlined, UpCircleTwoTone\r\n} from '@ant-design/icons';\r\nimport { Map, Polyline, Marker } from \"react-amap\";\r\nimport { Line } from '@ant-design/charts';\r\nimport unLocation from '../../../../../../public/assets/unLocation.png'\r\n\r\nconst { Step } = Steps;\r\n\r\nfunction SelectInput(props) {\r\n if(props.option){\r\n return (\r\n
\r\n
{props.addonBefore}
\r\n \r\n
\r\n )\r\n }else{\r\n return null\r\n }\r\n \r\n}\r\nfunction formatDateTimes(inputTime) {\r\n var date = new Date(inputTime);\r\n var y = date.getFullYear();\r\n var m = date.getMonth() + 1;\r\n m = m < 10 ? ('0' + m) : m;\r\n var d = date.getDate();\r\n d = d < 10 ? ('0' + d) : d;\r\n var h = date.getHours();\r\n h = h < 10 ? ('0' + h) : h;\r\n var minute = date.getMinutes();\r\n var second = date.getSeconds();\r\n minute = minute < 10 ? ('0' + minute) : minute;\r\n second = second < 10 ? ('0' + second) : second;\r\n return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;\r\n};\r\n\r\nconst TransportContext = createContext();\r\n\r\nfunction TransportNew() {\r\n const { actTransport, dispatchTransport } = useContext(TransportContext)\r\n const { state } = useContext(StateContext)\r\n\r\n const [defExpend,setDefExpend]=useState([]);\r\n const [selUser,setSelUsers]=useState(0);\r\n // const [selDis,setSelDis]=useState('');\r\n const [devs,setDevs]=useState([]);//设备选项\r\n const [selDev,setSelDev]=useState('');\r\n useEffect(() => {\r\n var list = [];\r\n state.systemuser.list.filter(x=>x.parent===state.main.id).map(m=>list.push(m.id+\"\"));\r\n setDefExpend(list);\r\n setSelUsers(state.main.id)\r\n if(actTransport.device){\r\n let selDev;\r\n state.device.filter(x=>x.id===actTransport.device).length>0&&\r\n (selDev=state.device.filter(x=>x.id===actTransport.device)[0]);\r\n selDev&&setSelDev(selDev);\r\n state.district.filter(x=>x.id===selDev.district).length>0&&\r\n setSelUsers(state.district.filter(x=>x.id===selDev.district)[0].user);\r\n }\r\n\r\n }, [])\r\n return (\r\n
\r\n * 订单编号} value={actTransport.serial}\r\n onChange={e => { dispatchTransport({ type: 'update', transport: { ...actTransport, serial: e.target.value } }) }} \r\n onBlur={e=>{\r\n var temp = e.target.value;\r\n if(temp.length<6) return message.error('订单编号最小长度为6');\r\n }}\r\n />\r\n { dispatchTransport({ type: 'update', transport: { ...actTransport, name: e.target.value } }) }} />\r\n
\r\n
\r\n * 所在用户\r\n
\r\n {\r\n\r\n setSelUsers(value);\r\n actTransport.users = value;\r\n // setSelDis('');\r\n setSelDev('');\r\n dispatchTransport({ type: 'update', transport: { ...actTransport,device:'' } });\r\n }} showSearch \r\n filterTreeNode ={(input, option) =>\r\n (option?.label ?? '').toLowerCase().includes(input.toLowerCase())\r\n }\r\n >\r\n \r\n \r\n
\r\n * 所属区域} defaultValue={selDev.district_name} option={state.district.filter(x=>x.user===selUser)} keyword={\"id\"} text='name'\r\n onChange={value => { \r\n dispatchTransport({ type: 'update', transport: { ...actTransport, device:''} }) ;\r\n let devs=[];\r\n state.device.filter(x=>x.district===value).map(item=>{\r\n devs.findIndex(x => x.sn === item.sn) === -1 && devs.push(item);\r\n });\r\n setDevs(devs);\r\n // setSelDis(value);\r\n\r\n }} />\r\n * 记录设备} defaultValue={actTransport.device} option={devs} keyword={\"id\"} text='m_name' text1=\"sn\"\r\n onChange={value => { dispatchTransport({ type: 'update', transport: { ...actTransport, device: value } }) }} />\r\n * 发货单位} defaultValue={actTransport.fromuser} option={state.transuser&&state.transuser.filter(x=>x.type===901&&x.users===selUser)} keyword={\"id\"} text='name'\r\n onChange={value => { dispatchTransport({ type: 'update', transport: { ...actTransport, fromuser: value,from:'',fromaddressuser:''} }) }} />\r\n * 发货地址} defaultValue={actTransport.from} option={state.address&&state.address.filter(x=>x.user===actTransport.fromuser&&x.type===401)} keyword={\"id\"} text={`address`}\r\n onChange={value => { dispatchTransport({ type: 'update', transport: { ...actTransport, from: value } }) }} />\r\n * 发货联系人}defaultValue={actTransport.fromaddressuser} option={state.addressuser&&state.addressuser.filter(x=>x.user===actTransport.fromuser)} keyword={\"id\"} text={`name`}\r\n onChange={value => { dispatchTransport({ type: 'update', transport: { ...actTransport, fromaddressuser: value } }) }} />\r\n * 收货单位}defaultValue={actTransport.touser} option={state.transuser&&state.transuser.filter(x=>x.type===902&&x.users===selUser)} keyword={\"id\"} text='name'\r\n onChange={value => { dispatchTransport({ type: 'update', transport: { ...actTransport, touser: value,to:'', toaddressuser:''} }) }} />\r\n * 收货地址}defaultValue={actTransport.to} option={state.address&&state.address.filter(x=>x.user===actTransport.touser&&x.type===402)} keyword={\"id\"} text='address'\r\n onChange={value => { dispatchTransport({ type: 'update', transport: { ...actTransport, to: value } }) }} />\r\n * 收货联系人} defaultValue={actTransport.toaddressuser} option={state.addressuser&&state.addressuser.filter(x=>x.user===actTransport.touser)} keyword={\"id\"} text={`name`}\r\n onChange={value => { dispatchTransport({ type: 'update', transport: { ...actTransport, toaddressuser: value } }) }} />\r\n 运输单位} defaultValue={actTransport.tranuser} option={state.transuser&&state.transuser.filter(x=>x.type===903&&x.users===selUser)} keyword={\"id\"} text='name'\r\n onChange={value => { dispatchTransport({ type: 'update', transport: { ...actTransport, tranuser: value,tranaddressuser:'' } }) }} />\r\n {/* * 运输方地址} defaultValue={actTransport.tran} option={state.address.filter(x=>x.user===actTransport.tranuser&&x.type===403)} keyword={\"id\"} text='address'\r\n onChange={value => { dispatchTransport({ type: 'update', transport: { ...actTransport, tran: value } }) }} /> */}\r\n 运输联系人} defaultValue={actTransport.tranaddressuser} option={state.addressuser&&state.addressuser.filter(x=>x.user===actTransport.tranuser)} keyword={\"id\"} text={`name`}\r\n onChange={value => { dispatchTransport({ type: 'update', transport: { ...actTransport, tranaddressuser: value } }) }} />\r\n * 运输物品} defaultValue={actTransport.goods} option={state.goods&&state.goods.filter(x=>x.users===selUser)} keyword={\"id\"} text='name'\r\n onChange={value => { dispatchTransport({ type: 'update', transport: { ...actTransport, goods: value } }) }} />\r\n
\r\n )\r\n}\r\n\r\nfunction TransportManage() {\r\n const { state, dispatch } = useContext(StateContext)\r\n const [actTransport, dispatchTransport] = useReducer((state, action) => {\r\n if (action.type === 'update') {\r\n return action.transport\r\n } else if (action.type === 'clear') {\r\n return {\r\n name: '',\r\n serial: '',\r\n start_time: formatDateTimes(new Date()),\r\n end_time: formatDateTimes(new Date()),\r\n device: '',\r\n users: action.users,\r\n from: '',\r\n to: '',\r\n goods: '',\r\n fromuser:'',\r\n touser:'',\r\n status:0,\r\n errmsg:'',\r\n }\r\n }\r\n return state\r\n }, []);\r\n const [showNewModel, setShowNewModel] = useState(false);//新建订单窗口\r\n const [showFixModel, setShowFixModel] = useState(false);//修改订单窗口\r\n const [showErrorModel, setShowErrorModel] = useState(false);//订单异常窗口\r\n const [showDetailModel, setShowDetailModel] = useState(false);//订单异常窗口\r\n const [querySerial, setQuerySerial] = useState('');//订单编号方式查询\r\n const [queryStatus, setQueryStatus] = useState(-1);//订单状态方式查询\r\n const [queryStartTime, setQueryStartTime] = useState('');//订单状态方式查询\r\n const [queryResult, setQueryResult] = useState([]);//订单查询结果\r\n const [dataMap, setDataMap] = useState([])//订单轨迹数据\r\n const [markP, setmarkP] = useState({ });//当前轨迹点\r\n const [mapCenter, setMapCenter] = useState({ longitude: 116, latitude: 39 });//地图中心\r\n const [mapLine, setMapLine] = useState([]);//订单轨迹线\r\n const [mapLine1, setMapLine1] = useState([]);//订单轨迹线\r\n const [markerRota, setMarkerRota] = useState(0);//订单轨迹角度\r\n const [mapZoom, setMapZoom] = useState(15);//地图缩放级别\r\n const [sliderStatus, setSilderStatus] = useState(0)\r\n const [sliderRun, setSilderRun] = useState([])\r\n const [dataHis, setDataHis] = useState([])//订单温湿度数据\r\n const [dataF, setDataF] = useState({ tmin: 0, tmax: 0, tavg: 0, hmin: 0, hmax: 0, havg: 0 })//订单温湿度数据 最大 最小 平均值\r\n const [dataChart, setdataChart] = useState([])//图表数据\r\n const [selNodeColums, setSelNodeColums] = useState([]);//表格中间列\r\n const [selNode, setSelNode] = useState([]);//设备的测点\r\n const [isLocation, setIsLocation] = useState(false);//是否定位\r\n\r\n const configtemp = {\r\n data: dataChart,\r\n padding: 'auto',\r\n xField: 'data_time',\r\n height: 200,\r\n padding: 'auto',\r\n yField: 'temp',\r\n seriesField:'name',\r\n yAxis: {\r\n label: {\r\n formatter: function formatter(v) {\r\n var i = v.indexOf('.');\r\n return i===-1?v:v.slice(0,i+2);\r\n },\r\n },\r\n tickCount:10\r\n },\r\n slider: {\r\n start: 0,\r\n end: 1,\r\n },\r\n };\r\n const confighumi = {\r\n data: dataChart,\r\n padding: 'auto',\r\n xField: 'data_time',\r\n height: 200,\r\n padding: 'auto',\r\n yField: 'humi',\r\n seriesField:'name',\r\n yAxis: {\r\n label: {\r\n formatter: function formatter(v) {\r\n var i = v.indexOf('.');\r\n return i===-1?v:v.slice(0,i+2);\r\n },\r\n },\r\n tickCount:10\r\n },\r\n slider: {\r\n start: 0,\r\n end: 1,\r\n },\r\n };\r\n const columnsLeft = [\r\n {\r\n title: '时间',\r\n dataIndex: 'data_time',\r\n key: 'id',\r\n align: 'center ',\r\n width: 160,\r\n fixed: true,\r\n },\r\n ]\r\n const columnsRight = [\r\n\r\n {\r\n title: '电源',\r\n dataIndex: 'power',\r\n key: 'id',\r\n align: 'center',\r\n width: 80,\r\n render: (text, record) => (\r\n
{record.power === 0 ? \"正常\" : \"电池\"}
\r\n )\r\n },\r\n {\r\n title: '电量',\r\n dataIndex: 'battery',\r\n key: 'id',\r\n align: 'center',\r\n width: 80,\r\n },\r\n ]\r\n\r\n let interval = ''\r\n let timerOut=null;//状态切换防抖\r\n function datadik(list, end) {\r\n if(end===list.length-1)return;\r\n setMapLine(list.slice(end+1));\r\n setMapLine1(list.slice(0,end+1));\r\n if(end===list.length-1)return;\r\n var ll = 0.1;\r\n mapZoom>15?ll=0.05:ll=0.1;\r\n if(Math.abs(list[end+1].longitude-mapCenter.longitude)>ll||Math.abs(list[end+1].latitude-mapCenter.latitude)>ll){\r\n setMapCenter({ longitude: list[end+1].longitude, latitude: list[end+1].latitude });\r\n };\r\n setmarkP({ longitude: list[end+1].longitude, latitude: list[end+1].latitude });\r\n setMarkerRota(list[end+1].ag);\r\n }\r\n useEffect(() => {\r\n //联系人\r\n http.get(\"/v1/transaddressuser\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'addressuser', addressuser: data.data })\r\n }else{\r\n dispatch({ type: 'addressuser', addressuser: [] })\r\n }\r\n })\r\n // 订单\r\n http.get(\"/v1/transport\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'transport', transport: data.data });\r\n setQueryResult(data.data);\r\n }else{\r\n dispatch({ type: 'transport', transport: [] });\r\n }\r\n })\r\n // 设备\r\n http.get(\"/v1/device\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'device', device: data.data })\r\n }\r\n })\r\n // 地址\r\n http.get(\"/v1/transaddress\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'address', address: data.data })\r\n }else{\r\n dispatch({ type: 'address', address: [] })\r\n }\r\n })\r\n // 运送物品\r\n http.get(\"/v1/transgoods\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'goods', goods: data.data })\r\n }else{\r\n dispatch({ type: 'goods', goods: [] })\r\n }\r\n })\r\n // 用户\r\n http.get(\"/v1/users\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'systemsuer', systemsuer: data.data.sort((a,b)=>a.name.localeCompare(b.name,'zh')) })\r\n }\r\n })\r\n // 区域\r\n http.get(\"/v1/district\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'district', district: data.data })\r\n }\r\n })\r\n // 三方账号\r\n http.get(\"/v1/transuser\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'transuser', transuser: data.data })\r\n }else{\r\n dispatch({ type: 'transuser', transuser: [] })\r\n }\r\n })\r\n \r\n }, [])\r\n useEffect(() => {\r\n interval = setInterval(() => {\r\n if (sliderStatus > 0) {\r\n let a = sliderRun\r\n if (a === dataMap.length - 1) {\r\n a = 0\r\n setSilderStatus(0);\r\n } else {\r\n a = a + 1\r\n }\r\n setSilderRun(a);\r\n datadik(dataMap, a);\r\n }\r\n }, 1000)\r\n return () => {\r\n clearInterval(interval)\r\n }\r\n }, [sliderStatus, sliderRun])\r\n return (\r\n
\r\n
\r\n
\r\n
订单编号:
\r\n setQuerySerial(e.target.value)}/>\r\n
\r\n
\r\n
订单状态:
\r\n \r\n
\r\n
\r\n
开始时间:
\r\n setQueryStartTime(dateString)}/>\r\n
\r\n \r\n {/* 新建订单按钮 */}\r\n \r\n
\r\n {/* 订单展示 */}\r\n
\r\n {\r\n queryResult.sort((a,b)=>b.id-a.id).map((item,index)=>(\r\n \r\n
订单编号:{item.serial}
\r\n
订单状态:订单{item.status===3?'异常':item.status===1?'派送中':item.status===2?'结束':'未开始'}
\r\n
订单名称:{item.name}
\r\n
} key={index} headStyle={{ backgroundColor:'#0066FF',color:'#fff'}}\r\n extra={\r\n
\r\n
\r\n }\r\n >\r\n
\r\n {/* 发货方信息 */}\r\n
\r\n
{`发货公司:${state.transuser&&state.transuser.filter(x=>x.id===item.fromuser).length>0?state.transuser.filter(x=>x.id===item.fromuser)[0].name:''}`}
\r\n
{`发货地址:${state.address.filter(x=>x.id===item.from).length>0?state.address.filter(x=>x.id===item.from)[0].address:''}`}
\r\n
{`联系人:${state.addressuser.filter(x=>x.id===item.fromaddressuser).length>0?state.addressuser.filter(x=>x.id===item.fromaddressuser)[0].name:''}`}
\r\n
{`联系电话:${state.addressuser.filter(x=>x.id===item.fromaddressuser).length>0?state.addressuser.filter(x=>x.id===item.fromaddressuser)[0].phone:''}`}
\r\n
\r\n {/* 订单运送信息 */}\r\n
\r\n {/* 运送设备 物品信息 操作按钮 */}\r\n
\r\n
\r\n
{`运送设备:${state.device.filter(x=>x.id===item.device).length>0?state.device.filter(x=>x.id===item.device)[0].m_name:'' }`}
\r\n
{`运送物品:${state.goods.filter(x=>x.id===item.goods).length>0?state.goods.filter(x=>x.id===item.goods)[0].name:'' }`}
\r\n
\r\n
\r\n {/* 订单状态 */}\r\n
\r\n 2?2:item.status} status={item.current===3&&'error'}>\r\n } />\r\n 0?'#06F':'#ccc'}/>} />\r\n :} />\r\n \r\n
\r\n {/* 开始结束时间 异常处理时间 异常原因 */}\r\n
\r\n
{item.status>0?`开始时间:${item.start_time}`:''}
\r\n
{item.status===3?`订单异常:${item.errmsg}`:''}
\r\n
{item.status===3?`异常时间:${item.end_time}`:item.status===2?`结束时间:${item.end_time}`:`` }
\r\n
\r\n
\r\n {/* 收货方信息 */}\r\n
\r\n
{`收货公司:${state.transuser&&state.transuser.filter(x=>x.id===item.touser).length>0?state.transuser.filter(x=>x.id===item.touser)[0].name:''}`}
\r\n
{`收货地址:${state.address.filter(x=>x.id===item.to).length>0?state.address.filter(x=>x.id===item.to)[0].address:''}`}
\r\n
{`联系人:${state.addressuser.filter(x=>x.id===item.toaddressuser).length>0?state.addressuser.filter(x=>x.id===item.toaddressuser)[0].name:''}`}
\r\n
{`联系电话:${state.addressuser.filter(x=>x.id===item.toaddressuser).length>0?state.addressuser.filter(x=>x.id===item.toaddressuser)[0].phone:''}`}
\r\n
\r\n
\r\n \r\n ))\r\n }\r\n
\r\n {/*
record.id} columns={columns} size='small' dataSource={state.transport} /> */}\r\n \r\n {\r\n if(actTransport.serial.length<6) return message.error('订单编号最小长度为6');\r\n actTransport.tranaddressuser===''&&(actTransport.tranaddressuser=0)\r\n http.post(\"/v1/transport\", {...actTransport}).then((data) => {\r\n http.get(\"/v1/transport\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'transport', transport: data.data })\r\n setQueryResult(data.data);\r\n }\r\n })\r\n })\r\n // setShowNewModel(false)\r\n // dispatchTransport({ type: 'clear'})\r\n }}\r\n onCancel={() => {\r\n setShowNewModel(false)\r\n dispatchTransport({ type: 'clear' })\r\n }}>\r\n \r\n \r\n \r\n \r\n {\r\n http.put(\"/v1/transport/\" + actTransport.id, actTransport).then((data) => {\r\n http.get(\"/v1/transport\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'transport', transport: data.data });\r\n setQueryResult(data.data);\r\n }\r\n })\r\n })\r\n setShowFixModel(false);\r\n dispatchTransport({ type: 'clear'});\r\n }}\r\n onCancel={() => {\r\n setShowFixModel(false)\r\n dispatchTransport({ type: 'clear' })\r\n }}>\r\n \r\n \r\n \r\n \r\n {\r\n actTransport.status=3;\r\n http.put(\"/v1/transport/\" + actTransport.id, actTransport).then((data) => {\r\n http.get(\"/v1/transport\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'transport', transport: data.data });\r\n setQueryResult(data.data);\r\n }\r\n })\r\n })\r\n setShowErrorModel(false);\r\n dispatchTransport({ type: 'clear'});\r\n }}\r\n onCancel={() => {\r\n setShowErrorModel(false)\r\n dispatchTransport({ type: 'clear' })\r\n }}>\r\n
\r\n { dispatchTransport({ type: 'update', transport: { ...actTransport, errmsg: e.target.value } }) }} />\r\n
\r\n
\r\n {\r\n setShowDetailModel(false);\r\n setSilderStatus(0);\r\n }}>\r\n {/* 头部信息 */}\r\n
\r\n \r\n
订单编号:{actTransport.serial}
\r\n
订单状态:订单{actTransport.status===3?'异常':actTransport.status===1?'派送中':actTransport.status===2?'结束':'未开始'}
\r\n
订单名称:{actTransport.name}
\r\n
} headStyle={{ backgroundColor:'#0066FF',color:'#fff'}}\r\n >\r\n
\r\n {/* 发货方信息 */}\r\n
\r\n
{`发货公司:${state.transuser&&state.transuser.filter(x=>x.id===actTransport.fromuser).length>0?state.transuser.filter(x=>x.id===actTransport.fromuser)[0].name:''}`}
\r\n
{`发货地址:${state.address.filter(x=>x.id===actTransport.from).length>0?state.address.filter(x=>x.id===actTransport.from)[0].address:''}`}
\r\n
{`联系人:${state.addressuser.filter(x=>x.id===actTransport.fromaddressuser).length>0?state.addressuser.filter(x=>x.id===actTransport.fromaddressuser)[0].name:''}`}
\r\n
{`联系电话:${state.addressuser.filter(x=>x.id===actTransport.fromaddressuser).length>0?state.addressuser.filter(x=>x.id===actTransport.fromaddressuser)[0].phone:''}`}
\r\n
\r\n {/* 订单运送信息 */}\r\n
\r\n {/* 运送设备 物品信息 操作按钮 */}\r\n
\r\n \r\n
{`运送设备:${state.device.filter(x=>x.id===actTransport.device).length>0?state.device.filter(x=>x.id===actTransport.device)[0].m_name:'' }`}
\r\n
{`运送物品:${state.goods.filter(x=>x.id===actTransport.goods).length>0?state.goods.filter(x=>x.id===actTransport.goods)[0].name:'' }`}
\r\n \r\n
\r\n {/* 订单状态 */}\r\n
\r\n 2?2:actTransport.status} status={actTransport.current===3&&'error'}>\r\n } />\r\n 0?'#06F':'#ccc'}/>} />\r\n :} />\r\n \r\n
\r\n {/* 开始结束时间 异常处理时间 异常原因 */}\r\n
\r\n
{actTransport.status>0?`开始时间:${actTransport.start_time}`:''}
\r\n
{actTransport.status===3?`订单异常:${actTransport.errmsg}`:''}
\r\n
{actTransport.status===3?`异常时间:${actTransport.end_time}`:actTransport.status===2?`结束时间:${actTransport.end_time}`:`` }
\r\n
\r\n
\r\n {/* 收货方信息 */}\r\n
\r\n
{`收货公司:${state.transuser&&state.transuser.filter(x=>x.id===actTransport.touser).length>0?state.transuser.filter(x=>x.id===actTransport.touser)[0].name:''}`}
\r\n
{`收货地址:${state.address.filter(x=>x.id===actTransport.to).length>0?state.address.filter(x=>x.id===actTransport.to)[0].address:''}`}
\r\n
{`联系人:${state.addressuser.filter(x=>x.id===actTransport.toaddressuser).length>0?state.addressuser.filter(x=>x.id===actTransport.toaddressuser)[0].name:''}`}
\r\n
{`联系电话:${state.addressuser.filter(x=>x.id===actTransport.toaddressuser).length>0?state.addressuser.filter(x=>x.id===actTransport.toaddressuser)[0].phone:''}`}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
温度(℃):
\r\n
上限值:{dataChart.length > 0 ? dataChart[0].temp_h : ''}
\r\n
下限值:{dataChart.length > 0 ? dataChart[0].temp_l : ''}
\r\n
最大值:{dataF.tmax.toFixed(2)}
\r\n
最小值:{dataF.tmin.toFixed(2)}
\r\n
平均值:{dataF.tavg.toFixed(2)}
\r\n
\r\n\r\n {\r\n dataHis.length>0&&dataHis[0].humi_switch===1&&\r\n
\r\n
相对湿度(%RH):
\r\n
上限值:{dataChart.length > 0 ? dataChart[0].humi_h : ''}
\r\n
下限值:{dataChart.length > 0 ? dataChart[0].humi_l : ''}
\r\n
最大值:{dataF.hmax.toFixed(2)}
\r\n
最小值:{dataF.hmin.toFixed(2)}
\r\n
平均值:{dataF.havg.toFixed(2)}
\r\n
\r\n } \r\n
\r\n \r\n \r\n \r\n \r\n
温度曲线
\r\n \r\n \r\n {\r\n dataHis.length>0&&dataHis[0].humi_switch===1&&\r\n \r\n
湿度曲线
\r\n \r\n \r\n }\r\n \r\n \r\n \r\n
record.id} \r\n columns={[...columnsLeft, ...selNodeColums, ...columnsRight]}\r\n scroll={{ x: 300 + selNode.length * 240 }}\r\n size='small' dataSource={dataHis} />\r\n \r\n \r\n
\r\n {dataMap.length > 0 ?\r\n
\r\n\r\n
\r\n
时间轴
\r\n
\r\n {/* { setSilderStatus(2); }} /> */}\r\n {/* { setSilderStatus(3); }} /> */}\r\n {sliderStatus > 0 ? { setSilderStatus(0) }} /> : { setSilderStatus(1) ;setMapZoom(10)}} />}\r\n\r\n
\r\n {\r\n setSilderRun(value)\r\n // datadik(dataMap, value)\r\n }}\r\n tipFormatter={null}\r\n /> \r\n
时间点:{dataMap[sliderRun]&&dataMap[sliderRun].data_time}
\r\n
: null\r\n }\r\n\r\n { console.log(ins) },\r\n // click: () => { console.log('You Clicked The Map') }\r\n }} zoom={10}>\r\n \r\n {\r\n isLocation?\r\n \r\n :\r\n \r\n }\r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default TransportManage","import React, { createContext, useContext, useEffect, useState, useReducer } from 'react'\r\nimport { Table, Button, Input, Select, Modal, Row, Col, } from 'antd'\r\nimport { StateContext } from '../../../state';\r\nimport http from '../../../../../utils/server'\r\nimport { ExclamationCircleOutlined } from '@ant-design/icons';\r\n\r\nfunction SelectInput(props) {\r\n if(props.option){\r\n return (\r\n
\r\n
{props.addonBefore}
\r\n \r\n
\r\n )\r\n }else{\r\n return null\r\n }\r\n \r\n}\r\n\r\nconst AddressContext = createContext();\r\n\r\nfunction AddressNew() {\r\n const { actAddress, dispatchAddress } = useContext(AddressContext)\r\n const { state } = useContext(StateContext)\r\n // const [centerP, setCenterP] = useState([]);\r\n // const [map, setMap] = useState({});\r\n useEffect(() => {\r\n // var lng,lat;\r\n // var map = new window.AMap.Map('container', {\r\n // center:[117.000923,36.675807],\r\n // zoom:22\r\n // });\r\n // var geolocation = new window.AMap.Geolocation({});\r\n // geolocation.getCurrentPosition((status,result)=>{\r\n // if (status === 'complete' && result.info === 'OK'){\r\n // setCenterP([result.position.lng,result.position.lat])\r\n // lng=result.position.lng; lat = result.position.lat;\r\n // }\r\n // console.log(result.position.lng);\r\n \r\n // }); \r\n // // map.addControl(geolocation);\r\n // setTimeout(() => {\r\n // // map.setCenter([lng,lat]);\r\n // var marker = new window.AMap.Marker({\r\n // position:[lng,lat]\r\n // })\r\n // map.add(marker);\r\n // }, 2000);\r\n\r\n\r\n }, [])\r\n return (\r\n
\r\n * 地址类型:} defaultValue={actAddress.type} option={state.addresstype.filter(x=>x.code!==403)} keyword={\"code\"} text='value'\r\n onChange={value => { dispatchAddress({ type: 'update', address: { ...actAddress, type: value,user:'' } }) }} />\r\n * 所属单位:} defaultValue={actAddress.user} option={state.transuser&&state.transuser.filter(x=>state.systemuser.list.some(us=>us.id===x.users) &&(actAddress.type===401?x.type===901:actAddress.type===402?x.type===902:actAddress.type===403?x.type===903:true))} keyword={\"id\"} text='name'\r\n onChange={value => { dispatchAddress({ type: 'update', address: { ...actAddress, user: value } }) }} /> \r\n * 地址:} value={actAddress.address}\r\n onChange={e => { dispatchAddress({ type: 'update', address: { ...actAddress, address: (e.target.value) } }) }} \r\n />\r\n {/*
*/}\r\n
\r\n )\r\n}\r\n\r\nconst PersonContext = createContext();\r\n\r\nfunction PersonNew() {\r\n const { actPerson, dispatchPerson } = useContext(PersonContext)\r\n const { state } = useContext(StateContext)\r\n return (\r\n
\r\n 单位类型:} option={state.tusertype?state.tusertype:[]} keyword={\"code\"} text='value'\r\n defaultValue={actPerson.type} onChange={value => { dispatchPerson({ type: 'update', person: { ...actPerson, type: value ,user:''} }) }} />\r\n * 所属单位:} option={state.transuser&&state.transuser.filter(x=>actPerson.type===0? x.users===state.main.id:x.users===state.main.id&&actPerson.type===x.type)} keyword={\"id\"} text='name'\r\n defaultValue={actPerson.user} onChange={value => { dispatchPerson({ type: 'update', person: { ...actPerson, user: value } }) }} /> \r\n * 联系人:} value={actPerson.name}\r\n onChange={(e) => { dispatchPerson({ type: 'update', person: { ...actPerson, name: (e.target.value) } }) }} />\r\n * 联系方式:} value={actPerson.phone}\r\n onChange={(e) => { dispatchPerson({ type: 'update', person: { ...actPerson, phone: (e.target.value*1) } }) }} />\r\n
\r\n )\r\n}\r\n\r\nfunction AddressManage() {\r\n const { state, dispatch } = useContext(StateContext)\r\n const [actAddress, dispatchAddress] = useReducer((state, action) => {\r\n if (action.type === 'update') {\r\n return action.address\r\n } else if (action.type === 'clear') {\r\n return {\r\n type: '',\r\n address: '',\r\n user:''\r\n }\r\n }\r\n return state\r\n }, []);\r\n const [showNewModel, setShowNewModel] = useState(false)\r\n const [showFixModel, setShowFixModel] = useState(false)\r\n\r\n const [actPerson, dispatchPerson] = useReducer((state, action) => {\r\n if (action.type === 'update') {\r\n return action.person\r\n } else if (action.type === 'clear') {\r\n return {\r\n name: '',\r\n phone: '',\r\n user:'',\r\n type:''\r\n }\r\n }\r\n return state\r\n }, []);\r\n const [showNewPModel, setShowNewPModel] = useState(false)\r\n const [showFixPModel, setShowFixPModel] = useState(false)\r\n useEffect(() => {\r\n // var script = document.createElement('script');\r\n // script.type = 'text/javascript';\r\n // script.async = true;\r\n // script.src = 'https://webapi.amap.com/maps?v=1.4.15&key=56e05414695293038cbd67fbc00b3218&plugin=AMap.Geocoder,AMap.Geolocation';\r\n // document.head.appendChild(script); \r\n http.get(\"/v1/transaddress\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'address', address: data.data })\r\n }else{\r\n dispatch({ type: 'address', address: [] })\r\n }\r\n })\r\n http.get(\"/v1/addresstype\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'addresstype', addresstype: data.data })\r\n }else{\r\n dispatch({ type: 'addresstype', addresstype: [] })\r\n }\r\n })\r\n http.get(\"/v1/transaddressuser\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'addressuser', addressuser: data.data })\r\n }else{\r\n dispatch({ type: 'addressuser', addressuser: [] })\r\n }\r\n })\r\n http.get(\"/v1/transuser\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'transuser', transuser: data.data })\r\n }else{\r\n dispatch({ type: 'transuser', transuser: [] })\r\n }\r\n });\r\n http.get(\"/v1/tuserstype\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'tusertype', tusertype: data.data })\r\n }else{\r\n dispatch({ type: 'tusertype', tusertype: [] })\r\n }\r\n });\r\n }, [])\r\n const columns = [\r\n {\r\n title: '类型',\r\n dataIndex: 'type',\r\n align: 'left',\r\n render: (text, record) => (\r\n
\r\n {\r\n state.addresstype.filter(x => { return x.code === record.type }).length > 0 ? state.addresstype.filter(x => { return x.code === record.type })[0].value : '无'\r\n }\r\n
\r\n )\r\n },\r\n {\r\n title: '地址',\r\n dataIndex: 'address',\r\n align: 'center',\r\n },\r\n {\r\n title: '所属单位',\r\n dataIndex: 'user',\r\n align: 'center',\r\n render: (text, record) => (\r\n
\r\n {\r\n state.transuser&&state.transuser.filter(x => x.id === record.user ).length > 0 ? state.transuser.filter(x => x.id === record.user )[0].name : '无'\r\n }\r\n
\r\n )\r\n },\r\n {\r\n title: '操作',\r\n width: 200,\r\n dataIndex: 'operation',\r\n align: 'right',\r\n width: '180px',\r\n render: (text, record) => (\r\n
\r\n \r\n \r\n
\r\n ),\r\n },\r\n ]\r\n const columnsPerson = [\r\n // {\r\n // title: '类型',\r\n // dataIndex: 'type',\r\n // align: 'left',\r\n // render: (text, record) => (\r\n //
\r\n // {\r\n // state.addresstype.filter(x => { return x.code === record.type }).length > 0 ? state.addresstype.filter(x => { return x.code === record.type })[0].value : '无'\r\n // }\r\n //
\r\n // )\r\n // },\r\n {\r\n title: '联系人',\r\n dataIndex: 'name',\r\n align: 'center',\r\n\r\n },\r\n {\r\n title: '联系方式',\r\n dataIndex: 'phone',\r\n align: 'center',\r\n },\r\n {\r\n title: '所属单位',\r\n dataIndex: 'user',\r\n align: 'center',\r\n render: (text, record) => (\r\n
\r\n {\r\n state.transuser.filter(x => x.id === record.user ).length > 0 ? state.transuser.filter(x => x.id === record.user )[0].name : '无'\r\n }\r\n
\r\n )\r\n },\r\n {\r\n title: '操作',\r\n width: 200,\r\n dataIndex: 'operation',\r\n align: 'right',\r\n width: '180px',\r\n render: (text, record) => (\r\n
\r\n \r\n \r\n
\r\n ),\r\n },\r\n ]\r\n\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n
\r\n
record.id} columns={columns} size='small' dataSource={state.address} />\r\n {\r\n http.post(\"/v1/transaddress\", actAddress).then((data) => {\r\n http.get(\"/v1/transaddress\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'address', address: data.data })\r\n }\r\n })\r\n })\r\n // setShowNewModel(false)\r\n dispatchAddress({ type: 'clear' })\r\n }}\r\n onCancel={() => {\r\n setShowNewModel(false)\r\n dispatchAddress({ type: 'clear'})\r\n }}>\r\n \r\n \r\n \r\n \r\n {\r\n http.put(\"/v1/transaddress/\" + actAddress.id, actAddress).then((data) => {\r\n http.get(\"/v1/transaddress\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'address', address: data.data })\r\n }\r\n })\r\n })\r\n // setShowFixModel(false);\r\n dispatchAddress({ type: 'clear' });\r\n }}\r\n onCancel={() => {\r\n setShowFixModel(false)\r\n dispatchAddress({ type: 'clear' });\r\n }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
record.id} columns={columnsPerson} size='small' dataSource={state.addressuser} />\r\n {\r\n http.post(\"/v1/transaddressuser\", actPerson).then((data) => {\r\n http.get(\"/v1/transaddressuser\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'addressuser', addressuser: data.data })\r\n }\r\n })\r\n })\r\n // setShowNewModel(false)\r\n }}\r\n onCancel={() => {\r\n setShowNewPModel(false)\r\n }}>\r\n \r\n \r\n \r\n \r\n {\r\n http.put(\"/v1/transaddressuser/\" + actPerson.id, actPerson).then((data) => {\r\n http.get(\"/v1/transaddressuser\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'addressuser', addressuser: data.data })\r\n }\r\n })\r\n })\r\n // setShowFixModel(false);\r\n }}\r\n onCancel={() => {\r\n setShowFixPModel(false)\r\n }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default AddressManage","import React, { createContext, useContext, useEffect, useState, useReducer } from 'react'\r\nimport { Table, Button, Input, Select, Modal,} from 'antd'\r\nimport { StateContext } from '../../../state';\r\nimport http from '../../../../../utils/server'\r\nimport { ExclamationCircleOutlined } from '@ant-design/icons';\r\n\r\nfunction SelectInput(props) {\r\n return (\r\n
\r\n
{props.addonBefore}
\r\n \r\n
\r\n )\r\n}\r\n\r\nconst GoodsContext = createContext();\r\n\r\nfunction GoodsNew() {\r\n const { actGoods, dispatchGoods } = useContext(GoodsContext)\r\n const { state } = useContext(StateContext)\r\n const [savecycle, setSavecycle] = useState(0)\r\n const [defExpend,setDefExpend]=useState([]);\r\n useEffect(() => {\r\n var userLogin = state.systemuser.list[0];\r\n var list = [];\r\n state.systemuser.list.filter(x=>x.parent===userLogin.id).map(m=>list.push(m.id+\"\"));\r\n setDefExpend(list);\r\n if (actGoods.save_cycle === -1) \r\n setSavecycle(2)\r\n else if (actGoods.save_cycle === 100000000)\r\n setSavecycle(1)\r\n else if (actGoods.save_cycle === 0)\r\n setSavecycle(0)\r\n else\r\n setSavecycle(3)\r\n\r\n }, [])\r\n return (\r\n
\r\n * 物品名称:} value={actGoods.name}\r\n onChange={(e) => { dispatchGoods({ type: 'update', goods: { ...actGoods, name: (e.target.value) } }) }} />\r\n * 物品类型:} defaultValue={actGoods.type} option={state.goodstype} keyword={\"code\"} text='value'\r\n onChange={value => { dispatchGoods({ type: 'update', goods: { ...actGoods, type: value } }) }} />\r\n {/* * 所属单位:} defaultValue={actGoods.user} option={state.transuser.filter(x=>x.users===state.main.id)} keyword={\"code\"} text='value'\r\n onChange={value => { dispatchGoods({ type: 'update', goods: { ...actGoods, type: value } }) }} /> */}\r\n
\r\n )\r\n}\r\n\r\nfunction GoodsManage() {\r\n const { state, dispatch } = useContext(StateContext)\r\n const [actGoods, dispatchGoods] = useReducer((state, action) => {\r\n if (action.type === 'update') {\r\n return action.goods\r\n } else if (action.type === 'clear') {\r\n return {\r\n type: '',\r\n name: '',\r\n users:action.users,\r\n }\r\n }\r\n return state\r\n }, []);\r\n const [showNewModel, setShowNewModel] = useState(false)\r\n const [showFixModel, setShowFixModel] = useState(false)\r\n useEffect(() => {\r\n http.get(\"/v1/transgoods\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'goods', goods: data.data })\r\n }else{\r\n dispatch({ type: 'goods', goods: [] })\r\n }\r\n })\r\n http.get(\"/v1/goodstype\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'goodstype', goodstype: data.data })\r\n }else{\r\n dispatch({ type: 'goodstype', goodstype: [] })\r\n }\r\n })\r\n // http.get(\"/v1/transuser\", {}).then(data => {\r\n // if (data.code === 0) {\r\n // dispatch({ type: 'transuser', transuser: data.data })\r\n // }\r\n // });\r\n }, [])\r\n const columns = [\r\n {\r\n title: '名称',\r\n dataIndex: 'name',\r\n key: 'name',\r\n align: 'left',\r\n },\r\n {\r\n title: '类型',\r\n dataIndex: 'type',\r\n key: 'type',\r\n align: 'left',\r\n render: (text, record) => (\r\n
\r\n {\r\n state.goodstype.filter(x => { return x.code === record.type }).length > 0 ? state.goodstype.filter(x => { return x.code === record.type })[0].value : '无'\r\n }\r\n
\r\n )\r\n },\r\n // {\r\n // title: '所属区域',\r\n // dataIndex: 'district',\r\n // key: 'district',\r\n // align: 'center',\r\n // render: (text, record) => (\r\n //
\r\n // {\r\n // state.district.filter(x => { return x.id === record.district }).length > 0 ? state.district.filter(x => { return x.id === record.district })[0].name : '无'\r\n // }\r\n //
\r\n // )\r\n // }, \r\n {\r\n title: '操作',\r\n width: 200,\r\n dataIndex: 'operation',\r\n key: 'operation',\r\n align: 'right',\r\n width: '180px',\r\n render: (text, record) => (\r\n
\r\n \r\n \r\n
\r\n ),\r\n },\r\n ]\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
record.id} columns={columns} size='small' dataSource={state.goods} />\r\n {\r\n http.post(\"/v1/transgoods\", actGoods).then((data) => {\r\n http.get(\"/v1/transgoods\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'goods', goods: data.data })\r\n }\r\n })\r\n })\r\n setShowNewModel(false)\r\n dispatchGoods({ type: 'clear', project_id: state.main.project_id })\r\n }}\r\n onCancel={() => {\r\n setShowNewModel(false)\r\n dispatchGoods({ type: 'clear', project_id: state.main.project_id })\r\n }}>\r\n \r\n \r\n \r\n \r\n {\r\n http.put(\"/v1/transgoods/\" + actGoods.id, actGoods).then((data) => {\r\n http.get(\"/v1/transgoods\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'goods', goods: data.data })\r\n }\r\n })\r\n })\r\n setShowFixModel(false)\r\n dispatchGoods({ type: 'clear', project_id: state.main.project_id })\r\n }}\r\n onCancel={() => {\r\n setShowFixModel(false)\r\n dispatchGoods({ type: 'clear', project_id: state.main.project_id })\r\n }}>\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default GoodsManage","import React, { createContext, useContext, useEffect, useState, useReducer } from 'react'\r\nimport { Button, Table, Input, Select, Modal } from 'antd'\r\nimport { StateContext } from '../../../state';\r\nimport http from '../../../../../utils/server';\r\nimport { ExclamationCircleOutlined } from '@ant-design/icons';\r\n\r\nfunction SelectInput(props) {\r\n return (\r\n
\r\n
{props.addonBefore}
\r\n \r\n
\r\n )\r\n}\r\nconst TransuserContext = createContext();\r\nfunction TransuserNew() {\r\n const { actTransuser, dispatchTransuser } = useContext(TransuserContext)\r\n const { state } = useContext(StateContext)\r\n useEffect(() => {\r\n\r\n }, [])\r\n return (\r\n
\r\n * 类型:} defaultValue={actTransuser.type} \r\n option={state.tusertype?state.tusertype:[]} keyword={\"code\"} text='value'\r\n onChange={value => { dispatchTransuser({ type: 'update', transuser: { ...actTransuser, type: value } }) }} />\r\n * 名称:} value={actTransuser.name}\r\n onChange={e => { dispatchTransuser({ type: 'update', transuser: { ...actTransuser, name: (e.target.value) } }) }} \r\n />\r\n * 账号:} value={actTransuser.account}\r\n onChange={(e) => { dispatchTransuser({ type: 'update', transuser: { ...actTransuser, account: (e.target.value) } }) }} />\r\n\r\n * 密码:} value={actTransuser.password}\r\n onChange={(e) => { dispatchTransuser({ type: 'update', transuser: { ...actTransuser, password: (e.target.value) } }) }} />\r\n {/*
\r\n
{'所在用户'}
\r\n console.log(value)}>\r\n \r\n \r\n
*/}\r\n
\r\n )\r\n}\r\nfunction TransuserManager() {\r\n const { state, dispatch } = useContext(StateContext)\r\n const [actTransuser, dispatchTransuser] = useReducer((state, action) => {\r\n if (action.type === 'update') {\r\n return action.transuser\r\n } else if (action.type === 'clear') {\r\n return {\r\n name: '',\r\n account:'',\r\n password:'',\r\n users:action.users,\r\n type:'',\r\n }\r\n }\r\n return state\r\n }, []);\r\n const [showNewModel, setShowNewModel] = useState(false);\r\n const [showFixModel, setShowFixModel] = useState(false);\r\n useEffect(() => {\r\n http.get(\"/v1/tuserstype\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'tusertype', tusertype: data.data })\r\n }else{\r\n dispatch({ type: 'tusertype', tusertype: [] })\r\n }\r\n });\r\n http.get(\"/v1/users\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'systemuser', systemuser: data.data.sort((a,b)=>a.name.localeCompare(b.name,'zh')) })\r\n }else{\r\n dispatch({ type: 'systemuser', systemuser: [] })\r\n }\r\n });\r\n http.get(\"/v1/transuser\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'transuser', transuser: data.data })\r\n }else{\r\n dispatch({ type: 'transuser', transuser: [] })\r\n }\r\n });\r\n \r\n }, [])\r\n const columns=[\r\n {\r\n title: '名称',\r\n dataIndex: 'name',\r\n align: 'left',\r\n },\r\n {\r\n title: '账号',\r\n dataIndex: 'account',\r\n align: 'center',\r\n },\r\n {\r\n title: '密码',\r\n dataIndex: 'password',\r\n align: 'center',\r\n },\r\n {\r\n title: '类型',\r\n dataIndex: 'type',\r\n align: 'center',\r\n render: (text, record) => (\r\n
\r\n {\r\n record.type===901?'发货单位':record.type===902?'收货单位':record.type===903?'运输单位':null\r\n }\r\n
\r\n )\r\n },\r\n {\r\n title: '操作',\r\n width: 200,\r\n dataIndex: 'transuser',\r\n align: 'right',\r\n width: '180px',\r\n render: (text, record) => (\r\n
\r\n \r\n \r\n
\r\n ),\r\n },\r\n ]\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
record.id} columns={columns} size='small' dataSource={state.transuser} />\r\n {\r\n http.post(\"/v1/transuser\", actTransuser).then((data) => {\r\n http.get(\"/v1/transuser\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'transuser', transuser: data.data })\r\n }\r\n })\r\n })\r\n // setShowNewModel(false)\r\n // dispatchTransuser({ type: 'clear' })\r\n }}\r\n onCancel={() => {\r\n setShowNewModel(false)\r\n dispatchTransuser({ type: 'clear' })\r\n }}>\r\n \r\n \r\n \r\n \r\n {\r\n http.put(\"/v1/transuser/\" + actTransuser.id, actTransuser).then((data) => {\r\n http.get(\"/v1/transuser\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'transuser', transuser: data.data })\r\n }\r\n })\r\n })\r\n // setShowFixModel(false);\r\n }}\r\n onCancel={() => {\r\n setShowFixModel(false);\r\n }}>\r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n}\r\nexport default TransuserManager","import React from 'react'\r\nimport { Tabs } from 'antd'\r\nimport TansportManage from './tansport'\r\nimport AddressManage from './address'\r\nimport GoodsManage from './goods'\r\nimport TransuserManage from './transuser'\r\nimport './index.less'\r\nconst { TabPane } = Tabs;\r\n\r\nfunction TransportIndex() {\r\n return (\r\n
\r\n
\r\n 没有添加过收发货地址的:一、请先点击账号管理添加账号 二、点击地址管理添加地址和联系人 三、点击物品管理添加运送物品 四、最后添加订单\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n )\r\n}\r\n\r\nexport default TransportIndex","export default __webpack_public_path__ + \"static/media/systs.96f958ca.png\";","import React, { createContext, useContext, useEffect, useState, useReducer } from 'react'\r\nimport { Table, Button, Input, Select, Modal, Tag, TreeSelect, Space, message, TimePicker, Dropdown, Menu, Tabs, Tooltip} from 'antd'\r\nimport { StateContext } from '../../../state';\r\nimport http from '../../../../../utils/server'\r\nimport SysTs from '../../../../../../public/assets/systs.png'\r\nimport {ExclamationCircleOutlined, SearchOutlined, DownOutlined} from '@ant-design/icons';\r\nimport { Mode } from '../../../../../App';\r\nimport Draggable from 'react-draggable';\r\nimport './index.less'\r\nconst { TabPane } = Tabs;\r\n\r\nfunction findUnderUser(nop, list, underUser) {\r\n if (list) {\r\n const nops = list.filter(x => { return x.parent === nop })\r\n if (nops.length === 0) {\r\n return\r\n } else {\r\n for (var j = 0; j < nops.length; j++) {\r\n underUser.push(nops[j]);\r\n findUnderUser(nops[j].id, list,underUser);\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction checkNumber(theObj) {\r\n var reg = /^\\d*$/;\r\n if (reg.test(theObj)) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nconst AlarmUserContext = createContext();\r\nlet qrtime = 0, qrInterval = \"\", flowid = 0\r\nfunction AlarmUserNew() {\r\n const { actAlarmUser, dispatchAlarmUser } = useContext(AlarmUserContext)\r\n const { state } = useContext(StateContext)\r\n\r\n const [qrcode, setQrcode] = useState(\"\")\r\n const [qrcodeUrl, setQrcodeUrl] = useState(\"\")\r\n const [wechat, setWechat] = useState(\"\")\r\n const [defExpend,setDefExpend]=useState([]);\r\n const [smsCount,setSmsCount] = useState(0);//可分配短信条数\r\n const [userDis,setUserDis]=useState([]);//普通用户分配的区域\r\n const [selDis,setSelDis]=useState([]);//可选择的区域\r\n function fetchDataQR() {\r\n http.get(\"/v1/cfmqrcode?flowid=\" + flowid, {}).then(data => {\r\n if (data.data.length > 0) {\r\n setWechat(data.data)\r\n setQrcode(\"http://wx.liuliyong5.xyz/static/assets/qrok.png\")\r\n clearInterval(qrInterval)\r\n }\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n dispatchAlarmUser({ type: 'update', AlarmUser: { ...actAlarmUser, wechat: wechat } })\r\n }, [wechat])\r\n useEffect(() => {\r\n var userLogin = state.main;\r\n var list = [];\r\n state.systemuser.list.filter(x=>x.parent===userLogin.id).map(m=>list.push(m.id+\"\"));\r\n setDefExpend(list);\r\n let temp=[];\r\n if(Mode==='soc'){\r\n \r\n if(actAlarmUser.district!==null){\r\n actAlarmUser.district.length===0?\r\n state.district.filter(x => { return x.user === userLogin.id }).map(item => \r\n temp.push({label:item.name,value:item.id})\r\n ):state.district.filter(x => x.user ===actAlarmUser.user).map(item => \r\n temp.push({label:item.name,value:item.id}))\r\n }\r\n }else{\r\n state.district.map(item => \r\n temp.push({label:item.name,value:item.id})\r\n )\r\n }\r\n setSelDis(temp);\r\n setWechat(actAlarmUser.wechat);\r\n flowid = (new Date()).valueOf();\r\n // setQrflowid(flowid)\r\n http.get(\"/v1/getqrcode?flowid=\" + flowid, {}).then(data => {\r\n if (data.code === 0) {\r\n setQrcodeUrl(\"https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=\" + data.data.ticket);\r\n setQrcode(\"https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=\" + data.data.ticket)\r\n qrtime = 0\r\n qrInterval = setInterval(() => {\r\n qrtime++\r\n if (qrtime > 60) {\r\n setQrcode(\"http://wx.liuliyong5.xyz/static/assets/qrtimeout.png\")\r\n clearInterval(qrInterval)\r\n }\r\n fetchDataQR()\r\n }, 2000)\r\n }\r\n })\r\n http.get(\"/v1/userdistricts\", {}).then(data => {\r\n if (data.code === 0) {\r\n setUserDis(data.data);\r\n }\r\n })\r\n return () => {\r\n clearInterval(qrInterval)\r\n }\r\n }, [])\r\n return (\r\n
\r\n {\r\n // (state.main.type === 101 || state.main.type === 102) &&\r\n Mode==='soc'&&\r\n
\r\n
关联用户:
\r\n {\r\n const us = state.systemuser.list.filter(x => { return x.id === value })\r\n if (us.length > 0) {\r\n const u = us[0]\r\n setSmsCount(u.smscount-u.smssendcount);\r\n dispatchAlarmUser({ type: 'update', AlarmUser: { ...actAlarmUser, user: u.id} })\r\n let temp=[]\r\n if(us[0].type===104){\r\n userDis.filter(x => { return x.user === u.id }).map(item => {\r\n let disName=state.district.filter(y=>y.id===item.district)[0].name;\r\n temp.push({label:disName,value:item.district})\r\n } \r\n )\r\n setSelDis(temp);\r\n }else{\r\n\r\n state.district.filter(x => { return x.user === u.id }).map(item => \r\n temp.push({label:item.name,value:item.id})\r\n )\r\n setSelDis(temp);\r\n }\r\n }\r\n }}\r\n />\r\n
\r\n }\r\n \r\n
\r\n
\r\n {\r\n state.systemuser.list.filter(x=>x.id===actAlarmUser.user)[0].type<104?  :\r\n }\r\n 绑定区域:\r\n
\r\n {\r\n value.length===0?dispatchAlarmUser({ type: 'update', AlarmUser: { ...actAlarmUser, district: value ,alarmtypesms:[711],alarmtypewe:[611],alarmtypephone:[811]} }):\r\n dispatchAlarmUser({ type: 'update', AlarmUser: { ...actAlarmUser, district: value ,alarmtypesms:[701,706,707,711],alarmtypewe:[601,606,607,611],alarmtypephone:[801,806,807,811]} })\r\n }}\r\n maxTagCount={'responsive'}\r\n options={selDis}\r\n >\r\n \r\n \r\n
\r\n 联系人姓名:} value={actAlarmUser.name}\r\n onChange={(e) => { dispatchAlarmUser({ type: 'update', AlarmUser: { ...actAlarmUser, name: (e.target.value) } }) }} />\r\n\r\n \r\n \r\n 短信手机号码:} value={actAlarmUser.phone}\r\n onChange={(e) => { dispatchAlarmUser({ type: 'update', AlarmUser: { ...actAlarmUser, phone: Number(e.target.value) } }) }} />\r\n
\r\n
\r\n
\r\n \r\n 短信报警类型:\r\n
\r\n {\r\n dispatchAlarmUser({ type: 'update', AlarmUser: { ...actAlarmUser, alarmtypesms: value } })\r\n }}\r\n maxTagCount={'responsive'}\r\n >\r\n {\r\n (actAlarmUser.district===null||actAlarmUser.district.length===0)?state.alarmtype.filter(x => { return x.code === 711 }).map(item => (\r\n {item.value}\r\n )):\r\n state.alarmtype.filter(x => { return x.code > 700 }).map(item => (\r\n {item.value}\r\n ))\r\n }\r\n \r\n
\r\n
\r\n \r\n { dispatchAlarmUser({ type: 'update', AlarmUser: { ...actAlarmUser, smscount: Number(e.target.value) } }) }} />\r\n
\r\n
\r\n {\r\n dispatchAlarmUser({ type: 'update', AlarmUser: { ...actAlarmUser, timerange:val.target.value } })\r\n }}\r\n >\r\n
\r\n
\r\n {\r\n let temp = val.target.value;\r\n if(checkNumber(temp)){\r\n dispatchAlarmUser({ type: 'update', AlarmUser: { ...actAlarmUser, timerelay: temp*1} })\r\n }\r\n }}\r\n >\r\n {\r\n if(dateStr[0]!==''){\r\n let temp = actAlarmUser.timerange===undefined?'':actAlarmUser.timerange;\r\n temp+=`${dateStr[0]}-${dateStr[1]};`;\r\n dispatchAlarmUser({ type: 'update', AlarmUser: { ...actAlarmUser, timerange:temp } })\r\n }\r\n }}/>\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n 微信扫码进行绑定\r\n
\r\n {\"q\"}{\r\n if(wechat===''){\r\n if(qrtime>60){\r\n qrtime=0;\r\n setQrcode(qrcodeUrl);\r\n qrInterval = setInterval(() => {\r\n qrtime++\r\n if (qrtime > 60) {\r\n setQrcode(\"http://wx.liuliyong5.xyz/static/assets/qrtimeout.png\")\r\n clearInterval(qrInterval)\r\n }\r\n fetchDataQR()\r\n }, 2000)\r\n }else{\r\n qrtime=0;\r\n }\r\n \r\n }\r\n }} />\r\n
\r\n \r\n {\"q\"}\r\n
\r\n
\r\n
\r\n
微信报警类型:
\r\n {\r\n dispatchAlarmUser({ type: 'update', AlarmUser: { ...actAlarmUser, alarmtypewe: value } })\r\n }}\r\n maxTagCount={'responsive'}\r\n >\r\n {\r\n (actAlarmUser.district===null||actAlarmUser.district.length===0)?state.alarmtype.filter(x => { return x.code === 611 }).map(item => (\r\n {item.value}\r\n )):\r\n state.alarmtype.filter(x => { return x.code < 700 }).map(item => (\r\n {item.value}\r\n ))\r\n }\r\n \r\n
\r\n
\r\n {\r\n dispatchAlarmUser({ type: 'update', AlarmUser: { ...actAlarmUser, timerangewechat:val.target.value } })\r\n }}\r\n >\r\n
\r\n
\r\n {\r\n let temp = val.target.value;\r\n if(checkNumber(temp)){\r\n dispatchAlarmUser({ type: 'update', AlarmUser: { ...actAlarmUser, timerelaywechat: temp*1} })\r\n }\r\n }}\r\n >\r\n {\r\n if(dateStr[0]!==''){\r\n let temp = actAlarmUser.timerangewechat===undefined?'':actAlarmUser.timerangewechat;\r\n temp+=`${dateStr[0]}-${dateStr[1]};`;\r\n dispatchAlarmUser({ type: 'update', AlarmUser: { ...actAlarmUser, timerangewechat:temp } })\r\n }\r\n }}/>\r\n
\r\n
\r\n \r\n 语音手机号码:} value={actAlarmUser.vphone}\r\n onChange={(e) => { dispatchAlarmUser({ type: 'update', AlarmUser: { ...actAlarmUser, vphone: Number(e.target.value) } }) }} />\r\n
\r\n
\r\n
\r\n \r\n 语音报警类型:\r\n
\r\n {\r\n dispatchAlarmUser({ type: 'update', AlarmUser: { ...actAlarmUser, alarmtypephone: value } })\r\n }}\r\n maxTagCount={'responsive'}\r\n >\r\n {\r\n (actAlarmUser.district===null||actAlarmUser.district.length===0)?state.alarmtype.filter(x => { return x.code === 811 }).map(item => (\r\n {item.value}\r\n )):\r\n state.alarmtype.filter(x => { return x.code > 800 }).map(item => (\r\n {item.value}\r\n ))\r\n }\r\n \r\n
\r\n
\r\n {\r\n dispatchAlarmUser({ type: 'update', AlarmUser: { ...actAlarmUser, timerangephone:val.target.value } })\r\n }}\r\n >\r\n
\r\n
\r\n {\r\n let temp = val.target.value;\r\n if(checkNumber(temp)){\r\n dispatchAlarmUser({ type: 'update', AlarmUser: { ...actAlarmUser, timerelayphone: temp*1} })\r\n }\r\n }}\r\n >\r\n {\r\n if(dateStr[0]!==''){\r\n let temp = actAlarmUser.timerangephone===undefined?'':actAlarmUser.timerangephone;\r\n temp+=`${dateStr[0]}-${dateStr[1]};`;\r\n dispatchAlarmUser({ type: 'update', AlarmUser: { ...actAlarmUser, timerangephone:temp } })\r\n }\r\n }}/>\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nfunction AlarmUserManage() {\r\n const { state, dispatch } = useContext(StateContext)\r\n const [actAlarmUser, dispatchAlarmUser] = useReducer((state, action) => {\r\n if (action.type === 'update') {\r\n return action.AlarmUser\r\n } else if (action.type === 'clear') {\r\n return {\r\n name: '',\r\n user: action.user,\r\n wechat: '',\r\n district: [],\r\n alarmtypewe: [611],\r\n alarmtypesms: [711],\r\n alarmtypephone: [811],\r\n wechatcount:200,\r\n }\r\n }\r\n return state\r\n }, []);\r\n const [showNewModel, setShowNewModel] = useState(false)\r\n const [showFixModel, setShowFixModel] = useState(false)\r\n const [selUser,setSelUser] = useState(0);//筛选用户\r\n const [alarmUser,setAlarmUser]=useState([]);\r\n const [defExpend,setDefExpend]=useState([]);\r\n const [modalBounds,setModalBounds] = useState({left: 0, top: 0, bottom: 0, right: 0 });//对话框移动坐标\r\n const [modalMoveDisabled, setModalMoveDisabled] = useState(true);//对话框拖动功能关闭\r\n const draggleRef = React.createRef();//移动对话框\r\n const [tableLoad,setTableLoad] = useState(true);\r\n let tempUsers=[];//选中用户下的所有用户\r\n const [innerWidth,setInnerWidth]= useState(0);\r\n useEffect(() => {\r\n setTableLoad(true)\r\n http.get(\"/v1/alarmsuer\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'alarmsuer', alarmsuer: data.data })\r\n setTableLoad(false)\r\n setAlarmUser(data.data);\r\n \r\n }\r\n })\r\n http.get(\"/v1/alarmtype\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'alarmtype', alarmtype: data.data.sort((a,b)=>a.id-b.id) })\r\n }\r\n })\r\n http.get(\"/v1/district\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'district', district: data.data })\r\n }\r\n })\r\n http.get(\"/v1/device\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'device', device: data.data })\r\n }\r\n })\r\n http.get(\"/v1/users\", {}).then(data => {\r\n if (data.code === 0) {\r\n let temp = data.data.sort((a,b)=>a.name.localeCompare(b.name,'zh'));\r\n dispatch({ type: 'systemuser', systemuser: temp })\r\n if(data.data.length>0){\r\n var userLogin =data.data[0];\r\n var list = [];\r\n temp.filter(x=>x.parent===userLogin.id).map(m=>list.push(m.id+\"\"));\r\n setDefExpend(list); \r\n } \r\n }\r\n })\r\n setInnerWidth(window.innerWidth);\r\n }, [])\r\n const columns = [\r\n {\r\n title: '姓名',\r\n dataIndex: 'name',\r\n width:70,\r\n align: 'center',\r\n filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) =>\r\n (\r\n
\r\n setSelectedKeys(e.target.value ? [e.target.value] : [])}\r\n onPressEnter={() => confirm()}\r\n style={{ marginBottom: 8, display: 'block' }}\r\n />\r\n \r\n \r\n confirm()}\r\n icon={}\r\n size=\"small\"\r\n style={{ width: 90}}\r\n >\r\n 查找\r\n \r\n\r\n \r\n
\r\n ),\r\n filterIcon: filtered => ,\r\n\r\n onFilter: (value, record) =>\r\n record['name']\r\n ? (record['name'].toString().toLowerCase().includes(value.toLowerCase()))\r\n : '',\r\n },\r\n {\r\n title: '电话',\r\n dataIndex: 'phone',\r\n align: 'center',\r\n width:120,\r\n filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) =>\r\n (\r\n
\r\n setSelectedKeys(e.target.value ? [e.target.value] : [])}\r\n onPressEnter={() => confirm()}\r\n style={{ marginBottom: 8, display: 'block' }}\r\n />\r\n \r\n \r\n confirm()}\r\n icon={}\r\n size=\"small\"\r\n style={{ width: 90 }}\r\n >\r\n 查找\r\n \r\n\r\n \r\n
\r\n ),\r\n filterIcon: filtered => ,\r\n\r\n onFilter: (value, record) =>\r\n record['phone']\r\n ? (record['phone'].toString().toLowerCase().includes(value.toLowerCase()))\r\n : '',\r\n },\r\n {\r\n title: '关联用户',\r\n dataIndex: 'user',\r\n align: 'center',\r\n width:300,\r\n render: (text, record) => (\r\n x.id === record.user).length > 0 ?\r\n state.systemuser.list.filter(x => x.id === record.user)[0].name : ''}>\r\n
\r\n {\r\n state.systemuser.list.filter(x => x.id === record.user).length > 0 ?\r\n state.systemuser.list.filter(x => x.id === record.user)[0].name : '无'\r\n }\r\n
\r\n
\r\n ),\r\n // filters: state.systemuser.tree,\r\n // onFilter: (value, record) => record.user.includes(value),\r\n },\r\n {\r\n title: '绑定区域',\r\n width:80,\r\n dataIndex: 'district',\r\n align: 'center',\r\n render:(text, record) => {\r\n let temp =state.district.filter(x => { return record.district?.indexOf(x.id) > -1 });\r\n let len = temp.length;\r\n let n =3;\r\n let lineNub=len%n===0?len/n:Math.floor(len/n+1);\r\n let tempArrs=[];\r\n for(let i=0;i\r\n {\r\n tempArrs.map((items,index)=>(\r\n \r\n {\r\n items.map(item => \r\n \r\n {item.name}\r\n \r\n )\r\n }\r\n \r\n ))\r\n }\r\n\r\n }\r\n >\r\n 详情({temp.length})\r\n \r\n // \r\n )}\r\n },\r\n // 微信\r\n {\r\n title: '微信报警',\r\n width:innerWidth<1600?180:265,\r\n dataIndex: 'alarmtype',\r\n align: 'left',\r\n render: (text, record) => (\r\n <>\r\n {\r\n record.wechat!==\"\"?\r\n
\r\n
\r\n { return record.alarmtypewe?.indexOf(x.code) > -1 }).map(item => (\r\n {item.value}\r\n ))} color = {'#1296db'}>\r\n 类型:\r\n \r\n {\r\n state.alarmtype.filter(x => { return record.alarmtypewe?.indexOf(x.code) > -1 }).map(item => (\r\n {item.value}\r\n ))\r\n }\r\n
\r\n
\r\n 延时(分):{record.timerelaywechat}\r\n
\r\n
\r\n 时间段:{record.timerangewechat}\r\n
\r\n
\r\n :\r\n
\r\n 未设置\r\n
\r\n }\r\n \r\n )\r\n\r\n },\r\n// 短信\r\n {\r\n title: '短信报警',\r\n width:innerWidth<1600?170:255,\r\n dataIndex: 'alarmtype',\r\n align: 'left',\r\n render: (text, record) => (\r\n <>\r\n {\r\n record.phone!==0?\r\n
\r\n
\r\n { return record.alarmtypesms?.indexOf(x.code) > -1 }).map(item => (\r\n {item.value}\r\n ))} color = {'#1296db'}>\r\n 类型:\r\n \r\n {\r\n state.alarmtype.filter(x => { return record.alarmtypesms?.indexOf(x.code) > -1 }).map(item => (\r\n {item.value}\r\n ))\r\n }\r\n
\r\n
延时(分):{record.timerelay}
\r\n
时间段:{record.timerange}
\r\n
\r\n :\r\n
\r\n 未设置\r\n
\r\n }\r\n \r\n )\r\n\r\n },\r\n {\r\n title: '语音报警',\r\n width:innerWidth<1600?170:255,\r\n dataIndex: 'alarmtype',\r\n align: 'left',\r\n render: (text, record) => (\r\n <>\r\n {\r\n record.vphone!==0?\r\n
\r\n
\r\n { return record.alarmtypephone?.indexOf(x.code) > -1 }).map(item => (\r\n {item.value}\r\n ))} color = {'#1296db'}>\r\n 类型:\r\n \r\n {\r\n state.alarmtype.filter(x => { return record.alarmtypephone?.indexOf(x.code) > -1 }).map(item => (\r\n {item.value}\r\n ))\r\n }\r\n
\r\n
延时(分):{record.timerelayphone}
\r\n
时间段:{record.timerangephone}
\r\n
\r\n :\r\n
\r\n 未设置\r\n
\r\n }\r\n \r\n \r\n )\r\n\r\n },\r\n // {\r\n // title:'延时(分)',\r\n // dataIndex:'timerelay',\r\n // align:'center'\r\n // },\r\n // {\r\n // title:'时间段',\r\n // dataIndex:'timerange',\r\n // align:'center'\r\n // },\r\n {\r\n title: '操作',\r\n dataIndex: 'operation',\r\n align: 'right',\r\n width: 60,\r\n render: (text, record) => (\r\n
\r\n \r\n {/* 修改 */}\r\n \r\n \r\n \r\n {/* 删除 */}\r\n {\r\n record.account!==state.main.account&&\r\n \r\n \r\n \r\n } \r\n }>\r\n 操作\r\n \r\n
\r\n ),\r\n },\r\n ]\r\n const onStart = (event, uiData) => {\r\n const { clientWidth, clientHeight } = window.document.documentElement;\r\n const targetRect = draggleRef.current?.getBoundingClientRect();\r\n if (!targetRect) return;\r\n setModalBounds({\r\n left: -targetRect.left + uiData.x,\r\n right: clientWidth - (targetRect.right - uiData.x),\r\n top: -targetRect.top + uiData.y,\r\n bottom: clientHeight - (targetRect.bottom - uiData.y),\r\n });\r\n };\r\n return (\r\n
\r\n
\r\n {\r\n Mode==='soc'&& {\r\n if(value===0||value===undefined){//清空用户选择\r\n setAlarmUser(state.alarmsuer);\r\n setSelUser(0)\r\n }else{\r\n setSelUser(value);\r\n findUnderUser(value,state.systemuser.list,tempUsers);\r\n var temp=state.alarmsuer.filter(x=>x.user===value);\r\n tempUsers.map(item=>temp.push(...state.alarmsuer.filter(x=>x.user===item.id)));\r\n setAlarmUser(temp);\r\n } \r\n \r\n }}\r\n treeData={state.systemuser.treeM}\r\n filterOption={(input, option) =>\r\n option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0\r\n }\r\n />\r\n }\r\n
\r\n
\r\n \r\n
\r\n
record.id} columns={Mode==='soc'?columns:columns.filter(x=>x.title!=='关联用户')} size='small' dataSource={alarmUser} \r\n rowClassName={record=>record.wechat===''&&'unWechat'} loading={tableLoad}\r\n scroll={{y:650}}\r\n />\r\n {/* 新建报警联系人 */}\r\n {\r\n setModalMoveDisabled(false);\r\n }}\r\n onMouseOut={() => {\r\n setModalMoveDisabled(true);\r\n }}\r\n >\r\n 新建报警联系人\r\n \r\n } visible={showNewModel}\r\n modalRender={modal => (\r\n \r\n
{modal}
\r\n \r\n )}\r\n destroyOnClose\r\n cancelText='取消'\r\n okText='确定'\r\n onOk={() => {\r\n if(state.systemuser.list.filter(x=>x.id===actAlarmUser.user)[0].type===104){\r\n if(actAlarmUser.district.length===0){\r\n return message.error('绑定区域不能为空');\r\n }\r\n }\r\n if(actAlarmUser.name===''){\r\n return message.error('名称不能为空');\r\n }\r\n if(actAlarmUser.wechat===''&&(actAlarmUser.phone===0||actAlarmUser.phone==='')){\r\n return message.error('微信或电话不能同时为空');\r\n }\r\n if(actAlarmUser.wechat===''){\r\n Modal.confirm({\r\n title: '微信未绑定成功,是否保存??',\r\n icon: ,\r\n content: '',\r\n okText: '确认',\r\n cancelText: '取消',\r\n onCancel(){\r\n return\r\n },\r\n onOk(){\r\n http.post(\"/v1/alarmsuer\", actAlarmUser).then((data) => {\r\n http.get(\"/v1/alarmsuer\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'alarmsuer', alarmsuer: data.data });\r\n if(selUser===0){//清空用户选择\r\n setAlarmUser(data.data);\r\n }else{\r\n var temp=data.data.filter(x=>x.user===selUser);\r\n tempUsers.map(item=>temp.push(...data.data.filter(x=>x.user===item.id)));\r\n setAlarmUser(temp);\r\n } \r\n }\r\n })\r\n })\r\n setTimeout(() => {\r\n setShowNewModel(false)\r\n dispatchAlarmUser({ type: 'clear', user: state.main.id })\r\n \r\n }, 1000);\r\n \r\n }\r\n \r\n });\r\n }else{\r\n http.post(\"/v1/alarmsuer\", actAlarmUser).then((data) => {\r\n http.get(\"/v1/alarmsuer\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'alarmsuer', alarmsuer: data.data });\r\n if(selUser===0){//清空用户选择\r\n setAlarmUser(data.data);\r\n }else{\r\n var temp=data.data.filter(x=>x.user===selUser);\r\n tempUsers.map(item=>temp.push(...data.data.filter(x=>x.user===item.id)));\r\n setAlarmUser(temp);\r\n } \r\n }\r\n })\r\n })\r\n setShowNewModel(false)\r\n dispatchAlarmUser({ type: 'clear', user: state.main.id })\r\n }\r\n \r\n }}\r\n onCancel={() => {\r\n setShowNewModel(false)\r\n dispatchAlarmUser({ type: 'clear', user: state.main.id })\r\n }}>\r\n \r\n \r\n \r\n
\r\n {\r\n if(actAlarmUser.name===''){\r\n return message.error('名称不能为空');\r\n }\r\n http.put(\"/v1/alarmsuer/\" + actAlarmUser.id, actAlarmUser).then((data) => {\r\n http.get(\"/v1/alarmsuer\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'alarmsuer', alarmsuer: data.data });\r\n if(selUser===0){//清空用户选择\r\n setAlarmUser(data.data);\r\n }else{\r\n var temp=data.data.filter(x=>x.user===selUser);\r\n tempUsers.map(item=>temp.push(...data.data.filter(x=>x.user===item.id)));\r\n setAlarmUser(temp);\r\n } \r\n }\r\n })\r\n })\r\n setShowFixModel(false)\r\n dispatchAlarmUser({ type: 'clear', user: state.main.id })\r\n }}\r\n onCancel={() => {\r\n setShowFixModel(false)\r\n dispatchAlarmUser({ type: 'clear', user: state.main.id })\r\n }}>\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default AlarmUserManage","import React, { useContext, useState, useEffect, createContext } from 'react'\r\nimport { Table, Button, Modal, Descriptions, DatePicker, Select, TreeSelect,Space,Spin, Tooltip ,Input} from 'antd'\r\nimport { StateContext, OPERATIONTYPE, TimeFormatSeconds } from '../../../state';\r\nimport { SearchOutlined } from '@ant-design/icons';\r\nimport http from '../../../../../utils/server'\r\nimport moment from 'moment';\r\nimport { Mode } from '../../../../../App';\r\n\r\nfunction formatDateTimes(inputTime) {\r\n var date = new Date(inputTime);\r\n var y = date.getFullYear();\r\n var m = date.getMonth() + 1;\r\n m = m < 10 ? ('0' + m) : m;\r\n var d = date.getDate();\r\n d = d < 10 ? ('0' + d) : d;\r\n var h = date.getHours();\r\n h = h < 10 ? ('0' + h) : h;\r\n var minute = date.getMinutes();\r\n var second = date.getSeconds();\r\n minute = minute < 10 ? ('0' + minute) : minute;\r\n second = second < 10 ? ('0' + second) : second;\r\n return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;\r\n};\r\nfunction formatDate(inputTime) {\r\n var date = new Date(inputTime);\r\n var y = date.getFullYear();\r\n var m = date.getMonth() + 1;\r\n m = m < 10 ? ('0' + m) : m;\r\n var d = date.getDate();\r\n d = d < 10 ? ('0' + d) : d;\r\n return y + '-' + m + '-' + d;\r\n};\r\nconst DetailsCreate = createContext()\r\nconst { RangePicker } = DatePicker;\r\nfunction DeTailsModal() {\r\n const logs = useContext(DetailsCreate)\r\n const { state, dispatch } = useContext(StateContext)\r\n\r\n\r\n const columns = [{\r\n title: '字段名',\r\n dataIndex: 'field_name',\r\n key: 'field_name',\r\n align: 'center',\r\n },\r\n {\r\n title: '字段注释',\r\n dataIndex: 'field_comment',\r\n key: 'field_comment',\r\n align: 'center',\r\n },\r\n {\r\n title: '新值',\r\n dataIndex: 'new_value',\r\n key: 'new_value',\r\n align: 'center',\r\n ellipsis: true,\r\n render: (text, record) => (\r\n record.new_value.String\r\n )\r\n },\r\n {\r\n title: '旧值',\r\n dataIndex: 'old_value',\r\n key: 'old_value',\r\n align: 'center',\r\n ellipsis: true,\r\n render: (text, record) => (\r\n record.old_value.String\r\n )\r\n },\r\n {\r\n title: '说明',\r\n dataIndex: 'explained',\r\n key: 'explained',\r\n align: 'center',\r\n render: (text, record) => (\r\n record.explained.String\r\n )\r\n }\r\n ]\r\n\r\n return (
\r\n \r\n {logs.details.operation_date} \r\n {logs.details.operation_table} \r\n {logs.details.operation_name} \r\n {OPERATIONTYPE[logs.details.operation_type]} \r\n {logs.details.project_id} \r\n {\r\n state.systemuser.filter(x => { return x.id === logs.details.user_id }).length > 0 ? state.systemuser.filter(x => { return x.id === logs.details.user_id })[0].username : '无'\r\n } \r\n {logs.details.explained.String} \r\n \r\n

详情

{\r\n
record.id}\r\n columns={columns}\r\n size='small'\r\n dataSource={state.operationdetails}\r\n />\r\n }\r\n\r\n \r\n )\r\n}\r\n\r\nfunction Operation() {\r\n const { state, dispatch } = useContext(StateContext)\r\n const [showDetailsModel, setShowDetailsModel] = useState(false)\r\n const [details, setDetails] = useState()\r\n const [startTime, setStartTime] = useState('')\r\n const [endTime, setEndTime] = useState('');\r\n const [selUser, setSelUser] = useState(0);\r\n const [oType, setOType] = useState(0);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [pType,setPType]=useState([]);\r\n const [logData,setLogData] = useState([]);\r\n const userSerch = React.createRef();\r\n useEffect(async() => {\r\n setIsLoading(true);\r\n let userLogin = state.main;\r\n await http.get(\"/v1/users\", {}).then(data => {\r\n if (data.code === 0) {\r\n dispatch({ type: 'systemuser', systemuser: data.data.sort((a,b)=>a.name.localeCompare(b.name,'zh')) })\r\n }\r\n })\r\n if(state.main.type<103){\r\n http.get(\"/v1/userlog?starttime=\"+formatDateTimes(new Date().getTime()-1000*60*60*24)+'&endtime='+formatDateTimes(new Date().getTime()), {}).then(data => {\r\n setIsLoading(false)\r\n if (data.code === 0) {\r\n // userLogin.type===101?\r\n data.data.sort((a,b)=>Date.parse(b.time)- Date.parse(a.time))\r\n let temp = data.data.filter(x=>x.type!==301&&x.type!==309)\r\n dispatch(\r\n Mode!=='soc'?{ type: 'operation', operation:temp }:\r\n { type: 'operation', operation: data.data })\r\n setLogData(Mode!=='soc'?temp : data.data)\r\n // :\r\n // dispatch(\r\n // Mode!=='soc'?{ type: 'operation', operation: data.data.filter(x=>x.type!==309) }:\r\n // { type: 'operation', operation: data.data})\r\n // console.log(data.data.filter(x=>x.type===309));\r\n }\r\n })\r\n\r\n }else{\r\n http.get(\"/v1/userlog?starttime=\"+formatDateTimes(new Date().getTime()-1000*60*60*24*7)+'&endtime='+formatDateTimes(new Date().getTime()), {}).then(data => {\r\n setIsLoading(false)\r\n if (data.code === 0) {\r\n // userLogin.type===101?\r\n data.data.sort((a,b)=>Date.parse(b.time)- Date.parse(a.time))\r\n let temp = data.data.filter(x=>x.type!==301&&x.type!==309)\r\n dispatch(\r\n Mode!=='soc'?{ type: 'operation', operation: temp }:\r\n { type: 'operation', operation: data.data })\r\n setLogData(Mode!=='soc'?temp : data.data)\r\n\r\n // :\r\n // dispatch(\r\n // Mode!=='soc'?{ type: 'operation', operation: data.data.filter(x=>x.type!==309) }:\r\n // { type: 'operation', operation: data.data})\r\n // console.log(data.data.filter(x=>x.type===309));\r\n }\r\n })\r\n }\r\n \r\n \r\n http.get(\"/v1/permissiontype\", {}).then(data => {\r\n if (data.code === 0) {\r\n // console.log(data.data);\r\n dispatch({ type: 'permissiontype', permissiontype: data.data })\r\n let arrs = [{text:'登录',value:101}];\r\n data.data.map(m=>{\r\n if(Mode==='soc'){\r\n m.code!==303&&\r\n arrs.push({text:m.value,value:m.code})\r\n }else{\r\n m.code!==303&&m.code!==309&&\r\n arrs.push({text:m.value,value:m.code})\r\n }\r\n \r\n })\r\n setPType(arrs);\r\n }\r\n })\r\n }, []);\r\n const columns = [{\r\n title: '操作日期',\r\n dataIndex: 'time',\r\n align: 'center',\r\n width:200,\r\n sorter: (a, b) =>Date.parse(a.time) -Date.parse(b.time) ,\r\n },\r\n {\r\n title: '用户类型',\r\n dataIndex: 'usertype',\r\n align: 'center',\r\n render:(text,record)=>{\r\n let typeTemp = Mode!=='soc'? '操作员':'普通用户';\r\n let type =104;\r\n if(record.usertype===0){\r\n if (state.systemuser.list.filter(x=>x.id===record.user).length>0){\r\n type = state.systemuser.list.filter(x=>x.id===record.user)[0].type;\r\n }\r\n \r\n }else{\r\n type = record.usertype;\r\n }\r\n if (type>101){\r\n if(type===104){\r\n typeTemp = Mode!=='soc'? '操作员':'普通用户';\r\n }else{\r\n typeTemp = Mode!=='soc'? '技术员': '管理员';\r\n }\r\n }else{\r\n typeTemp = Mode!=='soc'? '管理员':'系统管理员';\r\n }\r\n return(\r\n
{typeTemp}
\r\n )\r\n },\r\n \r\n },\r\n {\r\n title: '公司名称',\r\n dataIndex: 'corporatename',\r\n align: 'center',\r\n render:(text,record)=>{\r\n if(record.username===''){\r\n return(\r\n
\r\n {\r\n state.systemuser.list.filter(x=>x.id===record.user).length>0?\r\n state.systemuser.list.filter(x=>x.id===record.user)[0].title:\r\n ''\r\n }\r\n
\r\n )\r\n }else{\r\n return(\r\n
\r\n {\r\n state.systemuser.list.filter(x=>x.name===record.username).length>0?\r\n state.systemuser.list.filter(x=>x.id===record.user)[0].title:\r\n ''\r\n }\r\n
\r\n )\r\n }\r\n },\r\n filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) =>\r\n (\r\n
\r\n setSelectedKeys(e.target.value ? [e.target.value] : [])}\r\n onPressEnter={() => confirm()}\r\n style={{ marginBottom: 8, display: 'block' }}\r\n />\r\n \r\n \r\n confirm()}\r\n icon={}\r\n size=\"small\"\r\n style={{ width: 90 }}\r\n >\r\n 查找\r\n \r\n\r\n \r\n
\r\n ),\r\n onFilterDropdownVisibleChange: visible => {\r\n if (visible) {\r\n setTimeout(() => userSerch.current.focus({cursor: 'all'}), 100);\r\n }\r\n },\r\n filterIcon: filtered => ,\r\n\r\n onFilter: (value, record) =>{\r\n let arrs = state.systemuser.list.filter(x=>x.title.includes(value));\r\n if(arrs.length>0){\r\n let ids = [];\r\n arrs.map(m=>ids.push(m.id));\r\n return ids.includes(record.user);\r\n }\r\n }\r\n \r\n ,\r\n },\r\n {\r\n title: '用户名称',\r\n dataIndex: 'username',\r\n align: 'center',\r\n render:(text,record)=>{\r\n if(record.username===''){\r\n return(\r\n
\r\n {\r\n state.systemuser.list.filter(x=>x.id===record.user).length>0?\r\n state.systemuser.list.filter(x=>x.id===record.user)[0].name:\r\n ''\r\n }\r\n
\r\n )\r\n }else{\r\n return(\r\n
\r\n {\r\n record.username\r\n }\r\n
\r\n )\r\n }\r\n },\r\n filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) =>\r\n (\r\n
\r\n setSelectedKeys(e.target.value ? [e.target.value] : [])}\r\n onPressEnter={() => confirm()}\r\n style={{ marginBottom: 8, display: 'block' }}\r\n />\r\n \r\n \r\n confirm()}\r\n icon={}\r\n size=\"small\"\r\n style={{ width: 90 }}\r\n >\r\n 查找\r\n \r\n\r\n \r\n
\r\n ),\r\n onFilterDropdownVisibleChange: visible => {\r\n if (visible) {\r\n setTimeout(() => userSerch.current.focus({cursor: 'all'}), 100);\r\n }\r\n },\r\n filterIcon: filtered => ,\r\n\r\n onFilter: (value, record) =>{\r\n let arrs = state.systemuser.list.filter(x=>x.name.includes(value));\r\n if(arrs.length>0){\r\n let ids = [];\r\n arrs.map(m=>ids.push(m.id));\r\n return ids.includes(record.user);\r\n }\r\n }\r\n \r\n ,\r\n },\r\n {\r\n title: '操作模块',\r\n dataIndex: 'type',\r\n align: 'center',\r\n render: (text, record) => {\r\n let ttt =state.permissiontype.filter(x => { return x.code === record.type });\r\n return (\r\n
\r\n {\r\n record.type===101?'登录':\r\n ttt.length > 0 &&\r\n ttt[0].value \r\n }\r\n
\r\n )},\r\n filters:pType,\r\n onFilter:(value, record) => \r\n record.type===value\r\n },\r\n {\r\n title: '操作类型',\r\n dataIndex: 'method',\r\n align: 'center',\r\n render: (text, record) => {\r\n if(record.method==='POST'){\r\n let temp= record.log.substr(4,6);\r\n if(temp==='getdev'){\r\n return(
查询参数
)\r\n } else if(temp==='setdev'){\r\n return(
设置参数
)\r\n }else if(temp==='dealal'){\r\n return(
处理报警
)\r\n }else if(temp==='readde'){\r\n return(
获取数据
)\r\n }else if(temp==='logout'){\r\n return(
退出登录
)\r\n }\r\n else{\r\n return(
增加
)\r\n }\r\n }else if(record.method==='PUT'){\r\n return (
修改
)\r\n }else if(record.method==='DELETE'){\r\n return (
删除
)\r\n }\r\n else if(record.method==='LOGIN'){\r\n return (
登录
)\r\n }\r\n },\r\n filters: [\r\n { text: '查询参数', value: 'getdevice' },\r\n { text: '设置参数', value: 'setdevice' },\r\n { text: '处理报警', value: 'dealalarm' },\r\n { text: '获取数据', value: 'readdevic' },\r\n { text: '增加', value: 'POST' },\r\n { text: '修改', value: 'PUT' },\r\n { text: '删除', value: 'DELETE' },\r\n { text: '登录', value: 'LOGIN' },\r\n { text: '退出登录', value: 'logout' },\r\n ],\r\n onFilter: (value, record) => {\r\n if(record.method==='POST'){\r\n return value==='POST'?\r\n !record.log.includes('getdevice')&&!record.log.includes('setdevice')&&!record.log.includes('dealalarm')&&!record.log.includes('readdevic')&&!record.log.includes('logout')\r\n :record.log.includes(value);\r\n }else{\r\n return record.method.includes(value);\r\n }\r\n },\r\n\r\n },\r\n {\r\n title: '操作详情',\r\n dataIndex: 'log',\r\n align: 'center',\r\n width:700,\r\n render: (text, record) => (\r\n \r\n
\r\n {text}\r\n
\r\n
\r\n ),\r\n },\r\n\r\n ]\r\n return (\r\n
\r\n
\r\n {\r\n Mode==='soc'&&\r\n 选择用户\r\n {\r\n value?setSelUser(value):setSelUser(0);\r\n }}\r\n />\r\n \r\n }\r\n\r\n 操作类型\r\n {\r\n d?setOType(d):setOType(0);\r\n }}\r\n >\r\n {state.permissiontype.map(({ id, value }) => (\r\n {value}\r\n ))}\r\n \r\n {\r\n if(dates===null){\r\n setStartTime('');\r\n setEndTime('');\r\n }else{\r\n setStartTime(dateStrings[0]+':00');\r\n dates[1]!==null?setEndTime(dateStrings[1]+':00'):setEndTime(formatDateTimes(new Date().getTime()));\r\n } \r\n }}\r\n />\r\n
\r\n\r\n \r\n
\r\n \r\n
record.id} columns={columns} size='small'\r\n style={{width:'100%'}}\r\n dataSource={logData.filter(x=>x.type!==303) }\r\n scroll={{y:650}}\r\n />\r\n\r\n < Modal title=\"操作详情\"\r\n width='800px'\r\n visible={showDetailsModel}\r\n closable={false}\r\n footer={[< Button key='ok'\r\n onClick={\r\n () => {\r\n setShowDetailsModel(false)\r\n }\r\n } >\r\n 确定 \r\n ]} >\r\n < DetailsCreate.Provider value={\r\n { details }} >\r\n < DeTailsModal />\r\n \r\n\r\n \r\n \r\n )\r\n}\r\n\r\nexport default Operation","import React, { useEffect, useState, useReducer } from 'react'\r\nimport './index.less'\r\nimport {Button,Input,Modal,Table,Radio, Select, Tabs,Space} from 'antd'\r\nimport { SearchOutlined, ExclamationCircleOutlined } from '@ant-design/icons';\r\nfunction isPay(d) {\r\n let nowDate_month = new Date().getMonth()+1;\r\n let nowDate_year = new Date().getFullYear();\r\n let simExp = new Date(d);\r\n let simExp_year = simExp.getFullYear();\r\n let simExp_month = simExp.getMonth()+1;\r\n let dis = false;\r\n if (simExp_year > nowDate_year){\r\n dis = false;\r\n }else if(simExp_year===nowDate_year){\r\n if(nowDate_month-simExp_month>2){\r\n dis = true;\r\n }else{\r\n dis = false;\r\n }\r\n }else if(nowDate_year - simExp_year===1){\r\n if(simExp_month<10||nowDate_month>2){\r\n dis = true;\r\n }\r\n if(simExp_month===12){\r\n dis =nowDate_year<3? false:true;\r\n }\r\n if(simExp_month===11){\r\n dis =nowDate_year<2? false:true;\r\n }\r\n \r\n }else{\r\n dis = true\r\n }\r\n return dis;\r\n}\r\nfunction PayManage(){\r\n const nodeSerch = React.createRef();\r\n const columns =[\r\n {\r\n title:'设备编号',\r\n dataIndex:'sn',\r\n sorter: (a, b) => a.sn-b.sn,\r\n filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) =>\r\n (\r\n
\r\n setSelectedKeys(e.target.value ? [e.target.value] : [])}\r\n onPressEnter={() => confirm()}\r\n style={{ marginBottom: 8, display: 'block' }}\r\n />\r\n \r\n \r\n confirm()}\r\n icon={}\r\n size=\"small\"\r\n style={{ width: 90 }}\r\n >\r\n 查找\r\n \r\n\r\n \r\n
\r\n ),\r\n onFilterDropdownVisibleChange: visible => {\r\n if (visible) {\r\n setTimeout(() => nodeSerch.current.focus({cursor: 'all'}), 100);\r\n }\r\n },\r\n filterIcon: filtered => ,\r\n\r\n onFilter: (value, record) =>\r\n record['sn']? \r\n (record['sn'].toString().toLowerCase().includes(value.toLowerCase()) ||\r\n record['sn'].toString().toLowerCase().includes(value.toLowerCase()))\r\n : '',\r\n },\r\n {\r\n title:'设备类型',\r\n dataIndex:'devType',\r\n },\r\n {\r\n title:'设备到期时间',\r\n dataIndex:'devExpire'\r\n },\r\n {\r\n title:'sim卡号',\r\n dataIndex:'sim',\r\n },\r\n {\r\n title:'sim卡到期时间',\r\n dataIndex:'simExpire'\r\n },\r\n {\r\n title:'续费',\r\n dataIndex:'action',\r\n render: (text, record) => (\r\n \r\n )\r\n }\r\n ]\r\n const tableData =[\r\n {\r\n key: '1',\r\n sn: 9300000001,\r\n devType:'管理主机',\r\n devExpire:'2022-10-01',\r\n sim: 1440102030401,\r\n simExpire:'2022-06-30'\r\n },\r\n {\r\n key: '2',\r\n sn: 9300000002,\r\n devType:'车载',\r\n devExpire:'2022-11-30',\r\n sim: 1440102030402,\r\n simExpire:'2022-07-30'\r\n },\r\n {\r\n key: '3',\r\n sn: 9300000003,\r\n devType:'保温箱',\r\n devExpire:'2022-12-31',\r\n sim: 1440102030403,\r\n simExpire:'2021-09-30'\r\n },\r\n {\r\n key: '4',\r\n sn: 9300000004,\r\n devType:'一拖二',\r\n devExpire:'2022-10-31',\r\n sim: 1440102030404,\r\n simExpire:'2022-09-30'\r\n },\r\n {\r\n key: '5',\r\n sn: 9300000005,\r\n devType:'冰柜',\r\n devExpire:'2022-10-01',\r\n sim: 1440102030405,\r\n simExpire:'2022-09-30'\r\n },\r\n ]\r\n const rowSelection = {\r\n onChange: (selectedRowKeys, selectedRows) => {\r\n setSelectedRow(selectedRows)\r\n },\r\n getCheckboxProps: (record) => {\r\n let dis = isPay(record.simExpire);\r\n return({\r\n disabled:dis ,\r\n sn: record.sn,\r\n })\r\n },\r\n };\r\n const { Option } = Select;\r\n const [showModal,setShowModal] = useState(false);\r\n const [itemValue,setItemValue] = useState(1);\r\n const [modeValue,setModeValue] = useState(1);\r\n const [selectedDev,setSelectedDev] = useState([]);\r\n const [selectedRow,setSelectedRow] = useState([]);\r\n const [selVal,setSelVal] = useState('');\r\n return (\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n setShowModal(false)}\r\n >\r\n
\r\n
\r\n
续费项目:
\r\n
\r\n {\r\n let tempVal = e.target.value\r\n setItemValue(tempVal)\r\n let showVal = '';\r\n if (tempVal===2){\r\n selectedDev.map(item=>{\r\n showVal+=item.sim+','\r\n })\r\n \r\n }else{\r\n selectedDev.map(item=>{\r\n showVal+=item.sn+','\r\n })\r\n }\r\n showVal = showVal.slice(0,-1);\r\n setSelVal(showVal)\r\n }} value = {itemValue}\r\n >\r\n 服务费\r\n 卡费\r\n 综合\r\n \r\n
\r\n
\r\n
\r\n
{itemValue===2?'SIM卡号':'设备标号'}:
\r\n
\r\n
\r\n
\r\n
续费时长:
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
支付金额:
\r\n
\r\n
\r\n
\r\n
续费方式:
\r\n
\r\n {\r\n setModeValue(e.target.value)\r\n }} value = {modeValue} \r\n >\r\n 微信\r\n 支付宝\r\n 线下\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\nexport default PayManage \r\n","export default __webpack_public_path__ + \"static/media/help-index.5be978eb.png\";","export default __webpack_public_path__ + \"static/media/apkDown.90c7fe9e.png\";","export default __webpack_public_path__ + \"static/media/userInfo.6f6b5dbc.png\";","export default __webpack_public_path__ + \"static/media/indexAlarm.2b46a245.png\";","export default __webpack_public_path__ + \"static/media/showData.b838ba15.png\";","export default __webpack_public_path__ + \"static/media/showData1.9be22f00.png\";","export default __webpack_public_path__ + \"static/media/indexHistory.877b5440.png\";","export default __webpack_public_path__ + \"static/media/indexMap.6cc4adba.png\";","export default __webpack_public_path__ + \"static/media/helpHistory.6f7d0343.png\";","export default __webpack_public_path__ + \"static/media/helpAlarmData.0abc1be7.png\";","export default __webpack_public_path__ + \"static/media/helpLogData.76ad7fe8.png\";","export default __webpack_public_path__ + \"static/media/helpuser.068fe7bb.png\";","export default __webpack_public_path__ + \"static/media/helpuserAdd.a6e0258f.png\";","export default __webpack_public_path__ + \"static/media/helpMangerAlarm.1770d82f.png\";","export default __webpack_public_path__ + \"static/media/helpMangerAlarmAdd.f11b570b.png\";","export default __webpack_public_path__ + \"static/media/helpAddCoustom.0587979b.png\";","export default __webpack_public_path__ + \"static/media/helpAddAdress.b5b8e623.png\";","export default __webpack_public_path__ + \"static/media/helpAddGoods.b5b8e623.png\";","export default __webpack_public_path__ + \"static/media/helpAddTrans.915a4753.png\";","export default __webpack_public_path__ + \"static/media/helpTrans.b1a04b6e.png\";","export default __webpack_public_path__ + \"static/media/helpTransChange.3a5fc6fe.png\";","export default __webpack_public_path__ + \"static/media/helpTransInfo.23269b3f.png\";","import { Card, Collapse } from \"antd\";\r\nimport React from \"react\";\r\nimport helpIndex from '../../../../../public/assets/help-index.png';\r\nimport apkDown from '../../../../../public/assets/apkDown.png';\r\nimport userInfo from '../../../../../public/assets/userInfo.png';\r\nimport indexAlarm from '../../../../../public/assets/indexAlarm.png';\r\nimport showData from '../../../../../public/assets/showData.png';\r\nimport showData1 from '../../../../../public/assets/showData1.png';\r\nimport indexHistory from '../../../../../public/assets/indexHistory.png';\r\nimport indexMap from '../../../../../public/assets/indexMap.png';\r\nimport helpHistory from '../../../../../public/assets/helpHistory.png';\r\nimport helpAlarmData from '../../../../../public/assets/helpAlarmData.png';\r\nimport helpLogData from '../../../../../public/assets/helpLogData.png';\r\nimport helpuser from '../../../../../public/assets/helpuser.png';\r\nimport helpuserAdd from '../../../../../public/assets/helpuserAdd.png';\r\nimport helpMangerAlarm from '../../../../../public/assets/helpMangerAlarm.png';\r\nimport helpMangerAlarmAdd from '../../../../../public/assets/helpMangerAlarmAdd.png';\r\nimport helpAddCoustom from '../../../../../public/assets/helpAddCoustom.png';\r\nimport helpAddAddress from '../../../../../public/assets/helpAddAdress.png';\r\nimport helpAddGoods from '../../../../../public/assets/helpAddGoods.png';\r\nimport helpAddTrans from '../../../../../public/assets/helpAddTrans.png';\r\nimport helpTrans from '../../../../../public/assets/helpTrans.png';\r\nimport helpTransChange from '../../../../../public/assets/helpTransChange.png';\r\nimport helpTransInfo from '../../../../../public/assets/helpTransInfo.png';\r\n\r\n\r\nconst { Panel } = Collapse;\r\nfunction Help(params) {\r\n return(\r\n
\r\n \r\n \r\n }>\r\n
\r\n

导航栏点击不同的菜单跳转到对应页面

\r\n
\r\n
\r\n

标题栏左边展示公司logo和名称 右侧显示声音报警开关,app下载,账号信息等

\r\n
\r\n } style={{width:300}}>\r\n \r\n } style={{width:500}}>\r\n

单击账号名称弹出账号信息窗口,显示http接口所用token和修改密码、退出登录等操作

\r\n
\r\n
\r\n
\r\n
\r\n

内容区分为信息统计和当日报警展示两大类

\r\n
\r\n \r\n

设备在线比例

\r\n

设备总数

\r\n

在线设备数量

\r\n

当日报警数量

\r\n

短信条数

\r\n
\r\n } style={{width:900}}>\r\n

当有设备发生报警时,此页面显示报警设备信息,点击右侧处理报警按钮,可以记录报警产生原因,处理人员,处理方法

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n }>\r\n
\r\n

内容区分为菜单栏和实时数据展示两大类

\r\n
\r\n \r\n

从左到右依次为隐藏/显示用户导航、视图切换、设备信息检索、区域显示总开关、展示全部设备复选框(默认显示在线设备)、自动刷新、手动刷新

\r\n
\r\n \r\n

区域展示和区域下测点数据展示

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n } >\r\n

通过菜单栏上左侧的视图切换按钮进行列表和卡片视图切换

\r\n
\r\n
\r\n \r\n } >\r\n

当点击历史数据按钮时,进入历史数据对话框,可进行单测点历史记录(曲线、图表)的查询、导出等

\r\n

上方左侧显示测点的名称、主机、用户和区域的信息。右侧可进行查询时间选择。不选择默认为当日。数据间隔选择、查询、导出(图片、EXCEL、PDF)

\r\n

下方是内容展示方式为:曲线或表格

\r\n
\r\n
\r\n \r\n \r\n

找到要设置参数设备,双击设备显示区域进行参数查询/设置

\r\n

设置参数时,要先读取,再设置,避免设置错误。温湿度报警数据会自动读取可直接设置

\r\n

超标报警设置起始时间99:99结束时间99:99,为此组报警全天报警,起始时间0:0结束时间0:0为此组报警关闭

\r\n
\r\n
\r\n \r\n } >\r\n

可通过单击定位标志进入轨迹回放界面。

\r\n

默认时间为当天、可选择开始结束时间或者单击预设时间段进行查询和轨迹回放

\r\n
\r\n
\r\n \r\n } >\r\n

点击右侧导航历史数据,进入设备历史数据查询、导出界面(EXCEL、PDF、图片三种形式)

\r\n

可根据测点和主机两种方式查询:测点模式可自由选择测点数量,主机模式为主机下所有测点。

\r\n

默认时间为当天、可选择开始结束时间或者单击预设时间段进行查询和轨迹回放

\r\n

默认普通报表形式,勾选周期报表,可选择月周日三种形式报表,可自由设定每天的时间节点。

\r\n
\r\n
\r\n \r\n \r\n

点击右侧导航轨迹位置,进入轨迹位置查询界面,可通过区域和测点选择想要查看的设备

\r\n

和实时数据-轨迹回放类似

\r\n
\r\n
\r\n \r\n } >\r\n

点击左侧导航栏报警数据进入报警数据管理页面,默认展示当日报警数据

\r\n

可根据用户、区域、时间(默认时间为当天、可选择开始结束时间或者单击预设时间段)进行报警信息内容查询

\r\n

展示内容可根据用户、区域、主机、测点、类型、状态等方式进行筛选或排序

\r\n

未处理报警可选中前方复选框(可多选),单击报警处理进行处理。也可下载导出报警数据PDF

\r\n
\r\n
\r\n \r\n } >\r\n

点击左侧导航栏操作日志进入操作日志管理页面,可根据用户、操作类型、及时间进行操作日志内容查询。

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n

点击左侧菜单栏 管理下“订单管理”可进行订单管理包括新增收发货单位,收发货单位地址管理,运输物品管理,以及订单的创建,更新订单状态等

\r\n } >\r\n

未添加收货,发货,运输单位的请先单击账号管理进行添加

\r\n
\r\n \"新建单位\"\r\n
\r\n

1、单击右上角新建账号

\r\n

2、选择单位类型

\r\n

3、填写单位名称

\r\n

4、自定义一个不重复账号

\r\n

5、填写密码

\r\n

6、每行记录右侧对应有修改和删除按钮

\r\n
\r\n
\r\n

地址管理:添加的收发货运输单位的地址、联系人的添加和修改

\r\n
\r\n \"新建地址\"\r\n
\r\n

1、分两栏分别展示地址和联系人

\r\n

2、对应栏的右上角点击新增按钮

\r\n

3、按照选项依次选择或填写相应内容完善单位信息

\r\n

4、每行记录右侧对应有修改和删除按钮

\r\n
\r\n
\r\n

物品管理:运输物品的添加修改和删除

\r\n
\r\n \"新建物品\"\r\n
\r\n

订单管理:添加运输订单

\r\n
\r\n \"新建订单\"\r\n
\r\n

订单管理-查询订单: 可根据订单编号,订单状态,开始时间等状态检索相应订单

\r\n

订单管理-改变订单状态: 单击相应按钮更改订单状态

\r\n
\r\n \"改变订单状态\"\r\n
\r\n

订单管理-订单详情: 单击订单右上角订单详情查看订单详细情况:\r\n 发货单位信息,收货单位信息、物品信息、开始结束时间、期间的温湿度数据图表两种形式\r\n

\r\n
\r\n \"改变订单状态\"\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n

点击左侧菜单栏 管理下“用户管理”可进行用户账号管理包括新增用户,修改用户名称,修改密码,删除用户(删除需谨慎,用户下有设备、区域、下级用户,订单时无法删除)、区域管理、区域分配、短信分配、添加提醒 、设置LOGO。

\r\n } >\r\n

上方左侧单击选择用户 根据用户筛选相关用户信息

\r\n

上方右侧为新建用户按钮 单击弹出新建用户窗口

\r\n
\r\n \"新建用户\"\r\n
\r\n

1、单击上级用户右侧选择框在下拉列表中选择上级用户

\r\n

2、填写用户名称

\r\n

3、建立新组织需要勾选创建新组织,在下方所属组织一栏填写组织名称

\r\n

4、已存在组织中添加其他类型账号,不要勾选创建新组织,下方所属组织一栏会显示组织名称不能修改

\r\n

5、填写用户登录账号

\r\n

6、填写用户登录密码

\r\n

7、确认登录密码

\r\n

8、选择用户类型。用户类型分为高级用户、管理用户、和普通用户。 注:新组织管理员只能是高级用户或管理用户。组织成员只能是管理用户或普通用户

\r\n

9、选择权限 只能选择上级用户所拥有的的权限。1、基本权限:查看信息2、报警管理:添加删除修改报警联系人3、历史数据导出:导出历史数据为pdf、Excel等类型\r\n 4、设置设备参数:能够在实时数据中 对进行基本、报警参数进行设置5、订单管理:订单的添加6、设备管理:设备的添加修改删除7、区域管理:区域的添加修改删除\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n

点击左侧菜单栏 管理下“报警管理”可进行短信、微信报警联系人的添加修改删除操作

\r\n } >\r\n

上方左侧单击选择用户 根据用户筛选关联用户的报警联系人

\r\n

上方右侧为添加报警联系人按钮 单击弹出添加报警联系人窗口

\r\n
\r\n \"添加报警联系人\"\r\n
\r\n

1、单击关联用户右侧选择框在下拉列表中选择关联用户

\r\n

2、单击绑定区域右侧选择框在下拉列表中选择关联用户下的区域。可多选。选中区域内的设备发生相关报警时通知该联系人

\r\n

3、填写联系人姓名 方便管理(查找、修改等)

\r\n

4、填写短信号码:该号码用来接收设备报警短信。(确保号码正确和关联用户有短信条数)

\r\n

5、单击短信报警类型右侧选择框在下拉列表中选择绑定区域内设备发生哪些类型的报警时推送报警短信(类型有:温度超标、湿度超标、温度预警、湿度预警、主机电源、主机\t门控、设备离线、设备到期、探头连接、探头电源、探头门控)

\r\n

6、打开微信扫一扫二维码关注公众号进行微信绑定。注:微信报警必须扫码绑定、二维码 有时效2分钟后过期 左侧为扫描关注成功状态

\r\n

7、单击微信报警类型右侧选择框在下拉列表中选择绑定区域内设备发生哪些类型的报警时推送微信消息(类型有:温度超标、湿度超标、温度预警、湿度预警、主机电源、主机\t门控、设备离线、设备到期、探头连接、探头电源、探头门控)

\r\n

8、报警时段:默认为全天推送。单击右下角时间选择框,选择时段。可设置多个时段。选择时段后,只有相应时段内设备发生报警才会推送报警信息

\r\n

9、延时:填写延时时间,单位为分。延时时间内,设备恢复正常则不推送报警信息,否则到达时间后推送报警。

\r\n

注:只用短信报警、无须进行6、7操作; 只用微信报警、无须进行5操作

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\nexport default Help;","import Login from \"../page/login/Login\"\r\nimport Loyout from \"../page/layout/index\"\r\nimport User from \"../page/user/User\"\r\n\r\nimport DashBoard from '../page/layout/page/DashBoard/index'\r\nimport History from '../page/layout/page/Monitor/History/index'\r\nimport MapData from '../page/layout/page/Monitor/Map/index'\r\nimport Alarm from '../page/layout/page/Monitor/Alarm/index'\r\nimport Data from '../page/layout/page/Monitor/Data/index'\r\nimport Plane from \"../page/layout/page/Monitor/Data/plane\"\r\nimport BackUP from '../page/layout/page/Monitor/BackUP/index'\r\nimport AreaManage from '../page/layout/page/Manage/Area/index'\r\nimport DeviceManage from '../page/layout/page/Manage/Device/index'\r\nimport HMIManage from '../page/layout/page/Manage/HMI/index'\r\nimport UserManage from '../page/layout/page/Manage/User/index'\r\nimport LocalUserManage from '../page/layout/page/Manage/LocalUser/index'\r\nimport VideoManage from '../page/layout/page/Manage/Video/index'\r\nimport TransportIndex from '../page/layout/page/Manage/Transport/index'\r\nimport AlarmUserManage from '../page/layout/page/Manage/AlarmUser/index'\r\nimport Operation from '../page/layout/page/Monitor/Operation/index'\r\n// import Permission from '../page/layout/page/Manage/Permission/index'\r\n// import PermissionType from '../page/layout/page/Manage/PermissionType/index'\r\nimport PayManage from '../page/layout/page/Monitor/Pay/index'\r\nimport Help from \"../page/layout/page/Help/index\"\r\n\r\nexport default [\r\n\r\n\r\n { path: \"/login\", name: \"Login\", component: Login },\r\n { path: \"/404\", name: \"404\", component: User },\r\n { path: \"/monitor/data/plane/:id\", name: \"Plane\", component: Plane },\r\n {\r\n path: \"/\",\r\n name: \"Loyout\",\r\n component: Loyout,\r\n auth: true,\r\n children: [\r\n { path: \"/\", name: \"Loyout\", component: DashBoard },\r\n { path: \"/monitor/data\", name: \"Loyout\", component: Data },\r\n // { path: \"/monitor/data/plane/:id\", name: \"Loyout\", component: Plane },\r\n { path: \"/monitor/alarm\", name: \"Loyout\", component: Alarm },\r\n { path: \"/monitor/map\", name: \"Loyout\", component: MapData },\r\n { path: \"/monitor/records\", name: \"Loyout\", component: History },\r\n { path: \"/monitor/operation\", name: \"Loyout\", component: Operation },\r\n { path: \"/monitor/backup\", name: \"Loyout\", component: BackUP },\r\n { path: \"/monitor/pay\", name: \"Loyout\", component: PayManage },\r\n\r\n { path: \"/manage/area\", name: \"区域管理\", component: AreaManage },\r\n { path: \"/manage/device\", name: \"Loyout\", component: DeviceManage },\r\n { path: \"/manage/transport\", name: \"Loyout\", component: TransportIndex },\r\n { path: \"/manage/hmi\", name: \"Loyout\", component: HMIManage },\r\n { path: \"/manage/user\", name: \"Loyout\", component: UserManage },\r\n { path: \"/manage/localuser\", name: \"Loyout\", component: LocalUserManage },\r\n { path: \"/manage/alarmuser\", name: \"Loyout\", component: AlarmUserManage },\r\n { path: \"/manage/video\", name: \"Loyout\", component: VideoManage },\r\n // { path: \"/manage/permission\", name: \"Loyout\", component: Permission },\r\n // { path: \"/manage/permissiontype\", name: \"Loyout\", component: PermissionType },\r\n\r\n { path: \"/help\", name: \"Loyout\", component: Help },\r\n ]\r\n },\r\n \r\n];","import React from 'react'\r\nimport { HashRouter, Route, Redirect, Switch } from \"react-router-dom\";\r\nimport router from './router'\r\nimport { State } from '../page/layout/state'\r\nimport { StateDevice } from '../page/layout/state_device'\r\nlet authenticate = () => {\r\n const token = localStorage.getItem(\"tokenis\");\r\n return token\r\n}\r\nfunction RouteMap() {\r\n return (\r\n \r\n \r\n \r\n \r\n {router.map((item, index) => {\r\n console.log('router',item);\r\n \r\n return \r\n (!item.auth ? \r\n ({\r\n item.children && item.children.map(c => (\r\n \r\n ))\r\n }) \r\n : \r\n (\r\n authenticate() ? \r\n {\r\n item.children && item.children.map(c => (\r\n \r\n ))\r\n } \r\n :\r\n \r\n )\r\n )} >\r\n \r\n })}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\n\r\n\r\nexport default RouteMap","import { useEffect } from 'react';\r\nimport http from \"./utils/server\";\r\nimport RouteMap from \"../src/routes/index\";\r\nexport const Mode = 'soc'\r\n// export const Mode = 'local'\r\nlet timer='';\r\nfunction App() {\r\n useEffect(() => {\r\n http.get(\"/v1/main\", {}).then(data=>{\r\n if(data.code === 0){\r\n localStorage.setItem(\"tokenis\", true);\r\n }else{\r\n localStorage.clear()\r\n }\r\n })\r\n if(Mode==='local'){\r\n clearInterval(timer);\r\n timer = setInterval(()=>{\r\n http.get('/s/getreg',{}).then(data=>{\r\n if(data.code===0){\r\n window.CefSharp.BindObjectAsync(\"bound\");\r\n window.bound.getReg(data.data);\r\n if(data.data==='已注册'){\r\n clearInterval(timer)\r\n }\r\n }\r\n })\r\n },5000) \r\n }\r\n \r\n },[])\r\n return \r\n}\r\nexport default App;","const reportWebVitals = onPerfEntry => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App.jsx';\r\nimport reportWebVitals from './reportWebVitals';\r\n// import RouteMap from \"../src/routes/index\";\r\n// import { BrowserRouter as Router } from 'react-router-dom';\r\n// import RenderRoutes from \"../src/routes/renderRoutes\";\r\n\r\n\r\n\r\nReactDOM.render(\r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n\r\nreportWebVitals();\r\n"],"sourceRoot":""}