| | |
| | | <text class="item-label">GCS评分</text> |
| | | <u-input |
| | | v-model="form.gcsScore" |
| | | placeholder="请输入GCS评分" |
| | | type="number" |
| | | maxlength="1" |
| | | placeholder="≤7" |
| | | border="none" |
| | | @blur="handleGcsBlur" |
| | | /> |
| | | </view> |
| | | |
| | |
| | | :customStyle="textareaStyle(!form.diagnosisname)" |
| | | /> |
| | | </view> |
| | | <view class="form-item"> |
| | | <!-- <view class="form-item"> |
| | | <text class="item-label">是否需要转运</text> |
| | | <view class="radio-group horizontal"> |
| | | <view |
| | |
| | | <text class="radio-label">{{ bloodType.label }}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> --> |
| | | <view class="form-item"> |
| | | <text class="item-label">血型</text> |
| | | <view class="radio-group horizontal"> |
| | |
| | | :class="{ active: form.bloodType === bloodType.value }" |
| | | ></view> |
| | | <text class="radio-label">{{ bloodType.label }}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | | <text class="item-label">Rh(D)</text> |
| | | <view class="radio-group horizontal"> |
| | | <view |
| | | v-for="rh in rhOptions" |
| | | :key="rh.value" |
| | | class="radio-item" |
| | | @click="form.rhYin = rh.value" |
| | | > |
| | | <view |
| | | class="radio-dot" |
| | | :class="{ active: form.rhYin === rh.value }" |
| | | ></view> |
| | | <text class="radio-label">{{ rh.label }}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="form-item full-width""> |
| | | <view class="form-item full-width"> |
| | | <text class="item-label">其他</text> |
| | | <u-input |
| | | v-model="form.infectiousOther" |
| | | placeholder="请输入其他传染病" |
| | | border="none" |
| | | /> |
| | | </view> |
| | | |
| | | <view class="form-item"> |
| | | <text class="item-label">Rh(D)</text> |
| | | <view class="radio-group horizontal"> |
| | | <view |
| | | v-for="rh in rhOptions" |
| | | :key="rh.value" |
| | | class="radio-item" |
| | | @click="form.rhYin = rh.value" |
| | | > |
| | | <view |
| | | class="radio-dot" |
| | | :class="{ active: form.rhYin === rh.value }" |
| | | ></view> |
| | | <text class="radio-label">{{ rh.label }}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | </view> |
| | | |
| | | <view class="form-grid"> |
| | | <view class="form-item"> |
| | | <text class="item-label">ICU评估医生</text> |
| | | <u-input |
| | | v-model="form.icuDoctor" |
| | | placeholder="请输入ICU评估医生" |
| | | border="none" |
| | | /> |
| | | </view> |
| | | |
| | | <view class="form-item"> |
| | | <text class="item-label">ICU医生电话</text> |
| | | <u-input |
| | | v-model="form.icuDoctorPhone" |
| | | placeholder="请输入ICU医生电话" |
| | | type="number" |
| | | border="none" |
| | | /> |
| | | </view> |
| | | <view class="form-item"> |
| | | <text class="item-label">上报信息员</text> |
| | | <u-input |
| | |
| | | illnessoverview: "", // 新增:病情概况 |
| | | infectious: "", // 传染病情况 |
| | | infectiousOther: "", // 传染病其他 |
| | | isTransport: "1", // 新增:是否需要转运,默认1不需要 |
| | | isTransport: "", // 新增:是否需要转运,默认1不需要 |
| | | nativeplace: "", // 新增:籍贯 |
| | | occupation: "", // 新增:职业 |
| | | patientstate: "", // 新增:病人状况 |
| | |
| | | const isFormValid = computed(() => { |
| | | return ( |
| | | form.value.name && |
| | | form.value.idcardno && |
| | | // form.value.idcardno && |
| | | form.value.diagnosisname && |
| | | form.value.toHospital |
| | | ); |
| | |
| | | const currentNation = computed(() => { |
| | | return nationIndex.value >= 0 |
| | | ? nationLabels.value[nationIndex.value] |
| | | : (form.value.nation?form.value.nation:"请选择证件类型"); |
| | | : form.value.nation |
| | | ? form.value.nation |
| | | : "请选择民族"; |
| | | }); |
| | | |
| | | const currentIdCardType = computed(() => { |
| | |
| | | ? idCardTypeLabels.value[idCardTypeIndex.value] |
| | | : "请选择证件类型"; |
| | | }); |
| | | |
| | | const onNationChange = (e) => { |
| | | const index = parseInt(e.detail.value); |
| | | nationIndex.value = index; |
| | |
| | | const idCard = form.value.idcardno; |
| | | console.log(idCard, "当前输入"); |
| | | |
| | | if (!idCard) { |
| | | idCardError.value = "请输入证件号码"; |
| | | return false; |
| | | } |
| | | // if (!idCard) { |
| | | // idCardError.value = "请输入证件号码"; |
| | | // return false; |
| | | // } |
| | | |
| | | if (idCard.length !== 18) { |
| | | idCardError.value = "身份证号码必须是18位"; |
| | |
| | | extractBirthdayFromIdCard(); |
| | | } |
| | | }; |
| | | const handleGcsBlur = () => { |
| | | const val = Number(form.value.gcsScore); |
| | | |
| | | if (!val && val !== 0) return; |
| | | console.log(val); |
| | | |
| | | if (val > 7) { |
| | | uni.showToast({ |
| | | title: "GCS评分不能大于7", |
| | | icon: "none", |
| | | }); |
| | | form.value.gcsScore = ""; |
| | | } |
| | | |
| | | if (val < 3) { |
| | | uni.showToast({ |
| | | title: "GCS评分不能小于3", |
| | | icon: "none", |
| | | }); |
| | | form.value.gcsScore = ""; |
| | | } |
| | | }; |
| | | |
| | | // 身份证校验码验证函数 |
| | | const validateIdCardCheckCode = (idCard) => { |
| | | // 系数数组 |
| | |
| | | // 重置附件 |
| | | attachments.value = []; |
| | | form.value.nationality = "中国"; |
| | | form.value.isTransport = "1"; |
| | | form.value.isTransport = ""; |
| | | form.value.terminationCase = 0; |
| | | form.value.reportStatus = "1"; |
| | | |
| | |
| | | fileName: file.name, |
| | | type: file.type, |
| | | })), |
| | | isTransport: form.value.isTransport || "1", |
| | | isTransport: form.value.isTransport, |
| | | terminationCase: form.value.terminationCase || 0, |
| | | reportStatus: form.value.reportStatus || "1", |
| | | }; |
| | |
| | | .split(",") |
| | | .filter((item) => item.trim() !== ""); |
| | | } |
| | | currentNation.value=form.value.nation; |
| | | idCardTypeIndex.value=form.value.idcardtype; |
| | | currentNation.value = form.value.nation; |
| | | idCardTypeIndex.value = form.value.idcardtype; |
| | | // 处理选择器索引 |
| | | // updatePickerIndexes(); |
| | | // 处理附件 |
| | |
| | | overflow-x: auto; /* 水平滚动 */ |
| | | padding-bottom: 10rpx; /* 给滚动条留出空间 */ |
| | | -webkit-overflow-scrolling: touch; /* iOS平滑滚动 */ |
| | | |
| | | |
| | | &.single-line { |
| | | display: flex; |
| | | flex-wrap: nowrap; |
| | | overflow-x: auto; |
| | | width: 100%; |
| | | |
| | | |
| | | /* 隐藏滚动条,但保持滚动功能 */ |
| | | &::-webkit-scrollbar { |
| | | display: none; |
| | |
| | | border-radius: 20rpx; |
| | | background: #f5f5f7; |
| | | transition: all 0.3s ease; |
| | | |
| | | |
| | | &.active { |
| | | background: rgba(15, 149, 176, 0.1); |
| | | } |
| | |
| | | background: #fff; |
| | | transition: all 0.3s ease; |
| | | flex-shrink: 0; |
| | | |
| | | |
| | | &.active { |
| | | border-color: #0f95b0; |
| | | background: #0f95b0; |
| | |
| | | gap: 20rpx; |
| | | padding-bottom: 10rpx; |
| | | -webkit-overflow-scrolling: touch; |
| | | |
| | | |
| | | &::-webkit-scrollbar { |
| | | display: none; |
| | | } |
| | | |
| | | |
| | | .radio-item { |
| | | flex-shrink: 0; |
| | | display: flex; |
| | |
| | | padding: 8rpx 16rpx; |
| | | border-radius: 20rpx; |
| | | } |
| | | |
| | | |
| | | .radio-item .radio-dot.active { |
| | | border-color: #0f95b0; |
| | | |
| | | |
| | | &::after { |
| | | background: #0f95b0; |
| | | } |
| | |
| | | .checkbox-group.single-line { |
| | | gap: 12rpx; |
| | | } |
| | | |
| | | |
| | | .checkbox-item { |
| | | padding: 6rpx 14rpx; |
| | | } |
| | | |
| | | |
| | | .checkbox-label { |
| | | font-size: 22rpx; |
| | | } |