From 32b84d837d3e662dc5b5a05419d53748ed712595 Mon Sep 17 00:00:00 2001
From: "1378012178@qq.com" <1378012178@qq.com>
Date: Mon, 22 Sep 2025 16:56:47 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AE=B6=E5=B1=9E=E4=BF=A1?=
=?UTF-8?q?=E6=81=AF=E3=80=81=E9=95=BF=E8=80=85=E4=BF=A1=E6=81=AF=E5=B1=95?=
=?UTF-8?q?=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/elder/elderinfo/ElderInfo.api.ts | 72 ++++
src/views/elder/elderinfo/ElderInfo.data.ts | 66 ++++
src/views/elder/elderinfo/ElderInfoList.vue | 214 ++++++++++++
.../elderinfo/components/ElderInfoForm.vue | 310 ++++++++++++++++++
.../elderinfo/components/ElderInfoModal.vue | 84 +++++
.../elder/familymember/FamilyMember.api.ts | 72 ++++
.../elder/familymember/FamilyMember.data.ts | 48 +++
.../elder/familymember/FamilyMemberList.vue | 234 +++++++++++++
.../components/FamilyMemberForm.vue | 175 ++++++++++
.../components/FamilyMemberModal.vue | 77 +++++
10 files changed, 1352 insertions(+)
create mode 100644 src/views/elder/elderinfo/ElderInfo.api.ts
create mode 100644 src/views/elder/elderinfo/ElderInfo.data.ts
create mode 100644 src/views/elder/elderinfo/ElderInfoList.vue
create mode 100644 src/views/elder/elderinfo/components/ElderInfoForm.vue
create mode 100644 src/views/elder/elderinfo/components/ElderInfoModal.vue
create mode 100644 src/views/elder/familymember/FamilyMember.api.ts
create mode 100644 src/views/elder/familymember/FamilyMember.data.ts
create mode 100644 src/views/elder/familymember/FamilyMemberList.vue
create mode 100644 src/views/elder/familymember/components/FamilyMemberForm.vue
create mode 100644 src/views/elder/familymember/components/FamilyMemberModal.vue
diff --git a/src/views/elder/elderinfo/ElderInfo.api.ts b/src/views/elder/elderinfo/ElderInfo.api.ts
new file mode 100644
index 0000000..f22b63d
--- /dev/null
+++ b/src/views/elder/elderinfo/ElderInfo.api.ts
@@ -0,0 +1,72 @@
+import { defHttp } from '/@/utils/http/axios';
+import { useMessage } from "/@/hooks/web/useMessage";
+
+const { createConfirm } = useMessage();
+
+enum Api {
+ list = '/admin/elderInfo/list',
+ save='/admin/elderInfo/add',
+ edit='/admin/elderInfo/edit',
+ deleteOne = '/admin/elderInfo/delete',
+ deleteBatch = '/admin/elderInfo/deleteBatch',
+ importExcel = '/admin/elderInfo/importExcel',
+ exportXls = '/admin/elderInfo/exportXls',
+}
+
+/**
+ * 导出api
+ * @param params
+ */
+export const getExportUrl = Api.exportXls;
+
+/**
+ * 导入api
+ */
+export const getImportUrl = Api.importExcel;
+
+/**
+ * 列表接口
+ * @param params
+ */
+export const list = (params) => defHttp.get({ url: Api.list, params });
+
+/**
+ * 删除单个
+ * @param params
+ * @param handleSuccess
+ */
+export const deleteOne = (params,handleSuccess) => {
+ return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
+ handleSuccess();
+ });
+}
+
+/**
+ * 批量删除
+ * @param params
+ * @param handleSuccess
+ */
+export const batchDelete = (params, handleSuccess) => {
+ createConfirm({
+ iconType: 'warning',
+ title: '确认删除',
+ content: '是否删除选中数据',
+ okText: '确认',
+ cancelText: '取消',
+ onOk: () => {
+ return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => {
+ handleSuccess();
+ });
+ }
+ });
+}
+
+/**
+ * 保存或者更新
+ * @param params
+ * @param isUpdate
+ */
+export const saveOrUpdate = (params, isUpdate) => {
+ let url = isUpdate ? Api.edit : Api.save;
+ return defHttp.post({ url: url, params }, { isTransformResponse: false });
+}
diff --git a/src/views/elder/elderinfo/ElderInfo.data.ts b/src/views/elder/elderinfo/ElderInfo.data.ts
new file mode 100644
index 0000000..f1bda2d
--- /dev/null
+++ b/src/views/elder/elderinfo/ElderInfo.data.ts
@@ -0,0 +1,66 @@
+import { BasicColumn } from '/@/components/Table';
+import { FormSchema } from '/@/components/Table';
+import { rules } from '/@/utils/helper/validator';
+import { render } from '/@/utils/common/renderUtils';
+import { getWeekMonthQuarterYear } from '/@/utils';
+//列表数据
+export const columns: BasicColumn[] = [
+ {
+ title: '护理单元',
+ align: 'center',
+ dataIndex: 'nuId',
+ },
+ {
+ title: '长者姓名',
+ align: 'center',
+ dataIndex: 'name',
+ },
+ {
+ title: '性别',
+ align: 'center',
+ dataIndex: 'sex',
+ },
+ {
+ title: '年龄',
+ align: 'center',
+ dataIndex: 'age',
+ },
+ {
+ title: '监护人姓名',
+ align: 'center',
+ dataIndex: 'guardianName',
+ },
+ {
+ title: '关系',
+ align: 'center',
+ dataIndex: 'relationship',
+ },
+ {
+ title: '监护人电话',
+ align: 'center',
+ dataIndex: 'guardianPhone',
+ },
+];
+
+// 高级查询数据
+export const superQuerySchema = {
+ nuId: { title: '护理单元', order: 0, view: 'text', type: 'string' },
+ name: { title: '姓名', order: 1, view: 'text', type: 'string' },
+ sex: { title: '性别', order: 2, view: 'text', type: 'string' },
+ age: { title: '年龄', order: 3, view: 'text', type: 'string' },
+ idCard: { title: '身份证号码', order: 4, view: 'text', type: 'string' },
+ dateOfBirth: { title: '出生日期', order: 5, view: 'datetime', type: 'string' },
+ national: { title: '民族', order: 6, view: 'text', type: 'string' },
+ houseAddress: { title: '户籍所在地', order: 7, view: 'textarea', type: 'string' },
+ idCardPositive: { title: '身份证正面', order: 8, view: 'image', type: 'string' },
+ idCardNegative: { title: '身份证反面', order: 9, view: 'image', type: 'string' },
+ guardianName: { title: '监护人姓名', order: 10, view: 'text', type: 'string' },
+ relationship: { title: '关系', order: 11, view: 'text', type: 'string' },
+ guardianIdCard: { title: '监护人身份证号', order: 12, view: 'text', type: 'string' },
+ guardianPhone: { title: '联系电话', order: 13, view: 'text', type: 'string' },
+ guardianHomeAddress: { title: '监护人家庭住址', order: 14, view: 'text', type: 'string' },
+ guardianWorkUnit: { title: '监护人工作单位', order: 15, view: 'text', type: 'string' },
+ issuingAuthority: { title: '签发机关', order: 16, view: 'text', type: 'string' },
+ startTime: { title: '有效开始日期', order: 17, view: 'datetime', type: 'string' },
+ endTime: { title: '有效结束日期', order: 18, view: 'datetime', type: 'string' },
+};
diff --git a/src/views/elder/elderinfo/ElderInfoList.vue b/src/views/elder/elderinfo/ElderInfoList.vue
new file mode 100644
index 0000000..1f83f0b
--- /dev/null
+++ b/src/views/elder/elderinfo/ElderInfoList.vue
@@ -0,0 +1,214 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ handleComputedAge(record.dateOfBirth) }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/elder/elderinfo/components/ElderInfoForm.vue b/src/views/elder/elderinfo/components/ElderInfoForm.vue
new file mode 100644
index 0000000..3931da5
--- /dev/null
+++ b/src/views/elder/elderinfo/components/ElderInfoForm.vue
@@ -0,0 +1,310 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ formData.nuId }}
+
+
+
+
+
+
+
+
+ {{ formData.name }}
+
+
+
+
+
+ {{ formData.sex }}
+
+
+
+
+
+ {{ formData.idCard }}
+
+
+
+
+
+ {{ formData.dateOfBirth }}
+
+
+
+
+
+ {{ formData.national }}
+
+
+
+
+
+ {{ formData.houseAddress }}
+
+
+
+
+
+
+
+
+ {{ formData.relationship }}
+
+
+
+
+
+ {{ formData.guardianName }}
+
+
+
+
+
+ {{ formData.guardianIdCard }}
+
+
+
+
+
+ {{ formData.guardianPhone }}
+
+
+
+
+
+ {{ formData.guardianHomeAddress }}
+
+
+
+
+
+ {{ formData.guardianWorkUnit }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ formData.startTime }}
+
+
+
+
+
+ {{ formData.endTime }}
+
+
+
+
+
+ {{ formData.issuingAuthority }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/elder/elderinfo/components/ElderInfoModal.vue b/src/views/elder/elderinfo/components/ElderInfoModal.vue
new file mode 100644
index 0000000..7b19039
--- /dev/null
+++ b/src/views/elder/elderinfo/components/ElderInfoModal.vue
@@ -0,0 +1,84 @@
+
+
+
+ 关闭
+ 确认
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/elder/familymember/FamilyMember.api.ts b/src/views/elder/familymember/FamilyMember.api.ts
new file mode 100644
index 0000000..d5b2734
--- /dev/null
+++ b/src/views/elder/familymember/FamilyMember.api.ts
@@ -0,0 +1,72 @@
+import { defHttp } from '/@/utils/http/axios';
+import { useMessage } from "/@/hooks/web/useMessage";
+
+const { createConfirm } = useMessage();
+
+enum Api {
+ list = '/elder/familyMember/list',
+ save='/elder/familyMember/add',
+ edit='/elder/familyMember/edit',
+ deleteOne = '/elder/familyMember/delete',
+ deleteBatch = '/elder/familyMember/deleteBatch',
+ importExcel = '/elder/familyMember/importExcel',
+ exportXls = '/elder/familyMember/exportXls',
+}
+
+/**
+ * 导出api
+ * @param params
+ */
+export const getExportUrl = Api.exportXls;
+
+/**
+ * 导入api
+ */
+export const getImportUrl = Api.importExcel;
+
+/**
+ * 列表接口
+ * @param params
+ */
+export const list = (params) => defHttp.get({ url: Api.list, params });
+
+/**
+ * 删除单个
+ * @param params
+ * @param handleSuccess
+ */
+export const deleteOne = (params,handleSuccess) => {
+ return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
+ handleSuccess();
+ });
+}
+
+/**
+ * 批量删除
+ * @param params
+ * @param handleSuccess
+ */
+export const batchDelete = (params, handleSuccess) => {
+ createConfirm({
+ iconType: 'warning',
+ title: '确认删除',
+ content: '是否删除选中数据',
+ okText: '确认',
+ cancelText: '取消',
+ onOk: () => {
+ return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => {
+ handleSuccess();
+ });
+ }
+ });
+}
+
+/**
+ * 保存或者更新
+ * @param params
+ * @param isUpdate
+ */
+export const saveOrUpdate = (params, isUpdate) => {
+ let url = isUpdate ? Api.edit : Api.save;
+ return defHttp.post({ url: url, params }, { isTransformResponse: false });
+}
diff --git a/src/views/elder/familymember/FamilyMember.data.ts b/src/views/elder/familymember/FamilyMember.data.ts
new file mode 100644
index 0000000..622a736
--- /dev/null
+++ b/src/views/elder/familymember/FamilyMember.data.ts
@@ -0,0 +1,48 @@
+import {BasicColumn} from '/@/components/Table';
+import {FormSchema} from '/@/components/Table';
+import { rules} from '/@/utils/helper/validator';
+import { render } from '/@/utils/common/renderUtils';
+import { getWeekMonthQuarterYear } from '/@/utils';
+//列表数据
+export const columns: BasicColumn[] = [
+ {
+ title: '姓名',
+ align: "center",
+ dataIndex: 'name'
+ },
+ {
+ title: '联系电话',
+ align: "center",
+ dataIndex: 'tel'
+ },
+ {
+ title: '身份证号',
+ align: "center",
+ dataIndex: 'idCard'
+ },
+ {
+ title: '家庭住址',
+ align: "center",
+ dataIndex: 'homeAddress'
+ },
+ {
+ title: '工作单位',
+ align: "center",
+ dataIndex: 'workUnit'
+ },
+ {
+ title: '创建日期',
+ align: "center",
+ dataIndex: 'createTime'
+ },
+];
+
+// 高级查询数据
+export const superQuerySchema = {
+ name: {title: '咨询人姓名',order: 0,view: 'text', type: 'string',},
+ tel: {title: '联系电话',order: 1,view: 'text', type: 'string',},
+ createTime: {title: '创建日期',order: 2,view: 'datetime', type: 'string',},
+ idCard: {title: '身份证号',order: 3,view: 'text', type: 'string',},
+ homeAddress: {title: '家庭住址',order: 4,view: 'textarea', type: 'string',},
+ workUnit: {title: '工作单位',order: 5,view: 'textarea', type: 'string',},
+};
diff --git a/src/views/elder/familymember/FamilyMemberList.vue b/src/views/elder/familymember/FamilyMemberList.vue
new file mode 100644
index 0000000..45f19fe
--- /dev/null
+++ b/src/views/elder/familymember/FamilyMemberList.vue
@@ -0,0 +1,234 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/elder/familymember/components/FamilyMemberForm.vue b/src/views/elder/familymember/components/FamilyMemberForm.vue
new file mode 100644
index 0000000..b9c0d9b
--- /dev/null
+++ b/src/views/elder/familymember/components/FamilyMemberForm.vue
@@ -0,0 +1,175 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/elder/familymember/components/FamilyMemberModal.vue b/src/views/elder/familymember/components/FamilyMemberModal.vue
new file mode 100644
index 0000000..d4437a0
--- /dev/null
+++ b/src/views/elder/familymember/components/FamilyMemberModal.vue
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+