|
@@ -28,6 +28,7 @@ import PhotoPreview from './PhotoPreview';
|
|
|
import BankCardManagement, { type BankCardItem } from './BankCardManagement';
|
|
import BankCardManagement, { type BankCardItem } from './BankCardManagement';
|
|
|
import RemarkManagement, { type RemarkItem } from './RemarkManagement';
|
|
import RemarkManagement, { type RemarkItem } from './RemarkManagement';
|
|
|
import VisitManagement, { type VisitItem } from './VisitManagement';
|
|
import VisitManagement, { type VisitItem } from './VisitManagement';
|
|
|
|
|
+import GuardianPhoneManagement, { type GuardianPhoneItem } from './GuardianPhoneManagement';
|
|
|
import { parseIdCard } from '../utils/idCardParser';
|
|
import { parseIdCard } from '../utils/idCardParser';
|
|
|
import { parseDisabilityId } from '../utils/disabilityIdParser';
|
|
import { parseDisabilityId } from '../utils/disabilityIdParser';
|
|
|
|
|
|
|
@@ -59,6 +60,8 @@ const DisabilityPersonManagement: React.FC = () => {
|
|
|
const [updateRemarks, setUpdateRemarks] = useState<RemarkItem[]>([]);
|
|
const [updateRemarks, setUpdateRemarks] = useState<RemarkItem[]>([]);
|
|
|
const [createVisits, setCreateVisits] = useState<VisitItem[]>([]);
|
|
const [createVisits, setCreateVisits] = useState<VisitItem[]>([]);
|
|
|
const [updateVisits, setUpdateVisits] = useState<VisitItem[]>([]);
|
|
const [updateVisits, setUpdateVisits] = useState<VisitItem[]>([]);
|
|
|
|
|
+ const [createGuardianPhones, setCreateGuardianPhones] = useState<GuardianPhoneItem[]>([]);
|
|
|
|
|
+ const [updateGuardianPhones, setUpdateGuardianPhones] = useState<GuardianPhoneItem[]>([]);
|
|
|
const [currentUserId] = useState<number>(1); // 假设当前用户ID为1,实际应从认证状态获取
|
|
const [currentUserId] = useState<number>(1); // 假设当前用户ID为1,实际应从认证状态获取
|
|
|
|
|
|
|
|
// 表单实例 - 创建表单
|
|
// 表单实例 - 创建表单
|
|
@@ -274,6 +277,13 @@ const DisabilityPersonManagement: React.FC = () => {
|
|
|
visitResult: visit.visitResult,
|
|
visitResult: visit.visitResult,
|
|
|
nextVisitDate: visit.nextVisitDate,
|
|
nextVisitDate: visit.nextVisitDate,
|
|
|
visitorId: visit.visitorId
|
|
visitorId: visit.visitorId
|
|
|
|
|
+ })),
|
|
|
|
|
+ guardianPhones: createGuardianPhones
|
|
|
|
|
+ .filter(phone => phone.phoneNumber && phone.relationship)
|
|
|
|
|
+ .map(phone => ({
|
|
|
|
|
+ phoneNumber: phone.phoneNumber,
|
|
|
|
|
+ relationship: phone.relationship,
|
|
|
|
|
+ isPrimary: phone.isPrimary
|
|
|
}))
|
|
}))
|
|
|
};
|
|
};
|
|
|
|
|
|
|
@@ -295,6 +305,7 @@ const DisabilityPersonManagement: React.FC = () => {
|
|
|
setCreateBankCards([]); // 重置银行卡状态
|
|
setCreateBankCards([]); // 重置银行卡状态
|
|
|
setCreateRemarks([]); // 重置备注状态
|
|
setCreateRemarks([]); // 重置备注状态
|
|
|
setCreateVisits([]); // 重置回访状态
|
|
setCreateVisits([]); // 重置回访状态
|
|
|
|
|
+ setCreateGuardianPhones([]); // 重置监护人电话状态
|
|
|
refetch();
|
|
refetch();
|
|
|
},
|
|
},
|
|
|
onError: (error) => {
|
|
onError: (error) => {
|
|
@@ -372,6 +383,13 @@ const DisabilityPersonManagement: React.FC = () => {
|
|
|
visitResult: visit.visitResult,
|
|
visitResult: visit.visitResult,
|
|
|
nextVisitDate: visit.nextVisitDate,
|
|
nextVisitDate: visit.nextVisitDate,
|
|
|
visitorId: visit.visitorId
|
|
visitorId: visit.visitorId
|
|
|
|
|
+ })),
|
|
|
|
|
+ guardianPhones: updateGuardianPhones
|
|
|
|
|
+ .filter(phone => phone.phoneNumber && phone.relationship)
|
|
|
|
|
+ .map(phone => ({
|
|
|
|
|
+ phoneNumber: phone.phoneNumber,
|
|
|
|
|
+ relationship: phone.relationship,
|
|
|
|
|
+ isPrimary: phone.isPrimary
|
|
|
}))
|
|
}))
|
|
|
};
|
|
};
|
|
|
|
|
|
|
@@ -393,6 +411,7 @@ const DisabilityPersonManagement: React.FC = () => {
|
|
|
setUpdateBankCards([]); // 重置银行卡状态
|
|
setUpdateBankCards([]); // 重置银行卡状态
|
|
|
setUpdateRemarks([]); // 重置备注状态
|
|
setUpdateRemarks([]); // 重置备注状态
|
|
|
setUpdateVisits([]); // 重置回访状态
|
|
setUpdateVisits([]); // 重置回访状态
|
|
|
|
|
+ setUpdateGuardianPhones([]); // 重置监护人电话状态
|
|
|
refetch();
|
|
refetch();
|
|
|
},
|
|
},
|
|
|
onError: (error) => {
|
|
onError: (error) => {
|
|
@@ -436,6 +455,7 @@ const DisabilityPersonManagement: React.FC = () => {
|
|
|
setCreateBankCards([]); // 重置创建银行卡状态
|
|
setCreateBankCards([]); // 重置创建银行卡状态
|
|
|
setCreateRemarks([]); // 重置创建备注状态
|
|
setCreateRemarks([]); // 重置创建备注状态
|
|
|
setCreateVisits([]); // 重置创建回访状态
|
|
setCreateVisits([]); // 重置创建回访状态
|
|
|
|
|
+ setCreateGuardianPhones([]); // 重置创建监护人电话状态
|
|
|
setIsModalOpen(true);
|
|
setIsModalOpen(true);
|
|
|
};
|
|
};
|
|
|
|
|
|
|
@@ -447,6 +467,7 @@ const DisabilityPersonManagement: React.FC = () => {
|
|
|
setUpdateBankCards([]);
|
|
setUpdateBankCards([]);
|
|
|
setUpdateRemarks([]);
|
|
setUpdateRemarks([]);
|
|
|
setUpdateVisits([]);
|
|
setUpdateVisits([]);
|
|
|
|
|
+ setUpdateGuardianPhones([]);
|
|
|
|
|
|
|
|
// 加载聚合数据获取照片、银行卡、备注、回访信息
|
|
// 加载聚合数据获取照片、银行卡、备注、回访信息
|
|
|
if (person.id) {
|
|
if (person.id) {
|
|
@@ -507,6 +528,17 @@ const DisabilityPersonManagement: React.FC = () => {
|
|
|
}));
|
|
}));
|
|
|
setUpdateVisits(visits);
|
|
setUpdateVisits(visits);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ // 加载监护人电话信息
|
|
|
|
|
+ if (aggregatedData && aggregatedData.guardianPhones) {
|
|
|
|
|
+ const guardianPhones: GuardianPhoneItem[] = aggregatedData.guardianPhones.map((phone: any) => ({
|
|
|
|
|
+ phoneNumber: phone.phoneNumber,
|
|
|
|
|
+ relationship: phone.relationship,
|
|
|
|
|
+ isPrimary: phone.isPrimary,
|
|
|
|
|
+ tempId: `existing-phone-${phone.id || Date.now()}`
|
|
|
|
|
+ }));
|
|
|
|
|
+ setUpdateGuardianPhones(guardianPhones);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}).catch(error => {
|
|
}).catch(error => {
|
|
|
console.error('加载聚合数据失败:', error);
|
|
console.error('加载聚合数据失败:', error);
|
|
@@ -1182,6 +1214,14 @@ const DisabilityPersonManagement: React.FC = () => {
|
|
|
visitTypes={['电话回访', '上门回访', '视频回访', '微信回访', '其他']}
|
|
visitTypes={['电话回访', '上门回访', '视频回访', '微信回访', '其他']}
|
|
|
/>
|
|
/>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+
|
|
|
|
|
+ <div className="col-span-full">
|
|
|
|
|
+ <GuardianPhoneManagement
|
|
|
|
|
+ value={createGuardianPhones}
|
|
|
|
|
+ onChange={setCreateGuardianPhones}
|
|
|
|
|
+ maxPhones={5}
|
|
|
|
|
+ />
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
</form>
|
|
</form>
|
|
|
</Form>
|
|
</Form>
|
|
@@ -1587,6 +1627,15 @@ const DisabilityPersonManagement: React.FC = () => {
|
|
|
visitTypes={['电话回访', '上门回访', '视频回访', '微信回访', '其他']}
|
|
visitTypes={['电话回访', '上门回访', '视频回访', '微信回访', '其他']}
|
|
|
/>
|
|
/>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+
|
|
|
|
|
+ {/* 监护人电话管理 */}
|
|
|
|
|
+ <div className="col-span-full">
|
|
|
|
|
+ <GuardianPhoneManagement
|
|
|
|
|
+ value={updateGuardianPhones}
|
|
|
|
|
+ onChange={setUpdateGuardianPhones}
|
|
|
|
|
+ maxPhones={5}
|
|
|
|
|
+ />
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</form>
|
|
</form>
|