eight
2024-08-08 18acf59e72e031632e798d13fd06f13a4ff738e1
预约确认
已修改3个文件
107 ■■■■ 文件已修改
src/api/ecg/appointment/index.ts 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/ecg/appointment/AppointmentConfirm.vue 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/ecg/appointment/AppointmentForm.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/ecg/appointment/index.ts
@@ -2,7 +2,7 @@
// 预约 VO
export interface AppointmentVO {
  id: string
  id: number,
  patId: string // 患者编号
  patName: string // 患者姓名
  patGender: number // 患者性别
@@ -20,7 +20,7 @@
  bookDate: Date // 预约日期
  bookTimeslot: number // 预约时间段
  bookTime: Date // 预约发生时间
  bookCheckType: boolean // 预约检查类型
  bookCheckType: number // 预约检查类型
}
// 预约 API
@@ -53,5 +53,11 @@
  // 导出预约 Excel
  exportAppointment: async (params) => {
    return await request.download({ url: `/ecg/appointment/export-excel`, params })
  },
  // 修改预约
  confirmAppointment: async (data: AppointmentVO) => {
      return await request.post({ url: `/ecg/appointment/confirm`, data })
  }
}
src/views/ecg/appointment/AppointmentConfirm.vue
@@ -3,7 +3,7 @@
    <el-input v-model="queryParams.patId" placeholder="请输入患者编号" clearable @input="searchBookInfo"/>
  </el-form-item>
  <el-button @click="message.alert('p')"><Icon icon="ep:refresh" class="mr-5px" /> 排队 </el-button>
  <el-button @click="_confirmAppointment"><Icon icon="ep:refresh" class="mr-5px" /> 排队 </el-button>
  <el-divider/>
@@ -11,7 +11,6 @@
    ref="formRef"
    :model="formData"
    label-width="100px"
    v-loading="formLoading"
    class="two-column-form"
  >
    <div class="form-row">
@@ -116,40 +115,35 @@
/** 预约确认 表单 */
defineOptions({ name: 'AppointmentConfirm' })
const { t } = useI18n() // 国际化
const message = useMessage() // 消息弹窗
const dialogVisible = ref(false) // 弹窗的是否展示
const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
const formType = ref('') // 表单的类型:create - 新增;update - 修改
const loading = ref(true) // 列表的加载中
const list = ref<AppointmentVO[]>([]) // 列表的数据
const total = ref(0) // 列表的总页数
const queryParams = reactive({
    pageNo: 1,
    pageSize: 1,
    pageSize: 10,
    patId: undefined
})
const formData = ref({
  patId: undefined,
  patName: undefined,
  id: 0,
  patId: "",
  patName: "",
  patGender: 1, // 1 男 2 女
  patBirthday: undefined,
  patMobile: undefined,
  patPhone: undefined,
  patIdentityId: undefined,
  patAddr: undefined,
  patDeptCode: undefined,
  patDeptDesc: undefined,
  patWardCode: undefined,
  patWardDesc: undefined,
  patBedNo: undefined,
  bookId: undefined,
  bookTime: undefined,
  bookDate: new Date().getTime(),
  patBirthday: new Date(),
  patMobile: "",
  patPhone: "",
  patIdentityId: "",
  patAddr: "",
  patDeptCode: "",
  patDeptDesc: "",
  patWardCode: "",
  patWardDesc: "",
  patBedNo: "",
  bookId: "",
  bookTime: new Date(),
  bookDate: new Date(),
  bookTimeslot: 10001015,
  bookCheckType: 10
})
@@ -180,43 +174,32 @@
    }
}
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
  dialogVisible.value = true
  dialogTitle.value = t('action.' + type)
  formType.value = type
  resetForm()
  // 修改时,设置数据
  if (id) {
    formLoading.value = true
    try {
      formData.value = await AppointmentApi.getAppointment(id)
    } finally {
      formLoading.value = false
const _confirmAppointment = async () => {
    const data = await AppointmentApi.confirmAppointment(formData.value)
    message.info(data)
    }
  }
}
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
/** 重置表单 */
const resetForm = () => {
  formData.value = {
    patId: undefined,
    patName: undefined,
    id: 0,
    patId: "",
    patName: "",
    patGender: 1, // 1 男 2 女
    patBirthday: undefined,
    patMobile: undefined,
    patPhone: undefined,
    patIdentityId: undefined,
    patAddr: undefined,
    patDeptCode: undefined,
    patDeptDesc: undefined,
    patWardCode: undefined,
    patWardDesc: undefined,
    patBedNo: undefined,
    bookId: undefined,
    bookTime: undefined,
    bookDate: new Date().getTime(),
    patBirthday: new Date(),
    patMobile: "",
    patPhone: "",
    patIdentityId: "",
    patAddr: "",
    patDeptCode: "",
    patDeptDesc: "",
    patWardCode: "",
    patWardDesc: "",
    patBedNo: "",
    bookId: "",
    bookTime: new Date(),
    bookDate: new Date(),
    bookTimeslot: 10001015,
    bookCheckType: 10
  }
src/views/ecg/appointment/AppointmentForm.vue
@@ -24,6 +24,9 @@
          </el-radio>
        </el-radio-group>
      </el-form-item>
      <el-form-item label="预约编号" prop="bookId">
          <el-input v-model="formData.bookId" placeholder="请输入预约编号" />
      </el-form-item>
      <el-form-item label="预约日期" prop="bookDate">
          <el-date-picker
                  v-model="formData.bookDate"
@@ -132,6 +135,7 @@
  patId: [{ required: true, message: '患者编号不能为空', trigger: 'blur' }],
  patName: [{ required: true, message: '患者姓名不能为空', trigger: 'blur' }],
  patGender: [{ required: true, message: '患者性别不能为空', trigger: 'blur' }],
  bookId: [{ required: true, message: '预约编号不能为空', trigger: 'blur' }],
  bookDate: [{ required: true, message: '预约日期不能为空', trigger: 'blur' }],
  bookTimeslot: [{ required: true, message: '预约检查时间段不能为空', trigger: 'blur' }],
  bookCheckType: [{ required: true, message: '预约检查类型不能为空', trigger: 'change' }]