长者审核合并代码调整

This commit is contained in:
1378012178@qq.com 2026-01-30 16:59:25 +08:00
parent 314d0cdf88
commit 01b4047ab6
9 changed files with 658 additions and 110 deletions

View File

@ -22,6 +22,7 @@ enum Api {
getMediaUrlByOrgCode = '/sys/api/getMediaUrlByOrgCode',
uploadPre = '/sys/common/upload/pre',
queryUpBizPrefix = '/api/sysUtils/queryUpBizPrefix',
getManyDictItems = '/sys/api/getManyDictItems',
}
/**
@ -218,3 +219,21 @@ export const uploadPre = (params) => {
export const queryUpBizPrefix = () => {
return defHttp.get({ url: Api.queryUpBizPrefix }, { isTransformResponse: false });
};
/**
*
* @param params
*/
export const getManyDictItems = (params) => {
// 处理数组参数
if (params && params.dictCodeList && Array.isArray(params.dictCodeList)) {
const query = params.dictCodeList.map((code) => `dictCodeList=${encodeURIComponent(code)}`).join('&');
return defHttp.get(
{
url: `${Api.getManyDictItems}?${query}`,
},
{ isTransformResponse: false }
);
}
return defHttp.get({ url: Api.getManyDictItems, params }, { isTransformResponse: false });
};

View File

@ -1,18 +1,20 @@
import { defHttp } from '/@/utils/http/axios';
import { useMessage } from "/@/hooks/web/useMessage";
import { useMessage } from '/@/hooks/web/useMessage';
const { createConfirm } = useMessage();
enum Api {
list = '/admin/elderInfo/list',
save='/admin/elderInfo/add',
edit='/admin/elderInfo/edit',
save = '/admin/elderInfo/add',
edit = '/admin/elderInfo/edit',
deleteOne = '/admin/elderInfo/delete',
deleteBatch = '/admin/elderInfo/deleteBatch',
importExcel = '/admin/elderInfo/importExcel',
exportXls = '/admin/elderInfo/exportXls',
modifyList = '/admin/elderInfo/modifyList',
modifyTableList = '/admin/elderInfo/modifyTableList',
getModifyInfo = '/admin/elderInfo/getModifyInfo',
getHisModifyInfo = '/admin/elderInfo/getHisModifyInfo',
guaAudit = '/admin/elderInfo/guaAudit',
elderAudit = '/admin/elderInfo/elderAudit',
changeOrderly = '/admin/elderInfo/changeOrderly',
@ -40,11 +42,11 @@ 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(() => {
export const deleteOne = (params, handleSuccess) => {
return defHttp.delete({ url: Api.deleteOne, params }, { joinParamsToUrl: true }).then(() => {
handleSuccess();
});
}
};
/**
*
@ -59,12 +61,12 @@ export const batchDelete = (params, handleSuccess) => {
okText: '确认',
cancelText: '取消',
onOk: () => {
return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => {
return defHttp.delete({ url: Api.deleteBatch, data: params }, { joinParamsToUrl: true }).then(() => {
handleSuccess();
});
}
},
});
}
};
/**
*
@ -74,8 +76,7 @@ export const batchDelete = (params, handleSuccess) => {
export const saveOrUpdate = (params, isUpdate) => {
let url = isUpdate ? Api.edit : Api.save;
return defHttp.post({ url: url, params }, { isTransformResponse: false });
}
};
/**
*
@ -83,6 +84,11 @@ export const saveOrUpdate = (params, isUpdate) => {
*/
export const modifyList = (params) => defHttp.get({ url: Api.modifyList, params });
/**
*
* @param params
*/
export const modifyTableList = (params) => defHttp.get({ url: Api.modifyTableList, params });
/**
*
@ -90,7 +96,15 @@ export const modifyList = (params) => defHttp.get({ url: Api.modifyList, params
*/
export const getModifyInfo = (params) => {
return defHttp.post({ url: Api.getModifyInfo, params });
}
};
/**
*
* @param params
*/
export const getHisModifyInfo = (params) => {
return defHttp.post({ url: Api.getHisModifyInfo, params });
};
/**
*

View File

@ -47,6 +47,72 @@ export const columns: BasicColumn[] = [
},
];
export const auditHisColumns: BasicColumn[] = [
{
title: 'NUID',
align: 'center',
dataIndex: 'nuId',
},
{
title: '护理单元',
align: 'center',
dataIndex: 'nuId_dictText',
},
{
title: '长者姓名',
align: 'center',
dataIndex: 'name',
},
{
title: '性别',
align: 'center',
dataIndex: 'sex',
width: 80,
},
{
title: '年龄',
align: 'center',
dataIndex: 'age',
width: 80,
},
{
title: '监护人姓名',
align: 'center',
dataIndex: 'guardianName',
},
// {
// title: '关系',
// align: 'center',
// dataIndex: 'relationship',
// },
{
title: '监护人电话',
align: 'center',
dataIndex: 'guardianPhone',
},
{
title: '审核时间',
align: 'center',
dataIndex: 'updateTime',
},
{
title: '审核结果',
align: 'center',
dataIndex: 'modifyStatus',
customRender: ({ text, record }) => {
console.log(text);
var applyStatus = '';
if (text == '2') {
applyStatus = '审核通过';
} else if (text == '3') {
applyStatus = '审核未通过';
}
return applyStatus;
},
width: 100,
},
];
export const elderColumns: BasicColumn[] = [
{
title: '护理单元',
@ -68,16 +134,16 @@ export const elderColumns: BasicColumn[] = [
align: 'center',
dataIndex: 'age',
},
{
title: '监护人姓名',
align: 'center',
dataIndex: 'guardianName',
},
{
title: '监护人电话',
align: 'center',
dataIndex: 'guardianPhone',
},
// {
// title: '监护人姓名',
// align: 'center',
// dataIndex: 'guardianName',
// },
// {
// title: '监护人电话',
// align: 'center',
// dataIndex: 'guardianPhone',
// },
// {
// title: '关系',
// align: 'center',

View File

@ -39,36 +39,38 @@
</template>
</BasicTable>
<!-- 表单区域 -->
<ElderInfoModal ref="registerModal" @success="handleSuccess"></ElderInfoModal>
<ElderInfoModal ref="registerModal" @success="handleSuccess" :sndjDicts="sndjDicts"></ElderInfoModal>
</div>
</template>
<script lang="ts" name="elderinfo-elderInfo" setup>
import { ref, reactive } from 'vue';
import { ref, reactive, onMounted } from 'vue';
import { BasicTable, useTable, TableAction } from '/@/components/Table';
import { useListPage } from '/@/hooks/system/useListPage';
import { elderColumns, superQuerySchema } from './ElderInfo.data';
import { columns, superQuerySchema } from './ElderInfo.data';
import { modifyList, deleteOne, batchDelete, getImportUrl, getExportUrl } from './ElderInfo.api';
import { downloadFile } from '/@/utils/common/renderUtils';
import ElderInfoModal from './components/ElderInfoModal.vue'
import { useUserStore } from '/@/store/modules/user';
import JInput from "/@/components/Form/src/jeecg/components/JInput.vue";
import { getManyDictItems } from '/@/api/common/api'
const formRef = ref();
const queryParam = reactive<any>({});
const toggleSearchStatus = ref<boolean>(false);
const registerModal = ref();
const sndjDicts = ref()
const userStore = useUserStore();
//table
const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
tableProps: {
title: '长者信息变更审核',
api: modifyList,
columns: elderColumns,
columns,
canResize: false,
useSearchForm: false,
actionColumn: {
width: 180,
width: 430,
fixed: 'right',
},
beforeFetch: async (params) => {
@ -103,8 +105,9 @@ const superQueryConfig = reactive(superQuerySchema);
/**
* 详情
*/
function handleDetail(record: Recordable) {
function handleDetail(record: Recordable, sign) {
registerModal.value.disableSubmit = true;
registerModal.value.detailSign = sign;
registerModal.value.edit(record);
}
@ -120,7 +123,6 @@ function handleSuccess() {
* 长者信息变更审核
*/
function handleElderAudit(record: Recordable) {
console.log("🌊 ~ handleElderAudit ~ record:", record)
registerModal.value.disableSubmit = true;
registerModal.value.upElderInfoEdit(record);
}
@ -130,20 +132,36 @@ function handleElderAudit(record: Recordable) {
* @param record
*/
function handleGuaAudit(record: Recordable) {
console.log("🌊 ~ handleGuaAudit ~ record:", record)
registerModal.value.disableSubmit = true;
registerModal.value.upInfoEdit(record);
}
/**
* 审核历史
*/
function handleAuditHisDetail(record: Recordable, sign) {
registerModal.value.showAuditHis(record);
}
/**
* 操作栏
*/
function getTableAction(record) {
return [
// {
// label: '',
// onClick: handleDetail.bind(null, record),
// },
{
label: '长者详情',
onClick: handleDetail.bind(null, record, 'zz'),
},
{
label: '监护人详情',
onClick: handleDetail.bind(null, record, 'jhr'),
},
{
label: '审核历史',
onClick: handleAuditHisDetail.bind(null, record),
},
{
label: '长者审核',
onClick: handleElderAudit.bind(null, record),
@ -202,6 +220,14 @@ function handleComputedAge(ageText) {
}
onMounted(() => {
const dictCodes = ['medical_insurance_type', 'elder_payment_status', 'syb_reimbursement_type', 'zgyb_reimbursement_type', 'jmyb_reimbursement_type'];
getManyDictItems({
dictCodeList: dictCodes
}).then(res => {
sndjDicts.value = res
})
})
</script>
<style lang="less" scoped>

View File

@ -0,0 +1,218 @@
<template>
<div class="p-2">
<!--查询区域-->
<div class="jeecg-basic-table-form-container">
<a-form ref="formRef" @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol"
:wrapper-col="wrapperCol">
<a-row :gutter="24">
<a-col :lg="6">
<a-form-item name="name">
<template #label><span title="姓名">姓名</span></template>
<a-input v-model:value="queryParam.name" />
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
<a-col :lg="6">
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button>
<a-button type="primary" preIcon="ant-design:reload-outlined" @click="searchReset"
style="margin-left: 8px">重置</a-button>
</a-col>
</span>
</a-col>
</a-row>
</a-form>
</div>
<!--引用表格-->
<BasicTable @register="registerTable">
<!--插槽:table标题-->
<template #tableTitle>
</template>
<!--操作栏-->
<template #action="{ record }">
<TableAction :actions="getTableAction(record)" />
</template>
<template v-slot:bodyCell="{ column, record, index, text }">
<template v-if="column.dataIndex === 'age'">
<span>{{ handleComputedAge(record.dateOfBirth) }}</span>
</template>
</template>
</BasicTable>
<!-- 表单区域 -->
<ElderInfoModal ref="registerModal" @success="handleSuccess" :sndjDicts="sndjDicts"></ElderInfoModal>
</div>
</template>
<script lang="ts" name="elderinfo-elderInfo" setup>
import { ref, reactive } from 'vue';
import { BasicTable, useTable, TableAction } from '/@/components/Table';
import { useListPage } from '/@/hooks/system/useListPage';
import { auditHisColumns, superQuerySchema } from '../ElderInfo.data';
import { modifyTableList, deleteOne, batchDelete, getImportUrl, getExportUrl } from '../ElderInfo.api';
import { downloadFile } from '/@/utils/common/renderUtils';
import ElderInfoModal from './ElderInfoModal.vue'
import { useUserStore } from '/@/store/modules/user';
import JInput from "/@/components/Form/src/jeecg/components/JInput.vue";
const props = defineProps({
querySign: { type: String, default: '' },
sndjDicts: null
});
const formRef = ref();
const queryParam = reactive<any>({});
const toggleSearchStatus = ref<boolean>(false);
const registerModal = ref();
const userStore = useUserStore();
//table
const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
tableProps: {
title: '长者信息变更审核',
api: modifyTableList,
columns: auditHisColumns,
canResize: false,
useSearchForm: false,
immediate: false,
actionColumn: {
width: 120,
fixed: 'right',
},
beforeFetch: async (params) => {
queryParam.modifyType = props.querySign
queryParam.modifyStatus = '2,3'
return Object.assign(params, queryParam);
},
},
exportConfig: {
name: "长者信息",
url: getExportUrl,
params: queryParam,
},
importConfig: {
url: getImportUrl,
success: handleSuccess
},
});
const [registerTable, { reload, collapseAll, updateTableDataRecord, findTableDataRecord, getDataSource }, { rowSelection, selectedRowKeys }] = tableContext;
const labelCol = reactive({
xs: 24,
sm: 4,
xl: 6,
xxl: 4
});
const wrapperCol = reactive({
xs: 24,
sm: 20,
});
//
const superQueryConfig = reactive(superQuerySchema);
/**
* 详情
*/
function handleDetail(record: Recordable) {
registerModal.value.hisDetail(record, props.querySign);
}
/**
* 成功回调
*/
function handleSuccess() {
(selectedRowKeys.value = []) && reload();
}
/**
* 操作栏
*/
function getTableAction(record) {
return [
{
label: '详情',
onClick: handleDetail.bind(null, record),
},
];
}
/**
* 查询
*/
function searchQuery() {
reload();
}
/**
* 重置
*/
function searchReset() {
formRef.value.resetFields();
selectedRowKeys.value = [];
//
reload();
}
function handleComputedAge(ageText) {
//
if (!ageText || typeof ageText !== 'string') {
return NaN;
}
//
const birthDate = new Date(ageText);
// '2025-99-99'
if (isNaN(birthDate.getTime())) {
return NaN;
}
const today = new Date();
let age = today.getFullYear() - birthDate.getFullYear();
const monthDiff = today.getMonth() - birthDate.getMonth();
const dayDiff = today.getDate() - birthDate.getDate();
// 1
if (monthDiff < 0 || (monthDiff === 0 && dayDiff < 0)) {
age--;
}
return age >= 0 ? age : 0; //
}
defineExpose({
reload
});
</script>
<style lang="less" scoped>
.jeecg-basic-table-form-container {
padding: 0;
.table-page-search-submitButtons {
display: block;
margin-bottom: 24px;
white-space: nowrap;
}
.query-group-cust {
min-width: 100px !important;
}
.query-group-split-cust {
width: 30px;
display: inline-block;
text-align: center
}
.ant-form-item:not(.ant-form-item-with-help) {
margin-bottom: 16px;
height: 32px;
}
:deep(.ant-picker),
:deep(.ant-input-number) {
width: 100%;
}
}
</style>

View File

@ -4,19 +4,19 @@
<template #detail>
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol"
name="ElderInfoForm">
<a-row class="card-class">
<a-row class="card-class" v-show="detailSign == 'zz'">
<a-col :span="24" style="border-bottom: 2px solid #f7f7f7; margin-bottom: 14px;">
<SectionDivider :title="'长者信息'" />
</a-col>
<a-col :span="12">
<a-form-item label="NUID" v-bind="validateInfos.nuId" id="ElderInfoForm-nuId" name="nuId">
<a-input v-model:value="formData.nuId" ></a-input>
<a-input v-model:value="formData.nuId"></a-input>
<!-- <span>{{ formData.nuId }}</span> -->
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="护理单元">
<a-input v-model:value="formData.nuId_dictText" ></a-input>
<a-input v-model:value="formData.nuId_dictText"></a-input>
<!-- <j-dict-select-tag type='list' v-model:value="formData.nuId" :dictCode="`nu_base_info,nu_name,nu_id`"
placeholder="请选择分类标签" allowClear @upDictCode="upNuNameFunc" />-->
<!-- <span>{{ formData.nuId_dictText }}</span> -->
@ -24,33 +24,32 @@
</a-col>
<a-col :span="12">
<a-form-item label="姓名" v-bind="validateInfos.name" id="ElderInfoForm-name" name="name">
<a-input v-model:value="formData.name" ></a-input>
<a-input v-model:value="formData.name"></a-input>
<!-- <span>{{ formData.name }}</span> -->
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="性别" v-bind="validateInfos.sex" id="ElderInfoForm-sex" name="sex">
<a-input v-model:value="formData.sex" ></a-input>
<a-input v-model:value="formData.sex"></a-input>
<!-- <span>{{ formData.sex }}</span> -->
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="身份证号码" v-bind="validateInfos.idCard" id="ElderInfoForm-idCard" name="idCard">
<a-input v-model:value="formData.idCard" ></a-input>
<a-input v-model:value="formData.idCard"></a-input>
<!-- <span>{{ formData.idCard }}</span> -->
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="出生日期" v-bind="validateInfos.dateOfBirth" id="ElderInfoForm-dateOfBirth"
name="dateOfBirth">
<a-date-picker v-model:value="formData.dateOfBirth" value-format="YYYY-MM-DD " style="width: 100%"
/>
<a-date-picker v-model:value="formData.dateOfBirth" value-format="YYYY-MM-DD " style="width: 100%" />
<!-- <span>{{ formData.dateOfBirth }}</span> -->
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="民族" v-bind="validateInfos.national" id="ElderInfoForm-national" name="national">
<a-input v-model:value="formData.national" ></a-input>
<a-input v-model:value="formData.national"></a-input>
<!-- <span>{{ formData.national }}</span> -->
</a-form-item>
</a-col>
@ -62,8 +61,8 @@
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="医保类型" v-bind="validateInfos.yblxName">
<a-textarea v-model:value="formData.yblxName" :autosize="{ minRows: 1 }" />
<a-form-item label="医保类型" v-bind="validateInfos.medicalType_dictText">
<a-textarea v-model:value="formData.medicalType_dictText" :autosize="{ minRows: 1 }" />
<!-- <span>{{ formData.houseAddress }}</span> -->
</a-form-item>
</a-col>
@ -73,12 +72,12 @@
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="缴费状态" v-bind="validateInfos.jfztName">
<a-textarea v-model:value="formData.jfztName" :autosize="{ minRows: 1 }" />
<a-form-item label="缴费状态" v-bind="validateInfos.paymentStatus_dictText">
<a-textarea v-model:value="formData.paymentStatus_dictText" :autosize="{ minRows: 1 }" />
</a-form-item>
</a-col>
</a-row>
<a-row class="card-class">
<a-row class="card-class" v-if="detailSign == 'jhr'">
<a-col :span="24" style="border-bottom: 2px solid #f7f7f7; margin-bottom: 14px;">
<SectionDivider :title="'监护人信息'" />
</a-col>
@ -94,7 +93,7 @@
<a-col :span="12">
<a-form-item label="姓名" v-bind="validateInfos.guardianName" id="ElderInfoForm-guardianName"
name="guardianName">
<a-input v-model:value="formData.guardianName" ></a-input>
<a-input v-model:value="formData.guardianName"></a-input>
<!-- <span>{{ formData.guardianName }}</span> -->
</a-form-item>
</a-col>
@ -108,14 +107,14 @@
<a-col :span="12">
<a-form-item label="身份证号" v-bind="validateInfos.guardianIdCard" id="ElderInfoForm-guardianIdCard"
name="guardianIdCard">
<a-input v-model:value="formData.guardianIdCard" ></a-input>
<a-input v-model:value="formData.guardianIdCard"></a-input>
<!-- <span>{{ formData.guardianIdCard }}</span> -->
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="联系电话" v-bind="validateInfos.guardianPhone" id="ElderInfoForm-guardianPhone"
name="guardianPhone">
<a-input v-model:value="formData.guardianPhone" ></a-input>
<a-input v-model:value="formData.guardianPhone"></a-input>
<!-- <span>{{ formData.guardianPhone }}</span> -->
</a-form-item>
</a-col>
@ -134,7 +133,7 @@
</a-form-item>
</a-col>
</a-row>
<a-row class="card-class">
<a-row class="card-class" v-show="detailSign == 'zz'">
<a-col :span="24" style="border-bottom: 2px solid #f7f7f7; margin-bottom: 14px;">
<SectionDivider :title="'长者身份证'" />
</a-col>
@ -153,23 +152,21 @@
<a-col :span="12">
<a-form-item label="有效开始日期" v-bind="validateInfos.startTime" id="ElderInfoForm-startTime"
name="startTime">
<a-date-picker v-model:value="formData.startTime" value-format="YYYY-MM-DD" style="width: 100%"
/>
<a-date-picker v-model:value="formData.startTime" value-format="YYYY-MM-DD" style="width: 100%" />
<!-- <span>{{ formData.startTime }}</span> -->
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="有效结束日期" v-bind="validateInfos.endTime" id="ElderInfoForm-endTime" name="endTime">
<a-input v-if="formData.endTime == '9999-12-31'" :value="'长期'" ></a-input>
<a-date-picker v-else v-model:value="formData.endTime" value-format="YYYY-MM-DD" style="width: 100%"
/>
<a-input v-if="formData.endTime == '9999-12-31'" :value="'长期'"></a-input>
<a-date-picker v-else v-model:value="formData.endTime" value-format="YYYY-MM-DD" style="width: 100%" />
<!-- {{ formData.endTime == '9999-12-31' ? '长期' : formData.endTime }} -->
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="签发机关" v-bind="validateInfos.issuingAuthority" id="ElderInfoForm-issuingAuthority"
name="issuingAuthority">
<a-input v-model:value="formData.issuingAuthority" ></a-input>
<a-input v-model:value="formData.issuingAuthority"></a-input>
<!-- <span>{{ formData.issuingAuthority }}</span> -->
</a-form-item>
</a-col>
@ -190,11 +187,14 @@ import { saveOrUpdate } from '../ElderInfo.api';
import { Form } from 'ant-design-vue';
import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue';
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
import { string } from 'vue-types';
const props = defineProps({
formDisabled: { type: Boolean, default: false },
formData: { type: Object, default: () => ({}) },
formBpm: { type: Boolean, default: true }
formBpm: { type: Boolean, default: true },
detailSign: { type: String, default: '' },
sndjDicts: null
});
const opeMediaAddress = import.meta.env.VITE_OPE_MEDIA_ADDRESS
const formRef = ref();
@ -227,9 +227,11 @@ const formData = reactive<Record<string, any>>({
guardianNational: '',
guardianCardHome: '',
guardianIdCardPositive: '',
yblxName: '',
medicalType: '',
medicalType_dictText: '',
disabilityReimbursementType: '',
sndjName: '',
jfztName: '',
paymentStatus_dictText: '',
});
const { createMessage } = useMessage();
const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 8 } });
@ -274,7 +276,18 @@ function edit(record) {
})
//
Object.assign(formData, tmpData);
console.log("🌊 ~ edit ~ formData:", formData)
formData.sndjName = null
if (!!record.disabilityReimbursementType) {
if (record.medicalType == 'syb') {
formData.sndjName = props.sndjDicts.syb_reimbursement_type.filter(item => item.value == formData.disabilityReimbursementType)[0].text
}
if (record.medicalType == 'zgyb') {
formData.sndjName = props.sndjDicts.zgyb_reimbursement_type.filter(item => item.value == formData.disabilityReimbursementType)[0].text
}
if (record.medicalType == 'jmyb') {
formData.sndjName = props.sndjDicts.jmyb_reimbursement_type.filter(item => item.value == formData.disabilityReimbursementType)[0].text
}
}
});
}

View File

@ -6,7 +6,7 @@
<a-button type="primary" @click="handleOk" v-if="!disableSubmit">确认</a-button>
</template>
<ElderInfoForm v-if="visible" ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit"
:formBpm="false">
:sndjDicts="sndjDicts" :detailSign="detailSign" :formBpm="false">
</ElderInfoForm>
</a-drawer>
<!-- 长者信息变更审核 -->
@ -14,9 +14,10 @@
:footer-style="{ textAlign: 'right' }" @close="handleElderUpInfoCancel">
<template #footer>
<a-button type="primary" style="margin-right: 8px" @click="handleElderUpInfoCancel">关闭</a-button>
<a-button type="primary" @click="handleElderUpInfoOk">确认</a-button>
<a-button type="primary" @click="handleElderUpInfoOk" v-show="izAudit">确认</a-button>
</template>
<ElderUpInfoForm v-if="elderUpInfoVisible" ref="elderUpInfoForm" @ok="handleElderUpInfoCancel" :formBpm="false">
<ElderUpInfoForm v-if="elderUpInfoVisible" ref="elderUpInfoForm" @ok="handleElderUpInfoCancel" :formBpm="false"
:sndjDicts="sndjDicts">
</ElderUpInfoForm>
</a-drawer>
<!-- 监护人信息变更审核 -->
@ -24,9 +25,10 @@
:bodyStyle="{ padding: '14px' }" @close="handleUpInfoCancel">
<template #footer>
<a-button type="primary" style="margin-right: 8px" @click="handleUpInfoCancel">关闭</a-button>
<a-button type="primary" @click="handleUpInfoOk">确认</a-button>
<a-button type="primary" @click="handleUpInfoOk" v-show="izAudit">确认</a-button>
</template>
<GuaUpInfoForm v-if="upInfoVisible" ref="upInfoForm" @ok="handleUpInfoCancel" :formBpm="false">
<GuaUpInfoForm v-if="upInfoVisible" ref="upInfoForm" @ok="handleUpInfoCancel" :formBpm="false"
:sndjDicts="sndjDicts">
</GuaUpInfoForm>
</a-drawer>
<!-- 护理流程展示 -->
@ -39,8 +41,8 @@
</ElderHllc>
</a-drawer>
<!-- 指派护理人员 -->
<a-drawer :title="'优先派单'" width="70vw" :visible="hlryVisible" :closable="true"
:footer-style="{ textAlign: 'right' }" :bodyStyle="{ padding: '14px' }" @close="handleHlryCancel">
<a-drawer :title="'优先派单'" width="70vw" :visible="hlryVisible" :closable="true" :footer-style="{ textAlign: 'right' }"
:bodyStyle="{ padding: '14px' }" @close="handleHlryCancel">
<template #footer>
<a-button type="primary" style="margin-right: 8px" @click="handleHlryCancel">关闭</a-button>
<a-button type="primary" @click="handleHlryOk">确认</a-button>
@ -48,6 +50,21 @@
<EmployeesSelectList v-if="hlryVisible" ref="employeesSelectListRef" @success="handleHlryCancel" :formBpm="false">
</EmployeesSelectList>
</a-drawer>
<!-- 审核历史 -->
<a-drawer title="审核历史" width="80vw" :visible="auditHisVisible" :closable="true" :footer-style="{ textAlign: 'right' }"
:bodyStyle="{ padding: '14px' }" @close="handleAuditHisCancel">
<a-tabs v-model:activeKey="auditHisActiveKey" @change="auditHisTabChanged">
<a-tab-pane key="zz" tab="长者审核记录">
<ElderAuditHistoryList ref="elderHisRef" :querySign="'zz'" :sndjDicts="sndjDicts"></ElderAuditHistoryList>
</a-tab-pane>
<a-tab-pane key="jhr" tab="监护人审核记录">
<ElderAuditHistoryList ref="jhrHisRef" :querySign="'jhr'" :sndjDicts="sndjDicts"></ElderAuditHistoryList>
</a-tab-pane>
</a-tabs>
<template #footer>
<a-button type="primary" style="margin-right: 8px" @click="handleAuditHisCancel">关闭</a-button>
</template>
</a-drawer>
</template>
<script lang="ts" setup>
@ -58,22 +75,31 @@ import GuaUpInfoForm from '/@/views/elder/elderinfo/components/GuaUpInfoForm.vue
import ElderUpInfoForm from '/@/views/elder/elderinfo/components/ElderUpInfoForm.vue'
import ElderHllc from '/@/views/elder/elderinfo/components/ElderHllc.vue'
import EmployeesSelectList from './EmployeesSelectList.vue'
import ElderAuditHistoryList from './ElderAuditHistoryList.vue'
const props = defineProps({
sndjDicts: null
});
const title = ref<string>('');
const width = ref<number>(800);
const visible = ref<boolean>(false);
const hlryVisible = ref(false)
const auditHisVisible = ref(false)//
const auditHisActiveKey = ref('zz')
const disableSubmit = ref<boolean>(false);
const registerForm = ref();
const upInfoForm = ref();
const upInfoVisible = ref<boolean>(false);
const hllcVisible = ref<boolean>(false);
const hllcForm = ref();
const elderHisRef = ref()
const jhrHisRef = ref()
const employeesSelectListRef = ref()
const elderUpInfoForm = ref();
const elderUpInfoVisible = ref<boolean>(false);
const emit = defineEmits(['register', 'success']);
const detailSign = ref('')
const izAudit = ref(false)
/**
* 新增
*/
@ -90,7 +116,7 @@ function add() {
* @param record
*/
function edit(record) {
title.value = disableSubmit.value ? '详情' : '编辑';
title.value = disableSubmit.value ? (detailSign.value == 'zz' ? '长者' : '监护人') + '详情' : '编辑';
visible.value = true;
nextTick(() => {
registerForm.value.edit(record);
@ -119,18 +145,6 @@ function handleCancel() {
visible.value = false;
}
/**
* 监护人信息变更审核
* @param record
*/
function upInfoEdit(record) {
title.value = '审核';
upInfoVisible.value = true;
nextTick(() => {
upInfoForm.value.show(record);
});
}
/**
* 监护人信息变更确认
*/
@ -142,7 +156,6 @@ function handleUpInfoOk() {
* 监护人信息变更-关闭
*/
function handleUpInfoCancel() {
console.log(123123)
upInfoVisible.value = false
emit('success');
}
@ -166,18 +179,51 @@ function hllcView(record) {
});
}
/**
* 监护人信息变更审核
* @param record
*/
function upInfoEdit(record) {
title.value = '监护人审核';
izAudit.value = true
upInfoVisible.value = true;
nextTick(() => {
upInfoForm.value.show(record, 'audit');
});
}
/**
* 长者审核
* @param record
*/
function upElderInfoEdit(record) {
title.value = '审核';
title.value = '长者审核';
izAudit.value = true
elderUpInfoVisible.value = true;
nextTick(() => {
elderUpInfoForm.value.show(record);
elderUpInfoForm.value.show(record, 'audit');
});
}
function hisDetail(record, sign) {
izAudit.value = false
if (sign == 'zz') {
title.value = '长者历史详情';
elderUpInfoVisible.value = true;
nextTick(() => {
elderUpInfoForm.value.show(record, 'his');
});
} else {
title.value = '监护人历史详情';
upInfoVisible.value = true;
nextTick(() => {
upInfoForm.value.show(record, 'his');
});
}
}
/**
* 长者信息变更确认
*/
@ -189,7 +235,6 @@ function handleElderUpInfoOk() {
* 长者信息变更-关闭
*/
function handleElderUpInfoCancel() {
console.log(123123)
elderUpInfoVisible.value = false
emit('success');
}
@ -216,6 +261,46 @@ function chooseHlry(elderInfo) {
});
}
/**
* 关闭审核历史
*/
function showAuditHis(record) {
auditHisActiveKey.value = 'zz'
auditHisVisible.value = true
nextTick(() => {
if (!!elderHisRef.value) {
elderHisRef.value.reload()
}
if (!!jhrHisRef.value) {
jhrHisRef.value.reload()
}
});
}
/**
* 关闭审核历史
*/
function handleAuditHisCancel() {
auditHisVisible.value = false
}
/**
* 审核历史切换tab页
* @param key
*/
function auditHisTabChanged(key) {
if (key == 'zz') {
nextTick(() => {
elderHisRef.value.reload()
});
}
if (key == 'jhr') {
nextTick(() => {
jhrHisRef.value.reload()
});
}
}
defineExpose({
add,
edit,
@ -224,6 +309,9 @@ defineExpose({
upElderInfoEdit,
hllcView,
chooseHlry,
detailSign,
showAuditHis,
hisDetail,
});
</script>

View File

@ -39,7 +39,7 @@
</a-col>
</a-row>
<a-form style="margin-top: 14px;height: 100px;" ref="formRef" layout="horizontal" :model="formData"
:label-col="labelCol" :wrapper-col="wrapperCol">
:label-col="labelCol" :wrapper-col="wrapperCol" v-if="izAudit">
<a-row :gutter="16">
<a-col :span="12">
<a-form-item label="审核结果" name="status" v-bind="validateInfos.status">
@ -65,10 +65,13 @@ import { ref, reactive, computed, onMounted } from 'vue';
import { Table as ATable, Input, Row, Col, Form } from 'ant-design-vue';
import { applyObj } from '../ElderInfo.data'
import JImageUpload from '/@/components/Form/src/jeecg/components/JImageUpload.vue';
import { getModifyInfo, elderAudit } from '../ElderInfo.api'
import { getModifyInfo, getHisModifyInfo, elderAudit } from '../ElderInfo.api'
import { useMessage } from '/@/hooks/web/useMessage';
import { initDictOptions } from '/@/utils/dict';
const props = defineProps({
sndjDicts: null
});
const opeMediaAddress = import.meta.env.VITE_OPE_MEDIA_ADDRESS
const formRef = ref();
const AForm = Form;
@ -125,7 +128,7 @@ const filteredTableData = computed(() => {
|| item.d1 == 'elderModifyId'
|| item.d1 == 'yblxName'
|| item.d1 == 'sndjName'
|| item.d1 == 'jfztName'
// || item.d1 == 'jfztName'
);
});
@ -153,23 +156,107 @@ const setRowClassName = (record) => {
return record.d2 !== record.d3 && record.d1 !== 'createTime' ? 'highlight-row' : '';
};
async function show(record) {
console.log("🌊 ~ show ~ record:", record)
let data = await getModifyInfo({ id: record.id, queryModifyType: 'elder' })
console.log("🌊 ~ show ~ data:", data)
const izAudit = ref(false)
async function show(record, sign) {
let data = null;
if (sign == 'audit') {
data = await getModifyInfo({ id: record.id, queryModifyType: 'elder' })
izAudit.value = true
}
if (sign == 'his') {
data = await getHisModifyInfo(record)
izAudit.value = false
}
formData.id = record.id
formData.elderModifyId = record.elderModifyId
formData.guardianOpenId = record.guardianOpenId
formData.name = record.name
formData.sysOrgCode = record.sysOrgCode
tableData.value = data.map(item => ({
...item,
// null/undefined
d2: item.d2 ?? '',
d3: item.d3 ?? ''
}));
let beforeYblxValue = ''
let afterYblxValue = ''
let beforeYblx = ''
let afterYblx = ''
let beforeSndj = ''
let afterSndj = ''
let beforeJfzt = ''
let afterJfzt = ''
tableData.value = data.map(item => {
//
if (item.d1 == 'medicalType') {
if (!!item.d2) {
beforeYblxValue = item.d2
beforeYblx = props.sndjDicts.medical_insurance_type.filter(mi => mi.value == item.d2)[0].text
}
if (!!item.d3) {
afterYblxValue = item.d3
afterYblx = props.sndjDicts.medical_insurance_type.filter(mi => mi.value == item.d3)[0].text
}
}
//
// if (item.d1 == 'paymentStatus') {
// if (!!item.d2) {
// beforeJfzt = props.sndjDicts.elder_payment_status.filter(mi => mi.value == item.d2)[0].text
// }
// if (!!item.d3) {
// afterJfzt = props.sndjDicts.elder_payment_status.filter(mi => mi.value == item.d3)[0].text
// }
// }
return {
...item,
// null/undefined
d2: item.d2 ?? '',
d3: item.d3 ?? ''
}
});
//
tableData.value.forEach(item => {
if (item.d1 == 'disabilityReimbursementType') {
if (!!item.d2) {
if (!!beforeYblxValue) {
if (beforeYblxValue == 'syb') {
beforeSndj = props.sndjDicts.syb_reimbursement_type.filter(mi => mi.value == item.d2)[0].text
}
if (beforeYblxValue == 'zgyb') {
beforeSndj = props.sndjDicts.zgyb_reimbursement_type.filter(mi => mi.value == item.d2)[0].text
}
if (beforeYblxValue == 'jmyb') {
beforeSndj = props.sndjDicts.jmyb_reimbursement_type.filter(mi => mi.value == item.d2)[0].text
}
}
}
if (!!item.d3) {
if (!!afterYblxValue) {
if (afterYblxValue == 'syb') {
afterSndj = props.sndjDicts.syb_reimbursement_type.filter(mi => mi.value == item.d3)[0].text
}
if (afterYblxValue == 'zgyb') {
afterSndj = props.sndjDicts.zgyb_reimbursement_type.filter(mi => mi.value == item.d3)[0].text
}
if (afterYblxValue == 'jmyb') {
afterSndj = props.sndjDicts.jmyb_reimbursement_type.filter(mi => mi.value == item.d3)[0].text
}
}
}
}
})
//
tableData.value.forEach(item => {
if (item.d1 == 'yblxName') {
item.d2 = beforeYblx
item.d3 = afterYblx
}
if (item.d1 == 'sndjName') {
item.d2 = beforeSndj
item.d3 = afterSndj
}
// if (item.d1 == 'jfztName') {
// item.d2 = beforeJfzt
// item.d3 = afterJfzt
// }
})
console.log(123123, props.sndjDicts)
}
async function submitForm() {

View File

@ -1,7 +1,7 @@
<template>
<div class="container2">
<a-row>
<a-col :span="24" >
<a-col :span="24">
<a-table :dataSource="filteredTableData" :columns="columns" :pagination="false" bordered size="small"
:rowClassName="setRowClassName">
<template #bodyCell="{ column, record }">
@ -38,7 +38,8 @@
</a-table>
</a-col>
</a-row>
<a-form style="margin-top: 14px;height: 100px;" ref="formRef" layout="horizontal" :model="formData" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-form style="margin-top: 14px;height: 100px;" ref="formRef" layout="horizontal" :model="formData"
:label-col="labelCol" :wrapper-col="wrapperCol" v-if="izAudit">
<a-row :gutter="16">
<a-col :span="12">
<a-form-item label="审核结果" name="status" v-bind="validateInfos.status">
@ -64,12 +65,14 @@ import { ref, reactive, computed, onMounted } from 'vue';
import { Table as ATable, Input, Row, Col, Form } from 'ant-design-vue';
import { applyObj } from '../ElderInfo.data'
import JImageUpload from '/@/components/Form/src/jeecg/components/JImageUpload.vue';
import { getModifyInfo, guaAudit } from '../ElderInfo.api'
import { getModifyInfo, getHisModifyInfo, guaAudit } from '../ElderInfo.api'
import { useMessage } from '/@/hooks/web/useMessage';
import { initDictOptions } from '/@/utils/dict';
const props = defineProps({
sndjDicts: null
});
const opeMediaAddress = import.meta.env.VITE_OPE_MEDIA_ADDRESS
const formRef = ref();
const AForm = Form;
const AFormItem = Form.Item;
@ -163,6 +166,14 @@ const filteredTableData = computed(() => {
&& item.d1 !== 'guardianCardHome'
&& item.d1 !== 'disabilityReimbursementType'
&& item.d1 !== 'paymentStatus'
&& item.d1 !== 'yblxName'
&& item.d1 !== 'sndjName'
&& item.d1 !== 'jfztName'
&& item.d1 !== 'modifyType'
&& item.d1 !== 'modifyStatus'
&& item.d1 !== 'auditContent'
&& item.d1 !== 'selfCareType'
&& item.d1 !== 'pkId'
);
});
@ -189,11 +200,17 @@ const columns = [
const setRowClassName = (record) => {
return record.d2 !== record.d3 && record.d1 !== 'createTime' ? 'highlight-row' : '';
};
async function show(record) {
console.log("🌊 ~ show ~ record:", record)
let data = await getModifyInfo({ id: record.id, queryModifyType: 'gua' })
console.log("🌊 ~ show ~ data:", data)
const izAudit = ref(false)
async function show(record, sign) {
let data = null;
if (sign == 'audit') {
data = await getModifyInfo({ id: record.id, queryModifyType: 'gua' })
izAudit.value = true
}
if (sign == 'his') {
data = await getHisModifyInfo(record)
izAudit.value = false
}
formData.id = record.id
formData.guardianModifyId = record.guardianModifyId