import { useAjax } from "@/Hook/useAjax" import SelectCloud from "@/pages/launchSystemNew/components/selectCloud" import { PlusOutlined } from "@ant-design/icons" import { Button, Divider, Form, Input, message, Modal, Select, Space, Table } from "antd" import React, { useEffect, useState } from "react" import { useModel } from "umi" import brandColumns from "./tableConfig" import { addSysBrandApi, delSysBrandApi, editSysBrandApi, getSysBrandApi } from "@/services/adqV3/global" interface Props { onChange?: (data: any) => void, value?: any, id?: any } /** * 品牌形象 * @returns */ const BrandImage: React.FC = (props) => { /****************************/ const { onChange, value, id } = props const [visible, setVisible] = useState(false) const [addVisible, setAddVisible] = useState(false) const [form] = Form.useForm() const [initialValues, setInitialValues] = useState({}) const getSysBrand = useAjax(() => getSysBrandApi()) const addSysBrand = useAjax((params) => addSysBrandApi(params)) const editSysBrand = useAjax((params) => editSysBrandApi(params)) const delSysBrand = useAjax((params) => delSysBrandApi(params)) /****************************/ // 获取列表 useEffect(() => { getSysBrand.run() }, []) // 新增修改 const handleOk = async () => { form.submit() let data = await form.validateFields() if (Object.keys(initialValues).length > 0) { // 修改 editSysBrand.run({ ...data, sysBrandId: initialValues.id }).then(res => { if (res) { message.success('修改成功') setAddVisible(false) getSysBrand.refresh() } }) } else { // 新增 addSysBrand.run(data).then(res => { if (res) { message.success('新增成功') setAddVisible(false) getSysBrand.refresh() } }) } setInitialValues({}) } /** 删除 */ const del = (id: number) => { delSysBrand.run({ sysBrandId: id }).then(res => { if (res) { message.success('删除成功') getSysBrand.refresh() } }) } /** 修改 */ const edit = (data: any) => { setInitialValues(data) setAddVisible(true) } return
{visible && setVisible(false)}> } {addVisible && setAddVisible(false)}>
头像} name="brandImgUrl" rules={[{ required: true, message: '请选择头像!' }]}> 名称} name="name" rules={[{ required: true, message: '请输入名称!' }]}>
} } interface ImageProps { onChange?: (value: string) => void, value?: string } /** * 处理选择图片Form * @returns */ export const UploadImage: React.FC = (props) => { /*********************/ const { onChange, value } = props const [selectImgVisible, setSelectImgVisible] = useState(false) const [sliderImgContent, setSliderImgContent] = useState<{ url: string, width?: number, height?: number }[]>([]) // 保存回填数据 const { init } = useModel('useLaunchAdq.useBdMediaPup') /*********************/ useEffect(() => { if (value) { setSliderImgContent([{ url: value }]) } else { setSliderImgContent([]) } }, [value]) const setImg = (content: any[]) => { onChange && onChange(content[0]?.url) setSelectImgVisible(false) } const selectImg = () => { init({ mediaType: 'IMG', cloudSize: [[{ relation: '=', width: 512, height: 512 }]], maxSize: 50 * 1024 }) setTimeout(() => { setSelectImgVisible(true) }, 50) } return <> {value ? : }
图片尺寸:512×512 像素
图片格式:大小要求在 50KB 以内,仅支持 jpg 和 png 格式
{/* 选择素材 */} {selectImgVisible && setSelectImgVisible(false)} onChange={setImg} />} } export default React.memo(BrandImage)