停车场项目web, 互联网仓库, 开发完成后, 需要将代码回传云桌面.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

1407 lines
36 KiB

import React, { useState, useRef, useEffect, createContext } from "react";
import { Input, Select, message, Popover, Pagination, Table,Tree, DatePicker, Form, Radio, Upload, Space, Modal, Cascader, Button } from "antd";
// import { dictionary, utils } from "@/config/common";
import { pageSizeOptions } from '@/config/character.config.js'
import { LoadingOutlined, PlusOutlined } from '@ant-design/icons';
import moment from 'moment'
import { FormInput, FormSelect, ImgUpload, SystemSearch, FormDatePicker, Icon, ResultFlow, ExportBtn, SearchTabs } from "@/components"
import { useSessionStorageState, useUpdateEffect, useSize, useUpdate, useSetState } from 'ahooks';
import ajax from "@/services"
import "./index.scss";
import status_normal from '@/assets/images/status_normal.png'
import status_err from '@/assets/images/status_err.png'
import warningIcon from "@/assets/images/warningIcon.png";
import { SearchOutlined, DeleteOutlined } from '@ant-design/icons';
import { assign } from "lodash";
function FunctionMgm() {
//默认
const parameter = {
tenantName: "",
manage_type: "",
note: "",
updateAt: "",
manage_type_name: "",
pn: 1,
page_size: Number(pageSizeOptions[0]), // 每页条数
}
//等待状态
const [loading, setLoading] = useState(false) // 等待状态
//表格数据
const [tableData, setTableData] = useState([])
//表头
const columns = [
{
title: '序号',
dataIndex: 'id',
key: 'id',
align: "center",
},
{
title: '商户名称',
key: 'tenantName',
dataIndex: 'tenantName',
align: "center",
},
{
title: '经营业务类型',
key: 'manage_type_name',
dataIndex: 'manage_type_name',
align: "center",
},
{
title: '备注',
key: 'note',
dataIndex: 'note',
align: "center",
render: (text, record, index) => record?.note || "--",
},
{
title: '创建时间',
key: 'updateAt',
dataIndex: 'updateAt',
align: "center",
},
{
title: '操作',
key: 'operation',
dataIndex: 'operation',
align: "center",
render: (text, record, index) => {
return <>
<div onClick={() => { updateBtn(record) }} trigger="hover" style={{ color: '#409EFF', cursor: "pointer" }}>编辑</div>
</>
},
},
]
//检索表单
const [formData, setFormData] = useSetState(parameter)
const [lastFormData, setLastFormData] = useState(formData)
const lastFormDataRef = useRef(formData)
const [searchForm]=Form.useForm()
//商户名称下拉
const [tenantPull, setTenantPull] = useState([])
//总条数
const [total, setTotal] = useState()
//编辑开关
const [updateVisible, setUpdateVisible] = useState(false)
//更新表单
const [updateForm]=Form.useForm()
//绑定功能
const treeData = [
{
title: '路内停车管理系统',
key: '0',
children: [
{
title: '停车场管理',
key: '0-0',
children: [
{
title: '停车场管理',
key: '0-0-0',
children: [
{
title: '【按钮】查询',
key: '0-0-0-0',
},
{
title: '【按钮】添加',
key: '',
},
{
title: '【按钮】编辑',
key: '',
},
{
title: '【按钮】查看',
key: '',
},
{
title: '【按钮】停车场配置',
key: '',
},
]
},
{
title: '停车记录查询',
key: '0-0-1',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】详情',
key: '',
},
]
},
{
title: '泊位列表',
key: '0-0-0-1',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】查看',
key: '',
},
]
},
],
},
{
title: '业务管理',
key: '0-0-1',
children: [
{
title: '计费规则管理',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】添加',
key: '',
},
{
title: '【按钮】编辑',
key: '',
},
{
title: '【按钮】查看',
key: '',
},
]
},
{
title: '白名单管理',
key: '',
children: [
{
title: '白名单记录',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】导出',
key: '',
},
{
title: '【按钮】查看',
key: '',
},
{
title: '【按钮】修改',
key: '',
},
{
title: '【按钮】启用',
key: '',
},
]
},
{
title: '白名单申请',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】创建申请',
key: '',
},
{
title: '【按钮】查看',
key: '',
},
{
title: '【按钮】修改',
key: '',
},
{
title: '【按钮】删除',
key: '',
},
]
},
{
title: '白名单审核',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】审核',
key: '',
},
]
},
]
},
],
},
{
title: '人员管理',
key: '0-0-1',
children: [
{
title: '人员管理',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】添加',
key: '',
},
{
title: '【按钮】编辑',
key: '',
},
{
title: '【按钮】离职/在职',
key: '',
},
]
},
{
title: '人员考勤',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】添加',
key: '',
},
]
},
],
},
{
title: '设备管理',
key: '0-0-0-1',
children: [
{
title: '路内车场设备监控',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】详情',
key: '',
},
]
},
{
title: '路外车场设备监控',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】详情',
key: '',
},
]
},
{
title: '视频监控设备管理',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】添加',
key: '',
},
{
title: '【按钮】编辑',
key: '',
},
{
title: '【按钮】删除',
key: '',
},
{
title: '【按钮】查看监控',
key: '',
},
]
},
{
title: '杆位管理',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】查看',
key: '',
},
{
title: '【按钮】导入',
key: '',
},
{
title: '【按钮】导出',
key: '',
},
]
},
{
title: 'PDA管理',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】添加',
key: '',
},
{
title: '【按钮】编辑',
key: '',
},
{
title: '【按钮】删除',
key: '',
},
]
},
{
title: '品牌管理',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】添加',
key: '',
},
{
title: '【按钮】编辑',
key: '',
},
]
},
]
},
{
title: '运营统计',
key: '0-0-1',
children: [
{
title: '停车场数据分析',
key: '',
children: [
{
title: '停车场实况数据',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
]
},
{
title: '停车场运营分析',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
]
},
]
},
],
},
{
title: '财务管理',
key: '0-0-1',
children: [
{
title: '停车场欠费订单',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】导出',
key: '',
},
]
},
{
title: '欠费追缴查询',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】导出',
key: '',
},
]
},
{
title: '停车场收入报表',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】导出',
key: '',
},
]
},
{
title: '营收总报表',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】导出',
key: '',
},
]
},
{
title: '收费员收入统计',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】导出',
key: '',
},
]
},
{
title: '支付渠道统计',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
}
]
},
{
title: '发票记录',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】冲红重开',
key: '',
},
]
},
{
title: '停车支付订单',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】导出',
key: '',
},
]
},
],
},
],
},
{
title: '路外停车管理系统',
key: '0-0',
children: [
{
title: '停车场管理',
key: '0-0-0',
children: [
{
title: '停车场管理',
key: '0-0-0-0',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】添加',
key: '',
},
{
title: '【按钮】编辑',
key: '',
},
{
title: '【按钮】查看',
key: '',
},
{
title: '【按钮】二维码下载',
key: '',
},
{
title: '【按钮】保存并同步',
key: '',
},
{
title: '【按钮】停车场配置',
key: '',
},
]
},
{
title: '计费规则管理',
key: '0-0-0-1',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】添加',
key: '',
},
{
title: '【按钮】编辑',
key: '',
},
{
title: '【按钮】删除',
key: '',
},
{
title: '【按钮】查看',
key: '',
},
]
},
{
title: '停车记录查询',
key: '0-0-0-1',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】详情',
key: '',
},
]
},
],
},
{
title: '人员管理',
key: '0-0-1',
children: [
{
title: '交接班报表',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】查看',
key: '',
},
]
},
{
title: 'MS收费员管理',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】添加',
key: '',
},
{
title: '【按钮】编辑',
key: '',
},
{
title: '【按钮】在职/离职',
key: '',
},
]
},
],
},
{
title: '设备管理',
key: '0-0-0-1',
children: [
{
title: '视频监控设备管理',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】添加',
key: '',
},
{
title: '【按钮】编辑',
key: '',
},
{
title: '【按钮】删除',
key: '',
},
{
title: '【按钮】查看监控',
key: '',
},
]
},
{
title: '路外设备管理',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】查看',
key: '',
}
]
}
]
},
{
title: '运营统计',
key: '0-0-1',
children: [
{
title: '停车场数据分析',
key: '',
children: [
{
title: '停车场实况数据',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
]
},
{
title: '停车场运营分析',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
]
},
]
},
],
},
{
title: '异常管理',
key: '0-0-1',
children: [
{
title: '抬杆记录',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】导出',
key: '',
},
]
},
{
title: '特殊放行记录',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】导出',
key: '',
},
]
},
{
title: '车牌修正记录',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】导出',
key: '',
},
]
}
],
},
{
title: '财务管理',
key: '0-0-1',
children: [
{
title: '停车场支付订单',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】导出',
key: '',
},
]
},
{
title: '营收总报表',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】导出',
key: '',
},
]
},
{
title: '停车场收入报表',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】导出',
key: '',
},
]
},
{
title: '支付渠道统计',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
]
},
],
},
],
},
{
title: '充电管理系统',
key: '0-0',
children: [
{
title: '实时监控',
key: '0-0-0',
children: [
{
title: '电桩监控',
key: '0-0-0-0',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】查看详情',
key: '',
},
{
title: '【按钮】远程监控',
key: '',
},
{
title: '【按钮】状态变更记录',
key: '',
},
]
},
{
title: '充电监控',
key: '0-0-0-1',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】查看详情',
key: '',
},
]
},
{
title: '地锁监控',
key: '0-0-0-1',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】查看详情',
key: '',
},
]
},
{
title: '充电泊位监控',
key: '0-0-0-1',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】查看详情',
key: '',
},
]
},
],
},
{
title: '记录查询',
key: '0-0-1',
children: [
{
title: '充电订单',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】导出',
key: '',
},
{
title: '【按钮】查看详情',
key: '',
},
]
},
{
title: '开锁记录',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
}
]
},
{
title: '预约订单',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】导出',
key: '',
},
{
title: '【按钮】查看',
key: '',
},
]
},
{
title: '违规行为记录',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】详情',
key: '',
},
]
},
],
},
]
},
{
title: '系统管理',
key: '0-0',
children: [
{
title: '商户信息查看',
key: '0-0-0',
children: [
{
title: '【按钮】查询',
key: '0-0-0-0',
},
{
title: '【Tab】商户信息',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
]
},
{
title: '【Tab】发票配置',
key: '',
children: [
{
title: '【按钮】查询',
key: '',
},
]
},
{
title: '计费规则管理',
key: '0-0-0-1',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】添加',
key: '',
},
{
title: '【按钮】编辑',
key: '',
},
{
title: '【按钮】删除',
key: '',
},
{
title: '【按钮】查看',
key: '',
},
]
},
{
title: '停车记录查询',
key: '0-0-0-1',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】详情',
key: '',
},
]
},
],
},
{
title: '管理员管理',
key: '0-0-1',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】添加',
key: '',
},
{
title: '【按钮】编辑',
key: '',
},
{
title: '【按钮】离职',
key: '',
},
],
},
{
title: '角色管理',
key: '0-0-1',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】添加',
key: '',
},
{
title: '【按钮】编辑',
key: '',
},
{
title: '【按钮】删除',
key: '',
},
],
},
{
title: '组织架构',
key: '0-0-1',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】添加',
key: '',
},
{
title: '【按钮】编辑',
key: '',
},
{
title: '【按钮】删除',
key: '',
},
],
},
{
title: '系统日志',
key: '0-0-1',
children: [
{
title: '【按钮】查询',
key: '',
},
{
title: '【按钮】查看',
key: '',
}
],
},
],
},
];
//获取商户名称的下拉
const getTenantNamePull = () => {
ajax.ElectInvoice.getSelectOperator().then(
res => {
if (res.status == 20000) {
setTenantPull(res.data)
} else {
message.error(res.message)
}
}
).catch(
err => { console.log(err); }
)
}
//获取表格数据
const getTable = (data) => {
setLoading(true)
ajax.getFunctionMgmTable(data).then(
res => {
if (res.status == 20000) {
setTableData(res.data.list)
setTotal(res.data.total_records)
setLoading(false)
} else {
message.error(res.message)
}
setLoading(false)
}
).catch(
(err) => {
console.log(err)
}
)
}
//搜索数据
const getSearchData = () => {
const value=searchForm.getFieldsValue(['shop_name'])
setFormData(Object.assign({...formData,pn:1,page_size:Number(pageSizeOptions[0])}))
getTable({...value,pn:1,page_size:Number(pageSizeOptions[0])})
}
//切换分页
const changePn = (pn, length) => {
if (lastFormData.page_size === length) {
lastFormDataRef.current = Object.assign({}, lastFormData, { pn: pn })
const value=searchForm.getFieldsValue(['shop_name'])
setLastFormData(Object.assign(lastFormData,{...value},{pn: pn}))
getTable(lastFormData)
}
}
//切换每页条数
const changeLength = (pn, length) => {
setFormData(Object.assign({}, formData, { pn: 1, page_size: length }))
setLastFormData(Object.assign({}, lastFormData, { pn: 1, page_size: length }))
lastFormDataRef.current = Object.assign({}, lastFormData, { pn: 1, page_size: length })
getTable(Object.assign({}, lastFormData, { pn: 1, page_size: length }))
}
//重置数据
const getResetData = () => {
searchForm.setFieldsValue({
shop_name:""
})
getTable({...parameter})
}
//编辑
const updateBtn = (record) => {
setUpdateVisible(true)
updateForm.setFieldsValue(
{
shop_name:record.tenantName,
note:record.note
}
)
setFormData(record)
}
//点击取消-返回上一层
const createOncancel = () => {
setUpdateVisible(false)
}
//编辑后提交
const submitUpdate=()=>{
}
const onSelect = (selectedKeys, info) => {
console.log('selected', selectedKeys, info);
};
const onCheck = (checkedKeys, info) => {
console.log('onCheck', checkedKeys, info);
};
useEffect(
() => {
const value = searchForm.getFieldsValue(["operatorid", "phone", "name", "account", "status"])
getTenantNamePull()
getTable(formData)
}, []
)
return (
<div id="FunctionMgm" >
{
!updateVisible ?
<div className="merchant-info-table">
<div className="panel">
<div className="title">查询条件</div>
<div className="panel-1">
<Form
layout="inline"
form={searchForm}
>
<Form.Item
label="商户名称:"
name="shop_name"
className="search-form yisa-search"
>
<Select
className="yisa-select"
options={tenantPull}
placeholder="请选择"
/>
</Form.Item>
<Form.Item
className="btnBox"
>
<Button className="reset" onClick={() => { getResetData() }}>
清空
</Button>
<Button type="primary" className="submit" icon={<SearchOutlined />} onClick={() => { getSearchData() }}>
查询
</Button>
</Form.Item>
</Form>
</div>
</div>
<div className="table-content">
<Table
columns={columns}
className="table"
pagination={false}
dataSource={tableData}
loading={loading}
scroll={{ y: "calc(100vh - 280px)" }}
></Table>
<Pagination
className="pagination-common"
showSizeChanger
showQuickJumper
showTotal={() => {
if (total) {
return `${total}`
}
else return `共 0 条`
}
}
total={total}
current={formData.pn}
pageSize={formData.page_size}
pageSizeOptions={pageSizeOptions}
onChange={changePn}
onShowSizeChange={changeLength}
/>
</div>
</div> : ''
}
{
updateVisible ?
<div className="updateCard">
<div className="title">商户功能管理</div>
<div>
<div className="form-note">
<Form
form={updateForm}
>
<Form.Item
label="商户名称"
name="tenantName"
>
{formData.tenantName}
</Form.Item>
<Form.Item
label="备注"
name="note"
>
<Input></Input>
</Form.Item>
<Form.Item className="btns">
<Button type="primary" >全部选择</Button>
<Button className="rest" type="primary" >全部取消</Button>
</Form.Item>
<Form.Item
label="绑定功能"
name="bind"
>
{/* <Tree
checkable
defaultExpandedKeys={['0-0-0', '0-0-1']}
defaultSelectedKeys={['0-0-0', '0-0-1']}
defaultCheckedKeys={['0-0-0', '0-0-1']}
onSelect={onSelect}
onCheck={onCheck}
treeData={treeData}
/> */}
</Form.Item>
<Form.Item>
<Button onClick={submitUpdate} type="primary" htmlType="submit">保存</Button>
<Button className="rest" onClick={createOncancel}>取消</Button>
</Form.Item>
</Form>
</div>
</div>
</div> : ''
}
</div>
)
}
export default FunctionMgm;