WXL
昨天 c80bc467a41daa6cbae4e5515a300a8ca98cfeaa
pagesSub/case/transferinfo.vue
@@ -76,24 +76,26 @@
              />
            </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"
@@ -103,14 +105,14 @@
                <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>
@@ -156,16 +158,16 @@
          <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"
@@ -174,28 +176,28 @@
                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>
@@ -207,7 +209,7 @@
              />
            </view>
            <view class="form-item">
            <!-- <view class="form-item">
              <text class="item-label">驾驶员电话</text>
              <u-input
                v-model="transportData.driverPhone"
@@ -216,7 +218,7 @@
                border="none"
                :readonly="!isEdit"
              />
            </view>
            </view> -->
            <view class="form-item">
              <text class="item-label">ICU评估医生</text>
@@ -339,7 +341,7 @@
</template>
<script setup>
import { ref, computed, onMounted,watch } from "vue";
import { ref, computed, onMounted, watch } from "vue";
import attachmentUpload from "@/components/attachment";
import { useUserStore } from "@/stores/user";
@@ -502,6 +504,15 @@
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}`,
@@ -583,19 +594,13 @@
// 时间确认
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;
};
@@ -693,7 +698,7 @@
      res = await uni.$uapi.post("/project/transport/edit", submitData);
    } else {
      // 新增
      submitData.createBy = "移动端用户";
      submitData.transitStatus = 2;
      res = await uni.$uapi.post("/project/transport/add", submitData);
    }
@@ -791,6 +796,46 @@
    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}失败`);