import { defineStore } from 'pinia' import { ref } from 'vue' const liquidItem: Liquid.LiquidData = { nowLiquid: 840, workState: 'idle', workStateDisplay: '空闲', } /** * 液体管理模块状态仓库 * @module useLiquidStore */ export const useLiquidStore = defineStore('Liquid', () => { // 状态定义 const liquidAddWorkState = ref(liquidItem) const liquidDrainWorkState = ref(liquidItem) const liquidStateData = ref(liquidItem) const liquidTotal = ref(2500) const liquidPeriod = ref(300) const inputedStopatg = ref(0) /** * @function updateAddLiquidWorkState * @param {Liquid.LiquidData} item - 加液工作状态数据 * @desc 更新加液工作状态并同步到总状态 */ const updateAddLiquidWorkState = (item: Liquid.LiquidData) => { liquidAddWorkState.value = item liquidStateData.value = item } /** * @function updateDrainLiquidWorkState * @param {Liquid.LiquidData} item - 排液工作状态数据 * @desc 更新排液工作状态并同步到总状态 */ const updateDrainLiquidWorkState = (item: Liquid.LiquidData) => { liquidDrainWorkState.value = item liquidStateData.value = item } /** * @function updateLiquidState * @param {Liquid.LiquidData} liquidInfo - 液体状态信息 * @desc 直接更新液体总体状态 */ const updateLiquidState = (liquidInfo: Liquid.LiquidData) => { liquidStateData.value = liquidInfo } /** * @function initLiquidConfig * @param {Liquid.LiquidConfig} liquidConfig - 液体配置信息 * @desc 初始化液体配置参数(总容量和更新周期) */ const initLiquidConfig = async (liquidConfig: Liquid.LiquidConfig) => { liquidTotal.value = liquidConfig.maxLiquid liquidPeriod.value = liquidConfig.updatePeriod } const updateinputedStopatg = (inputVal: number) => { inputedStopatg.value = inputVal } return { // 状态属性 liquidAddWorkState, liquidDrainWorkState, liquidTotal, liquidPeriod, liquidStateData, inputedStopatg, // 操作方法 updateAddLiquidWorkState, updateDrainLiquidWorkState, initLiquidConfig, updateLiquidState, updateinputedStopatg, } })