import React, { useState, useEffect, useRef } from "react"; import { connect } from "react-redux"; import moment from "moment"; import qs from "qs"; import { Button, Form, Table, Pagination, Popover, Tag, Skeleton, Popconfirm, Row, } from "@douyinfe/semi-ui"; import { SimpleFileDownButton, VideoPlayModal, SkeletonScreen, Setup } from "$components"; // import "../style.less"; import ApplyModal from "../components/applyModal"; // import RemarksModal from "../components/remarksModal"; // import SideSheets from "../components/sideSheet"; // import { accessType } from "./nvr"; import '../style.less' const ApplicationCenter = (props) => { const { dispatch, actions, user, loading, applicationData } = props; const { applicationCenter } = actions; const [modalName, setModalName] = useState(false); //创建或修改 const [setup, setSetup] = useState(false); //表格设置是否显现 const [applyModal, setApplyModal] = useState(false); const [setupp, setSetupp] = useState([]); const [query, setQuery] = useState({ limit: 10, page: 0 }); //页码信息 const [appData, setAppData] = useState(null); //应用id const APPLICATION = 'application' const pageLimit = useRef({ limit: 10, page: 0 }); const limits = useRef(); //每页实际条数 const columns = [ { title: "序号", dataIndex: "", render: (text, r, index) => { return index + 1; }, }, { title: "应用名称", dataIndex: "name", key: "name", render: (text, r, index) => { return r?.name.length > 8 ? {r?.name} } >{ `${r?.name.substr(0, 8)}...`} : r?.name }, }, { title: "APPID", dataIndex: "appKey", key: "appId", }, { title: "Secret Key", dataIndex: "appSecret", key: "secretKey", }, { title: "操作", width: "20%", dataIndex: "", render: (_, row) => { return (
{row?.forbidden ? ( ) : ( 禁用后,应用系统引入的页面及能力将会暂时失效,请谨慎操作。
} arrowPointAtCenter={false} showArrow={true} position="topRight" onConfirm={() => { dispatch(applicationCenter.putApplication({ appId: row?.id, forbidden: !row?.forbidden })).then(() => { setQuery({ limit: pageLimit.current.limit, page: pageLimit.current.page }) }) }} > )} 删除后,应用系统引入的页面及能力将会永久失效,请谨慎操作。} arrowPointAtCenter={false} width={300} showArrow={true} position="topRight" onConfirm={() => { dispatch(applicationCenter.delApplication(row?.id)).then(() => { if (pageLimit.current.page > 0 && limits.current < 2) { setQuery({ limit: pageLimit.current.limit, page: pageLimit.current.page - 1 }) } else { setQuery({ limit: pageLimit.current.limit, page: pageLimit.current.page }) } }) }} > ); }, } ]; //获取表格属性设置 function attribute () { const arr = localStorage.getItem(APPLICATION) ? JSON.parse(localStorage.getItem(APPLICATION)) : []; const column = [ { title: "创建时间", dataIndex: "createTime", key: "createTime", render: (_, r, index) => { return moment(r.createTime).format("YYYY-MM-DD HH:mm:ss"); }, }, { title: "创建账号", dataIndex: "createUserId", key: "account", render: (_, r, index) => { return r?.createUser?.name }, }, { title: "应用类型", dataIndex: "type", key: "applicationType", render: (_, r, index) => { const types = { web: 'web', app: 'app', wxapp: '小程序', other: '其他' } return r?.type?.map((item, index) => types[item] + ';') }, }, ]; for (let i = 0; i < arr.length; i++) { let colum = column.filter((item) => { return item.key === arr[i]; }); columns.splice(i + 4, 0, colum[0]); } setSetupp(columns); } const tableList = [//表格属性 { title: '详情信息', list: [ { name: "创建时间", value: "createTime" }, { name: "创建账号", value: "account" }, { name: "应用类型", value: "applicationType" }, ] }, ]; //获取应用信息 const details = (data) => { pageLimit.current = query dispatch(applicationCenter.getApplication(pageLimit.current)).then((res) => { limits.current = res.payload.data.data.length }); } useEffect(() => { details() }, [query]) useEffect(() => { //初始化表格显示设置 localStorage.getItem(APPLICATION) == null ? localStorage.setItem( APPLICATION, JSON.stringify(["createTime",]) ) : ""; attribute(); }, []) return ( <>
应用列表
{/* */}
s)} dataSource={applicationData.data} bordered={false} empty="暂无数据" style={{ padding: "0px 20px", }} pagination={false} />
共{applicationData.total}个设备 { setQuery({ limit: pageSize, page: currentPage - 1 }); pageLimit.current = { limit: pageSize, page: currentPage - 1 } }} />
{/*表格设置*/} {setup ? ( { setSetup(false); attribute(); }} /> ) : ( "" )} {applyModal ? ( { setApplyModal(false) setModalName(false) setAppData(null) details() }} /> ) : ( "" )} ) } function mapStateToProps (state) { const { global, applicationData } = state; return { actions: global.actions, applicationData: applicationData.data || {} }; } export default connect(mapStateToProps)(ApplicationCenter);