import React, { useState, useEffect, useMemo,useRef } from 'react' import usePageTable from '../../components/crud/usePageTable2'; import { createCrudService } from '../../components/crud/_'; import apiurl from '../../service/apiurl'; import { httppost2,httpget2 } from '../../utils/request'; import CryptoJS from 'crypto-js'; import { Card,Table,Button,Radio,Input,Select,Modal,message } from "antd" import ToolBar from "./toolbar" import "./index.less" export default function Gbyj() { const [searchValue, setSearchVal] = useState() const [switchVisible, setSwitchVisible] = useState(false); const [bbParams, setBbParams] = useState({}) const [addOpen, setAddOpen] = useState(false) const [mbParams, setMbParams] = useState({}) const columns = [ { title: '序号', key: 'inx', dataIndex: 'inx', width: 60, align:"center" }, { title: '广播站名称', key: 'name', dataIndex: 'name', width: 200, ellipsis: true }, { title: '告警内容', key: 'warnContent', dataIndex: 'warnContent', width: 300,ellipsis: true }, { title: '播报时间', key: 'createTime', dataIndex: 'createTime', width: 200 }, { title: '播报人员', key: 'createUserName', dataIndex: 'createUserName', width: 200,ellipsis: true }, ]; const width = useMemo(() => columns.reduce((total, cur) => total + (cur.width), 0), [columns]); const { tableProps, search, refresh } = usePageTable(createCrudService(apiurl.gbyj.page).find_noCode); //广播站 const [jh, setJh] = useState([]) const getJhList = async () => { try { const res = await httppost2(apiurl.gbyj.list) if (res.code == 200) { setJh(res.data.map(item => ({label:item.name,value:item.id}))) } } catch (error) { console.log(error); } } const [mbList, setMbList] = useState([]) const getMbList = async () => { try { const res = await httppost2(apiurl.gbyj.mblist); if(res.code === 200){ setMbList(res.data.map(item=>({label:item.content, value:item.id}))); } } catch (error) { console.log(error); } } // 右边添加模版 const addMb = async () => { try { const res = await httppost2(apiurl.gbyj.mbsave, { content: bbParams.warnContent }); if (res.code == 200) { message.success('添加成功'); getMbList(); } } catch (error) { console.log(error); } } // 左边添加模版 const saveMb = async () => { try { const res = await httppost2(apiurl.gbyj.mbsave, mbParams); if (res.code == 200) { message.success('添加成功'); getMbList(); setAddOpen(false) } } catch (error) { console.log(error); } } // 删除模版 const delMb = async () => { try { const res = await httpget2(apiurl.gbyj.mbDel + `/${bbParams.checkId}`); if (res.code == 200) { message.success('删除成功'); getMbList(); setBbParams({...bbParams,warnContent:'' }) } } catch (error) { console.log(error); } } const handleCheck = (e) => { const text = mbList.find(item => item.value == e.target.value)?.label setBbParams({ ...bbParams, warnContent:text,checkId:e.target.value }) } const gbzChange = (e) => { setBbParams({...bbParams,stationIds:e}) } const textChange = (e) => { setBbParams({ ...bbParams, warnContent: e.target.value }) } // 播报 const playGb = () => { setSwitchVisible(true); } //md5加密 const encryptData = (data) => { const encryptedData = CryptoJS.MD5(data).toString(); return encryptedData; } // 确认播报 const confirmBb = async () => { const name = localStorage.getItem('userName') const id = localStorage.getItem('userId') const params = { ...bbParams, ctrlPass: encryptData(bbParams?.ctrlPass), createUserId: id, createUserName: name } try { const res = await httppost2(apiurl.gbyj.bb,params); if (res.code == 200) { setSwitchVisible(false); message.success('播报成功'); refresh() } } catch (error) { console.log(error); } } useEffect(()=>{ const params = { search: { ...searchValue, } }; search(params) }, [searchValue]) useEffect(() => { getMbList() getJhList() }, []) return (