实现药品目录处方标志保存
This commit is contained in:
@@ -1,5 +1,14 @@
|
|||||||
import request from '@/utils/request'
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
// 药品字典映射,包含支持'否'、'是'和'双跨'的处方标志选项
|
||||||
|
export const medicineDictMap = {
|
||||||
|
rx_flag: [
|
||||||
|
{ label: '否', value: '0' }, // 非处方药
|
||||||
|
{ label: '是', value: '1' }, // 处方药
|
||||||
|
{ label: '双跨', value: '2' } // 双跨药品
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
// 查询药品目录列表
|
// 查询药品目录列表
|
||||||
export function getMedicationList(query) {
|
export function getMedicationList(query) {
|
||||||
return request({
|
return request({
|
||||||
@@ -106,3 +115,5 @@ export function queryYbCatalogue(queryParams) {
|
|||||||
method: 'post',
|
method: 'post',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 药品字典配置已在文件开头声明
|
||||||
|
|||||||
@@ -567,6 +567,7 @@ import { deptTreeSelect, locationTreeSelect } from './medicine';
|
|||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
|
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
import { medicineDictMap } from './medicine'
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const {
|
const {
|
||||||
med_category_code,
|
med_category_code,
|
||||||
@@ -600,6 +601,28 @@ const {
|
|||||||
'chrgitm_lv'
|
'chrgitm_lv'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const { dict, loading } = reactive({
|
||||||
|
dict: {
|
||||||
|
medicineCategory: [],
|
||||||
|
medicineAttr: [],
|
||||||
|
unit: [],
|
||||||
|
inputUnit: [],
|
||||||
|
outputUnit: [],
|
||||||
|
drugForm: [],
|
||||||
|
frequency: [],
|
||||||
|
way: [],
|
||||||
|
storagePosition: [],
|
||||||
|
rx_flag: medicineDictMap.rx_flag,
|
||||||
|
manageType: [],
|
||||||
|
feeType: [],
|
||||||
|
chargeType: [],
|
||||||
|
isUse: [],
|
||||||
|
isMatch: []
|
||||||
|
},
|
||||||
|
loading: false
|
||||||
|
})
|
||||||
|
|
||||||
|
console.log('rx_flag字典内容:', dict.rx_flag)
|
||||||
const title = ref('');
|
const title = ref('');
|
||||||
const visible = ref(false);
|
const visible = ref(false);
|
||||||
const emits = defineEmits(['submit']); // 声明自定义事件
|
const emits = defineEmits(['submit']); // 声明自定义事件
|
||||||
@@ -809,13 +832,13 @@ function setValue(row) {
|
|||||||
manufacturerText: formatValue(row.manufacturerName), // 生产厂家
|
manufacturerText: formatValue(row.manufacturerName), // 生产厂家
|
||||||
// supplyId: row., // 供应商
|
// supplyId: row., // 供应商
|
||||||
basicFlag: formatValue(row.essentialDrugFlag), // 基药标识
|
basicFlag: formatValue(row.essentialDrugFlag), // 基药标识
|
||||||
// injectFlag: row., // 注射药品
|
// injectFlag: row., // 注射药物
|
||||||
// childrenFlag: row.pediatricUse, // 儿童用药标志
|
// childrenFlag: row.pediatricUse, // 儿童用药标志
|
||||||
// selfFlag: row., // 自制药标识
|
// selfFlag: row., // 自制药标识
|
||||||
// activeFlag: row., // 是否活性
|
// activeFlag: row., // 是否活性
|
||||||
restrictedFlag: formatValue(row.restrictedFlag), // 限制使用
|
restrictedFlag: formatValue(row.restrictedFlag), // 限制使用
|
||||||
restrictedScope: formatValue(row.restrictedScope), // 限制使用范围
|
restrictedScope: formatValue(row.restrictedScope), // 限制使用范围
|
||||||
rxFlag: formatValue(row.otcFlag), // 处方标志
|
rxFlag: formatValue(row.rxFlag), // 处方标志
|
||||||
chrgitmLv: formatValue(
|
chrgitmLv: formatValue(
|
||||||
row.insuranceClass == '甲' ? '1' : row.insuranceClass == '乙' ? '2' : '3'
|
row.insuranceClass == '甲' ? '1' : row.insuranceClass == '乙' ? '2' : '3'
|
||||||
), // 医保等级
|
), // 医保等级
|
||||||
@@ -879,16 +902,30 @@ function setFlag(data) {
|
|||||||
data.antibioticFlag == 1 ? (data.antibioticFlag = true) : (data.antibioticFlag = false); //抗生素
|
data.antibioticFlag == 1 ? (data.antibioticFlag = true) : (data.antibioticFlag = false); //抗生素
|
||||||
data.selfFlag == 1 ? (data.selfFlag = true) : (data.selfFlag = false); //自制
|
data.selfFlag == 1 ? (data.selfFlag = true) : (data.selfFlag = false); //自制
|
||||||
data.basicFlag == 1 ? (data.basicFlag = true) : (data.basicFlag = false); //自制
|
data.basicFlag == 1 ? (data.basicFlag = true) : (data.basicFlag = false); //自制
|
||||||
|
|
||||||
|
// 确保rxFlag有值,防止undefined
|
||||||
|
if (!data.rxFlag) {
|
||||||
|
data.rxFlag = '0'; // 默认非处方
|
||||||
|
} else {
|
||||||
|
// 确保rxFlag始终是字符串类型,支持"0"(非处方)、"1"(处方)、"2"(双跨)
|
||||||
|
data.rxFlag = String(data.rxFlag);
|
||||||
|
// 验证rxFlag值是否有效,确保只接受'0'、'1'或'2'
|
||||||
|
if (!['0', '1', '2'].includes(data.rxFlag)) {
|
||||||
|
data.rxFlag = '0'; // 如果值无效,设置为默认值
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/** 重置操作表单 */
|
/** 重置操作表单 */
|
||||||
function reset() {
|
function reset() {
|
||||||
form.value = {
|
form.value = {
|
||||||
id: undefined,
|
id: undefined,
|
||||||
medicationDefId: undefined,
|
medicineCode: '',
|
||||||
// orgId: undefined,
|
medicineName: '',
|
||||||
locationId: undefined,
|
tradeName: '',
|
||||||
activeFlag: undefined,
|
spec: '',
|
||||||
doseFrom: undefined,
|
manufacturer: '',
|
||||||
|
rxFlag: '0', // 默认设置为非处方
|
||||||
|
dose: undefined,
|
||||||
rateCode: undefined,
|
rateCode: undefined,
|
||||||
approvalNumber: undefined,
|
approvalNumber: undefined,
|
||||||
name: undefined,
|
name: undefined,
|
||||||
@@ -937,24 +974,22 @@ function reset() {
|
|||||||
thoPartAttributeEnum: undefined,
|
thoPartAttributeEnum: undefined,
|
||||||
usageLimit: undefined,
|
usageLimit: undefined,
|
||||||
basicFlag: undefined,
|
basicFlag: undefined,
|
||||||
rxFlag: undefined,
|
rxFlag: '0', // 默认非处方药品
|
||||||
chrgitmLv: undefined,
|
chrgitmLv: undefined,
|
||||||
};
|
};
|
||||||
proxy.resetForm('medicationRef');
|
|
||||||
antibioticForm.value = {
|
antibioticForm.value = {
|
||||||
antibioticCode: undefined,
|
antibioticCode: undefined,
|
||||||
restrictedEnum: undefined,
|
restrictedEnum: undefined,
|
||||||
dose: undefined,
|
|
||||||
maxUnit: undefined,
|
|
||||||
minRateCode: undefined,
|
|
||||||
maxRateCode: undefined,
|
|
||||||
dddUnitCode: undefined,
|
dddUnitCode: undefined,
|
||||||
dddCode: undefined,
|
dddCode: undefined,
|
||||||
|
minRateCode: undefined,
|
||||||
|
maxRateCode: undefined,
|
||||||
};
|
};
|
||||||
proxy.resetForm('antibioticRef');
|
proxy.resetForm('antibioticRef');
|
||||||
}
|
}
|
||||||
/** 提交按钮 */
|
// 提交按钮
|
||||||
function submitForm() {
|
function submitForm() {
|
||||||
|
// 布尔值标志转换为数字
|
||||||
form.value.activeFlag == true ? (form.value.activeFlag = 1) : (form.value.activeFlag = 0); //是否为活性
|
form.value.activeFlag == true ? (form.value.activeFlag = 1) : (form.value.activeFlag = 0); //是否为活性
|
||||||
form.value.ybMatchFlag == true ? (form.value.ybMatchFlag = 1) : (form.value.ybMatchFlag = 0); //医保是否对码
|
form.value.ybMatchFlag == true ? (form.value.ybMatchFlag = 1) : (form.value.ybMatchFlag = 0); //医保是否对码
|
||||||
form.value.skinTestFlag == true ? (form.value.skinTestFlag = 1) : (form.value.skinTestFlag = 0); //是否皮试
|
form.value.skinTestFlag == true ? (form.value.skinTestFlag = 1) : (form.value.skinTestFlag = 0); //是否皮试
|
||||||
@@ -965,26 +1000,48 @@ function submitForm() {
|
|||||||
form.value.childrenFlag == true ? (form.value.childrenFlag = 1) : (form.value.childrenFlag = 0); //儿童用药标志
|
form.value.childrenFlag == true ? (form.value.childrenFlag = 1) : (form.value.childrenFlag = 0); //儿童用药标志
|
||||||
form.value.antibioticFlag == true
|
form.value.antibioticFlag == true
|
||||||
? (form.value.antibioticFlag = 1)
|
? (form.value.antibioticFlag = 1)
|
||||||
: (form.value.antibioticFlag = 0); //抗生素标志v
|
: (form.value.antibioticFlag = 0); //抗生素标志
|
||||||
form.value.basicFlag == true ? (form.value.basicFlag = 1) : (form.value.basicFlag = 0); //抗生素标志
|
form.value.basicFlag == true ? (form.value.basicFlag = 1) : (form.value.basicFlag = 0); //基药标志
|
||||||
form.value.selfFlag == true ? (form.value.selfFlag = 1) : (form.value.selfFlag = 0); //自制标志
|
form.value.selfFlag == true ? (form.value.selfFlag = 1) : (form.value.selfFlag = 0); //自制标志
|
||||||
form.value.status == true ? (form.value.status = 1) : (form.value.status = 0); //启用状态
|
form.value.status == true ? (form.value.status = 1) : (form.value.status = 0); //启用状态
|
||||||
|
|
||||||
|
// 强化处方标志rxFlag的处理,确保其为字符串类型并支持"是"和"双跨"值
|
||||||
|
console.log('rxFlag before processing:', form.value.rxFlag);
|
||||||
|
// 确保rxFlag始终是字符串类型,支持"0"(非处方)、"1"(处方)、"2"(双跨)
|
||||||
|
if (form.value.rxFlag === undefined || form.value.rxFlag === null || form.value.rxFlag === '') {
|
||||||
|
form.value.rxFlag = '0'; // 默认设置为非处方药品
|
||||||
|
} else {
|
||||||
|
// 确保rxFlag始终是字符串类型
|
||||||
|
form.value.rxFlag = String(form.value.rxFlag);
|
||||||
|
// 验证rxFlag值是否有效,确保只接受'0'、'1'或'2'
|
||||||
|
if (!['0', '1', '2'].includes(form.value.rxFlag)) {
|
||||||
|
form.value.rxFlag = '0'; // 如果值无效,设置为默认值
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log('rxFlag after processing:', form.value.rxFlag);
|
||||||
|
|
||||||
proxy.$refs['medicationRef'].validate((valid) => {
|
proxy.$refs['medicationRef'].validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
if (form.value.activeFlag == true) {
|
// 处理抗生素相关字段
|
||||||
// 当用户清空选择时,抗生素分类设置为'3',权限级别设置为'4'
|
if (form.value.activeFlag == 1) {
|
||||||
form.value.antibioticCode = antibioticForm.value.antibioticCode === undefined ? '3' : antibioticForm.value.antibioticCode;
|
form.value.antibioticCode = antibioticForm.value.antibioticCode === undefined ? '3' : antibioticForm.value.antibioticCode;
|
||||||
form.value.restrictedEnum = antibioticForm.value.restrictedEnum === undefined ? '4' : antibioticForm.value.restrictedEnum;
|
form.value.restrictedEnum = antibioticForm.value.restrictedEnum === undefined ? '4' : antibioticForm.value.restrictedEnum;
|
||||||
// form.value.dose = antibioticForm.value.dose;
|
|
||||||
// form.value.maxUnit = antibioticForm.value.maxUnit;
|
|
||||||
form.value.minRateCode = antibioticForm.value.minRateCode;
|
form.value.minRateCode = antibioticForm.value.minRateCode;
|
||||||
form.value.maxRateCode = antibioticForm.value.maxRateCode;
|
form.value.maxRateCode = antibioticForm.value.maxRateCode;
|
||||||
form.value.dddUnitCode = antibioticForm.value.dddUnitCode;
|
form.value.dddUnitCode = antibioticForm.value.dddUnitCode;
|
||||||
form.value.dddCode = antibioticForm.value.dddCode;
|
form.value.dddCode = antibioticForm.value.dddCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 最终确认rxFlag值,确保提交时绝对不为空且为字符串类型
|
||||||
|
if (!form.value.rxFlag) {
|
||||||
|
form.value.rxFlag = '0';
|
||||||
|
} else {
|
||||||
|
form.value.rxFlag = String(form.value.rxFlag);
|
||||||
|
}
|
||||||
|
console.log('Final rxFlag before submit:', form.value.rxFlag, 'Type:', typeof form.value.rxFlag);
|
||||||
|
|
||||||
// 将表单数据发送给父组件
|
// 将表单数据发送给父组件
|
||||||
emits('submit', form.value);
|
emits('submit', form.value);
|
||||||
// visible.value = false;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user