2026-09-10 09:05:06 +08:00

74 lines
2.7 KiB
JavaScript

import { computed, ref } from "vue";
import { defineStore } from "pinia";
import { getHlwConfigByCorpIds } from '@/utils/api'
import { toast } from "@/utils/widget";
const corpId = process.env.CORP_ID;
/**
* @description 药品相关配置说明
* @switch key
* @case online-medicine-purchase-unit 线上购药-药品用药单位
* @case online-medicine-purchase-frequency 线上购药-药品用药频次
* @case online-medicine-purchase-administration 线上购药-药品用药途径
* @case online-consult-administration 在线咨询-药品用药途径(震元线上咨询在线下门店购药使用)
* @case online-consult-frequence 在线咨询-药品用药频次(震元线上咨询在线下门店购药使用)
* @case online-consult-unit 在线咨询-药品 包装单位(震元线上咨询在线下门店购药使用)
*/
export default defineStore("dbStore", () => {
const medicineConfigGroup = ref({});
//线上购药 单次剂量单位 用药频次 用药途径 包装单位
const onlineMedicine = computed(() => ({
frequencyList: medicineConfigGroup.value['online-medicine-frequence'] || [],
usageList: medicineConfigGroup.value['online-medicine-administration'] || [],
timeList: medicineConfigGroup.value['medicine-use-time'] || [],
}))
//门店药品 单次剂量单位 用药频次 用药途径 包装单位
const storeMedicine = computed(() => ({
frequencyList: medicineConfigGroup.value['store-medicine-frequence'] || [],
usageList: medicineConfigGroup.value['store-medicine-administration'] || [],
timeList: medicineConfigGroup.value['medicine-use-time'] || [],
}))
async function getMedicineConfigGroup() {
const corpIds = [
// `${corpId}-online-medicine-frequence`,
// `${corpId}-online-medicine-administration`,
`${corpId}-store-medicine-frequence`,
`${corpId}-store-medicine-administration`,
`${corpId}-store-medicine-use-time`,
];
const res = await getHlwConfigByCorpIds(corpIds);
if (res && res.success && Array.isArray(res.data)) {
res.data.forEach(item => {
if (item.key && Array.isArray(item.list)) {
medicineConfigGroup.value[item.key] = item.list;
}
})
}
}
async function attachMedicineConfig() {
try {
if (Object.keys(medicineConfigGroup.value).length) return;
for (let i = 1; i <= 5; i++) {
await getMedicineConfigGroup();
if (Object.keys(medicineConfigGroup.value).length) return;
await new Promise(resolve => setTimeout(resolve, 500 + i * 200));
}
} catch (e) {
console.log(e)
}
toast('药品相关配置获取失败,请稍后再试!')
}
return {
onlineMedicine,
storeMedicine,
attachMedicineConfig,
}
});