import { useAjax } from "@/Hook/useAjax" import { getRoleUserListApi } from "@/services/gameData" import { addAssignUserApi, editAssignUserApi } from "@/services/gameData/roleOperate" import { Col, DatePicker, Form, Input, Modal, Row, Select, Space, message } from "antd" import React, { useEffect, useState } from "react" import moment from "moment" interface Props { data: any[] id?: number, startTime?: string, visible?: boolean onClose?: () => void onChange?: () => void } const Assign: React.FC = ({ startTime, id, visible, data, onClose, onChange }) => { /******************************************/ const [gsList, setGsList] = useState([]) const [customerList, setCustomerList] = useState([]) const [operateList, setOperateList] = useState([]) const [form] = Form.useForm() const getRoleUserList = useAjax((params) => getRoleUserListApi(params)) const addAssignUser = useAjax((params) => addAssignUserApi(params)) const editAssignUser = useAjax((params) => editAssignUserApi(params)) /******************************************/ useEffect(() => { if (data?.length === 1) { const { customer_service_id, oper_user_id, gs_id } = data[0] console.log('----->', startTime) let time = startTime ? moment(startTime) : undefined form.setFieldsValue({ startTime: time, operUserId: oper_user_id?.toString(), customerServiceId: customer_service_id?.toString(), gsId: gs_id?.toString() }) } }, [data]) useEffect(() => { const getList = async () => { // 游戏GS let gs = await getRoleUserList.run({ authType: 'GS' }) setGsList(gs ? Object.keys(gs)?.map(key => ({ userId: key, nickname: gs[key] })) : []) // 运营 let operate = await getRoleUserList.run({ authType: 'OPERATE' }) setOperateList(operate ? Object.keys(operate)?.map(key => ({ userId: key, nickname: operate[key] })) : []) // 客服 let customer = await getRoleUserList.run({ authType: 'CUSTOMER' }) setCustomerList(customer ? Object.keys(customer)?.map(key => ({ userId: key, nickname: customer[key] })) : []) } getList() }, []) const handleOk = async () => { let validate = await form.validateFields() const { startTime, ...par } = validate let params: any = { startTime: moment(startTime).format('YYYY-MM-DD'), ...par } let roleInfoAndAgentParamList = data.map(item => { return { gameId: item.role_reg_game_id, roleId: item.role_id, serverId: item.server_id, userId: item.association_user_id, regAgentId: item.agent_id } }) params.roleInfoAndAgentParamList = roleInfoAndAgentParamList if (id) { params.id = id editAssignUser.run(params).then(res => { if (res) { message.success('更新成功') onChange?.() } }) } else { addAssignUser.run(params).then(res => { if (res) { message.success('指派成功') onChange?.() } }) } } return 指派 操作有延时,请勿重复提交!!! } visible={visible} onCancel={onClose} onOk={handleOk} confirmLoading={addAssignUser.loading} >
} export default React.memo(Assign)