| | |
| | | /> |
| | | </view> |
| | | |
| | | <!-- 出发时间 --> |
| | | <view class="form-item"> |
| | | <text class="item-label required">出发时间</text> |
| | | <u-input |
| | | v-model="transportData.transportStartTime" |
| | | placeholder="请选择出发时间" |
| | | readonly |
| | | border="none" |
| | | :disabled="!isEdit" |
| | | <view |
| | | class="picker-trigger" |
| | | @click="isEdit && (showTimePicker = true)" |
| | | :customStyle="inputStyle(!transportData.transportStartTime)" |
| | | > |
| | | <template #suffix v-if="isEdit"> |
| | | <u-icon name="arrow-down" color="#86868b"></u-icon> |
| | | </template> |
| | | </u-input> |
| | | <text>{{ |
| | | transportData.transportStartTime || "请选择出发时间" |
| | | }}</text> |
| | | <up-icon |
| | | v-if="isEdit" |
| | | name="arrow-down" |
| | | size="16" |
| | | color="#999" |
| | | ></up-icon> |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="form-item"> |
| | | <!-- <view class="form-item"> |
| | | <text class="item-label">转运状态</text> |
| | | <view |
| | | class="picker-trigger" |
| | |
| | | <text>{{ |
| | | getTransportStatusText(transportData.transitStatus) |
| | | }}</text> |
| | | <u-icon |
| | | <up-icon |
| | | v-if="isEdit" |
| | | name="arrow-down" |
| | | size="16" |
| | | color="#999" |
| | | ></u-icon> |
| | | ></up-icon> |
| | | </view> |
| | | </view> |
| | | </view> --> |
| | | |
| | | <view class="form-item"> |
| | | <text class="item-label required">负责协调员</text> |
| | |
| | | |
| | | <view class="form-grid"> |
| | | <view class="form-item"> |
| | | <text class="item-label">急诊科医生</text> |
| | | <text class="item-label">出诊医生</text> |
| | | <u-input |
| | | v-model="transportData.doctor" |
| | | placeholder="请输入急诊科医生" |
| | | placeholder="请输入出诊医生" |
| | | border="none" |
| | | :readonly="!isEdit" |
| | | /> |
| | | </view> |
| | | |
| | | <view class="form-item"> |
| | | <!-- <view class="form-item"> |
| | | <text class="item-label">医生电话</text> |
| | | <u-input |
| | | v-model="transportData.doctorPhone" |
| | |
| | | border="none" |
| | | :readonly="!isEdit" |
| | | /> |
| | | </view> |
| | | </view> --> |
| | | |
| | | <view class="form-item"> |
| | | <text class="item-label">护士</text> |
| | | <text class="item-label">出诊护士</text> |
| | | <u-input |
| | | v-model="transportData.nurse" |
| | | placeholder="请输入护士姓名" |
| | | placeholder="请输入出诊护士姓名" |
| | | border="none" |
| | | :readonly="!isEdit" |
| | | /> |
| | | </view> |
| | | |
| | | <view class="form-item"> |
| | | <text class="item-label">护士电话</text> |
| | | <!-- <view class="form-item"> |
| | | <text class="item-label">出诊护士电话</text> |
| | | <u-input |
| | | v-model="transportData.nursePhone" |
| | | placeholder="请输入护士手机号" |
| | | placeholder="请输入出诊护士手机号" |
| | | type="number" |
| | | border="none" |
| | | :readonly="!isEdit" |
| | | /> |
| | | </view> |
| | | </view> --> |
| | | |
| | | <view class="form-item"> |
| | | <text class="item-label">驾驶员</text> |
| | |
| | | /> |
| | | </view> |
| | | |
| | | <view class="form-item"> |
| | | <!-- <view class="form-item"> |
| | | <text class="item-label">驾驶员电话</text> |
| | | <u-input |
| | | v-model="transportData.driverPhone" |
| | |
| | | border="none" |
| | | :readonly="!isEdit" |
| | | /> |
| | | </view> |
| | | </view> --> |
| | | |
| | | <view class="form-item"> |
| | | <text class="item-label">ICU评估医生</text> |
| | |
| | | const initNewTransport = async (caseId, caseNo) => { |
| | | try { |
| | | // 如果有案例ID,加载案例信息 |
| | | // 新增时默认填当前时间 |
| | | const now = new Date(); |
| | | const year = now.getFullYear(); |
| | | const month = String(now.getMonth() + 1).padStart(2, "0"); |
| | | const day = String(now.getDate()).padStart(2, "0"); |
| | | const hours = String(now.getHours()).padStart(2, "0"); |
| | | const minutes = String(now.getMinutes()).padStart(2, "0"); |
| | | const seconds = String(now.getSeconds()).padStart(2, "0"); |
| | | transportData.value.transportStartTime = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; |
| | | if (caseId) { |
| | | const res = await uni.$uapi.get( |
| | | `/project/donatebaseinforeport/getInfo/${caseId}`, |
| | |
| | | // 时间确认 |
| | | const onTimeConfirm = (e) => { |
| | | const date = new Date(e.value); |
| | | // 添加秒的部分 |
| | | transportData.value.transportStartTime = `${date.getFullYear()}-${( |
| | | date.getMonth() + 1 |
| | | ) |
| | | .toString() |
| | | .padStart(2, "0")}-${date.getDate().toString().padStart(2, "0")} ${date |
| | | .getHours() |
| | | .toString() |
| | | .padStart(2, "0")}:${date.getMinutes().toString().padStart(2, "0")}:${date |
| | | .getSeconds() |
| | | .toString() |
| | | .padStart(2, "0")}`; // 添加秒 |
| | | |
| | | transportData.value.transportStartTime = `${date.getFullYear()}-${String( |
| | | date.getMonth() + 1, |
| | | ).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")} ${String( |
| | | date.getHours(), |
| | | ).padStart(2, "0")}:${String(date.getMinutes()).padStart(2, "0")}:${String( |
| | | date.getSeconds(), |
| | | ).padStart(2, "0")}`; |
| | | showTimePicker.value = false; |
| | | }; |
| | | |
| | |
| | | res = await uni.$uapi.post("/project/transport/edit", submitData); |
| | | } else { |
| | | // 新增 |
| | | submitData.createBy = "移动端用户"; |
| | | submitData.transitStatus = 2; |
| | | res = await uni.$uapi.post("/project/transport/add", submitData); |
| | | } |
| | | |
| | |
| | | |
| | | if (res.code === 200) { |
| | | uni.showToast({ title: `${actionName}成功`, icon: "success" }); |
| | | |
| | | // 如果是完成转运(状态变为3),同步更新案例状态 |
| | | if (newStatus === 3) { |
| | | try { |
| | | // 获取转运单对应的上报案例ID |
| | | const reportId = transportData.value.reportId; |
| | | |
| | | if (reportId) { |
| | | // 获取案例详情 |
| | | const caseRes = await uni.$uapi.get( |
| | | `/project/donatebaseinforeport/getInfo/${reportId}`, |
| | | ); |
| | | |
| | | if (caseRes && caseRes.data) { |
| | | const caseData = caseRes.data; |
| | | caseData.isDonate = 1; // 标记为已捐献 |
| | | |
| | | const editRes = await uni.$uapi.post( |
| | | "/project/donatebaseinforeport/edit", |
| | | caseData, |
| | | ); |
| | | |
| | | if (editRes && editRes.code == 200) { |
| | | uni.showToast({ |
| | | title: "对应上报案例已进入正式案例流程", |
| | | icon: "success", |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | } catch (caseError) { |
| | | console.error("更新案例状态失败:", caseError); |
| | | // 不阻断主流程,只提示 |
| | | uni.showToast({ |
| | | title: "案例状态更新失败,请联系管理员", |
| | | icon: "none", |
| | | }); |
| | | } |
| | | } |
| | | |
| | | await loadTransportData(transportId.value); |
| | | } else { |
| | | throw new Error(res.msg || `${actionName}失败`); |