|
@@ -11,9 +11,9 @@
|
|
|
<!-- 步骤导航(仅编辑模式显示) -->
|
|
<!-- 步骤导航(仅编辑模式显示) -->
|
|
|
<el-steps v-if="!readonly" :active="activeStep" finish-status="success" align-center style="margin-bottom: 30px;">
|
|
<el-steps v-if="!readonly" :active="activeStep" finish-status="success" align-center style="margin-bottom: 30px;">
|
|
|
<el-step title="选择处方类型" />
|
|
<el-step title="选择处方类型" />
|
|
|
- <el-step title="填写处方内容">
|
|
|
|
|
- <template slot="title" v-if="isCombined && activeStep === 1">
|
|
|
|
|
- <span>填写处方内容(<span style="color: #409EFF;">西药处方</span>)</span>
|
|
|
|
|
|
|
+ <el-step>
|
|
|
|
|
+ <template slot="title" v-if="activeStep === 1">
|
|
|
|
|
+ <span>填写处方内容(<span :style="{ color: stepOneTypeColor }">{{ stepOneTypeName }}</span>)</span>
|
|
|
</template>
|
|
</template>
|
|
|
</el-step>
|
|
</el-step>
|
|
|
<el-step v-if="isCombined && secondPartActive" title="填写中药处方">
|
|
<el-step v-if="isCombined && secondPartActive" title="填写中药处方">
|
|
@@ -40,7 +40,6 @@
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<!-- 步骤2:处方内容(基本信息 + 药品信息) -->
|
|
<!-- 步骤2:处方内容(基本信息 + 药品信息) -->
|
|
|
- <!-- 编辑模式:按步骤显示;只读模式:直接显示所有内容(无步骤按钮) -->
|
|
|
|
|
<div v-if="!readonly && activeStep === 1">
|
|
<div v-if="!readonly && activeStep === 1">
|
|
|
<el-tabs v-model="activeTab" type="border-card">
|
|
<el-tabs v-model="activeTab" type="border-card">
|
|
|
<!-- 基本信息 -->
|
|
<!-- 基本信息 -->
|
|
@@ -82,7 +81,7 @@
|
|
|
</el-form>
|
|
</el-form>
|
|
|
</el-tab-pane>
|
|
</el-tab-pane>
|
|
|
|
|
|
|
|
- <!-- 处方药品信息 -->
|
|
|
|
|
|
|
+ <!-- 处方药品信息(西药) -->
|
|
|
<el-tab-pane label="处方药品信息" name="drug">
|
|
<el-tab-pane label="处方药品信息" name="drug">
|
|
|
<div class="drug-split-layout">
|
|
<div class="drug-split-layout">
|
|
|
<div class="drug-left-panel">
|
|
<div class="drug-left-panel">
|
|
@@ -116,16 +115,11 @@
|
|
|
<pagination v-show="drugTotal > 0" :total="drugTotal" :page.sync="drugQuery.pageNum" :limit.sync="drugQuery.pageSize" @pagination="getDrugList" />
|
|
<pagination v-show="drugTotal > 0" :total="drugTotal" :page.sync="drugQuery.pageNum" :limit.sync="drugQuery.pageSize" @pagination="getDrugList" />
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
- <!-- 右侧处方图片渲染 -->
|
|
|
|
|
|
|
+ <!-- 右侧西药处方预览(使用西药模板) -->
|
|
|
<div class="drug-right-panel">
|
|
<div class="drug-right-panel">
|
|
|
<div class="prescription-scroll-wrapper">
|
|
<div class="prescription-scroll-wrapper">
|
|
|
- <!-- 真实处方图片优先 -->
|
|
|
|
|
- <div v-if="prescribeForm.prescribeImgUrl" class="real-prescription-wrapper">
|
|
|
|
|
- <img :src="prescribeForm.prescribeImgUrl" class="prescription-image" alt="处方图片" />
|
|
|
|
|
- </div>
|
|
|
|
|
- <!-- 无真实图片时显示背景预览 -->
|
|
|
|
|
- <div v-else class="prescription-preview-container">
|
|
|
|
|
- <img src="/ysy_prescribe.jpg" class="prescription-bg-image" alt="处方背景" />
|
|
|
|
|
|
|
+ <div class="prescription-preview-container">
|
|
|
|
|
+ <img src="/ysy_prescribe_en.jpg" class="prescription-bg-image" alt="西药处方模板" />
|
|
|
<div class="prescription-overlay">
|
|
<div class="prescription-overlay">
|
|
|
<div class="prescribe-code">{{ prescribeForm.prescribeCode }}</div>
|
|
<div class="prescribe-code">{{ prescribeForm.prescribeCode }}</div>
|
|
|
<div class="patient-info">
|
|
<div class="patient-info">
|
|
@@ -158,10 +152,10 @@
|
|
|
<div class="drug-left-panel">
|
|
<div class="drug-left-panel">
|
|
|
<el-form label-width="80px">
|
|
<el-form label-width="80px">
|
|
|
<el-form-item label="诊断">
|
|
<el-form-item label="诊断">
|
|
|
- <el-input v-model="prescribeForm.diagnose" type="textarea" :rows="2" disabled />
|
|
|
|
|
|
|
+ <el-input v-model="prescribeForm.diagnoseChinese" type="textarea" :rows="2"/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="医嘱">
|
|
<el-form-item label="医嘱">
|
|
|
- <el-input v-model="prescribeForm.remark" type="textarea" :rows="2" disabled />
|
|
|
|
|
|
|
+ <el-input v-model="prescribeForm.remarkChinese" type="textarea" :rows="2"/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
<div class="drug-actions">
|
|
<div class="drug-actions">
|
|
@@ -186,7 +180,8 @@
|
|
|
<div class="drug-right-panel">
|
|
<div class="drug-right-panel">
|
|
|
<div class="prescription-scroll-wrapper">
|
|
<div class="prescription-scroll-wrapper">
|
|
|
<div class="prescription-preview-container">
|
|
<div class="prescription-preview-container">
|
|
|
- <img :src="prescribeForm.prescribeImgStoreUrl || '/ysy_prescribe.jpg'" class="prescription-bg-image" alt="处方背景" />
|
|
|
|
|
|
|
+ <!-- 中药模板 -->
|
|
|
|
|
+ <img src="/ysy_prescribe_cn.jpg" class="prescription-bg-image" alt="中药处方模板" />
|
|
|
<div class="prescription-overlay">
|
|
<div class="prescription-overlay">
|
|
|
<div class="prescribe-code">{{ prescribeForm.prescribeCode }}</div>
|
|
<div class="prescribe-code">{{ prescribeForm.prescribeCode }}</div>
|
|
|
<div class="patient-info">
|
|
<div class="patient-info">
|
|
@@ -194,14 +189,14 @@
|
|
|
<div class="prescribe-patientGender">{{ patientGenderText }}</div>
|
|
<div class="prescribe-patientGender">{{ patientGenderText }}</div>
|
|
|
<div class="prescribe-patientAge">{{ prescribeForm.patientAge }}岁</div>
|
|
<div class="prescribe-patientAge">{{ prescribeForm.patientAge }}岁</div>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="diagnose">{{ prescribeForm.diagnose }}</div>
|
|
|
|
|
|
|
+ <div class="diagnose">{{ prescribeForm.diagnoseChinese }}</div>
|
|
|
<div class="drugs">
|
|
<div class="drugs">
|
|
|
<div v-for="(drug, idx) in secondDrugList" :key="drug.drugId || idx" class="drug-item">
|
|
<div v-for="(drug, idx) in secondDrugList" :key="drug.drugId || idx" class="drug-item">
|
|
|
{{ drug.drugName }} {{ drug.drugSpec }}
|
|
{{ drug.drugName }} {{ drug.drugSpec }}
|
|
|
<span class="usage">用法:{{ drug.usageMethod }} {{ drug.usageFrequencyUnit }} {{ drug.usagePerUseCount }}{{ drug.usagePerUseUnit || '' }}</span>
|
|
<span class="usage">用法:{{ drug.usageMethod }} {{ drug.usageFrequencyUnit }} {{ drug.usagePerUseCount }}{{ drug.usagePerUseUnit || '' }}</span>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="remark">{{ prescribeForm.remark }}</div>
|
|
|
|
|
|
|
+ <div class="remark">{{ prescribeForm.remarkChinese }}</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
@@ -229,7 +224,7 @@
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
</el-tab-pane>
|
|
</el-tab-pane>
|
|
|
- <el-tab-pane label="处方药品信息" name="drug">
|
|
|
|
|
|
|
+ <el-tab-pane label="西药处方" name="drug">
|
|
|
<div class="drug-split-layout">
|
|
<div class="drug-split-layout">
|
|
|
<div class="drug-left-panel">
|
|
<div class="drug-left-panel">
|
|
|
<el-form label-width="80px">
|
|
<el-form label-width="80px">
|
|
@@ -245,13 +240,9 @@
|
|
|
</el-table>
|
|
</el-table>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="drug-right-panel">
|
|
<div class="drug-right-panel">
|
|
|
- <!-- 处方图片展示 -->
|
|
|
|
|
<div class="prescription-scroll-wrapper">
|
|
<div class="prescription-scroll-wrapper">
|
|
|
- <div v-if="prescribeForm.prescribeImgUrl" class="real-prescription-wrapper">
|
|
|
|
|
- <img :src="prescribeForm.prescribeImgUrl" class="prescription-image" alt="处方图片" />
|
|
|
|
|
- </div>
|
|
|
|
|
- <div v-else class="prescription-preview-container">
|
|
|
|
|
- <img src="/ysy_prescribe.jpg" class="prescription-bg-image" alt="处方背景" />
|
|
|
|
|
|
|
+ <div class="prescription-preview-container">
|
|
|
|
|
+ <img src="/ysy_prescribe_en.jpg" class="prescription-bg-image" alt="西药处方模板" />
|
|
|
<div class="prescription-overlay">
|
|
<div class="prescription-overlay">
|
|
|
<div class="prescribe-code">{{ prescribeForm.prescribeCode }}</div>
|
|
<div class="prescribe-code">{{ prescribeForm.prescribeCode }}</div>
|
|
|
<div class="patient-info">
|
|
<div class="patient-info">
|
|
@@ -278,8 +269,8 @@
|
|
|
<div class="drug-split-layout">
|
|
<div class="drug-split-layout">
|
|
|
<div class="drug-left-panel">
|
|
<div class="drug-left-panel">
|
|
|
<el-form label-width="80px">
|
|
<el-form label-width="80px">
|
|
|
- <el-form-item label="诊断">{{ prescribeForm.diagnose }}</el-form-item>
|
|
|
|
|
- <el-form-item label="医嘱">{{ prescribeForm.remark }}</el-form-item>
|
|
|
|
|
|
|
+ <el-form-item label="诊断">{{ prescribeForm.diagnoseChinese }}</el-form-item>
|
|
|
|
|
+ <el-form-item label="医嘱">{{ prescribeForm.remarkChinese }}</el-form-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
<el-table :data="secondDrugList" border stripe max-height="400">
|
|
<el-table :data="secondDrugList" border stripe max-height="400">
|
|
|
<el-table-column label="药品名称" prop="drugName" />
|
|
<el-table-column label="药品名称" prop="drugName" />
|
|
@@ -292,7 +283,7 @@
|
|
|
<div class="drug-right-panel">
|
|
<div class="drug-right-panel">
|
|
|
<div class="prescription-scroll-wrapper">
|
|
<div class="prescription-scroll-wrapper">
|
|
|
<div class="prescription-preview-container">
|
|
<div class="prescription-preview-container">
|
|
|
- <img :src="prescribeForm.prescribeImgStoreUrl || '/ysy_prescribe.jpg'" class="prescription-bg-image" alt="处方背景" />
|
|
|
|
|
|
|
+ <img src="/ysy_prescribe_cn.jpg" class="prescription-bg-image" alt="中药处方模板" />
|
|
|
<div class="prescription-overlay">
|
|
<div class="prescription-overlay">
|
|
|
<div class="prescribe-code">{{ prescribeForm.prescribeCode }}</div>
|
|
<div class="prescribe-code">{{ prescribeForm.prescribeCode }}</div>
|
|
|
<div class="patient-info">
|
|
<div class="patient-info">
|
|
@@ -300,14 +291,14 @@
|
|
|
<div class="prescribe-patientGender">{{ patientGenderText }}</div>
|
|
<div class="prescribe-patientGender">{{ patientGenderText }}</div>
|
|
|
<div class="prescribe-patientAge">{{ prescribeForm.patientAge }}岁</div>
|
|
<div class="prescribe-patientAge">{{ prescribeForm.patientAge }}岁</div>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="diagnose">{{ prescribeForm.diagnose }}</div>
|
|
|
|
|
|
|
+ <div class="diagnose">{{ prescribeForm.diagnoseChinese }}</div>
|
|
|
<div class="drugs">
|
|
<div class="drugs">
|
|
|
<div v-for="(drug, idx) in secondDrugList" :key="drug.drugId || idx" class="drug-item">
|
|
<div v-for="(drug, idx) in secondDrugList" :key="drug.drugId || idx" class="drug-item">
|
|
|
{{ drug.drugName }} {{ drug.drugSpec }}
|
|
{{ drug.drugName }} {{ drug.drugSpec }}
|
|
|
<span class="usage">用法:{{ drug.usageMethod }} {{ drug.usageFrequencyUnit }} {{ drug.usagePerUseCount }}{{ drug.usagePerUseUnit || '' }}</span>
|
|
<span class="usage">用法:{{ drug.usageMethod }} {{ drug.usageFrequencyUnit }} {{ drug.usagePerUseCount }}{{ drug.usagePerUseUnit || '' }}</span>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="remark">{{ prescribeForm.remark }}</div>
|
|
|
|
|
|
|
+ <div class="remark">{{ prescribeForm.remarkChinese }}</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
@@ -410,11 +401,12 @@ export default {
|
|
|
historyAllergic: '',
|
|
historyAllergic: '',
|
|
|
diagnose: '',
|
|
diagnose: '',
|
|
|
remark: '',
|
|
remark: '',
|
|
|
|
|
+ diagnoseChinese: '',
|
|
|
|
|
+ remarkChinese: '',
|
|
|
prescribeCode: '',
|
|
prescribeCode: '',
|
|
|
userId: null,
|
|
userId: null,
|
|
|
thirdPartyUserId: null,
|
|
thirdPartyUserId: null,
|
|
|
- prescribeImgUrl: '',
|
|
|
|
|
- prescribeImgStoreUrl: ''
|
|
|
|
|
|
|
+ prescribeType: null,
|
|
|
},
|
|
},
|
|
|
basicRules: {
|
|
basicRules: {
|
|
|
patientName: [{ required: true, message: '请输入患者姓名', trigger: 'blur' }],
|
|
patientName: [{ required: true, message: '请输入患者姓名', trigger: 'blur' }],
|
|
@@ -423,8 +415,10 @@ export default {
|
|
|
isHistoryAllergic: [{ required: true, message: '请选择是否有过敏史', trigger: 'change' }]
|
|
isHistoryAllergic: [{ required: true, message: '请选择是否有过敏史', trigger: 'change' }]
|
|
|
},
|
|
},
|
|
|
drugRules: {
|
|
drugRules: {
|
|
|
- diagnose: [{ required: true, message: '请输入诊断', trigger: 'blur' }],
|
|
|
|
|
- remark: [{ required: true, message: '请输入医嘱', trigger: 'blur' }]
|
|
|
|
|
|
|
+ diagnose: [{ required: true, message: '请输入西药诊断', trigger: 'blur' }],
|
|
|
|
|
+ remark: [{ required: true, message: '请输入西药医嘱', trigger: 'blur' }],
|
|
|
|
|
+ diagnoseChinese: [{ required: true, message: '请输入中药诊断', trigger: 'blur' }],
|
|
|
|
|
+ remarkChinese: [{ required: true, message: '请输入中药医嘱', trigger: 'blur' }]
|
|
|
},
|
|
},
|
|
|
drugList: [],
|
|
drugList: [],
|
|
|
drugTotal: 0,
|
|
drugTotal: 0,
|
|
@@ -458,6 +452,16 @@ export default {
|
|
|
},
|
|
},
|
|
|
dialogTitle() {
|
|
dialogTitle() {
|
|
|
return this.readonly ? "查看处方" : "医生开方";
|
|
return this.readonly ? "查看处方" : "医生开方";
|
|
|
|
|
+ },
|
|
|
|
|
+ stepOneTypeName() {
|
|
|
|
|
+ if (this.selectedPrescribeType === 1 || this.selectedPrescribeType === 3) return '西药处方';
|
|
|
|
|
+ if (this.selectedPrescribeType === 2) return '中药处方';
|
|
|
|
|
+ return '';
|
|
|
|
|
+ },
|
|
|
|
|
+ stepOneTypeColor() {
|
|
|
|
|
+ if (this.selectedPrescribeType === 1 || this.selectedPrescribeType === 3) return '#409EFF';
|
|
|
|
|
+ if (this.selectedPrescribeType === 2) return '#67C23A';
|
|
|
|
|
+ return '';
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
watch: {
|
|
watch: {
|
|
@@ -479,6 +483,7 @@ export default {
|
|
|
const data = res.data;
|
|
const data = res.data;
|
|
|
this.prescribeForm = {
|
|
this.prescribeForm = {
|
|
|
prescribeId: data.prescribeId,
|
|
prescribeId: data.prescribeId,
|
|
|
|
|
+ prescribeType: data.prescribeType,
|
|
|
patientName: data.patientName || '',
|
|
patientName: data.patientName || '',
|
|
|
patientAge: data.patientAge || '',
|
|
patientAge: data.patientAge || '',
|
|
|
patientGender: data.patientGender !== undefined ? data.patientGender : null,
|
|
patientGender: data.patientGender !== undefined ? data.patientGender : null,
|
|
@@ -486,11 +491,11 @@ export default {
|
|
|
historyAllergic: data.historyAllergic || '',
|
|
historyAllergic: data.historyAllergic || '',
|
|
|
diagnose: data.diagnose || '',
|
|
diagnose: data.diagnose || '',
|
|
|
remark: data.remark || '',
|
|
remark: data.remark || '',
|
|
|
|
|
+ diagnoseChinese: data.diagnoseChinese || '',
|
|
|
|
|
+ remarkChinese: data.remarkChinese || '',
|
|
|
prescribeCode: data.prescribeCode || '',
|
|
prescribeCode: data.prescribeCode || '',
|
|
|
userId: data.userId,
|
|
userId: data.userId,
|
|
|
thirdPartyUserId: data.thirdPartyUserId,
|
|
thirdPartyUserId: data.thirdPartyUserId,
|
|
|
- prescribeImgUrl: data.prescribeImgUrl,
|
|
|
|
|
- prescribeImgStoreUrl: data.prescribeImgStoreUrl
|
|
|
|
|
};
|
|
};
|
|
|
if (data.prescribeType) {
|
|
if (data.prescribeType) {
|
|
|
this.selectedPrescribeType = data.prescribeType;
|
|
this.selectedPrescribeType = data.prescribeType;
|
|
@@ -610,6 +615,7 @@ export default {
|
|
|
try {
|
|
try {
|
|
|
await submitBasicInfo(this.prescribeId, {
|
|
await submitBasicInfo(this.prescribeId, {
|
|
|
diagnose: this.prescribeForm.diagnose,
|
|
diagnose: this.prescribeForm.diagnose,
|
|
|
|
|
+ prescribeType: this.prescribeForm.prescribeType,
|
|
|
remark: this.prescribeForm.remark,
|
|
remark: this.prescribeForm.remark,
|
|
|
isHistoryAllergic: this.prescribeForm.isHistoryAllergic,
|
|
isHistoryAllergic: this.prescribeForm.isHistoryAllergic,
|
|
|
historyAllergic: this.prescribeForm.historyAllergic
|
|
historyAllergic: this.prescribeForm.historyAllergic
|
|
@@ -781,8 +787,10 @@ export default {
|
|
|
patientGender: this.prescribeForm.patientGender,
|
|
patientGender: this.prescribeForm.patientGender,
|
|
|
isHistoryAllergic: this.prescribeForm.isHistoryAllergic,
|
|
isHistoryAllergic: this.prescribeForm.isHistoryAllergic,
|
|
|
historyAllergic: this.prescribeForm.historyAllergic,
|
|
historyAllergic: this.prescribeForm.historyAllergic,
|
|
|
- diagnose: this.prescribeForm.diagnose,
|
|
|
|
|
- remark: this.prescribeForm.remark
|
|
|
|
|
|
|
+ diagnose: this.prescribeForm.diagnose, // 西医
|
|
|
|
|
+ remark: this.prescribeForm.remark, // 西医
|
|
|
|
|
+ diagnoseChinese: this.prescribeForm.diagnoseChinese, // 中医
|
|
|
|
|
+ remarkChinese: this.prescribeForm.remarkChinese // 中医
|
|
|
};
|
|
};
|
|
|
if (this.isCombined) {
|
|
if (this.isCombined) {
|
|
|
params.mapDrugs = {
|
|
params.mapDrugs = {
|
|
@@ -805,6 +813,17 @@ export default {
|
|
|
handleClose() {
|
|
handleClose() {
|
|
|
this.dialogVisible = false;
|
|
this.dialogVisible = false;
|
|
|
this.$emit('update:visible', false);
|
|
this.$emit('update:visible', false);
|
|
|
|
|
+ },
|
|
|
|
|
+ currentPrescribeTypeName() {
|
|
|
|
|
+ if (this.selectedPrescribeType === 1) return '西药处方';
|
|
|
|
|
+ if (this.selectedPrescribeType === 2) return '中药处方';
|
|
|
|
|
+ if (this.selectedPrescribeType === 3) return '西药处方'; // 组合处方第一步显示西药
|
|
|
|
|
+ return '';
|
|
|
|
|
+ },
|
|
|
|
|
+ currentPrescribeTypeColor() {
|
|
|
|
|
+ if (this.selectedPrescribeType === 1 || this.selectedPrescribeType === 3) return '#409EFF';
|
|
|
|
|
+ if (this.selectedPrescribeType === 2) return '#67C23A';
|
|
|
|
|
+ return '';
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|