questionnaire.api.ts 940 B

123456789101112131415161718192021222324
  1. import { useVisitor } from '@/stores';
  2. import HTTP from '../alova';
  3. import type { QuestionnaireStorage } from '../model';
  4. import { fromQuestionnaireData, toQuestionnaireData } from '../model';
  5. const visitor = useVisitor();
  6. let storage: Pick<QuestionnaireStorage, 'dialogId'> & { questions: QuestionnaireStorage['questions'][] } = { questions: [] };
  7. export function questionnaireMethod(data = []) {
  8. if ( !data?.length ) { storage = { questions: [] }; }
  9. return HTTP.Post(
  10. `/fdhb-tablet/dialogueManage/dialog/${ visitor.patientId }/${ visitor.resultId }`,
  11. toQuestionnaireData(data, storage),
  12. {
  13. meta: { ignoreException: true },
  14. transform(data: Record<string, any>, headers) {
  15. const { storage: _storage, model } = fromQuestionnaireData(data);
  16. storage = _storage;
  17. return model;
  18. },
  19. }
  20. );
  21. }