实现药品目录处方标志保存
This commit is contained in:
@@ -1,5 +1,14 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 药品字典映射,包含支持'否'、'是'和'双跨'的处方标志选项
|
||||
export const medicineDictMap = {
|
||||
rx_flag: [
|
||||
{ label: '否', value: '0' }, // 非处方药
|
||||
{ label: '是', value: '1' }, // 处方药
|
||||
{ label: '双跨', value: '2' } // 双跨药品
|
||||
]
|
||||
};
|
||||
|
||||
// 查询药品目录列表
|
||||
export function getMedicationList(query) {
|
||||
return request({
|
||||
@@ -106,3 +115,5 @@ export function queryYbCatalogue(queryParams) {
|
||||
method: 'post',
|
||||
})
|
||||
}
|
||||
|
||||
// 药品字典配置已在文件开头声明
|
||||
|
||||
@@ -567,6 +567,7 @@ import { deptTreeSelect, locationTreeSelect } from './medicine';
|
||||
import moment from 'moment';
|
||||
|
||||
const router = useRouter();
|
||||
import { medicineDictMap } from './medicine'
|
||||
const { proxy } = getCurrentInstance();
|
||||
const {
|
||||
med_category_code,
|
||||
@@ -600,6 +601,28 @@ const {
|
||||
'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 visible = ref(false);
|
||||
const emits = defineEmits(['submit']); // 声明自定义事件
|
||||
@@ -809,13 +832,13 @@ function setValue(row) {
|
||||
manufacturerText: formatValue(row.manufacturerName), // 生产厂家
|
||||
// supplyId: row., // 供应商
|
||||
basicFlag: formatValue(row.essentialDrugFlag), // 基药标识
|
||||
// injectFlag: row., // 注射药品
|
||||
// injectFlag: row., // 注射药物
|
||||
// childrenFlag: row.pediatricUse, // 儿童用药标志
|
||||
// selfFlag: row., // 自制药标识
|
||||
// activeFlag: row., // 是否活性
|
||||
restrictedFlag: formatValue(row.restrictedFlag), // 限制使用
|
||||
restrictedScope: formatValue(row.restrictedScope), // 限制使用范围
|
||||
rxFlag: formatValue(row.otcFlag), // 处方标志
|
||||
rxFlag: formatValue(row.rxFlag), // 处方标志
|
||||
chrgitmLv: formatValue(
|
||||
row.insuranceClass == '甲' ? '1' : row.insuranceClass == '乙' ? '2' : '3'
|
||||
), // 医保等级
|
||||
@@ -879,16 +902,30 @@ function setFlag(data) {
|
||||
data.antibioticFlag == 1 ? (data.antibioticFlag = true) : (data.antibioticFlag = false); //抗生素
|
||||
data.selfFlag == 1 ? (data.selfFlag = true) : (data.selfFlag = 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() {
|
||||
form.value = {
|
||||
id: undefined,
|
||||
medicationDefId: undefined,
|
||||
// orgId: undefined,
|
||||
locationId: undefined,
|
||||
activeFlag: undefined,
|
||||
doseFrom: undefined,
|
||||
medicineCode: '',
|
||||
medicineName: '',
|
||||
tradeName: '',
|
||||
spec: '',
|
||||
manufacturer: '',
|
||||
rxFlag: '0', // 默认设置为非处方
|
||||
dose: undefined,
|
||||
rateCode: undefined,
|
||||
approvalNumber: undefined,
|
||||
name: undefined,
|
||||
@@ -937,24 +974,22 @@ function reset() {
|
||||
thoPartAttributeEnum: undefined,
|
||||
usageLimit: undefined,
|
||||
basicFlag: undefined,
|
||||
rxFlag: undefined,
|
||||
rxFlag: '0', // 默认非处方药品
|
||||
chrgitmLv: undefined,
|
||||
};
|
||||
proxy.resetForm('medicationRef');
|
||||
antibioticForm.value = {
|
||||
antibioticCode: undefined,
|
||||
restrictedEnum: undefined,
|
||||
dose: undefined,
|
||||
maxUnit: undefined,
|
||||
minRateCode: undefined,
|
||||
maxRateCode: undefined,
|
||||
dddUnitCode: undefined,
|
||||
dddCode: undefined,
|
||||
minRateCode: undefined,
|
||||
maxRateCode: undefined,
|
||||
};
|
||||
proxy.resetForm('antibioticRef');
|
||||
}
|
||||
/** 提交按钮 */
|
||||
// 提交按钮
|
||||
function submitForm() {
|
||||
// 布尔值标志转换为数字
|
||||
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.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.antibioticFlag == true
|
||||
? (form.value.antibioticFlag = 1)
|
||||
: (form.value.antibioticFlag = 0); //抗生素标志v
|
||||
form.value.basicFlag == true ? (form.value.basicFlag = 1) : (form.value.basicFlag = 0); //抗生素标志
|
||||
: (form.value.antibioticFlag = 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.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) => {
|
||||
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.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.maxRateCode = antibioticForm.value.maxRateCode;
|
||||
form.value.dddUnitCode = antibioticForm.value.dddUnitCode;
|
||||
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);
|
||||
// visible.value = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user