提交merge1.3

This commit is contained in:
2025-12-27 15:30:25 +08:00
parent 8c607c8749
commit 088861f66e
1245 changed files with 220442 additions and 77616 deletions

View File

@@ -10,8 +10,63 @@
<el-input v-model="form.name" clearable :disabled="isViewMode" />
</el-form-item>
</el-col>
<<<<<<< HEAD
<el-col :span="6">
<el-form-item label="民族" prop="nationalityCode" label-width="80px">
=======
<el-col :span="8">
<el-form-item label="性别" prop="genderEnum">
<el-radio-group v-model="form.genderEnum" :disabled="isViewMode">
<el-radio
v-for="item in administrativegenderList"
:key="item.value"
:label="item.value"
>
{{ item.info }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="活动标识" prop="tempFlag">
<el-radio-group v-model="form.tempFlag" :disabled="isViewMode">
<el-radio v-for="dict in patient_temp_flag" :key="dict.value" :label="dict.value">
{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="联系方式" prop="phone">
<el-input v-model="form.phone" clearable :disabled="isViewMode" />
</el-form-item>
</el-col>
<!-- <el-col :span="8">
<el-form-item label="证件类型" prop="typeCode">
<el-select
v-model="form.typeCode"
placeholder="证件类型"
clearable
:disabled="isViewMode"
@change="typeChange"
>
<el-option
v-for="dict in sys_idtype"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col> -->
<el-col :span="8">
<el-form-item label="身份证号码" prop="idCard">
<el-input v-model="form.idCard" clearable :disabled="isViewMode" @blur="onBlur" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="民族" prop="nationalityCode">
>>>>>>> v1.3
<el-select v-model="form.nationalityCode" clearable filterable :disabled="isViewMode">
<el-option
v-for="item in nationality_code"
@@ -51,6 +106,7 @@
<!-- 第二行证件类别证件号码*年龄 -->
<el-row :gutter="10">
<el-col :span="8">
<<<<<<< HEAD
<el-form-item label="证件类别" prop="typeCode" label-width="80px">
<el-select
v-model="form.typeCode"
@@ -123,10 +179,27 @@
<!-- 第三行就诊卡号职业邮政编码 -->
<el-row>
<el-col :span="8">
=======
>>>>>>> v1.3
<el-form-item label="就诊卡号" prop="identifierNo">
<el-input v-model="form.identifierNo" clearable :disabled="isViewMode" />
</el-form-item>
</el-col>
<<<<<<< HEAD
=======
<!-- <el-col :span="8">
<el-form-item label="国家编码" prop="countryCode">
<el-input v-model="form.countryCode" clearable :disabled="isViewMode" />
</el-form-item>
</el-col> -->
</el-row>
<!-- <el-col :span="6">
<el-form-item label="年龄" prop="age">
<el-input v-model="form.age" clearable :disabled="isViewMode"/>
</el-form-item>
</el-col> -->
<el-row>
>>>>>>> v1.3
<el-col :span="8">
<el-form-item label="职业" prop="prfsEnum">
<el-select v-model="form.prfsEnum" placeholder="职业" clearable :disabled="isViewMode">
@@ -350,10 +423,20 @@
</template>
<script setup name="PatientAddDialog">
<<<<<<< HEAD
import { watch, defineProps } from "vue";
=======
import { watch } from 'vue';
>>>>>>> v1.3
import pcas from 'china-division/dist/pcas-code.json';
import { addPatient, patientlLists, getOutpatientRegistrationList } from './outpatientregistration';
import {
isValidCNPhoneNumber,
isValidCNidCardNumber,
getGenderAndAge,
} from '../../../../utils/validate';
import { fromPairs } from 'lodash';
import { ElMessage } from 'element-plus';
const router = useRouter();
const { proxy } = getCurrentInstance();
@@ -606,6 +689,7 @@ const validateGuardianInfo = (rule, value, callback) => {
const data = reactive({
isViewMode: false,
form: {
<<<<<<< HEAD
typeCode: '08',
birthDate: undefined,
age: undefined,
@@ -615,6 +699,11 @@ const data = reactive({
postalCode: undefined,
companyAddress: undefined,
patientDerived: undefined,
=======
typeCode: '01',
tempFlag: '1',
// genderEnum: 0,
>>>>>>> v1.3
},
rules: {
name: [{ required: true, message: '姓名不能为空', trigger: 'change' },
@@ -631,6 +720,7 @@ const data = reactive({
genderEnum: [{ required: true, message: '请选择性别', trigger: 'change' }],
age: [{ required: true, message: '年龄不能为空', trigger: 'change' }],
phone: [{ required: true, message: '联系方式不能为空', trigger: 'change' }],
<<<<<<< HEAD
identifierNo: [{ required: true, message: '就诊卡号不能为空', trigger: 'change' }],
idCard: [
{ required: false, message: '证件号码不能为空', trigger: 'change' },
@@ -643,6 +733,9 @@ const data = reactive({
guardianRelation: [{ validator: validateGuardianInfo, trigger: 'blur' }],
guardianPhone: [{ validator: validateGuardianInfo, trigger: 'blur' }],
guardianIdNo: [{ validator: validateGuardianInfo, trigger: 'blur' }],
=======
idCard: [{ required: true, message: '证件号不能为空', trigger: 'change' }],
>>>>>>> v1.3
},
});
@@ -664,6 +757,7 @@ const props = defineProps({
}
});
<<<<<<< HEAD
// 处理出生日期变化,自动计算年龄
function handleBirthDateChange() {
if (form.value.birthDate) {
@@ -732,6 +826,32 @@ watch(
}
}
);
=======
// watch(
// () => form.value.idCard,
// (newIdCard) => {
// if (newIdCard && newIdCard.length === 18) {
// const birthYear = parseInt(newIdCard.substring(6, 10));
// const birthMonth = parseInt(newIdCard.substring(10, 12));
// const birthDay = parseInt(newIdCard.substring(12, 14));
// const today = new Date();
// const currentYear = today.getFullYear();
// const currentMonth = today.getMonth() + 1;
// const currentDay = today.getDate();
// let age = currentYear - birthYear;
// // 如果当前月份小于出生月份或者月份相同但当前日期小于出生日期则年龄减1
// if (currentMonth < birthMonth || (currentMonth === birthMonth && currentDay < birthDay)) {
// age--;
// }
// form.value.age = age;
// }
// }
// );
>>>>>>> v1.3
/** 查询菜单列表 */
function getList() {
patientlLists().then((response) => {
@@ -742,6 +862,7 @@ function getList() {
bloodtypearhList.value = response.data.bloodTypeRH;
familyrelationshiptypeList.value = response.data.familyRelationshipType;
maritalstatusList.value = response.data.maritalStatus;
console.log('administrativegenderList======>', JSON.stringify(administrativegenderList.value));
});
}
@@ -1217,7 +1338,7 @@ function reset() {
menuName: undefined,
age: undefined,
genderEnum: undefined,
typeCode: '08',
typeCode: '01',
idCard: undefined,
phone: undefined,
prfsEnum: undefined,
@@ -1245,14 +1366,45 @@ function reset() {
}
/** 提交按钮 */
function submitForm() {
if (!isValidCNPhoneNumber(form.value.phone)) {
ElMessage({
type: 'error',
message: '手机号有误,请重新输入',
});
return;
}
if (form.value.typeCode === '01') {
if (!isValidCNidCardNumber(form.value.idCard)) {
ElMessage({
type: 'error',
message: '身份证号有误,请重新输入',
});
return;
}
}
// 活动标识 2 启用 3 停用
if (form.value.tempFlag == '1') {
form.value.activeFlag = 2;
} else {
form.value.activeFlag = 3;
}
form.value.patientIdInfoList = [
{
typeCode: form.value.typeCode,
},
];
if (form.value.idCard) {
form.value.birthDate =
form.value.idCard.toString().substring(6, 10) +
'-' +
form.value.idCard.toString().substring(10, 12) +
'-' +
form.value.idCard.toString().substring(12, 14);
console.log(form.value.birthDate, 123);
if (form.value.typeCode === '01') {
form.value.birthDate =
form.value.idCard.toString().substring(6, 10) +
'-' +
form.value.idCard.toString().substring(10, 12) +
'-' +
form.value.idCard.toString().substring(12, 14);
console.log(form.value.birthDate, 123);
} else {
form.value.birthDate = undefined;
}
}
// 进行表单验证
proxy.$refs['patientRef'].validate((valid) => {
@@ -1293,6 +1445,22 @@ function cancel() {
visible.value = false;
reset();
}
// 身份证号失去焦点获取年龄和性别
const onBlur = () => {
if (form.value.typeCode === '01') {
const info = getGenderAndAge(form.value.idCard || '');
form.value.age = info.age;
form.value.genderEnum = info.gender;
}
};
//切换证件类型
const typeChange = () => {
if (form.value.typeCode === '01') {
const info = getGenderAndAge(form.value.idCard || '');
form.value.age = info.age;
form.value.genderEnum = info.gender;
}
};
defineExpose({
show,
});