| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 | import { useAjax } from "@/Hook/useAjax"import { getRoleUserListApi } from "@/services/gameData"import { gameServerAssignApi } from "@/services/gameData/roleOperate"import { Form, Modal, Radio, Select, message } from "antd"import React, { useEffect, useState } from "react"interface Props {    assignType: 'GAME_SERVER_ASSIGN_CUSTOMER' | 'GAME_SERVER_ASSIGN_GS'    initialValues?: any    visible?: boolean    onChange?: () => void    onClose?: () => void}/** * 批量指派 * @returns  */const AssignUser: React.FC<Props> = ({ visible, onChange, onClose, assignType, initialValues = {} }) => {    /***************************/    const [list, setList] = useState<any[]>([])    const [form] = Form.useForm()    const getRoleUserList = useAjax((params) => getRoleUserListApi(params))    const gameServerAssign = useAjax((params) => gameServerAssignApi(params))    /***************************/    useEffect(() => {        if (assignType) {            getRoleUserList.run({ authType: assignType === 'GAME_SERVER_ASSIGN_CUSTOMER' ? 'CUSTOMER' : 'GS' }).then(res => {                if (res) {                    setList(Object.keys(res)?.map(key => ({ userId: key, nickname: res[key] })))                }            })        } else {            setList([])        }    }, [assignType])    const handleOk = async () => {        let validate = await form.validateFields()        gameServerAssign.run({ ...validate, idList: initialValues.idList, assignType }).then(res => {            if (res) {                message.success('指派成功')                onChange?.()            }        })    }    return <Modal        title={<strong>指派{assignType === 'GAME_SERVER_ASSIGN_CUSTOMER' ? '客服' : 'GS'}</strong>}        visible={visible}        onCancel={onClose}        onOk={handleOk}    >        <Form            name="basicAssignUser"            form={form}            autoComplete="off"            initialValues={initialValues}            layout="vertical"        >            <Form.Item                label={<strong>{assignType === 'GAME_SERVER_ASSIGN_CUSTOMER' ? '客服' : 'GS'}</strong>}                name="assignUserIdList"                rules={[{ required: true, message: `请选择${assignType === 'GAME_SERVER_ASSIGN_CUSTOMER' ? '客服' : 'GS'}` }]}            >                <Select                    loading={getRoleUserList.loading}                    mode="multiple"                    showSearch                    style={{ width: '100%' }}                    allowClear                    placeholder={`请选择${assignType === 'GAME_SERVER_ASSIGN_CUSTOMER' ? '客服' : 'GS'}`}                    filterOption={(input, option) =>                        (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0                    }                >                    {list.map((item: any) => <Select.Option value={item.userId} key={item.userId}>{item.nickname}</Select.Option>)}                </Select>            </Form.Item>        </Form>    </Modal>}export default React.memo(AssignUser)
 |