diff --git a/.env.pro b/.env.pro
index 38347b0..1da7f70 100644
--- a/.env.pro
+++ b/.env.pro
@@ -1,6 +1,7 @@
-VITE_TCB_PATH = "zytHlwHospital"
+VITE_TCB_PATH = "hlwyy"
VITE_NEED_LOGIN = "true"
VITE_NEED_IM = "true"
VITE_NEED_CA = "true"
VITE_CORP_ID = "4G7H8J2K9L0M1N3P5Q6R7S8T9U"
-VITE_API_URL = "https://hlw.zytzymz.com"
\ No newline at end of file
+VITE_API_URL = "https://hlwyy.hnkhhospital.com"
+VITE_STORE_QRCODE_BASE="https://hlwyy.hnkhhospital.com/hlwyy/hnhlw?type=store&storeId="
diff --git a/src/router/ykt.js b/src/router/ykt.js
index 4335dc2..beabf03 100644
--- a/src/router/ykt.js
+++ b/src/router/ykt.js
@@ -60,4 +60,13 @@ export default [
title: "账户管理",
},
},
+ {
+ name: "DEPTMANAGE",
+ path: "/DEPTMANAGE",
+ component: () => import("../views/dept-manage/dept-manage"),
+ meta: {
+ keepAlive: false,
+ title: "科室管理",
+ },
+ }
];
diff --git a/src/store/medicine-info.js b/src/store/medicine-info.js
index e3dd266..85d9ff5 100644
--- a/src/store/medicine-info.js
+++ b/src/store/medicine-info.js
@@ -35,6 +35,7 @@ export default defineStore("medicineConfigStore", () => {
usageList: medicineConfigGroup.value['store-medicine-administration'] || [],
unitList: medicineConfigGroup.value['medicine-package-unit'] || [],
dosageFormList: medicineConfigGroup.value['medicine-dosage-form'] || [], // 药品剂型
+ useTimeList: medicineConfigGroup.value['medicine-use-time'] || [], // 用药时机
}))
diff --git a/src/views/dept-manage/change-dept-modal.vue b/src/views/dept-manage/change-dept-modal.vue
new file mode 100644
index 0000000..b5e6c6c
--- /dev/null
+++ b/src/views/dept-manage/change-dept-modal.vue
@@ -0,0 +1,77 @@
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dept-manage/dept-manage.vue b/src/views/dept-manage/dept-manage.vue
new file mode 100644
index 0000000..db4aa51
--- /dev/null
+++ b/src/views/dept-manage/dept-manage.vue
@@ -0,0 +1,168 @@
+
+
+
+
+
+
+ {{ current.label }}
+
+
+
+ 科室人员
+
+
+
+
+ 科室详情
+
+
+
+
+
+
+
+
+
+
+
+ {{ jobMap[row.job] || '' }}
+
+
+
+
+
+
+ 修改科室
+ 移除
+
+
+
+
+
+
+
+ {{ currentDept.deptName }}
+ {{ currentDept.deptId }}
+ {{ currentDept.deptDesc }}
+
+ 编辑
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/dept-manage/dept-modal.vue b/src/views/dept-manage/dept-modal.vue
new file mode 100644
index 0000000..3773798
--- /dev/null
+++ b/src/views/dept-manage/dept-modal.vue
@@ -0,0 +1,110 @@
+
+
+
+
+
+ 在【{{dept.parentName}}】下方新增科室
+
+
+
+
+
+
+
+
科室ID可以为数字或者字母组合,请勿重复
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/hlw-drug-manage/drug-dict.js b/src/views/hlw-drug-manage/drug-dict.js
index d52db7d..798b8e1 100644
--- a/src/views/hlw-drug-manage/drug-dict.js
+++ b/src/views/hlw-drug-manage/drug-dict.js
@@ -23,6 +23,7 @@ export const drugFieldDict = [
{ name: '通用名拼音码', field: 'generic_pinyin', verify: (val, label) => verifyString(val, label) },
{ name: '抗生素级别', field: 'antibiotic_level', verify: (val, label) => verifyListItem(val, [0, 1, 2, 3], false, label, 0) },
{ name: '肿瘤使用', field: 'tumor_use', verify: (val, label) => verifyListItem(val, [0, 1, 2, 3], false, label, 0) },
+ { name: '风险等级', field: 'riskLevel', verify: (val, label) => verifyListItem(val, ['低风险', '高风险'], false, label) },
// 仅在线药品库使用:管理分类(处方药 / OTC)与剂型
{ name: '管理分类', field: 'manage_category', verify: (val, label) => verifyString(val, label) },
{ name: '剂型', field: 'dosage_form', required: true, verify: (val, label) => verifyString(val, label, 1) },
@@ -34,6 +35,7 @@ export const drugFieldDict = [
{ name: '给药标准方式', field: 'administration_method', verify: (val, label) => verifyListItem(val, usageList.map(i => i.name), false, label) },
{ name: '用药标准天数', field: 'days', verify: (val, label) => validateNumber(val, label) },
{ name: '发药标准数量', field: 'recommended_quantity', verify: (val, label) => validateNumber(val, label) },
+ { name: '用药时机', field: 'dose_time_name', required: true, libType: 'hlw', verify: (val, label) => verifyString(val, label, 1) },
// 在线药品库扩展说明字段:用药证明 / 使用限制说明
{ name: '用药证明', field: 'medication_proof_desc', verify: (val, label) => verifyString(val, label) },
{ name: '使用限制说明', field: 'usage_restriction_desc', verify: (val, label) => verifyString(val, label) },
diff --git a/src/views/hlw-drug-manage/drug-drawer.vue b/src/views/hlw-drug-manage/drug-drawer.vue
index 2d647ca..6b0a8fa 100644
--- a/src/views/hlw-drug-manage/drug-drawer.vue
+++ b/src/views/hlw-drug-manage/drug-drawer.vue
@@ -35,6 +35,15 @@
药品规则配置
+
+
+
+
+
+
+
+
@@ -115,6 +124,7 @@ const unitOptions = computed(() => getOptionNames(medicineUseInfo.value.unitList
const dosageFormList = computed(() => getOptionNames(medicineUseInfo.value.dosageFormList ||[]))
const frequencyOptions = computed(() => getOptionNames(medicineUseInfo.value.frequencyList))
const usageOptions = computed(() => getOptionNames(medicineUseInfo.value.usageList))
+const useTimeOptions = computed(() => getOptionNames(medicineUseInfo.value.useTimeList || []))
const antibioticLevelOptions = [
{ label: '0 (无)', value: 0 },
{ label: '1 (非限制使用级)', value: 1 },
@@ -178,6 +188,9 @@ const usageInfo = computed(() => [
{ label: '给药标准方式', prop: "administration_method", options: usageOptions.value },
{ label: '用药标准天数', prop: "days", maxlength: 100 },
{ label: '发药标准数量', prop: "recommended_quantity", maxlength: 100 },
+ ...(props.libType === 'hlw'
+ ? [{ label: '用药时机', prop: "dose_time_name", options: useTimeOptions.value }]
+ : []),
])
const suitableInfo = [
{ label: '适用性别', prop: 'suitableGender', options: [{ label: '通用', value: 'common' }, { label: '男', value: 'male' }, { label: '女', value: 'female' }] },
@@ -311,6 +324,7 @@ async function save() {
unit: unitOptions.value,
frequency: frequencyOptions.value,
administration_method: usageOptions.value,
+ dose_time_name: useTimeOptions.value,
});
if (drug.msgs.length) {
ElMessage.info(drug.msgs[0])
diff --git a/src/views/hlw-hospital/chat-home/diagnosis-drawer/diagnosis-drawer.vue b/src/views/hlw-hospital/chat-home/diagnosis-drawer/diagnosis-drawer.vue
index 1eeec88..900b5ce 100644
--- a/src/views/hlw-hospital/chat-home/diagnosis-drawer/diagnosis-drawer.vue
+++ b/src/views/hlw-hospital/chat-home/diagnosis-drawer/diagnosis-drawer.vue
@@ -237,6 +237,15 @@
+
+
+
+
+
+
+
+
@@ -328,6 +337,7 @@ const medicineUseInfo = computed(() => props.order.consultType === 'onlineMedici
const usageList = computed(() => medicineUseInfo.value.usageList)
const frequencyList = computed(() => medicineUseInfo.value.frequencyList)
const dosageUnitList = computed(() => medicineUseInfo.value.dosageUnitList)
+const useTimeList = computed(() => medicineUseInfo.value.useTimeList)
const unitList = computed(() => medicineUseInfo.value.unitList)
const getDrugsApi = computed(() => props.order.consultType === 'onlineMedicinePurchase' ? getOnlineDrugList : getDrugs);
@@ -554,6 +564,8 @@ function changeDrug(val, idx) {
item.specification = d.specification || '';
item.package_amount = d.package_amount
item.recommended_quantity = d.recommended_quantity;
+ const useTime = useTimeList.value.find(i => i.name === d.dose_time_name)
+ item.dose_time_name = useTime?.name || '';
// 新增:使用限制与用药证明描述,用于前端提示
item.usage_restriction_desc = d.usage_restriction_desc || '';
item.medication_proof_desc = d.medication_proof_desc || '';
@@ -577,6 +589,13 @@ function changeFrequency(val, idx) {
setCalculateTimer(idx)
}
+function changeUseTime(val, idx) {
+ const item = tabs.value[tabIndex.value].drugs[idx];
+ const doseTime = useTimeList.value.find(item => item.name === val);
+ item.dose_time_name = doseTime ? doseTime.name : '';
+ setCalculateTimer(idx)
+}
+
function changeDosageUnit(val, idx) {
const item = tabs.value[tabIndex.value].drugs[idx];
const dosageUnit = dosageUnitList.value.find(item => item.code === val);
@@ -633,6 +652,10 @@ async function verify(ignoreRepeat = false) {
ElMessage.info(`${i.drugName}: 给药方式无效`);
return;
}
+ if (!useTimeList.value.some(item => item.name === i.dose_time_name)) {
+ ElMessage.info(`${i.drugName}: 用药时机无效`);
+ return;
+ }
}
if (inappropriateDrugs.value.length) {
return showUnsuitDrug()
@@ -690,6 +713,7 @@ async function submit() {
usageCode: i.usageCode,
usageName: i.usageName,
package_amount: i.package_amount,
+ dose_time_name: i.dose_time_name,
recommended_quantity: i.recommended_quantity,
forceSelfPay: ['Y', 'N'].includes(i.forceSelfPay) ? i.forceSelfPay : 'N',
limitUsageScope: typeof i.usage_restriction_desc === 'string' && i.usage_restriction_desc.trim() ? 'Y' : 'N'
@@ -861,6 +885,8 @@ async function initWithOrder() {
const dosageUnit = dosageUnitList.value.find(i => i.name === cur.dosage_unit);
row.dosage_unit = dosageUnit ? dosageUnit.name : '';
row.dosage_unit_code = dosageUnit ? dosageUnit.code : '';
+ const useTime = useTimeList.value.find(i => i.name === cur.dose_time_name)
+ row.dose_time_name = useTime?.name || '';
row.specification = drug.specification || ''
row.package_amount = drug.package_amount
row.recommended_quantity = drug.recommended_quantity