From d553a4be94d4f6ee162cc353a28b220403909cfc Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期六, 03 十月 2026 00:58:19 +0800
Subject: [PATCH] ai优化
---
src/views/ecg/doctor/components/RoutinePanel.vue | 372 +++++++++++++++++++++++++++++++++-------------------
1 files changed, 233 insertions(+), 139 deletions(-)
diff --git a/src/views/ecg/doctor/components/RoutinePanel.vue b/src/views/ecg/doctor/components/RoutinePanel.vue
index bfebfcd..cc50adb 100644
--- a/src/views/ecg/doctor/components/RoutinePanel.vue
+++ b/src/views/ecg/doctor/components/RoutinePanel.vue
@@ -1,157 +1,95 @@
<!-- 甯歌妫�鏌� 鍖荤敓鐣岄潰-->
<template>
- <el-form ref="formRef" :model="formData" :rules="formRules" label-width="100px" v-loading="formLoading">
+ <el-form class="patient-compact-form" ref="formRef" :model="formData" :rules="formRules" label-width="100px" v-loading="formLoading">
+ <!-- ===== 缂栬緫鍖猴紙闇�瑕佸綍鍏ョ殑瀛楁锛�===== -->
<el-row :gutter="20">
<el-col :span="6">
- <el-form-item label="鎮h�呯紪鍙�" prop="patId">
- <el-input v-model="formData.patId" placeholder="璇疯緭鍏ユ偅鑰呯紪鍙�" @input="getRentInfoByPatId" />
- <!--
- <Qrcode v-if="formData.patId !== undefined && formData.patId !== ''" :text="formData.patId" logo="/logo.gif" width=100 />
- <Barcode v-if="displayBarCode" :value="displayBarCode" :width="100" />
- <el-button @click="copyBarcode()">澶嶅埗</el-button>
- -->
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="鎮h�呭悕绉�" prop="patName">
- <el-input v-model="formData.patName" placeholder="璇疯緭鍏ユ偅鑰呭悕绉�" />
- </el-form-item>
- </el-col><el-col :span="6">
- <el-form-item label="鎬у埆">
- {{ genderText }}
- </el-form-item>
- </el-col>
-
- <el-col :span="6">
- <el-form-item label="鑱旂郴鐢佃瘽" prop="episodeId">
- <!-- 淇锛氬師璇� `patDetails.mobile`锛坬ueue 琛ㄧ殑 JSON 蹇収锛屽彧鍚� source/mobile/wardDesc/bedNo 鍥涘瓧娈碉級銆�
- 鑰� setPatient 宸叉妸鍚庣浠� appointment 鍥炲~鐨�**骞抽摵瀛楁** `patMobile` 璧嬭繘 formData锛�
- 鏁呭簲浠ュ钩閾哄瓧娈典紭鍏堬紝patDetails 浠呬綔鏃ф暟鎹洖閫�銆� -->
- {{ formData.patMobile || formData?.patDetails?.mobile || '-' }}
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="6">
- <el-form-item label="灏辫瘖缂栧彿" prop="episodeId">
- <el-input v-model="formData.episodeId" placeholder="璇疯緭鍏ユ偅鑰呭氨璇婄紪鍙�" />
- </el-form-item>
- </el-col><el-col :span="6">
- <el-form-item label="鍑虹敓鏃ユ湡">
- {{ fmtDate(formData.patBirthday) }}
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="骞撮緞">
- {{ ageText }}
- </el-form-item>
- </el-col><el-col :span="6">
- <el-form-item label="寮�鍗曞尰甯�">
- {{ formData.doctor }}
- </el-form-item>
- </el-col>
-
-
- </el-row>
- <el-row><el-col :span="6">
<el-form-item label="鐢宠鍗曞彿" prop="applyNo">
<el-input v-model="formData.applyNo" placeholder="璇疯緭鍏ョ敵璇峰崟鍙�" />
</el-form-item>
</el-col>
- <el-col :span="18">
- <el-form-item label="绉戝鐥呭尯" prop="patDetails">
- <!-- 淇锛氭潵婧愪笌鐥呭尯/搴婂彿鍘熻 `patDetails.*`锛坬ueue 琛ㄧ殑 JSON 蹇収锛屽彲鑳芥粸鍚庝笖甯哥己鐥呭尯锛夛紝
- 鏀逛负**骞抽摵瀛楁浼樺厛**锛堝悗绔凡浠� appointment 鍥炲~ patSrc/patWardDesc/patBedNo锛夛紝
- patDetails 浠呬綔鏃ф暟鎹洖閫�銆� -->
- <dict-tag v-if="formData.patSrc ?? formData.patDetails?.source"
- :type="DICT_TYPE.ECG_PAT_SOURCE"
- :value="formData.patSrc ?? formData.patDetails?.source" />
- {{ formData.patWardDesc || formData?.patDetails?.wardDesc || '-' }}
- - {{ formData.patBedNo || formData?.patDetails?.bedNo || '-' }}
- </el-form-item></el-col>
-
-
+ <el-col :span="6">
+ <el-form-item label="妫�鏌ラ」鐩�" prop="">
+ {{ formData?.checkType && getCheckTypeName(formData?.checkType) }}
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="鎮h�呯紪鍙�" prop="patId">
+ <el-input v-model="formData.patId" placeholder="璇疯緭鍏ユ偅鑰呯紪鍙�" @input="getRentInfoByPatId" />
+ <Barcode v-if="displayBarCode" :value="displayBarCode" :width="100" />
+ <el-button @click="copyBarcode()">澶嶅埗</el-button>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="鎮h�呭鍚�" prop="patName">
+ <el-input v-model="formData.episodeId" placeholder="璇疯緭鍏ユ偅鑰呭鍚�" />
+ </el-form-item>
+ </el-col>
</el-row>
- <el-row>
- <el-col :span="6">
- <el-form-item label="寮�鍗曟棩鏈�">
- {{ fmtDate(formData.doctorTime) }}
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="璺濅粖澶╂暟">
- {{ daysFromOrder }}
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="鍖诲槺鍙�">
- <!-- 淇锛氭澶勫師鍏堢粦瀹氱殑鏄� `formData.applyNo`锛堢敵璇峰崟鍙凤級锛�
- 涓庛�屽尰鍢卞彿銆嶆槸**涓や釜涓嶅悓鐨勬爣璇�**锛�
- 鐢宠鍗曞彿 apply_no = HIS root 2.16.156.10011.1.24锛屼緥 2126091700011
- 鍖诲槺鍙� doctor_advice_no = HIS root 2.16.156.10011.1.28锛屼緥 112663505
- 鍘熷啓娉曟槸鎶婄敵璇峰崟鍙峰啋鍏呮垚鍖诲槺鍙凤紝灞炰簬閿欒灞曠ず銆�
- 鐜版敼涓鸿鍚庣鏂伴噰闆嗙殑 doctorAdviceNo锛堣鑺傜偣瑙勮寖涓潪蹇呴』椤癸紝鍘嗗彶鏁版嵁涓虹┖ 鈫� 鏄剧ず '-'锛夈�� -->
- {{ formData.doctorAdviceNo || '-' }}
- </el-form-item>
- </el-col><el-col :span="6">
- <el-form-item label="鐧昏鏃堕棿">
- {{ fmtDate(formData.registerDate) }}
- </el-form-item>
- </el-col>
- </el-row>
- <!-- 闇�姹�1锛氳ˉ榻愭湰闈㈡澘鍘熷厛缂哄け鐨勪袱椤癸紙鎺掗槦搴忓彿銆佺姸鎬侊級锛屼娇 18 椤归綈鍏� -->
- <el-row>
- <el-col :span="6">
- <el-form-item label="鎺掗槦搴忓彿">
- {{ formData?.seqNum ?? formData?.bookSeqNum ?? '-' }}
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="鐘舵��">
- <dict-tag v-if="formData?.status !== undefined && formData?.status !== null"
- :type="DICT_TYPE.ECG_QUEUE_STATUS" :value="formData.status" />
- <span v-else>-</span>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
+ <!-- ===== 鎮h�呬俊鎭紙闇�姹�1锛�18 椤圭粺涓�灞曠ず锛�**涓�琛屽洓鍒�**锛�=====
+ 鍘熷厛鏈潰鏉挎妸 18 椤规墜鍐欏湪澶氳 el-col锛坰pan=6/18 娣锋帓锛夛紝
+ 鐜扮粺涓�鏀圭敤 PatientInfoBlock 缁勪欢锛屼笌棰勭害绛惧埌/璁惧棰嗙敤/瑁呮満/鎷嗘満鍚勯〉**鍙e緞涓�鑷�**銆� -->
+ <PatientInfoBlock :data="formData" check-type-field="checkType" :span="6" />
+ <el-row>
<el-col :span="6">
<el-form-item label="妫�鏌ユ椂闂�" prop="rentTime">
<el-date-picker v-model="formData.rentTime" type="date" value-format="x" placeholder="閫夋嫨鏃堕棿" />
</el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="妫�鏌ラ」鐩�" prop="">
- {{ formData?.checkType && getCheckTypeName(formData?.checkType) }}
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="澶氳�愯嵂" prop="tolerance">
- <!-- 闇�姹�6锛氱粺涓�璧板瓧鍏� ecg_tolerance锛�0=鏃� 1=澶氳�� 2=澶氶噸鑰愯嵂锛夛紱
- NULL 鎸�"鏃�"鏄剧ず锛圦12锛夈�傚師鍏堢‖缂栫爜"鍚�/鏄�/鏈煡"涓夊垎鏀紝涓庡瓧鍏搁噸澶嶄笖鏂囨涓嶇銆� -->
- <dict-tag :type="DICT_TYPE.ECG_TOLERANCE" :value="formData.tolerance ?? 0" />
- </el-form-item>
- </el-col>
- <el-col :span="6">
+ </el-col>
+ <el-col :span="18">
<el-form-item label="澶囨敞" prop="remark">
<el-input v-model="formData.remark" placeholder="璇疯緭鍏ュ娉�" />
</el-form-item>
</el-col>
</el-row>
</el-form>
- <el-button @click="submitForm" type="primary" :disabled="formLoading">妫�鏌ュ畬鎴�</el-button>
- <el-button @click="cancelInstall" :disabled="formLoading">鏀惧純妫�鏌�</el-button>
- <el-button @click="resetForm()">閲� 缃�</el-button>
- <el-button @click="yddownload()" :loading="yddownloadLoading" :disabled="yddownloadLoading">骞虫澘杩愬姩蹇冪數鍥剧煡鎯呭悓鎰忎功</el-button>
- <el-button @click="sgdownload()" :loading="sgdownloadLoading" :disabled="sgdownloadLoading">椋熺蹇冭剰鐢电敓鐞嗚瘖鐤楃煡鎯呭悓鎰忎功</el-button>
- <el-button v-if="needAutoFeeConfirm(formData.checkType)" @click="feeConfirm" :disabled="formLoading">纭垂</el-button>
- <el-button v-if="needAutoFeeConfirm(formData.checkType)" @click="feeCancel" :disabled="formLoading">鍙栨秷纭垂</el-button>
+ <div class="patient-actions">
+ <el-button size="small" @click="submitForm" type="primary" :disabled="formLoading">妫�鏌ュ畬鎴�</el-button>
+ <el-button size="small" @click="cancelInstall" :disabled="formLoading">鏀惧純妫�鏌�</el-button>
+ <el-button size="small" @click="resetForm()">閲� 缃�</el-button>
+ <el-button size="small" @click="yddownload()" :loading="yddownloadLoading" :disabled="yddownloadLoading">骞虫澘杩愬姩蹇冪數鍥剧煡鎯呭悓鎰忎功</el-button>
+ <el-button size="small" @click="sgdownload()" :loading="sgdownloadLoading" :disabled="sgdownloadLoading">椋熺蹇冭剰鐢电敓鐞嗚瘖鐤楃煡鎯呭悓鎰忎功</el-button>
+ <el-button size="small" v-if="needAutoFeeConfirm(formData.checkType)" @click="feeConfirm" :disabled="formLoading">纭垂</el-button>
+ <el-button size="small" v-if="needAutoFeeConfirm(formData.checkType)" @click="feeCancel" :disabled="formLoading">鍙栨秷纭垂</el-button>
+ </div>
<!-- 鍖荤敓瑁呮満鍒楄〃 -->
- <ContentWrap>
- <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" @row-click="onRowClick">
- <!-- <el-table-column label="id" align="center" prop="id" />-->
+ <!--
+ 宸插畬鎴愯褰曞垪琛ㄣ��
+ 婊氬姩鏂瑰紡锛�**涓棿鍐呭鍖鸿嚜韬粴鍔�**锛�.doctor-page__content 涓� overflow-y:auto锛夛紝
+ 鎮h�呬俊鎭敤 sticky 鍥哄畾鍦ㄩ《閮紱搴曢儴 footer 鐢� DoctorPageLayout 鍥哄畾锛屾棤闇�婊氬姩鍗冲彲瑙併��
+ 锛堟浘灏濊瘯璁� el-table 鍐呴儴婊氬姩浠ュ浐瀹氳〃澶达紝浣嗘湰椤圭洰 Element Plus 2.7.0 涓�
+ height/maxHeight 鍧囨湭鐢熸晥锛屽凡鍥為��锛岃瑙併�婇儴缃叉竻鍗曘��5.3.15銆傦級
+ -->
+ <div class="records-host">
+ <ContentWrap class="records-wrap">
+ <el-table
+ v-loading="loading"
+ :data="list"
+ :stripe="true"
+ :show-overflow-tooltip="true"
+ @row-click="onRowClick"
+ >
+ <!--
+ 闇�姹�11锛堜慨姝o級锛氭妸銆屾挙閿�銆嶆斁鍦�**宸插畬鎴愭鏌ヨ褰曞垪琛ㄧ殑绗竴鍒�**閲屻��
+ 鍘熷厛鏀惧湪琛ㄦ牸涓婃柟鐨勭嫭绔嬫寜閽锛屼綅缃笉瀵� 鈥斺�� 鐜版敼涓鸿鍒楃殑**琛ㄥご鎻掓Ы**锛�
+ 浣垮叾鎴愪负琛ㄦ牸鐨勭涓�鍒楋紙涓斿彧鍑虹幇涓�娆★紝浣滅敤浜庢渶杩戜竴浣嶅凡瀹屾垚鎮h�咃紝
+ 璇箟涓庡悗绔� lastFinishedPatient 涓�鑷达級銆�
+ -->
+ <el-table-column label="鎾ら攢" align="center" width="90px" fixed="left">
+ <template #header>
+ <el-button
+ link
+ type="warning"
+ :disabled="undoDisabled"
+ :loading="undoLoading"
+ @click="$emit('event_undo_finish')"
+ >
+ 鎾ら攢
+ </el-button>
+ </template>
+ </el-table-column>
<el-table-column label="妫�鏌ョ姸鎬�" align="center" prop="lost">
<template #default="scope">
<span v-if="scope.row.jobType === 60">宸叉鏌�</span>
@@ -190,11 +128,16 @@
</template>
</el-table-column>
-->
- </el-table>
+ </el-table>
+ </ContentWrap>
<!-- 鍒嗛〉 -->
- <Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize"
- @pagination="getList" />
- </ContentWrap>
+ <Pagination
+ :total="total"
+ v-model:page="queryParams.pageNo"
+ v-model:limit="queryParams.pageSize"
+ @pagination="getList"
+ />
+ </div>
</template>
<script setup lang="ts">
@@ -212,6 +155,15 @@
import { Barcode } from '@/components/Barcode'
import { useCheckTypeStore } from '@/store/modules/checkType'
import { getCheckTypeName, needAutoFeeConfirm } from '../../../../utils/checkTypeFormatter'
+import { useRoomStore } from '@/store/modules/room'
+// 鈿狅笍 蹇呴』鏄惧紡 import锛歚unplugin-vue-components` 鐨� globs 鍙鐩�
+// `src/components/**`锛堣 build/vite/index.ts 鐨� Components({ globs: [...] }))锛�
+// 鍥犳 src/components/ 涓嬬殑 Dialog銆丆ontentWrap銆丳agination 绛夊彲鑷姩寮曞叆锛�
+// 浣� **src/views/** 涓嬬殑鏈粍浠跺繀椤绘墜鍐� import**銆�
+// 鑻ユ紡鍐欙紝Vue 浼氭妸瀹冨綋鎴愩�屾湭鐭ユ爣绛俱��**闈欓粯涓嶆覆鏌�**锛堝彧鏈夋帶鍒跺彴 warning锛夛紝
+// 鑰� vite build 涓� ESLint 閮戒笉浼氭姤閿� 鈥斺�� 瀹炴祴鍥犳敼閫犳椂璇垹鏈 import锛�
+// 瀵艰嚧銆屽彨鍙锋鏌ャ�嶉〉闈㈡偅鑰呬俊鎭�**鏁村潡娑堝け**銆�
+import PatientInfoBlock from '@/views/ecg/doctor/components/PatientInfoBlock.vue'
/** 璁惧瑁呮満 琛ㄥ崟 */
defineComponent({ name: 'RoutinePanel' })
@@ -225,10 +177,24 @@
type: [String, Number],
required: false,
default: null
+ },
+ /**
+ * 闇�姹�11锛氳褰曞垪琛ㄧ涓�鍒楃殑銆屾挙閿�銆嶆寜閽姸鎬侊紝鐢辩埗椤甸潰鎺у埗
+ * 锛堟挙閿�鍔ㄤ綔璇锋眰鍚庣銆侀渶瑕� loading 涓庣鐢ㄦ�侊紝閫昏緫淇濈暀鍦ㄧ埗椤甸潰锛夈��
+ */
+ undoDisabled: {
+ type: Boolean,
+ required: false,
+ default: false
+ },
+ undoLoading: {
+ type: Boolean,
+ required: false,
+ default: false
}
})
-const emit = defineEmits(['event_routine']) // 瀹氫箟 success 浜嬩欢锛岀敤浜庢搷浣滄垚鍔熷悗鐨勫洖璋�
+const emit = defineEmits(['event_routine', 'event_undo_finish'])
const checkTypeStore = useCheckTypeStore()
@@ -486,6 +452,10 @@
const loading = ref(true) // 鍒楄〃鐨勫姞杞戒腑
const list = ref<JobRecordVO[]>([]) // 鍒楄〃鐨勬暟鎹�
const total = ref(0) // 鍒楄〃鐨勬�婚〉鏁�
+// 褰撳墠璇婂淇℃伅锛堢敤浜庡彇璇婂寮�灞曠殑妫�鏌ラ」鐩仛鍏滃簳锛岃 syncRoomCheckTypes锛�
+const roomStore = useRoomStore()
+
+
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
@@ -498,10 +468,37 @@
jobTime: [curDayStart(), curDayEnd()],
summary: undefined,
remark: undefined,
- createTime: []
+ createTime: [],
+ // ========================================================================
+ // 鎸�**褰撳墠璇婂寮�灞曠殑妫�鏌ラ」鐩�**闅旂宸插畬鎴愯褰曘��
+ //
+ // 鑳屾櫙锛歚job_record` 琛ㄥ彧鏈� doc_id + check_type锛�**娌℃湁 room_id**锛�
+ // 鑰� /ecg/job-record/doctor-page 鏄己鍒舵寜鐧诲綍鍖荤敓鏌�"鑷繁鐨勮褰�"銆�
+ // 浜庢槸鍚屼竴鍖荤敓鍦ㄥ涓瘖瀹ゅ潗璇婃椂锛堝 1鍙烽棬璇� ct=[100,1100]銆�6鍙烽棬璇� ct=[400] 骞虫澘杩愬姩蹇冪數锛夛紝
+ // 鍙彿妫�鏌ラ〉浼氭妸**澶氫釜璇婂鐨勮褰曟贩鍦ㄤ竴璧�**鏄剧ず 鈥斺�� 姝f槸鐢ㄦ埛鍙嶉鐨勭幇璞°��
+ //
+ // 鐢卞悇椤甸潰锛圧outine.vue / index.vue / DevInstall.vue锛夊湪 onMounted 鏃�
+ // 鐢ㄥ綋鍓嶈瘖瀹ょ殑 checkTypes 璧嬪�硷紝骞跺湪姣忔鏌ヨ鍓嶅悓姝ワ紝纭繚鍒囪瘖瀹ゅ悗绔嬪嵆鐢熸晥銆�
+ // ========================================================================
+ checkTypes: undefined as number[] | undefined
})
+
+/**
+ * 鎶娿�屽綋鍓嶈瘖瀹ゅ紑灞曠殑妫�鏌ラ」鐩�嶅悓姝ュ埌鏌ヨ鏉′欢锛屽疄鐜板凡瀹屾垚璁板綍鎸夎瘖瀹ら殧绂汇��
+ * 瑙� queryParams.checkTypes 鐨勮鏄庛��
+ */
+const syncRoomCheckTypes = () => {
+ // 浼樺厛鐢ㄩ〉闈紶鍏ョ殑璇婂淇℃伅锛涗负绌烘椂鍥為��鍒� store锛堟洿鍙潬锛岃 TitlePanel 鍚屽璇存槑锛�
+ const fromProp = props.room?.checkTypes
+ const types = (Array.isArray(fromProp) && fromProp.length > 0)
+ ? fromProp
+ : roomStore.room?.checkTypes
+ queryParams.checkTypes = (Array.isArray(types) && types.length > 0) ? [...types] : undefined
+}
/** 鏌ヨ鍒楄〃 */
const getList = async () => {
+ // 鏌ヨ鍓嶅悓姝ュ綋鍓嶈瘖瀹ゅ紑灞曠殑妫�鏌ラ」鐩紝淇濊瘉鍙樉绀烘湰璇婂鐨勮褰�
+ syncRoomCheckTypes()
loading.value = true
try {
const data = await JobRecordApi.getJobRecordDoctorPage(queryParams)
@@ -516,8 +513,36 @@
if (cur !== null) getSelectedRent(cur.rentId)
}
+/**
+ * 鐐瑰嚮銆屽凡瀹屾垚妫�鏌ヨ褰曘�嶇殑鏌愪竴琛岋細鍙妸**璇ユ潯璁板綍**鐨勪俊鎭悎鍏ヨ〃鍗曘��
+ *
+ * 鈿狅笍 鍘熷疄鐜版槸 `formData.value = await DevRentApi.getDevRent(rentId)` 鈥斺�� **鏁翠釜鏇挎崲**銆�
+ * 鑰屽疄娴� `GET /ecg/dev-rent/get` 鐨勫搷搴旈噷锛岄櫎 `patName` 澶栫殑鎮h�呭瓧娈�**鍏ㄦ槸 null**锛�
+ * {"patName":"鈥�","patGender":null,"patBirthday":null,"registerDate":null,"doctor":null,
+ * "patMobile":null,"patPhone":null,"patWardDesc":null,"patBedNo":null,"outpatientNo":null,
+ * "patIdentityId":null,"doctorAdviceNo":null,"tolerance":null}
+ * 鍘熷洜锛歚dev_rent` 琛�**涓嶅瓨**杩欎簺瀛楁锛屽畠浠槸鐢� `DevRentServiceImpl` 浠� appointment
+ * 鍥炲~鐨勶紱鑰� `/dev-rent/get` 杩欐潯璺緞**娌℃湁鍋氬洖濉�**銆�
+ *
+ * 鍚庢灉锛氬尰鐢熶竴鐐硅褰曡锛孭atientInfoBlock 閲岄櫎濮撳悕澶栫殑淇℃伅**鍏ㄩ儴鍙樻垚 '-'**锛�
+ * 琛ㄧ幇涓�"鎮h�呬俊鎭己澶�"銆�
+ *
+ * 淇锛�**淇濈暀褰撳墠鎮h�呬俊鎭�**锛屽彧鐢ㄨ繑鍥炵殑璁板綍瀛楁瑕嗙洊锛堜粎褰撹繑鍥炲�间负闈炵┖鏃讹級銆�
+ */
const getSelectedRent = async (rentId) => {
- formData.value = await DevRentApi.getDevRent(rentId)
+ const record = await DevRentApi.getDevRent(rentId)
+ if (!record) return
+ const merged = { ...formData.value } as Record<string, any>
+ Object.keys(record as Record<string, any>).forEach((k) => {
+ const v = (record as Record<string, any>)[k]
+ // 鍙鐩�"纭湁鍊�"鐨勫瓧娈碉紝閬垮厤鐢� null 鍐叉帀宸插洖濉ソ鐨勬偅鑰呬俊鎭�
+ if (v !== null && v !== undefined && v !== '') {
+ merged[k] = v
+ }
+ })
+ // 璁板綍閲屽彲鑳藉畬鍏ㄦ病鏈夋偅鑰呭瓧娈碉紝姝ゆ椂淇濈暀鍘熸偅鑰呬俊鎭�
+ if (!merged.patName) merged.patName = formData.value.patName
+ formData.value = merged as typeof formData.value
}
const cancelInstall = async () => {
@@ -603,3 +628,72 @@
getList()
})
</script>
+
+<style scoped lang="scss">
+/* ==========================================================================
+ 闇�姹傦細琛ㄥ崟鍐呭鎸ゅ崰浜嗕笅鏂硅褰曡〃鏍肩殑绌洪棿 鈥斺�� 鍘嬬缉琛岄棿璺濄��
+ Element Plus 榛樿 `.el-form-item { margin-bottom: 18px }`锛�
+ 鏈〉琛ㄥ崟鍚� 18 椤规偅鑰呬俊鎭紙4 鍒� = 5 琛岋級+ 9 椤硅澶囦俊鎭紝
+ 浠呴棿璺濆氨瑕佷笂鐧� px锛屾妸 el-table 鎸ゅ埌鐪嬩笉瑙併��
+ 杩欓噷缁熶竴鍘嬪埌 4px銆傛敞鎰� :deep 鏄繀闇�鐨勶紙el-form-item 鏄湰缁勪欢鐨勫瓙缁勪欢娓叉煋锛夈��
+ ========================================================================== */
+.patient-compact-form :deep(.el-form-item) {
+ margin-bottom: 4px;
+}
+
+/* ==========================================================================
+ 鎮h�呬俊鎭浐瀹氬湪鍐呭鍖洪《閮ㄣ��
+ 鍐呭鍖鸿嚜韬笉婊氬姩锛堟粴鍔ㄦ潯鍦ㄨ褰曡〃鏍间笂锛夛紝鍥犳**涓嶉渶瑕� position:sticky** 鈥斺��
+ 鐩存帴浣滀负 flex 鐨勫浐瀹氶」锛坒lex:none锛夊嵆鍙缁堢暀鍦ㄩ《閮ㄣ��
+ 鑳屾櫙涓嶉�忔槑锛屼繚璇佷笌涓嬫柟璁板綍琛ㄦ牸瑙嗚鍒嗙銆�
+ ========================================================================== */
+:deep(.doctor-page__content) > .patient-compact-form {
+ flex: none;
+ padding-bottom: 4px;
+ background-color: var(--el-bg-color);
+ border-bottom: 1px solid var(--el-border-color-lighter);
+}
+
+
+
+/* ==========================================================================
+ 鎮h�呬俊鎭浐瀹氬湪鍐呭鍖洪《閮ㄣ��
+ 鍐呭鍖猴紙.doctor-page__content锛夎嚜韬粴鍔紝鎵�浠ヨ繖閲屽繀椤荤敤 position:sticky
+ 鎵嶈兘璁� 18 椤规偅鑰呬俊鎭湪璁板綍鍒楄〃婊氬姩鏃朵繚鎸佸彲瑙併��
+ 鑳屾櫙涓嶉�忔槑锛岄伩鍏嶆粴鍔ㄥ唴瀹逛粠琛ㄥ崟椤归棿闅欓�忓嚭銆�
+ ========================================================================== */
+:deep(.doctor-page__content) > .patient-compact-form {
+ position: sticky;
+ top: 0;
+ z-index: 3;
+ padding-bottom: 4px;
+ background-color: var(--el-bg-color);
+ border-bottom: 1px solid var(--el-border-color-lighter);
+}
+
+/* ==========================================================================
+ 鎮h�呮搷浣滃姛鑳藉潡锛氫綅浜庛�屾偅鑰呬俊鎭�嶄笌銆屽凡瀹屾垚璁板綍鍒楄〃銆嶄箣闂达紝鐙珛鎴愬潡銆�
+ 闇�姹傦細鍚勫姛鑳芥寜閽紙妫�鏌ュ畬鎴� / 鏀惧純妫�鏌� / 閲嶇疆 / 鐭ユ儏鍚屾剰涔� 鈥︼級**鎺掑湪涓�琛�**銆�
+ 鍋氭硶锛歠lex + gap锛屽苟 **绂佹鎹㈣**锛坒lex-wrap:nowrap锛夛紱
+ 鎸夐挳鐢� size="small" 浠ュ绾冲叏閮ㄦ寜閽紱鍗充娇瀹藉害涓嶈冻涔熶笉鎶樿銆�
+ 涓婁笅杈规 + 搴曡壊锛屼娇瀹冧笌鎮h�呬俊鎭�佽褰曞垪琛ㄥ湪瑙嗚涓婂垎鍖恒��
+ ========================================================================== */
+.patient-actions {
+ display: flex;
+ flex: none;
+ flex-wrap: nowrap;
+ gap: 8px;
+ align-items: center;
+ /* 涓婁笅鐣欑櫧 + 鍒嗛殧绾匡紝褰㈡垚鐙珛鍔熻兘鍧� */
+ padding: 6px 4px;
+ margin-bottom: 6px;
+ background-color: var(--el-bg-color);
+ border-top: 1px solid var(--el-border-color-lighter);
+ border-bottom: 1px solid var(--el-border-color-lighter);
+
+ /* Element Plus 缁欑浉閭� el-button 榛樿鍔犱簡 margin-left:12px锛屼細涓� gap 鍙犲姞锛屾竻鎺� */
+ :deep(.el-button + .el-button) {
+ margin-left: 0;
+ }
+}
+</style>
--
Gitblit v1.9.3