import { ConnectState } from "@/models/global"; import { FormInstance, ProForm, ProFormDigit, ProFormList, ProFormRadio, ProFormSwitch, ProFormText, ProFormTextArea, ProFormTreeSelect } from "@ant-design/pro-components"; import { useImperativeHandle, useRef, useState } from "react"; import { connect } from "umi"; import { Col, message, Modal, Row } from "antd"; import { handleGetExamineTypeList, handleGetExamineTypeTreeList } from "../../index/service"; import { handleAddQuestion, handleEditQuestion } from "../service"; type DetailProps = { parentRow: any onRef: any currentUser?: any showQuestionModal: boolean setShowQuestionModal?: any parentActionRef?: any setCurrentRow?: any afterAdd?: any } const addQuestion = ({ parentRow, onRef, currentUser, showQuestionModal, setShowQuestionModal, parentActionRef, setCurrentRow, afterAdd }: DetailProps) => { // 弹出框的表单实例 const modalRef = useRef() const [categoryIdObj, setCategoryIdObj] = useState() useImperativeHandle(onRef, () => ({ modalRef, categoryIdObj })); return (
{ modalRef.current?.validateFields().then(async (res) => { let req = {} let data = {} if (parentRow?.id) { req = { ...parentRow, categoryId: res.categoryId,// 题目id type: `${res.selectType === 1 ? 'radio' : 'checked'}_choice`,// 题目类型 title: res.title,// 问题内容 required: res.required,// 是否必填 options: res.options, status: res.status, operator: currentUser?.operator, description: `${res.categoryId && categoryIdObj ? categoryIdObj[res.categoryId] : ''}`, category: undefined } console.log('req', req); data = await handleEditQuestion(req) } else { req = { categoryId: res.categoryId,// 题目id type: `${res.selectType === 1 ? 'radio' : 'checked'}_choice`,// 题目类型 title: res.title,// 问题内容 required: res.required,// 是否必填 options: res.options, sortOrder: 1, status: res.status, operator: currentUser?.operator, defaultScore: 0, images: [], description: `${res.categoryId && categoryIdObj ? categoryIdObj[res.categoryId] : ''}` } data = await handleAddQuestion(req) } console.log('datadsadsa', data); if (data.Result_Code === 100) { if (modalRef) { modalRef.current?.resetFields() } message.success(data.Result_Desc) setShowQuestionModal(false) if (parentActionRef) { parentActionRef.current?.reload() } if (setCurrentRow) { setCurrentRow(undefined) } if (afterAdd) { afterAdd() } } else { message.error(data.Result_Desc) } }) }} onCancel={() => { if (modalRef) { modalRef.current?.resetFields() } setShowQuestionModal(false) if (setCurrentRow) { setCurrentRow(undefined) } }} > { console.log('currentRow', parentRow); return { ...parentRow, selectType: parentRow.type.split('_')[0] === 'checked' ? 2 : 1 } }}> { const req = {} const data = await handleGetExamineTypeTreeList(req) console.log('dsadas', data); let res = [ { name: '/', id: 0, children: data } ] let obj: any = {} const labelList = await handleGetExamineTypeList() if (labelList && labelList.length > 0) { labelList.forEach((item: any) => { obj[item.id] = item.name }) } console.log('objobjobjobj', obj); setCategoryIdObj(obj) return data }} fieldProps={{ treeDefaultExpandAll: true, // treeDefaultExpandedKeys: [0], fieldNames: { label: "name", value: "id" }, showSearch: true, filterTreeNode: (input, treeNode) => { return (treeNode?.name ?? '').toLowerCase().indexOf(input.toLowerCase()) >= 0; }, treeNodeFilterProp: 'name' }} /> (
{listDom}
{action}
)} >
) } export default connect(({ user }: ConnectState) => ({ currentUser: user.data }))(addQuestion);