var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import { PlusOutlined } from '@ant-design/icons'; import { ModalForm, ProForm, ProFormDependency, ProFormItem, ProFormSelect, ProFormText, ProFormTextArea, ProFormUploadButton, } from '@ant-design/pro-components'; import { Form, message } from 'antd'; import { FormUpload } from '@component/ui'; import { useRequest } from 'ahooks'; import { getDictValList } from 'actions/base.action'; import { omit } from 'lodash'; import { hiddenTroubleGrade } from '../../CONST'; import { getToken, getUploadList, getUploadValueFromEvent, jsonString, themeMessage, } from '@component/utils'; import { useServiceContext } from '../../context'; import React, { useCallback } from 'react'; import { getFormTypeList } from 'insure/src/actions/industry.checklist.action'; import { Link } from 'react-router-dom'; export default ({ title, onCancel, init, item, service, serviceid }) => { var _a, _b; // 专家端使用serviceId 使用props中的 const serviceId = (_b = (_a = useServiceContext()) === null || _a === void 0 ? void 0 : _a.serviceId) !== null && _b !== void 0 ? _b : serviceid; const [form] = Form.useForm(); const { runAsync, loading } = useRequest(service, { manual: true, onSuccess(result) { themeMessage(result); if (result.type === 'success') { init && init(); onCancel(); } }, onError(result) { message.error(result.message); }, }); function onFinish(values) { return __awaiter(this, void 0, void 0, function* () { const classify = values.classify; values.formTypePid = values === null || values === void 0 ? void 0 : values.formTypeP.value; values.formTypePname = values === null || values === void 0 ? void 0 : values.formTypeP.label; values.formTypeId = values === null || values === void 0 ? void 0 : values.formType.value; values.formTypeName = values === null || values === void 0 ? void 0 : values.formType.label; return runAsync(Object.assign({}, omit(values, [ 'classify', 'attachments', 'dangerTypeName', 'formTypeP', 'formType', ]), { classifyId: classify.value, classifyName: classify.label, dangerTypeId: values.dangerTypeName.value, dangerTypeName: values.dangerTypeName.label, attachments: JSON.stringify(getUploadList(values.attachments)), serviceId, })); }); } const request = useCallback(() => __awaiter(void 0, void 0, void 0, function* () { return Object.assign(Object.assign({}, item), { classify: { value: item.classifyId, label: item.classifyName, }, dangerTypeName: { value: item.dangerTypeId, label: item.classifyName, }, formTypeP: { value: item === null || item === void 0 ? void 0 : item.formTypeId, label: item === null || item === void 0 ? void 0 : item.formTypePname, }, formType: { value: item === null || item === void 0 ? void 0 : item.formTypePid, label: item === null || item === void 0 ? void 0 : item.formTypeName, }, attachments: yield jsonString(item.attachments) }); }), [item]); return (_jsxs(ModalForm, Object.assign({ visible: true, title: title, form: form, request: request, autoFocusFirstInput: true, modalProps: { destroyOnClose: true, confirmLoading: loading, maskClosable: false, onCancel: onCancel, bodyStyle: { height: 600, overflow: 'auto', }, }, submitTimeout: 2000, onFinish: onFinish }, { children: [_jsx(ProFormItem, { name: "hiddenDangerId", hidden: true }), _jsx(ProFormText, { rules: [{ required: true }], name: "description", label: "\u9690\u60A3\u63CF\u8FF0", fieldProps: { showCount: true, maxLength: 1200, } }), _jsx(ProForm.Item, Object.assign({ noStyle: true, shouldUpdate: true }, { children: ({ setFieldValue }) => { return (_jsx(ProFormSelect, { name: "formTypeP", label: "\u4E00\u7EA7\u7C7B\u522B", placeholder: "\u8BF7\u9009\u62E9\u4E00\u7EA7\u7C7B\u522B", request: getFormTypeList, formItemProps: { extra: (_jsx(Link, Object.assign({ to: "/app/serviceAssist/template/industryType" }, { children: "\u6CA1\u6709\u6570\u636E? \u53BB\u521B\u5EFA" }))), }, fieldProps: { labelInValue: true, onChange() { setFieldValue('formType', null); }, }, rules: [{ required: true, message: '请选择一级类别' }] })); } })), _jsx(ProFormDependency, Object.assign({ name: ['formTypeP'] }, { children: ({ formTypeP }) => { var _a; return (_jsx(ProFormSelect, { name: "formType", label: "\u4E8C\u7EA7\u7C7B\u522B", placeholder: "\u8BF7\u9009\u62E9\u4E8C\u7EA7\u7C7B\u522B", params: { parentId: (_a = formTypeP === null || formTypeP === void 0 ? void 0 : formTypeP.value) !== null && _a !== void 0 ? _a : null }, request: (params) => (formTypeP ? getFormTypeList(params) : []), fieldProps: { labelInValue: true, }, rules: [{ required: true, message: '请选择二级类别' }] })); } })), _jsx(ProFormSelect, { rules: [{ required: true }], label: "\u9690\u60A3\u7C7B\u578B", name: "classify", request: getDictValList, params: { dictId: '20' }, fieldProps: { labelInValue: true, } }), _jsx(ProFormSelect, { rules: [{ required: true }], label: "\u9690\u60A3\u7B49\u7EA7", name: "hiddenTroubleGrade", options: hiddenTroubleGrade }), _jsx(ProFormSelect, { rules: [{ required: true }], label: "\u9690\u60A3\u5206\u7C7B", name: "dangerTypeName", request: getDictValList, params: { dictId: '24' }, fieldProps: { labelInValue: true, } }), _jsx(ProFormText, { rules: [{ required: true }], name: "discoveredAddress", label: "\u9690\u60A3\u6240\u5728\u573A\u6240\u90E8\u4F4D", fieldProps: { showCount: true, maxLength: 40, } }), _jsx(ProFormTextArea, { label: "\u6574\u6539\u5EFA\u8BAE", name: "rectifyRemark", fieldProps: { showCount: true, maxLength: 4000, } }), _jsx(FormUpload, { name: "attachments", label: "\u73B0\u573A\u7167\u7247", max: 20, fieldProps: { accept: 'image/*', }, params: { bizNo: (item === null || item === void 0 ? void 0 : item.hiddenDangerId) || '', type: '8', } })] }))); };