import { defineStore } from "pinia"; /** * 在小数绘图的图生文功能中 * 用户需要先上传一张图片,然后发布一段文字,询问上传的图片的一些信息 * 当用户上传一张图片后,如果不发布文字,继续上传图片,则会引起功能异常 * 为了避免用户连续上传图片,而不发布文字,特意做限制: * 用户在上传一张图片后,必须发送一段文本,否则不能继续上传图片 * 此store的定义,就是为了处理该场景 * img_upload_status 表示图片上传的状态 0 表示图片未上传 1 表示图片已上传 * msg_send_status 表示文字发送的状态 0 表示文字未发送 1 表示文字已发送 * * 当用户上传一张图片后,应将 img_upload_status 设置为 1,且将 msg_send_status 设置为0 * 当用户发送一段文字后,应将 msg_send_status 设置为 1,且将 img_upload_status 设置为 0 * * 在上传图片的位置,应检查 img_upload_status 和 msg_send_status 的值,如果 img_upload_status === 1 但是 msg_send_status === 0,则图片上传功能不可用 */ const useImageUploadStatus = defineStore("imageUploadStatus", { state: () => ({ img_upload_status: 0, msg_send_status: 0 }), getters: { uploadStatus(state) { return state.img_upload_status; }, messageStatus(state) { return state.msg_send_status; }, /** * 是否允许继续上传图片 * @param state * @returns */ canUploadContinue(state) { return state.img_upload_status === 0; } }, actions: { /** * 图片已上传 */ uploadFinish() { this.img_upload_status = 1; this.msg_send_status = 0; }, /** * 文本消息已发送 */ messageFinish() { this.msg_send_status = 1; this.img_upload_status = 0; } } }); export default useImageUploadStatus;