You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

157 lines
10 KiB

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, Fragment as _Fragment } from "react/jsx-runtime";
import { CardForm } from '@component/ui';
import { ProForm, ProFormDatePicker, ProFormSelect, ProFormText, ProFormTextArea, ProFormTreeSelect, ProFormDependency, } from '@ant-design/pro-components';
import { getAqServiceStandard } from 'actions/service.action';
import React, { useRef, useState } from 'react';
import { checkPolicy, getExpertList, } from './action';
import { getExecutedOrganList } from 'actions/base.action';
import { Button, Divider, Form, Input, Space } from 'antd';
import { useReportContext } from './context';
import { getStorage } from "@component/utils";
import { PlusOutlined } from "@ant-design/icons";
import { concat, find, isEmpty, omit, uniqueId } from "lodash";
export default function () {
const [organId, setOrganId] = React.useState();
const form = Form.useFormInstance();
const { poltform } = useReportContext();
const [userOptions, setUserOptions] = useState([]);
const organInputRef = useRef(null);
const expertInputRef = useRef(null);
const [organ_items, set_organ_items] = useState([]);
const [expert_items, set_expert_items] = useState([]);
const [organ_name, set_organ_name] = useState('');
const [expert_name, set_expert_name] = useState('');
function onOrganChange(value) {
return __awaiter(this, void 0, void 0, function* () {
form.resetFields(['user']);
setOrganId([]);
setOrganId(value.value);
const options = yield getExpertList({
serviceOrganId: value.value,
certificationStatus: 3,
});
console.log('options', options);
setUserOptions(options);
});
}
function onOrganNameChange(event) {
set_organ_name(event.target.value);
}
function onExpertNameChange(event) {
set_expert_name(event.target.value);
}
function addOrganItem() {
if (organ_name && !find(organ_items, ['label', organ_name])) {
set_organ_items([
...organ_items,
{
value: uniqueId(),
label: organ_name,
},
]);
}
}
function addExpertItem() {
if (expert_name && !find(expert_items, ['label', expert_name])) {
set_expert_items([
...expert_items,
{
value: uniqueId(),
label: expert_name,
},
]);
}
}
return (_jsxs(CardForm, { children: [_jsx(ProForm.Item, { noStyle: true, name: "serviceObjectType", hidden: true }), _jsx(ProFormDependency, Object.assign({ name: [''] }, { children: ({}, { setFieldsValue }) => (_jsx(ProFormText, { name: "policyNumber", label: "\u4FDD\u5355\u53F7", formItemProps: {
validateTrigger: ['onChange', 'onBlur'],
}, rules: [
{ required: true },
{
validateTrigger: 'onBlur',
validator: (_, value) => __awaiter(this, void 0, void 0, function* () {
const result = yield checkPolicy({ policyNumber: value });
if (result) {
return Promise.resolve();
}
else {
return Promise.reject('保单不存在');
}
}),
},
], placeholder: "\u8BF7\u8F93\u5165\u4FDD\u5355\u53F7", fieldProps: {
onChange: (e) => __awaiter(this, void 0, void 0, function* () {
var _a;
const value = (_a = e === null || e === void 0 ? void 0 : e.target) === null || _a === void 0 ? void 0 : _a.value;
const data = yield checkPolicy({ policyNumber: value });
if (data) {
setFieldsValue({
customerName: data === null || data === void 0 ? void 0 : data.customerName
});
}
else {
setFieldsValue({
customerName: null
});
}
})
} })) })), _jsx(ProForm.Item, Object.assign({ noStyle: true, shouldUpdate: true }, { children: (form) => {
return (_jsx(ProFormSelect, { name: "aqServiceStandardCategory", label: "\u670D\u52A1\u6807\u51C6\u7C7B\u522B", request: getAqServiceStandard, placeholder: "\u8BF7\u9009\u62E9\u670D\u52A1\u6807\u51C6\u7C7B\u522B", rules: [{ required: true, message: '请选择服务标准类别' }], fieldProps: {
labelInValue: true,
} }));
} })), poltform == 'insure' && (_jsxs(_Fragment, { children: [_jsx(ProFormTreeSelect, { fieldProps: {
showSearch: true,
onChange: onOrganChange,
allowClear: true,
labelInValue: true,
dropdownRender: (menu) => (_jsxs(_Fragment, { children: [menu, _jsx(Divider, { style: { margin: '8px 0' } }), _jsxs(Space, Object.assign({ style: { padding: '0 8px 4px' } }, { children: [_jsx(Input, { placeholder: "\u8BF7\u8F93\u5165\u670D\u52A1\u673A\u6784", ref: organInputRef, value: organ_name, onChange: onOrganNameChange }), _jsx(Button, Object.assign({ type: "text", icon: _jsx(PlusOutlined, {}), onClick: addOrganItem }, { children: "\u6DFB\u52A0\u670D\u52A1\u673A\u6784" }))] }))] })),
}, name: "organ", label: "\u670D\u52A1\u673A\u6784", params: {
items: organ_items
}, request: (params) => __awaiter(this, void 0, void 0, function* () {
return getExecutedOrganList(omit(params, ['items'])).then(data => {
if (!isEmpty(data)) {
return concat([], params.items, data);
}
return organ_items;
});
}), placeholder: "\u8BF7\u9009\u62E9\u670D\u52A1\u673A\u6784", rules: [{ required: true, message: '请选择服务机构' }] }), _jsx(ProFormSelect, { name: "user", label: "\u670D\u52A1\u4E13\u5BB6", placeholder: "\u8BF7\u9009\u62E9\u670D\u52A1\u4E13\u5BB6", rules: [{ required: true, message: '请选择服务专家' }], fieldProps: {
labelInValue: true,
options: concat([], userOptions, expert_items),
notFoundContent: organId ? '暂无数据' : '请选择服务专家',
dropdownRender: (menu) => (_jsxs(_Fragment, { children: [menu, _jsx(Divider, { style: { margin: '8px 0' } }), _jsxs(Space, Object.assign({ style: { padding: '0 8px 4px' } }, { children: [_jsx(Input, { placeholder: "\u8BF7\u9009\u62E9\u670D\u52A1\u4E13\u5BB6", ref: expertInputRef, value: expert_name, onChange: onExpertNameChange }), _jsx(Button, Object.assign({ type: "text", icon: _jsx(PlusOutlined, {}), onClick: addExpertItem }, { children: "\u6DFB\u52A0\u670D\u52A1\u4E13\u5BB6" }))] }))] })),
} })] })), poltform == 'expert' && (getStorage('roleId') == '10000000003' || getStorage('roleId') == '10000000001') && (_jsx(ProFormSelect, { name: "user", label: "\u670D\u52A1\u4E13\u5BB6", placeholder: "\u8BF7\u9009\u62E9\u670D\u52A1\u4E13\u5BB6", rules: [{ required: true, message: '请选择服务专家' }], request: () => {
return getExpertList({
serviceOrganId: getStorage('organId'),
certificationStatus: 3,
});
return [];
}, fieldProps: {
labelInValue: true,
} })), _jsx(ProFormText, { name: "customerName", label: "\u5BA2\u6237\u540D\u79F0", readonly: true, rules: [{ required: true }], placeholder: "\u8BF7\u8F93\u5165\u5BA2\u6237\u540D\u79F0" }), _jsx(ProFormText, { name: "address", label: "\u670D\u52A1\u5730\u5740", rules: [{ required: true }], placeholder: "\u8BF7\u8F93\u5165\u670D\u52A1\u5730\u5740" }), _jsx(ProFormDatePicker, { name: "serviceStartAt", label: "\u670D\u52A1\u65E5\u671F", fieldProps: {
style: {
width: '100%',
},
}, placeholder: "\u8BF7\u9009\u62E9\u670D\u52A1\u65E5\u671F", rules: [{ required: true, message: '请选择服务日期' }] }), _jsx(ProFormText, { name: "actualServiceCost", label: "\u5B9E\u9645\u652F\u4ED8\u91D1\u989D(\u5143)", rules: [{ required: true }], placeholder: "\u8BF7\u8F93\u5165\u5B9E\u9645\u652F\u4ED8\u91D1\u989D" }), _jsx(ProFormTextArea, { labelCol: {
span: 3,
}, colProps: {
span: 24,
}, fieldProps: {
maxLength: 500,
showCount: true,
}, name: "serviceContent", label: "\u670D\u52A1\u5185\u5BB9\u7B80\u8FF0", placeholder: "\u8BF7\u8F93\u5165\u670D\u52A1\u5185\u5BB9\u7B80\u8FF0" }), _jsx(ProFormTextArea, { labelCol: {
span: 3,
}, colProps: {
span: 24,
}, fieldProps: {
maxLength: 500,
showCount: true,
}, name: "remark", label: "\u5907\u6CE8", placeholder: "\u8BF7\u8F93\u5165\u5907\u6CE8" })] }));
}